def receive(self, address, unique_id, flags, data): ''' Processes received data from a physical device. ''' DeviceHandler.receive(self, address, unique_id, flags, data) entity = Entity.find(unique_id) if entity is None: print 'No device found with id:', unique_id else: if entity.state_changed(data): ClientModule.instance().send_state_change(entity)
def describe(self, address, unique_id, data): ''' Registers a device for the given physical address. ''' DeviceHandler.describe(self, address, unique_id, data) etype_id = data[0] etype = EntityType.find(etype_id) if etype: entity = Entity.find(unique_id) if entity is None: entity = Entity(unique_id, etype, 'Unknown device: ' + unique_id, last_checkin=time.time()) entity.save() print 'Device registered:', entity ClientModule.instance().send_state_change(entity) else: entity.last_checkin = time.time() entity.save() print 'Device found:', entity ClientModule.instance().send_state_change(entity) else: print 'Entity type not found:', etype_id