Exemplo n.º 1
0
 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')