Ejemplo n.º 1
0
    def _decode_0x6F_record(self, p_controller_obj):
        """All-Link manage Record Response (12 bytes).
        See p 252(265) of 2009 developers guide.

        Modify the IM's All-Link Database (ALDB) with the All-Link data you send.
        Use caution with this command - the IM does not check the validity of the data you send.

        [0] = x02
        [1] = 0x6F
        [2] = Control Code
        [3] = All-Link Record Flag
        [4] = All Lpink Grou
        [5-7] = ID
        [8] = Link Data 1
        [9] = Link Data 2
        [10] = Link Data 3
        [11] = ACK/NAK
         """
        l_message = p_controller_obj._Message
        l_code = l_message[2]
        l_flags = l_message[3]
        l_flag_control = l_flags & 0x40
        l_group = l_message[4]
        l_obj = utilDecode.get_obj_from_message(self.m_pyhouse_obj, l_message[5:8])
        l_data = [l_message[8], l_message[9], l_message[10]]
        l_ack = utilDecode.get_ack_nak(l_message[11])
        l_type = 'Responder'
        if l_flag_control != 0:
            l_type = 'Controller'
        l_message = "Manage All-Link response(6F)"
        l_message += " Group:{:#02X}, Name:{}, Flags:{:#02X}, Data:{}, CtlCode:{:#02x},".format(l_group, l_obj.Name, l_flags, l_data, l_code)
        l_message += " Ack:{}, Type:{}".format(l_ack, l_type)
        LOG.info("{}".format(l_message))
        p_controller_obj.Ret = True
        return
Ejemplo n.º 2
0
 def _decode_67_record(self, p_controller_obj):
     """Reset IM ACK response (3 bytes).
     See p 258 of developers guide.
     """
     l_message = p_controller_obj._Message
     l_ack = utilDecode.get_ack_nak(l_message[2])
     l_debug_msg = "Reset IM(PLM) {}".format(l_ack)
     LOG.info("{}".format(l_debug_msg))
     return self.check_for_more_decoding(p_controller_obj)
Ejemplo n.º 3
0
 def _decode_0x67_record(self, p_controller_obj):
     """Reset IM ACK response (3 bytes).
     See p 258 of developers guide.
     """
     l_message = p_controller_obj._Message
     l_ack = utilDecode.get_ack_nak(l_message[2])
     l_debug_msg = "Reset IM(PLM) {}".format(l_ack)
     LOG.info("{}".format(l_debug_msg))
     return
Ejemplo n.º 4
0
 def _decode_73_record(self, p_controller_obj):
     """Get the PLM response of 'get config' (6 bytes).
     See p 270 of developers guide.
     """
     l_message = p_controller_obj._Message
     l_flags = l_message[2]
     l_spare1 = l_message[3]
     l_spare2 = l_message[4]
     l_ack = utilDecode.get_ack_nak(l_message[5])
     LOG.info("== 73 Get IM configuration Flags={:#x}, Spare 1={:#x}, Spare 2={:#x} {} ".format(
                 l_flags, l_spare1, l_spare2, l_ack))
     return self.check_for_more_decoding(p_controller_obj)
Ejemplo n.º 5
0
 def _decode_73_record(self, p_controller_obj):
     """Get the PLM response of 'get config' (6 bytes).
     See p 270 of developers guide.
     """
     l_message = p_controller_obj._Message
     l_flags = l_message[2]
     l_spare1 = l_message[3]
     l_spare2 = l_message[4]
     l_ack = utilDecode.get_ack_nak(l_message[5])
     LOG.info(
         "== 73 Get IM configuration Flags={:#x}, Spare 1={:#x}, Spare 2={:#x} {} "
         .format(l_flags, l_spare1, l_spare2, l_ack))
     return self.check_for_more_decoding(p_controller_obj)
Ejemplo n.º 6
0
 def _decode_6B_record(self, p_controller_obj):
     """Get set IM configuration (4 bytes).
     See p 271 of developers guide.
     """
     l_message = p_controller_obj._Message
     l_flag = l_message[2]
     l_ack = utilDecode.get_ack_nak(l_message[3])
     l_debug_msg = "Config flag from PLM:{} - ConfigFlag:{:#02X}, {}".format(p_controller_obj.Name, l_flag, l_ack)
     LOG.info("Received from {}".format(l_debug_msg))
     if l_message[3] == ACK:
         l_ret = True
     else:
         LOG.error("== 6B - NAK/Unknown message type {:#x}".format(l_flag))
         l_ret = False
     return self.check_for_more_decoding(p_controller_obj, l_ret)
Ejemplo n.º 7
0
 def _decode_6B_record(self, p_controller_obj):
     """Get set IM configuration (4 bytes).
     See p 271 of developers guide.
     """
     l_message = p_controller_obj._Message
     l_flag = l_message[2]
     l_ack = utilDecode.get_ack_nak(l_message[3])
     l_debug_msg = "Config flag from PLM:{} - ConfigFlag:{:#02X}, {}".format(
         p_controller_obj.Name, l_flag, l_ack)
     LOG.info("Received from {}".format(l_debug_msg))
     if l_message[3] == ACK:
         l_ret = True
     else:
         LOG.error("== 6B - NAK/Unknown message type {:#x}".format(l_flag))
         l_ret = False
     return self.check_for_more_decoding(p_controller_obj, l_ret)
Ejemplo n.º 8
0
 def _decode_0x73_record(self, p_controller_obj):
     """ Get the PLM response of 'get config' (6 bytes).
     See p 257(270) of the 2009 developers guide.
     [0] = x02
     [1] = IM Control Flag
     [2] = Spare 1
     [3] = Spare 2
     [4] = ACK/NAK
     """
     l_message = p_controller_obj._Message
     l_flags = l_message[2]
     l_spare1 = l_message[3]
     l_spare2 = l_message[4]
     l_ack = utilDecode.get_ack_nak(l_message[5])
     LOG.info("== 0x73 Get IM configuration Flags={:#x}, Spare 1={:#x}, Spare 2={:#x} {} ".format(
                 l_flags, l_spare1, l_spare2, l_ack))
     return
Ejemplo n.º 9
0
 def _decode_0x6B_record(self, p_controller_obj):
     """Get set IM configuration (4 bytes).
     See p 258(271) of 2009 developers guide.
     [0] = x02
     [1] = 0x6B
     [2] = Flags
     [3] = ACK/NAK
      """
     l_message = p_controller_obj._Message
     l_flag = l_message[2]
     l_ack = utilDecode.get_ack_nak(l_message[3])
     l_debug_msg = "Config flag from PLM:{} - ConfigFlag:{:#02X}, {}".format(p_controller_obj.Name, l_flag, l_ack)
     LOG.info("Received from {}".format(l_debug_msg))
     if l_message[3] == ACK:
         p_controller_obj.Ret = True
     else:
         LOG.error("== 6B - NAK/Unknown message type {:#x}".format(l_flag))
         p_controller_obj.Ret = False
     return
Ejemplo n.º 10
0
 def _decode_6F_record(self, p_controller_obj):
     """All-Link manage Record Response (12 bytes).
     See p 267 of developers guide.
     """
     l_message = p_controller_obj._Message
     l_code = l_message[2]
     l_flags = l_message[3]
     l_flag_control = l_flags & 0x40
     l_group = l_message[4]
     l_obj = utilDecode.get_obj_from_message(self.m_pyhouse_obj, l_message[5:8])
     l_data = [l_message[8], l_message[9], l_message[10]]
     l_ack = utilDecode.get_ack_nak(l_message[11])
     l_type = 'Responder'
     if l_flag_control != 0:
         l_type = 'Controller'
     l_message = "Manage All-Link response(6F)"
     l_message += " Group:{:#02X}, Name:{}, Flags:{:#02X}, Data:{}, CtlCode:{:#02x},".format(l_group, l_obj.Name, l_flags, l_data, l_code)
     l_message += " Ack:{}, Type:{}".format(l_ack, l_type)
     LOG.info("{}".format(l_message))
     l_ret = True
     return self.check_for_more_decoding(p_controller_obj, l_ret)
Ejemplo n.º 11
0
 def _decode_62_record(self, p_controller_obj):
     """Get response to Send Insteon standard-length message (9 bytes).
     Basically, a response to the 62 command.
     See p 243 of developers guide.
     [0] = 0x02
     [1] = 0x62
     [2-4] = address
     [5] = message flags
     [6] = command 1
     [7] = command 2
     [8] = ACK/NAK
     This is an ack/nak of the command and generally is not very interesting by itself.
     Depending on the command sent, another response MAY follow this message with further data.
     """
     l_message = p_controller_obj._Message
     l_obj = utilDecode.get_obj_from_message(self.m_pyhouse_obj, l_message[2:5])
     _l_msgflags = utilDecode._decode_message_flag(l_message[5])
     l_ack = utilDecode.get_ack_nak(l_message[8])
     l_debug_msg = "Device: {}, {}".format(l_obj.Name, l_ack)
     if l_ack == 'NAK':
         LOG.info("Got ACK(62); {}".format(l_debug_msg))
     return self.check_for_more_decoding(p_controller_obj)
Ejemplo n.º 12
0
    def _decode_0x62_record(self, p_controller_obj):
        """Get response to Send Insteon standard-length message (9 bytes).
        Basically, a response to the 62 command.
        See p 230(243) of 2009 developers guide.
        [0] = 0x02
        [1] = 0x62
        [2-4] = address
        [5] = message flags
        [6] = command 1
        [7] = command 2
        [8] = ACK/NAK

        [8] = User Data 1
        [9] = User Data 2
        [10] = User Data 3
        [11] = User Data 4
        [12] = User Data 5
        [13] = User Data 6
        [14] = User Data 7
        [15] = User Data 8
        [16] = User Data 9
        [17] = User Data 10
        [18] = User Data 11
        [19] = User Data 12
        [20] = User Data 13
        [21] = User Data 14
        [22] = ACK/NAK
        This is an ack/nak of the command and generally is not very interesting by itself.
        Depending on the command sent, another response MAY follow this message with further data.
        """
        l_message = p_controller_obj._Message
        l_obj = utilDecode.get_obj_from_message(self.m_pyhouse_obj, l_message[2:5])
        _l_msgflags = utilDecode._decode_message_flag(l_message[5])
        l_ack = utilDecode.get_ack_nak(l_message[8])
        l_debug_msg = "Device: {}, {}".format(l_obj.Name, l_ack)
        if l_ack == 'NAK':
            LOG.info("Got ACK(62); {}".format(l_debug_msg))
        return
Ejemplo n.º 13
0
 def _decode_6F_record(self, p_controller_obj):
     """All-Link manage Record Response (12 bytes).
     See p 267 of developers guide.
     """
     l_message = p_controller_obj._Message
     l_code = l_message[2]
     l_flags = l_message[3]
     l_flag_control = l_flags & 0x40
     l_group = l_message[4]
     l_obj = utilDecode.get_obj_from_message(self.m_pyhouse_obj,
                                             l_message[5:8])
     l_data = [l_message[8], l_message[9], l_message[10]]
     l_ack = utilDecode.get_ack_nak(l_message[11])
     l_type = 'Responder'
     if l_flag_control != 0:
         l_type = 'Controller'
     l_message = "Manage All-Link response(6F)"
     l_message += " Group:{:#02X}, Name:{}, Flags:{:#02X}, Data:{}, CtlCode:{:#02x},".format(
         l_group, l_obj.Name, l_flags, l_data, l_code)
     l_message += " Ack:{}, Type:{}".format(l_ack, l_type)
     LOG.info("{}".format(l_message))
     l_ret = True
     return self.check_for_more_decoding(p_controller_obj, l_ret)
Ejemplo n.º 14
0
 def _decode_62_record(self, p_controller_obj):
     """Get response to Send Insteon standard-length message (9 bytes).
     Basically, a response to the 62 command.
     See p 243 of developers guide.
     [0] = 0x02
     [1] = 0x62
     [2-4] = address
     [5] = message flags
     [6] = command 1
     [7] = command 2
     [8] = ACK/NAK
     This is an ack/nak of the command and generally is not very interesting by itself.
     Depending on the command sent, another response MAY follow this message with further data.
     """
     l_message = p_controller_obj._Message
     l_obj = utilDecode.get_obj_from_message(self.m_pyhouse_obj,
                                             l_message[2:5])
     _l_msgflags = utilDecode._decode_message_flag(l_message[5])
     l_ack = utilDecode.get_ack_nak(l_message[8])
     l_debug_msg = "Device: {}, {}".format(l_obj.Name, l_ack)
     if l_ack == 'NAK':
         LOG.info("Got ACK(62); {}".format(l_debug_msg))
     return self.check_for_more_decoding(p_controller_obj)