예제 #1
0
    def on_state_changed(self, entity, attribute, old, new, kwargs):

        if entity in entity_map:
            logger.debug(
                "Received New State Change - entity = {} attribute = {} old = {} new = {} kwargs = {}"
                .format(entity, attribute, old, new, kwargs))
            logger.debug(
                "Received state change for subscribed entity (name = {}, type = {}"
                .format(entity_map[entity]['name'],
                        entity_map[entity]['type']))

            friendly_name = entity_map[entity]["name"]
            entity_type = entity_map[entity]["type"]
            old_state = old.get("state") if old else None
            new_state = new.get("state") if new else None
            attributes = new.get("attributes")

            adevents = event_factory.create_from_state_change(
                friendly_name, entity_type, entity, attributes, old_state,
                new_state, kwargs)
            for adevent in adevents:
                event_dispatcher.dispatch(adevent)
        else:
            logger.error(
                f"Received untracked state change from entity: {entity}")
예제 #2
0
    def on_event(self, event_name, data, kwargs):
        logger.debug(
            "Received New Event - name = {} data = {} kwargs = {}".format(
                event_name, data, kwargs))

        if event_name in self.event_list:

            adevent = event_factory.create_from_event(event_name, data, kwargs)
            if adevent:
                event_dispatcher.dispatch(adevent)
        else:
            logger.error(f"Received untracked event: {event_name}")
예제 #3
0
# entry point for the application
from pubsub import pub

from event_dispatcher import dispatch
from eventlistener import OnFrameAddedEventListener, OnBoxCreatedEventListener, OnBoxDeletedEventListener, \
    OnEndOfStreamEventListener, OnBoxMovedEventListener, OnBoxAttributeChangedEventListener, OnExtractBoxEventListener, OnClassifyTrafficLightEventListener
from utils.constants import Topics

# instantiate the event listeners
on_frame_added = OnFrameAddedEventListener()
on_box_created = OnBoxCreatedEventListener()
on_box_deleted = OnBoxDeletedEventListener()
on_box_moved = OnBoxMovedEventListener()
on_box_att_changed = OnBoxAttributeChangedEventListener()
on_end_of_stream = OnEndOfStreamEventListener()
on_extract_box = OnExtractBoxEventListener()
on_classify_tl = OnClassifyTrafficLightEventListener()

# make each event listener subscribe to its event.
pub.subscribe(on_frame_added.handle, Topics.FRAME_ADDED)
pub.subscribe(on_box_created.handle, Topics.BOX_CREATED)
pub.subscribe(on_box_deleted.handle, Topics.BOX_DELETED)
pub.subscribe(on_box_moved.handle, Topics.BOX_MOVED)
pub.subscribe(on_box_att_changed.handle, Topics.BOX_ATTRIBUTE_CHANGED)
pub.subscribe(on_end_of_stream.handle, Topics.END_OF_STREAM)
pub.subscribe(on_extract_box.handle, Topics.EXTRACT_BOX)
pub.subscribe(on_classify_tl.handle, Topics.CLASSIFY_TRAFFIC_LIGHT)

dispatch('var/input/events.csv')
예제 #4
0
 def _notify_started(self):
     event = event_factory.create_automation_hub_started_event()
     event_dispatcher.dispatch(event)