def setUpClass(cls): search_path = sys.argv[0].split(':') import_modules(search_path, 'entities') EntityType.register(199, 'TestEntity', Entity) # empty history Database.instance().write('DELETE FROM history')
state = state_message[0] if state == 0x00: if 0 != self.state_value: self.set_state(STATE_OFF, 0) return True elif state == 0x01: if 1 != self.state_value: self.set_state(STATE_ON, 1) return True return False def control(self, controller, command, value=None): if command.id == COMMAND_ON.id: controller.send_message(self.unique_id, [ chr(0x00), chr(0x01) ]) self.log_command('Turning the power on') return elif command.id == COMMAND_OFF.id: controller.send_message(self.unique_id, [ chr(0x00), chr(0x00) ]) self.log_command('Turning the power off') return Entity.control(self, command, value=value) def describe_state(self): return str(self.state) # register type EntityType.register(100, 'Power', GenericPower, [COMMAND_ON, COMMAND_OFF], '#99CC00', 'power.png')
return False def control(self, controller, command, value=None): if command.id == COMMAND_LIGHT_LEVEL.id: if value is not None: msg = [ chr(0x00), chr(0x02), chr(int(round((int(value) * 255) / 100))) ] controller.send_message(self.unique_id, msg) self.log_command('Setting light level to ' + str(value)) return elif command.id == COMMAND_ON.id: controller.send_message(self.unique_id, [ chr(0x00), chr(0x01) ]) self.log_command('Turning the light on') return elif command.id == COMMAND_OFF.id: controller.send_message(self.unique_id, [ chr(0x00), chr(0x00) ]) self.log_command('Turning the light off') return Entity.control(self, command, value=value) def describe_state(self): if 0 < self.state_value < 100: return str(self.state) + ' (' + str(self.state_value) + '%)' else: return str(self.state) # register type EntityType.register(101, 'Light', GenericLight, [COMMAND_ON, COMMAND_OFF, COMMAND_LIGHT_LEVEL], '#CCCC00', 'light.png')