class NodeInfoCachedReport(Message): """Command Class message COMMAND_CLASS_NETWORK_MANAGEMENT_PROXY NODE_INFO_CACHED_REPORT""" NAME = "NODE_INFO_CACHED_REPORT" class Status(IntEnum): """Node info status""" OK = 0x00 NOT_RESPONDING = 0x01 UNKNOWN = 0x02 attributes = ( ("seqNo", uint8_t), ("status", enum_t(Status, uint4_t)), ("age", uint4_t), ("listening", flag_t), ("zwaveProtocolSpecific", reserved_t(7)), ("optFunc", flag_t), ("zwaveProtocolSpecific", reserved_t(7)), ("-", reserved_t(8)), ("basicDeviceClass", uint8_t), ("genericDeviceClass", uint8_t), ("specificDeviceClass", uint8_t), ("commandClass", bytes_t), )
class Get(Message): """Command Class message COMMAND_CLASS_SENSOR_MULTILEVEL SENSOR_MULTILEVEL_GET""" NAME = "GET" attributes = ( ("sensorType", SensorType_t), ("-", reserved_t(3)), ("scale", bits_t(2)), ("-", reserved_t(3)), )
class ZipInvNodeSolicitation(Message): """ Command Class Message COMMAND_CLASS_ZIP_ND ZIP_INV_NODE_SOLICITATION """ NAME = "ZIP_INV_NODE_SOLICITATION" attributes = ( ("-", reserved_t(4)), ("local", flag_t), ("-", reserved_t(3)), ("nodeId", uint8_t), )
class MultiChannelEndPointReport(Message): """ Command Class message COMMAND_CLASS_NETWORK_MANAGEMENT_PROXY NM_MULTI_CHANNEL_END_POINT_REPORT """ NAME = "NM_MULTI_CHANNEL_END_POINT_REPORT" attributes = ( ("seqNo", uint8_t), ("nodeID", uint8_t), ("-", reserved_t(8)), ("-", reserved_t(1)), ("individualEndPoints", uint7_t), ("-", reserved_t(1)), ("aggregatedEndPoints", uint7_t), )
class ZIPPacketOptionEncapsulationFormatInfo(ZIPPacketOptionData, AttributesMixin): """Zip packet option encapsulation format info""" attributes = ( ("security2SecurityClass", bits_t(8)), ("-", reserved_t(7)), ("crc16", flag_t), )
class GroupInfoGroupType(DictAttribute): """The type for the group property in the GroupInfoReport""" attributes = ( ("groupingIdentifier", uint8_t), ("mode", uint8_t), ("profile", uint16_t), ("-", reserved_t(8)), ("eventCode", uint16_t), )
class GroupInfoGet(Message): """Command Class message COMMAND_CLASS_VERSION ASSOCIATION_GROUP_INFO_GET""" NAME = "GROUP_INFO_GET" attributes = ( ("refreshCache", flag_t), ("listMode", flag_t), ("-", reserved_t(6)), ("groupingIdentifier", uint8_t), )
class ConfigurationSet(Message): """Command Class message COMMAND_CLASS_MAILBOX MAILBOX_CONFIGURATION_SET""" NAME = "CONFIGURATION_SET" attributes = ( ("-", reserved_t(5)), ("mode", Mode_t), ("forwardingDestinationIPv6Address", IPv6), ("udpPortNumber", uint16_t), )
class Get(Message): """Command Class message COMMAND_CLASS_METER METER_GET""" NAME = "GET" attributes = ( ("rateType", RateType_t), ("scale", bits_t(3)), ("-", reserved_t(3)), ("scale2", uint8_t), )
class NodeAddDSKReport(Message): """Command Class message COMMAND_CLASS_NETWORK_MANAGEMENT_INCLUSION NODE_ADD_DSK_REPORT""" NAME = "NODE_ADD_DSK_REPORT" attributes = ( ("seqNo", uint8_t), ("-", reserved_t(4)), ("inputDSKLength", uint4_t), ("dsk", dsk_t), )
class NodeAddKeysReport(Message): """Command Class message COMMAND_CLASS_NETWORK_MANAGEMENT_INCLUSION NODE_ADD_KEYS_REPORT""" NAME = "NODE_ADD_KEYS_REPORT" attributes = ( ("seqNo", uint8_t), ("-", reserved_t(7)), ("requestCSA", flag_t), ("requestedKeys", enum_t(Keys, uint8_t)), )
class NodeInfoCachedGet(Message): """Command Class message COMMAND_CLASS_NETWORK_MANAGEMENT_PROXY NODE_INFO_CACHED_GET""" NAME = "NODE_INFO_CACHED_GET" attributes = ( ("seqNo", uint8_t), ("-", reserved_t(4)), ("maxAge", bits_t(4)), ("nodeID", uint8_t), )
class ConfigurationReport(Message): """Command Class message COMMAND_CLASS_MAILBOX MAILBOX_CONFIGURATION_REPORT""" NAME = "CONFIGURATION_REPORT" attributes = ( ("-", reserved_t(3)), ("supportedModes", bits_t(2)), ("mode", Mode_t), ("mailboxCapacity", uint16_t), ("forwardingDestinationIPv6Address", IPv6), ("udpPortNumber", uint16_t), )
class ZipKeepAlive(Message): """ Command Class message COMMAND_CLASS_ZIP COMMAND_ZIP_KEEP_ALIVE """ NAME = "ZIP_KEEP_ALIVE" attributes = ( ("ackRequest", flag_t), ("ackResponse", flag_t), ("_", reserved_t(6)), )
class GroupCommandListGet(Message): """ Command Class message COMMAND_CLASS_ASSOCIATION_GRP_INFO ASSOCIATION_GROUP_COMMAND_LIST_GET """ NAME = "GROUP_COMMAND_LIST_GET" attributes = ( ("allowCache", flag_t), ("-", reserved_t(7)), ("groupingIdentifier", uint8_t), )
class NodeAddKeysSet(Message): """Command Class message COMMAND_CLASS_NETWORK_MANAGEMENT_INCLUSION NODE_ADD_KEYS_SET""" NAME = "NODE_ADD_KEYS_SET" attributes = ( ("seqNo", uint8_t), ("-", reserved_t(6)), ("grantCSA", flag_t), ("accept", flag_t), ("grantedKeys", enum_t(Keys, uint8_t)), )
class SupportedScaleReport(Message): """ Command Class message COMMAND_CLASS_SENSOR_MULTILEVEL SENSOR_MULTILEVEL_SUPPORTED_SCALE_REPORT """ NAME = "SUPPORTED_SCALE_REPORT" attributes = ( ("sensorType", SensorType_t), ("-", reserved_t(4)), ("scaleBitMask", bits_t(4)), )
class GatewayPeerSet(Message): """ Command Class Message COMMAND_CLASS_ZIP_GATEWAY GATEWAY_PEER_SET """ NAME = "GATEWAY_PEER_SET" attributes = ( ("peerProfile", uint8_t), ("ipv6", IPv6), ("port", uint16_t), ("-", reserved_t(2)), ("peerNameLength", bits_t(6)), )
class BulkReport(Message): """Command Class message COMMAND_CLASS_CONFIGURATION CONFIGURATION_BULK_REPORT_V2""" NAME = "BULK_REPORT" attributes = ( ("parameterOffset", uint16_t), ("numberOfParameters", uint8_t), ("reportsToFollow", uint8_t), ("default", flag_t), ("handshake", flag_t), ("-", reserved_t(3)), ("size", Size_t), ("parameter", bytes_t), )
class MultiChannelCapabilityGet(Message): """ Command Class message COMMAND_CLASS_NETWORK_MANAGEMENT_PROXY NM_MULTI_CHANNEL_CAPABILITY_GET """ NAME = "NM_MULTI_CHANNEL_CAPABILITY_GET" attributes = ( ("seqNo", uint8_t), ("nodeID", uint8_t), ("-", reserved_t(1)), ("endPoint", uint7_t), )
class Report(Message): """Command Class message COMMAND_CLASS_CONFIGURATION CONFIGURATION_REPORT""" NAME = "REPORT" attributes = ( ("parameterNumber", uint8_t), ("-", reserved_t(5)), ("size", Size_t), ("value", int), ) def parse_value(self, stream: BitStreamReader): # pylint: disable=invalid-name """Decode the value from the report""" return int.from_bytes(stream.value(self.size), "big", signed=False)
class NodeAddStatus(Message): """Command Class message COMMAND_CLASS_NETWORK_MANAGEMENT_INCLUSION NODE_ADD_STATUS""" class Status(IntEnum): """Add node status""" NODE_FOUND = 0x02 # Note, not part of NodeAddStatus, only in Serial Api ADD_SLAVE = 0x03 # Note, not part of NodeAddStatus, only in Serial Api PROTOCOL_DONE = 0x05 # Note, not part of NodeAddStatus, only in Serial Api DONE = 0x06 FAILED = 0x07 SECURITY_FAILED = 0x09 NAME = "NODE_ADD_STATUS" attributes = ( ("seqNo", uint8_t), ("status", enum_t(Status, uint8_t)), ("-", reserved_t(8)), ("newNodeID", uint8_t), ("nodeInfoLength", uint8_t), ("listening", flag_t), ("zwaveProtocolSpecific", reserved_t(7)), ("optFunc", flag_t), ("zwaveProtocolSpecific", reserved_t(7)), ("basicDeviceClass", uint8_t), ("genericDeviceClass", uint8_t), ("specificDeviceClass", uint8_t), ("commandClass", list), ) def parse_commandClass(self, stream: BitStreamReader): # pylint: disable=invalid-name """Parse the length prefixed command""" length = self.nodeInfoLength - 7 if length > stream.bytesLeft(): return list(stream.remaining()) return list(stream.value(length))
class ZipNodeAdvertisement(Message): """ Command Class message COMMAND_CLASS_ZIP_ND ZIP_NODE_ADVERTISEMENT """ NAME = "ZIP_NODE_ADVERTISEMENT" attributes = ( ("-", reserved_t(5)), ("local", flag_t), ("validity", bits_t(2)), ("nodeId", uint8_t), ("ipv6", IPv6), ("homeId", HomeID), )
class Set(Message): """Command Class message COMMAND_CLASS_CONFIGURATION CONFIGURATION_SET""" NAME = "SET" attributes = ( ("parameterNumber", uint8_t), ("default", flag_t), ("-", reserved_t(4)), ("size", Size_t), ("value", int), ) def compose_value(self, stream: BitStreamWriter): # pylint: disable=invalid-name """Write the value to the bitstream. The value is variable size""" stream.addBytes(self.value, self.size, False)
class NodeRemove(Message): """Command Class message COMMAND_CLASS_NETWORK_MANAGEMENT_INCLUSION NODE_REMOVE""" NAME = "NODE_REMOVE" class Mode(IntEnum): """Remove node mode""" ANY = 0x01 STOP = 0x05 attributes = ( ("seqNo", uint8_t), ("-", reserved_t(8)), ("mode", enum_t(Mode, uint8_t)), )
class Get(Message): """Command Class message COMMAND_CLASS_SUPERVISION SUPERVISION_GET""" NAME = "SUPERVISION_GET" attributes = ( ("statusUpdates", flag_t), ("-", reserved_t(1)), ("sessionID", bits_t(6)), ("command", Message), ) @staticmethod def parse_command(stream: BitStreamReader): # pylint: disable=invalid-name """Parse the length prefixed command""" length = stream.byte() return Message.decode(stream.value(length))
class MultiChannelCapabilityReport(Message): """ Command Class message COMMAND_CLASS_NETWORK_MANAGEMENT_PROXY NM_MULTI_CHANNEL_CAPABILITY_REPORT """ NAME = "NM_MULTI_CHANNEL_CAPABILITY_REPORT" attributes = ( ("seqNo", uint8_t), ("nodeID", uint8_t), ("commandClassLength", uint8_t), ("-", reserved_t(1)), ("endPoint", uint7_t), ("genericDeviceClass", uint8_t), ("specificDeviceClass", uint8_t), ("commandClass", bytes_t), )
class NodeAdd(Message): """Command Class message COMMAND_CLASS_NETWORK_MANAGEMENT_INCLUSION NODE_ADD""" NAME = "NODE_ADD" class Mode(IntEnum): """Node add mode""" ANY = 0x01 STOP = 0x05 ANY_S2 = 0x07 attributes = ( ("seqNo", uint8_t), ("-", reserved_t(8)), ("mode", enum_t(Mode, uint8_t)), ("txOptions", uint8_t), )
class ListIterationReport(Message): """ Command Class message COMMAND_CLASS_NODE_PROVISIONING COMMAND_NODE_PROVISIONING_LIST_ITERATION_REPORT """ NAME = "LIST_ITERATION_REPORT" attributes = ( ("seqNo", uint8_t), ("remainingCount", uint8_t), ("-", reserved_t(3)), ("dskLengthN", uint5_t), ("dsk", dsk_t), ("metaDataExtension", MetadataExtension), ) def parse_dsk(self, stream: BitStreamReader): # pylint: disable=invalid-name """Parse attribute dsk""" return dsk_t.deserializeN(stream, self.dskLengthN)
class Queue(Message): """Command Class message COMMAND_CLASS_MAILBOX MAILBOX_QUEUE""" class Operation(IntEnum): """Mailbox Queue Operation enum""" PUSH = 0x00 POP = 0x01 WAITING = 0x02 PING = 0x03 ACK = 0x04 NACK = 0x05 QUEUE_FULL = 0x06 NAME = "QUEUE" attributes = ( ("-", reserved_t(4)), ("last", flag_t), ("operation", enum_t(Operation, uint3_t)), ("queueHandle", uint8_t), ("mailboxEntry", bytes_t), )