UNPKG

zigbee-herdsman

Version:

An open source ZigBee gateway solution with node.js.

624 lines 23.8 kB
/** * Defines for ZigBee device profile cluster IDs follow. * These include descriptions of the formats of the messages. * * Note that each message starts with a 1-byte transaction sequence number. * This sequence number is used to match a response command frame to the request frame that it is replying to. * The application shall maintain a 1-byte counter that is copied into this field and incremented by one for each command sent. * When a value of 0xff is reached, the next command shall re-start the counter with a value of 0x00. * * The Device Profile describes devices in one of two configurations: * - Client: A client issues requests to the server via Device Profile messages. * - Server: A server issues responses to the client that initiated the Device Profile message. * * Restricted Mode (`apsZdoRestrictedMode`) is a mode where a device will conditionally accept specific ZDO commands, * depending on the restricted criteria, source address, and encryption policy of the incoming command. * If a command is accepted, it is subject to normal command processing. * The acceptance criteria is explain further below: * 1. If the command is marked as “Yes” in the Restricted Command column, do the following: * - a. If `apsZdoRestrictedMode` in the AIB is set to FALSE, the command is not restricted. * - i. Go to Step 2. * - b. If the sender is the Trust Center AND has APS encryption, the command is not restricted. * - i. Go to Step 2. * - c. Otherwise, the command SHALL NOT be processed. The receiver SHALL do the following: * - i. If the command was broadcast, no error is generated. * - No more processing is done. * - ii. If the command was unicast, generate an error message. Create the corresponding ZDO Response frame with a status of NOT_AUTHORIZED. * - No more processing is done. * 2. Continue processing the command normally. */ export declare enum ClusterId { /** * Request: [transaction sequence number: 1] * [EUI64:8] [request type:1] [start index:1] * [request type] = 0x00 single address response, ignore the start index * = 0x01 extended response, sends kid's IDs as well */ NETWORK_ADDRESS_REQUEST = 0, /** * Response: [transaction sequence number: 1] * [status:1] [EUI64:8] [node ID:2] * [assoc dev count:1] [start index:1] [assoc dev list:2]* */ NETWORK_ADDRESS_RESPONSE = 32768, /** * Request: [transaction sequence number: 1] * [node ID:2] [request type:1] [start index:1] * [request type] = 0x00 single address response, ignore the start index * = 0x01 extended response, sends kid's IDs as well */ IEEE_ADDRESS_REQUEST = 1, /** * Response: [transaction sequence number: 1] * [status:1] [EUI64:8] [node ID:2] * [assoc dev count:1] [start index:1] [assoc dev list:2]* */ IEEE_ADDRESS_RESPONSE = 32769, /** * Request: [transaction sequence number: 1] [node ID:2] [tlvs: varies] */ NODE_DESCRIPTOR_REQUEST = 2, /** * Response: [transaction sequence number: 1] [status:1] [node ID:2] * [node descriptor: 13] [tlvs: varies] * * Node Descriptor field is divided into subfields of bitmasks as follows: * (Note: All lengths below are given in bits rather than bytes.) * Logical Type: 3 * Complex Descriptor Available: 1 * User Descriptor Available: 1 * (reserved/unused): 3 * APS Flags: 3 * Frequency Band: 5 * MAC capability flags: 8 * Manufacturer Code: 16 * Maximum buffer size: 8 * Maximum incoming transfer size: 16 * Server mask: 16 * Maximum outgoing transfer size: 16 * Descriptor Capability Flags: 8 * See ZigBee document 053474, Section 2.3.2.3 for more details. */ NODE_DESCRIPTOR_RESPONSE = 32770, /** * Request: [transaction sequence number: 1] [node ID:2] */ POWER_DESCRIPTOR_REQUEST = 3, /** * Response: [transaction sequence number: 1] [status:1] [node ID:2] * [current power mode, available power sources:1] * [current power source, current power source level:1] * See ZigBee document 053474, Section 2.3.2.4 for more details. */ POWER_DESCRIPTOR_RESPONSE = 32771, /** * Request: [transaction sequence number: 1] * [node ID:2] [endpoint:1] */ SIMPLE_DESCRIPTOR_REQUEST = 4, /** * Response: [transaction sequence number: 1] * [status:1] [node ID:2] [length:1] [endpoint:1] * [app profile ID:2] [app device ID:2] * [app device version, app flags:1] * [input cluster count:1] [input cluster:2]* * [output cluster count:1] [output cluster:2]* */ SIMPLE_DESCRIPTOR_RESPONSE = 32772, /** * Request: [transaction sequence number: 1] [node ID:2] */ ACTIVE_ENDPOINTS_REQUEST = 5, /** * Response: [transaction sequence number: 1] * [status:1] [node ID:2] [endpoint count:1] [endpoint:1]* */ ACTIVE_ENDPOINTS_RESPONSE = 32773, /** * Request: [transaction sequence number: 1] * [node ID:2] [app profile ID:2] * [input cluster count:1] [input cluster:2]* * [output cluster count:1] [output cluster:2]* */ MATCH_DESCRIPTORS_REQUEST = 6, /** * Response: [transaction sequence number: 1] * [status:1] [node ID:2] [endpoint count:1] [endpoint:1]* */ MATCH_DESCRIPTORS_RESPONSE = 32774, /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** * Request: [transaction sequence number: 1] * [node ID:2] [EUI64:8] [capabilities:1] */ END_DEVICE_ANNOUNCE = 19, /** DEPRECATED */ /** DEPRECATED */ /** * This is broadcast and only servers which have matching services respond. * * Request: [transaction sequence number: 1] [server mask:2] */ SYSTEM_SERVER_DISCOVERY_REQUEST = 21, /** * The response contains the request services that the recipient provides. * * Response: [transaction sequence number: 1] * [status (== EMBER_ZDP_SUCCESS):1] [server mask:2] */ SYSTEM_SERVER_DISCOVERY_RESPONSE = 32789, /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** * This is broadcast and only servers which have matching children respond. * * Request: [transaction sequence number: 1] * [number of children:1] [child EUI64:8]* */ PARENT_ANNOUNCE = 31, /** * The response contains the list of children that the recipient now holds. * * Response: [transaction sequence number: 1] * [status: 1] [number of children:1] [child EUI64:8]* */ PARENT_ANNOUNCE_RESPONSE = 32799, /** DEPRECATED */ /** DEPRECATED */ /** * There are two possible formats, depending on whether the destination is a group address or a device address. * Device addresses include an endpoint, groups don't. * * Request: [transaction sequence number: 1] * [source EUI64:8] [source endpoint:1] * [cluster ID:2] [destination address:3 or 10] * Destination address: * [0x01:1] [destination group:2] * Or: * [0x03:1] [destination EUI64:8] [destination endpoint:1] * */ BIND_REQUEST = 33, /** * Response: [transaction sequence number: 1] [status:1] */ BIND_RESPONSE = 32801, /** * There are two possible formats, depending on whether the destination is a group address or a device address. * Device addresses include an endpoint, groups don't. * * Request: [transaction sequence number: 1] * [source EUI64:8] [source endpoint:1] * [cluster ID:2] [destination address:3 or 10] * Destination address: * [0x01:1] [destination group:2] * Or: * [0x03:1] [destination EUI64:8] [destination endpoint:1] * */ UNBIND_REQUEST = 34, /** * Response: [transaction sequence number: 1] [status:1] */ UNBIND_RESPONSE = 32802, /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** DEPRECATED */ /** * Request: [transaction sequence number: 1] * [tlvs: Variable] * tlvs: [Count N:1][EUI64 1:8]...[EUI64 N:8] */ CLEAR_ALL_BINDINGS_REQUEST = 43, /** * Response: [transaction sequence number: 1] [status:1] */ CLEAR_ALL_BINDINGS_RESPONSE = 32811, /** DEPRECATED */ /** DEPRECATED */ /** * Request: [transaction sequence number: 1] [start index:1] */ LQI_TABLE_REQUEST = 49, /** * Response: [transaction sequence number: 1] [status:1] * [neighbor table entries:1] [start index:1] * [entry count:1] [entry:22]* * [entry] = [extended PAN ID:8] [EUI64:8] [node ID:2] * [device type, RX on when idle, relationship:1] * [permit joining:1] [depth:1] [LQI:1] * * The device-type byte has the following fields: * * Name Mask Values * * device type 0x03 0x00 coordinator * 0x01 router * 0x02 end device * 0x03 unknown * * rx mode 0x0C 0x00 off when idle * 0x04 on when idle * 0x08 unknown * * relationship 0x70 0x00 parent * 0x10 child * 0x20 sibling * 0x30 other * 0x40 previous child * reserved 0x10 * * The permit-joining byte has the following fields * * Name Mask Values * * permit joining 0x03 0x00 not accepting join requests * 0x01 accepting join requests * 0x02 unknown * reserved 0xFC * */ LQI_TABLE_RESPONSE = 32817, /** * Request: [transaction sequence number: 1] [start index:1] */ ROUTING_TABLE_REQUEST = 50, /** * Response: [transaction sequence number: 1] [status:1] * [routing table entries:1] [start index:1] * [entry count:1] [entry:5]* * [entry] = [destination address:2] * [status:1] * [next hop:2] * * * The status byte has the following fields: * Name Mask Values * * status 0x07 0x00 active * 0x01 discovery underway * 0x02 discovery failed * 0x03 inactive * 0x04 validation underway * * flags 0x38 * 0x08 memory constrained * 0x10 many-to-one * 0x20 route record required * * reserved 0xC0 */ ROUTING_TABLE_RESPONSE = 32818, /** * Request: [transaction sequence number: 1] [start index:1] */ BINDING_TABLE_REQUEST = 51, /** * Response: [transaction sequence number: 1] * [status:1] [binding table entries:1] [start index:1] * [entry count:1] [entry:14/21]* * [entry] = [source EUI64:8] [source endpoint:1] [cluster ID:2] * [dest addr mode:1] [dest:2/8] [dest endpoint:0/1] * * @note If Dest. Address Mode = 0x03, then the Long Dest. Address will be * used and Dest. endpoint will be included. If Dest. Address Mode = 0x01, * then the Short Dest. Address will be used and there will be no Dest. * endpoint. */ BINDING_TABLE_RESPONSE = 32819, /** * Stacks certified prior to Revision 21 MAY or MAY NOT support this command. * If this management command is not supported, a status of NOT_SUPPORTED SHALL be returned. * All stacks certified to Revision 21 and later SHALL support this command. * * Request: [transaction sequence number: 1] [EUI64:8] [flags:1] * The flag bits are: * 0x40 remove children * 0x80 rejoin */ LEAVE_REQUEST = 52, /** * Response: [transaction sequence number: 1] [status:1] */ LEAVE_RESPONSE = 32820, /** DEPRECATED */ /** DEPRECATED */ /** * Request: [transaction sequence number: 1] * [duration:1] [permit authentication:1] */ PERMIT_JOINING_REQUEST = 54, /** * No response if broadcasted to all routers. * * Response: [transaction sequence number: 1] [status:1] */ PERMIT_JOINING_RESPONSE = 32822, /** DEPRECATED */ /** DEPRECATED */ /** * Request: [transaction sequence number: 1] * [scan channels:4] [duration:1] [count:0/1] [nwkUpdateId:0/1] [manager:0/2] * * If the duration is in 0x00 ... 0x05, 'count' is present but * not 'manager'. Perform 'count' scans of the given duration on the * given channels. * * If duration is 0xFE, 'channels' should have a single channel * and 'count' and 'manager' are not present. Switch to the indicated * channel. * * If duration is 0xFF, 'count' is not present. Set the active * channels and the network manager ID to the values given. * * Unicast requests always get a response, which is INVALID_REQUEST if the * duration is not a legal value. */ NWK_UPDATE_REQUEST = 56, /** * Response: [transaction sequence number: 1] [status:1] * [scanned channels:4] [transmissions:2] [failures:2] * [energy count:1] [energy:1]* */ NWK_UPDATE_RESPONSE = 32824, /** * Request: [transaction sequence number: 1] * [scan channels list structure: Variable] [duration:1] [count:0/1] [nwkUpdateId:0/1] [manager:0/2] [configuration bitmask:0/1] */ NWK_ENHANCED_UPDATE_REQUEST = 57, /** * Response: [transaction sequence number: 1] [status:1] * [scanned channels:4] [transmissions:2] [failures:2] * [energy count:1] [energy:1]* */ NWK_ENHANCED_UPDATE_RESPONSE = 32825, /** * Request: [transaction sequence number: 1] * [start index: 1] */ NWK_IEEE_JOINING_LIST_REQUEST = 58, /** * Response: [transaction sequence number: 1] [status: 1] [ieee joining list update id: 1] [joining policy: 1] * [ieee joining list total: 1] [start index: 1] [ieee joining count: 1] [ieee:8]* */ NWK_IEEE_JOINING_LIST_RESPONSE = 32826, /** * Response: [transaction sequence number: 1] [status: 1] [channel in use: 4] [mac tx ucast total: 2] [mac tx ucast failures: 2] * [mac tx ucast retries: 2] [period of time for results: 1] */ NWK_UNSOLICITED_ENHANCED_UPDATE_RESPONSE = 32827, /** * This command can be used by a remote device to survey the end devices to determine how many potential parents they have access to. * * Request: [transaction sequence number: 1] * [TLVs: varies] * * Contains one Beacon Survey Configuration TLV (variable octets), * which contain the ScanChannelListStructure (variable length) * and the ConfigurationBitmask (1 octet). This information provides * the configuration for the end device's beacon survey. * See R23 spec section 2.4.3.3.12 for the request and 3.2.2.2.1 * for the ChannelListStructure. */ NWK_BEACON_SURVEY_REQUEST = 60, /** * * Response: [transaction sequence number: 1] * [status: 1] * [TLVs: varies] * * Contains one Beacon Survey Results TLV (4 octets), which contain * the number of on-network, off-network, potential parent and total * beacons recorded. If the device that received the request is not a * router, a Potential Parent TLV (variable octects) will be found. This * will contain information on the device's current parent, as well as * any potential parents found via beacons (up to a maximum of 5). A * Pan ID Conflict TLV can also found in the response. * See R23 spec section 2.4.4.3.13 for the response. */ NWK_BEACON_SURVEY_RESPONSE = 32828, /** * * Request: [transaction sequence number: 1] * [TLVs: varies] * * Contains one or more Curve25519 Public Point TLVs (40 octets), * which contain an EUI64 and the 32-byte Curve public point. * See R23 spec section 2.4.3.4.1 * * @note This command SHALL NOT be APS encrypted regardless of * whether sent before or after the device joins the network. * This command SHALL be network encrypted if the device has a * network key, i.e. it has joined the network earlier and wants * to negotiate or renegotiate a new link key; otherwise, if it * is used prior to joining the network, it SHALL NOT be network * encrypted. */ START_KEY_NEGOTIATION_REQUEST = 64, /** * * Response: [transaction sequence number: 1] [status:1] * [TLVs: varies] * * Contains one or more Curve25519 Public Point TLVs (40 octets), * which contain an EUI64 and the 32-byte Curve public point, or * Local TLVs. * See R23 spec section 2.4.4.4.1 * * @note This command SHALL NOT be APS encrypted. When performing * Key Negotiation with an unauthenticated neighbor that is not * yet on the network, network layer encryption SHALL NOT be used * on the message. If the message is being sent to unauthenticated * device that is not on the network and is not a neighbor, it * SHALL be relayed as described in section 4.6.3.7.7. Otherwise * the message SHALL have network layer encryption. */ START_KEY_NEGOTIATION_RESPONSE = 32832, /** * * Request: [transaction sequence number: 1] * [TLVs: varies] * * Contains one or more Authentication Token ID TLVs (1 octet), * which contain the TLV Type Tag ID of the source of the * authentication token. See R23 spec section 2.4.3.4.2 */ RETRIEVE_AUTHENTICATION_TOKEN_REQUEST = 65, /** * * Response: [transaction sequence number: 1] [status:1] * [TLVs: varies] * * Contains one or more 128-bit Symmetric Passphrase Global TLVs * (16 octets), which contain the symmetric passphrase authentication * token. See R23 spec section 2.4.4.4.2 */ RETRIEVE_AUTHENTICATION_TOKEN_RESPONSE = 32833, /** * * Request: [transaction sequence number: 1] * [TLVs: varies] * * Contains one or more Target IEEE Address TLVs (8 octets), * which contain the EUI64 of the device of interest. * See R23 spec section 2.4.3.4.3 */ GET_AUTHENTICATION_LEVEL_REQUEST = 66, /** * * Response: [transaction sequence number: 1] [status:1] * [TLVs: varies] * * Contains one or more Device Authentication Level TLVs * (10 octets), which contain the EUI64 of the inquired device, * along with the its initial join method and its active link * key update method. * See R23 spec section 2.4.4.4.3 */ GET_AUTHENTICATION_LEVEL_RESPONSE = 32834, /** * * Request: [transaction sequence number: 1] * [TLVs: varies] * * Contains one or more Global TLVs (1 octet), * which contain the TLV Type Tag ID, and their * value. */ SET_CONFIGURATION_REQUEST = 67, /** * * Response: [transaction sequence number: 1] [status:1] */ SET_CONFIGURATION_RESPONSE = 32835, /** * * Request: [transaction sequence number: 1] * [TLVs: varies] * * Contains one or more TLVs (1 octet), * which the sender wants to get information */ GET_CONFIGURATION_REQUEST = 68, /** * * Response: [transaction sequence number: 1] [status:1] * [TLVs: varies] * * Contains one or more TLV tag Ids and their values * in response to the request */ GET_CONFIGURATION_RESPONSE = 32836, /** * * Request: [transaction sequence number: 1] * [TLVs: varies] * * Contains one or more TLVs. These TLVs can be Selected Key * Negotiation Method TLVs (10 octets), Fragmentation Parameters * Global TLVs (5 octets), or other TLVs. * See R23 spec section 2.4.3.4.6 * * @note This SHALL NOT be APS encrypted or NWK encrypted if the * link key update mechanism is done as part of the initial join * and before the receiving device has been issued a network * key. This SHALL be both APS encrypted and NWK encrypted if * the link key update mechanism is performed to refresh the * link key when the receiving device has the network key and * has previously successfully joined the network. */ START_KEY_UPDATE_REQUEST = 69, /** * * Response: [transaction sequence number: 1] [status:1] * * See R23 spec section 2.4.4.4.6 * * @note This command SHALL be APS encrypted. */ START_KEY_UPDATE_RESPONSE = 32837, /** * Request: [transaction sequence number: 1] * [security decommission request EUI64 TLV:Variable] * Security Decommission request EUI64 TLV: * [Count N:1][EUI64 1:8]...[EUI64 N:8] */ DECOMMISSION_REQUEST = 70, /** * * Response: [transaction sequence number: 1] [status:1] */ DECOMMISSION_RESPONSE = 32838, /** * Request: [transaction sequence number: 1] * [TLVs: varies] * * Contains at least the APS Frame Counter Challenge TLV, which holds the * sender EUI and the 64 bit challenge value. */ CHALLENGE_REQUEST = 71, /** * Response: [transaction sequence number: 1] * [TLVs: varies] * * Contains at least the APS Frame Counter Response TLV, which holds the * sender EUI, received challenge value, APS frame counter, challenge * security frame counter, and 8-byte MIC. */ CHALLENGE_RESPONSE = 32839 } //# sourceMappingURL=clusters.d.ts.map