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}")
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}")
# 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')
def _notify_started(self): event = event_factory.create_automation_hub_started_event() event_dispatcher.dispatch(event)