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
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)
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
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)
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)
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)
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)
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
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
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)
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)
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
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)