zigbee-herdsman 4.1.2 → 4.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +22 -0
  3. package/biome.json +14 -5
  4. package/dist/adapter/adapterDiscovery.d.ts +1 -1
  5. package/dist/adapter/adapterDiscovery.d.ts.map +1 -1
  6. package/dist/adapter/adapterDiscovery.js.map +1 -1
  7. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts +5 -2
  8. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts.map +1 -1
  9. package/dist/adapter/deconz/adapter/deconzAdapter.js +394 -330
  10. package/dist/adapter/deconz/adapter/deconzAdapter.js.map +1 -1
  11. package/dist/adapter/deconz/driver/constants.d.ts +122 -63
  12. package/dist/adapter/deconz/driver/constants.d.ts.map +1 -1
  13. package/dist/adapter/deconz/driver/constants.js +122 -40
  14. package/dist/adapter/deconz/driver/constants.js.map +1 -1
  15. package/dist/adapter/deconz/driver/driver.d.ts +66 -38
  16. package/dist/adapter/deconz/driver/driver.d.ts.map +1 -1
  17. package/dist/adapter/deconz/driver/driver.js +983 -435
  18. package/dist/adapter/deconz/driver/driver.js.map +1 -1
  19. package/dist/adapter/deconz/driver/frameParser.d.ts.map +1 -1
  20. package/dist/adapter/deconz/driver/frameParser.js +333 -266
  21. package/dist/adapter/deconz/driver/frameParser.js.map +1 -1
  22. package/dist/adapter/ember/adapter/emberAdapter.d.ts +1 -1
  23. package/dist/adapter/ember/adapter/emberAdapter.d.ts.map +1 -1
  24. package/dist/adapter/ember/adapter/emberAdapter.js +1 -1
  25. package/dist/adapter/ember/adapter/emberAdapter.js.map +1 -1
  26. package/dist/adapter/ember/adapter/tokensManager.d.ts.map +1 -1
  27. package/dist/adapter/ember/enums.d.ts +21 -370
  28. package/dist/adapter/ember/enums.d.ts.map +1 -1
  29. package/dist/adapter/ember/enums.js +20 -383
  30. package/dist/adapter/ember/enums.js.map +1 -1
  31. package/dist/adapter/ember/ezsp/buffalo.d.ts +1 -1
  32. package/dist/adapter/ember/ezsp/buffalo.d.ts.map +1 -1
  33. package/dist/adapter/ember/ezsp/consts.d.ts +1 -1
  34. package/dist/adapter/ember/ezsp/consts.js +1 -1
  35. package/dist/adapter/ember/ezsp/enums.d.ts +29 -3
  36. package/dist/adapter/ember/ezsp/enums.d.ts.map +1 -1
  37. package/dist/adapter/ember/ezsp/enums.js +29 -2
  38. package/dist/adapter/ember/ezsp/enums.js.map +1 -1
  39. package/dist/adapter/ember/ezsp/ezsp.d.ts +31 -6
  40. package/dist/adapter/ember/ezsp/ezsp.d.ts.map +1 -1
  41. package/dist/adapter/ember/ezsp/ezsp.js +66 -3
  42. package/dist/adapter/ember/ezsp/ezsp.js.map +1 -1
  43. package/dist/adapter/ember/uart/ash.js +1 -1
  44. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts.map +1 -1
  45. package/dist/adapter/ezsp/adapter/ezspAdapter.js +2 -2
  46. package/dist/adapter/ezsp/adapter/ezspAdapter.js.map +1 -1
  47. package/dist/adapter/ezsp/driver/driver.d.ts +1 -1
  48. package/dist/adapter/ezsp/driver/driver.d.ts.map +1 -1
  49. package/dist/adapter/ezsp/driver/driver.js +5 -5
  50. package/dist/adapter/ezsp/driver/driver.js.map +1 -1
  51. package/dist/adapter/ezsp/driver/types/index.d.ts +3 -3
  52. package/dist/adapter/ezsp/driver/types/index.d.ts.map +1 -1
  53. package/dist/adapter/ezsp/driver/types/index.js +6 -6
  54. package/dist/adapter/ezsp/driver/types/index.js.map +1 -1
  55. package/dist/adapter/ezsp/driver/types/named.js +1 -1
  56. package/dist/adapter/ezsp/driver/types/named.js.map +1 -1
  57. package/dist/adapter/serialPort.d.ts.map +1 -1
  58. package/dist/adapter/z-stack/adapter/manager.d.ts.map +1 -1
  59. package/dist/adapter/z-stack/adapter/manager.js +1 -1
  60. package/dist/adapter/z-stack/adapter/manager.js.map +1 -1
  61. package/dist/adapter/z-stack/adapter/zStackAdapter.js +2 -2
  62. package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +1 -1
  63. package/dist/adapter/z-stack/structs/entries/index.d.ts +7 -7
  64. package/dist/adapter/z-stack/structs/entries/index.d.ts.map +1 -1
  65. package/dist/adapter/z-stack/structs/entries/index.js +7 -7
  66. package/dist/adapter/z-stack/structs/entries/index.js.map +1 -1
  67. package/dist/adapter/z-stack/structs/index.d.ts +2 -2
  68. package/dist/adapter/z-stack/structs/index.d.ts.map +1 -1
  69. package/dist/adapter/z-stack/structs/index.js +2 -2
  70. package/dist/adapter/z-stack/structs/index.js.map +1 -1
  71. package/dist/adapter/zboss/adapter/zbossAdapter.d.ts +1 -1
  72. package/dist/adapter/zboss/adapter/zbossAdapter.d.ts.map +1 -1
  73. package/dist/adapter/zboss/adapter/zbossAdapter.js +1 -1
  74. package/dist/adapter/zboss/adapter/zbossAdapter.js.map +1 -1
  75. package/dist/adapter/zboss/driver.d.ts +1 -1
  76. package/dist/adapter/zboss/driver.d.ts.map +1 -1
  77. package/dist/adapter/zboss/driver.js.map +1 -1
  78. package/dist/adapter/zboss/uart.d.ts.map +1 -1
  79. package/dist/adapter/zigate/driver/messageType.js +1 -1
  80. package/dist/adapter/zigate/driver/messageType.js.map +1 -1
  81. package/dist/adapter/zoh/adapter/zohAdapter.js +1 -1
  82. package/dist/adapter/zoh/adapter/zohAdapter.js.map +1 -1
  83. package/dist/buffalo/buffalo.d.ts.map +1 -1
  84. package/dist/buffalo/buffalo.js.map +1 -1
  85. package/dist/controller/controller.d.ts.map +1 -1
  86. package/dist/controller/controller.js +2 -2
  87. package/dist/controller/controller.js.map +1 -1
  88. package/dist/controller/helpers/request.js +2 -2
  89. package/dist/controller/helpers/request.js.map +1 -1
  90. package/dist/controller/model/device.js +1 -1
  91. package/dist/controller/model/device.js.map +1 -1
  92. package/dist/index.d.ts +5 -5
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js +4 -4
  95. package/dist/index.js.map +1 -1
  96. package/dist/utils/backup.d.ts +1 -1
  97. package/dist/utils/backup.d.ts.map +1 -1
  98. package/dist/utils/backup.js +1 -1
  99. package/dist/utils/backup.js.map +1 -1
  100. package/dist/utils/utils.d.ts.map +1 -1
  101. package/dist/utils/utils.js +0 -1
  102. package/dist/utils/utils.js.map +1 -1
  103. package/dist/zspec/utils.d.ts.map +1 -1
  104. package/dist/zspec/utils.js.map +1 -1
  105. package/dist/zspec/zcl/index.d.ts +3 -3
  106. package/dist/zspec/zcl/index.d.ts.map +1 -1
  107. package/dist/zspec/zcl/index.js +6 -6
  108. package/dist/zspec/zcl/index.js.map +1 -1
  109. package/dist/zspec/zcl/utils.d.ts.map +1 -1
  110. package/dist/zspec/zcl/utils.js +0 -1
  111. package/dist/zspec/zcl/utils.js.map +1 -1
  112. package/dist/zspec/zdo/buffaloZdo.d.ts.map +1 -1
  113. package/dist/zspec/zdo/index.d.ts +3 -3
  114. package/dist/zspec/zdo/index.d.ts.map +1 -1
  115. package/dist/zspec/zdo/index.js +6 -6
  116. package/dist/zspec/zdo/index.js.map +1 -1
  117. package/package.json +4 -4
  118. package/src/adapter/adapterDiscovery.ts +1 -4
  119. package/src/adapter/deconz/adapter/deconzAdapter.ts +474 -369
  120. package/src/adapter/deconz/driver/constants.ts +148 -82
  121. package/src/adapter/deconz/driver/driver.ts +1092 -503
  122. package/src/adapter/deconz/driver/frameParser.ts +351 -272
  123. package/src/adapter/ember/adapter/emberAdapter.ts +2 -3
  124. package/src/adapter/ember/adapter/tokensManager.ts +1 -1
  125. package/src/adapter/ember/enums.ts +20 -397
  126. package/src/adapter/ember/ezsp/buffalo.ts +3 -3
  127. package/src/adapter/ember/ezsp/consts.ts +1 -1
  128. package/src/adapter/ember/ezsp/enums.ts +31 -4
  129. package/src/adapter/ember/ezsp/ezsp.ts +84 -8
  130. package/src/adapter/ember/uart/ash.ts +1 -1
  131. package/src/adapter/ezsp/adapter/ezspAdapter.ts +2 -2
  132. package/src/adapter/ezsp/driver/commands.ts +5 -5
  133. package/src/adapter/ezsp/driver/driver.ts +6 -6
  134. package/src/adapter/ezsp/driver/ezsp.ts +3 -3
  135. package/src/adapter/ezsp/driver/types/index.ts +3 -3
  136. package/src/adapter/ezsp/driver/types/named.ts +1 -1
  137. package/src/adapter/serialPort.ts +1 -1
  138. package/src/adapter/z-stack/adapter/manager.ts +2 -3
  139. package/src/adapter/z-stack/adapter/zStackAdapter.ts +2 -2
  140. package/src/adapter/z-stack/structs/entries/index.ts +7 -7
  141. package/src/adapter/z-stack/structs/index.ts +2 -2
  142. package/src/adapter/zboss/adapter/zbossAdapter.ts +1 -2
  143. package/src/adapter/zboss/driver.ts +2 -3
  144. package/src/adapter/zboss/uart.ts +1 -1
  145. package/src/adapter/zigate/adapter/zigateAdapter.ts +1 -1
  146. package/src/adapter/zigate/driver/messageType.ts +1 -1
  147. package/src/adapter/zigate/driver/zigate.ts +1 -1
  148. package/src/adapter/zoh/adapter/zohAdapter.ts +1 -1
  149. package/src/buffalo/buffalo.ts +1 -2
  150. package/src/controller/controller.ts +2 -2
  151. package/src/controller/helpers/request.ts +2 -2
  152. package/src/controller/model/device.ts +1 -1
  153. package/src/index.ts +5 -5
  154. package/src/utils/backup.ts +1 -1
  155. package/src/utils/utils.ts +0 -1
  156. package/src/zspec/utils.ts +1 -3
  157. package/src/zspec/zcl/index.ts +3 -3
  158. package/src/zspec/zcl/utils.ts +0 -1
  159. package/src/zspec/zdo/buffaloZdo.ts +2 -2
  160. package/src/zspec/zdo/index.ts +3 -3
  161. package/test/adapter/adapter.test.ts +1 -2
  162. package/test/adapter/ember/ash.test.ts +1 -1
  163. package/test/adapter/ember/emberAdapter.test.ts +1 -1
  164. package/test/adapter/ember/ezsp.test.ts +2 -3
  165. package/test/adapter/ezsp/uart.test.ts +3 -3
  166. package/test/adapter/z-stack/znp.test.ts +6 -6
  167. package/test/adapter/zboss/fixZdoResponse.test.ts +1 -1
  168. package/test/adapter/zoh/zohAdapter.test.ts +2 -2
  169. package/test/controller.test.ts +8 -8
  170. package/test/greenpower.test.ts +1 -2
  171. package/test/tsconfig.json +1 -1
  172. package/test/utils.test.ts +1 -1
  173. package/test/zspec/zdo/buffalo.test.ts +1 -1
@@ -3,50 +3,11 @@
3
3
  import type {GenericZdoResponse} from "../../../zspec/zdo/definition/tstypes";
4
4
 
5
5
  const PARAM = {
6
- Network: {
7
- NET_OFFLINE: 0x00,
8
- NET_JOINING: 0x01,
9
- NET_CONNECTED: 0x02,
10
- NET_LEAVING: 0x03,
11
- MAC: 0x01,
12
- PAN_ID: 0x05,
13
- NWK_ADDRESS: 0x07,
14
- EXT_PAN_ID: 0x08,
15
- CHANNEL_MASK: 0x0a,
16
- APS_EXT_PAN_ID: 0x0b,
17
- NETWORK_KEY: 0x18,
18
- LINK_KEY: 0x19,
19
- CHANNEL: 0x1c,
20
- PERMIT_JOIN: 0x21,
21
- WATCHDOG_TTL: 0x26,
22
- },
23
6
  STK: {
24
7
  Endpoint: 0x13,
25
8
  },
26
- FrameType: {
27
- ReadDeviceState: 0x07,
28
- ReadParameter: 0x0a,
29
- WriteParameter: 0x0b,
30
- ReadFirmwareVersion: 0x0d,
31
- DeviceStateChanged: 0x0e,
32
- GreenPowerDataInd: 0x19,
33
- },
34
9
  APS: {
35
- DATA_CONFIRM: 0x04,
36
- DATA_REQUEST: 0x12,
37
- DATA_INDICATION: 0x17,
38
- },
39
- NetworkState: {
40
- NET_OFFLINE: 0x00,
41
- NET_JOINING: 0x01,
42
- NET_CONNECTED: 0x02,
43
- NET_LEAVING: 0x03,
44
- CHANGE_NETWORK_STATE: 0x08,
45
- },
46
- addressMode: {
47
- GROUP_ADDR: 0x01,
48
- NWK_ADDR: 0x02,
49
- IEEE_ADDR: 0x03,
10
+ MAX_SEND_TIMEOUT: 60000,
50
11
  },
51
12
  txRadius: {
52
13
  DEFAULT_RADIUS: 30,
@@ -54,28 +15,160 @@ const PARAM = {
54
15
  },
55
16
  };
56
17
 
18
+ export enum ApsAddressMode {
19
+ Group = 0x01,
20
+ Nwk = 0x02,
21
+ Ieee = 0x03,
22
+ NwkAndIeee = 0x04,
23
+ }
24
+
25
+ export enum ApsStatusCode {
26
+ Success = 0x00,
27
+ ApsNoAck = 0xa7,
28
+ NwkRouteDiscoveryFailed = 0xd0,
29
+ NwkRouteError = 0xd1,
30
+ NwkBroadcastTableFull = 0xd2,
31
+ MacNoChannelAccess = 0xe1,
32
+ MacInvalidParameterStatus = 0xe8,
33
+ MacNoAck = 0xe9,
34
+ MacNoBeacon = 0xea,
35
+ MacTransactionExpired = 0xf0,
36
+ }
37
+
38
+ export enum NwkBroadcastAddress {
39
+ BroadcastAll = 0xffff,
40
+ BroadcastLowPowerRouters = 0xfffb,
41
+ BroadcastRouters = 0xfffc,
42
+ BroadcastRxOnWhenIdle = 0xfffd,
43
+ }
44
+
45
+ export enum FirmwareCommand {
46
+ Status = 0x07,
47
+ StatusChangeIndication = 0x0e,
48
+ FirmwareVersion = 0x0d,
49
+ ReadParameter = 0x0a,
50
+ WriteParameter = 0x0b,
51
+ ChangeNetworkState = 0x08,
52
+ Feature = 0x11,
53
+ ApsDataRequest = 0x12,
54
+ ApsDataConfirm = 0x04,
55
+ ApsDataIndication = 0x17,
56
+ ZgpDataIndication = 0x19,
57
+ MacPollIndication = 0x1c,
58
+ Reboot = 0x1e,
59
+ Beacon = 0x1f,
60
+ DebugLog = 0x22,
61
+ }
62
+
63
+ export enum NetworkState {
64
+ Disconnected = 0,
65
+ Connecting = 1,
66
+ Connected = 2,
67
+ Disconnecting = 3,
68
+
69
+ // only internal
70
+ Ignore = 254,
71
+ Unknown = 255,
72
+ }
73
+
74
+ export enum CommandStatus {
75
+ Success = 0x00,
76
+ Failure = 0x01,
77
+ Busy = 0x02,
78
+ Timeout = 0x03,
79
+ Unsupported = 0x04,
80
+ Error = 0x05,
81
+ NoNetwork = 0x06,
82
+ InvalidValue = 0x07,
83
+ }
84
+
85
+ export enum ParamId {
86
+ MAC_ADDRESS = 0x01,
87
+ NWK_PANID = 0x05,
88
+ NWK_NETWORK_ADDRESS = 0x07,
89
+ NWK_EXTENDED_PANID = 0x08,
90
+ APS_DESIGNED_COORDINATOR = 0x09,
91
+ APS_CHANNEL_MASK = 0x0a,
92
+ APS_USE_EXTENDED_PANID = 0x0b,
93
+ APS_TRUST_CENTER_ADDRESS = 0x0e,
94
+ STK_ENDPOINT = 0x13,
95
+ STK_PREDEFINED_PANID = 0x15,
96
+ STK_STATIC_NETWORK_ADDRESS = 0x16,
97
+ STK_NETWORK_KEY = 0x18,
98
+ STK_LINK_KEY = 0x19,
99
+ STK_CURRENT_CHANNEL = 0x1c,
100
+ STK_PERMIT_JOIN = 0x21,
101
+ STK_PROTOCOL_VERSION = 0x22,
102
+ STK_NWK_UPDATE_ID = 0x24,
103
+ DEV_WATCHDOG_TTL = 0x26,
104
+ STK_FRAME_COUNTER = 0x27,
105
+ STK_DEBUG_LOG_LEVEL = 0x29,
106
+ // internal
107
+ NONE = 0xff,
108
+ }
109
+
110
+ export enum DataType {
111
+ Custom = 0,
112
+ U8 = 1,
113
+ U16 = 2,
114
+ U32 = 3,
115
+ U64 = 4,
116
+ SecKey = 5,
117
+ }
118
+
119
+ export const stackParameters = [
120
+ {id: ParamId.MAC_ADDRESS, type: DataType.U64},
121
+ {id: ParamId.NWK_PANID, type: DataType.U16},
122
+ {id: ParamId.STK_PROTOCOL_VERSION, type: DataType.U16},
123
+ {id: ParamId.NWK_NETWORK_ADDRESS, type: DataType.U16},
124
+ {id: ParamId.STK_NWK_UPDATE_ID, type: DataType.U8},
125
+ {id: ParamId.STK_CURRENT_CHANNEL, type: DataType.U8},
126
+ {id: ParamId.STK_STATIC_NETWORK_ADDRESS, type: DataType.U8},
127
+ {id: ParamId.STK_PREDEFINED_PANID, type: DataType.U8},
128
+ {id: ParamId.STK_NETWORK_KEY, type: [DataType.U8, DataType.SecKey], readArg: 1}, // index, key
129
+ {id: ParamId.STK_LINK_KEY, type: [DataType.U64, DataType.SecKey], readArg: 1}, // mac addess, key
130
+ {id: ParamId.DEV_WATCHDOG_TTL, type: DataType.U32},
131
+ {id: ParamId.STK_PERMIT_JOIN, type: DataType.U8},
132
+ {id: ParamId.NWK_EXTENDED_PANID, type: DataType.U64},
133
+ {id: ParamId.APS_CHANNEL_MASK, type: DataType.U32},
134
+ {id: ParamId.STK_FRAME_COUNTER, type: DataType.U32},
135
+ {id: ParamId.STK_DEBUG_LOG_LEVEL, type: DataType.U32},
136
+ {id: ParamId.APS_USE_EXTENDED_PANID, type: DataType.U64},
137
+ {id: ParamId.APS_TRUST_CENTER_ADDRESS, type: DataType.U64},
138
+ ];
139
+
57
140
  interface Request {
58
- commandId: number;
59
- networkState?: number;
60
- parameterId?: number;
61
- parameter?: ParameterT;
62
- request?: ApsDataRequest;
141
+ commandId: FirmwareCommand;
142
+ networkState: NetworkState;
143
+ parameterId: ParamId;
144
+ parameter?: Buffer | number | bigint;
145
+ seqNumber: number;
146
+ // biome-ignore lint/suspicious/noExplicitAny: API
147
+ resolve: (value: any) => void;
148
+ reject: (value: Error) => void;
149
+ ts: number; // time sent
150
+ }
151
+
152
+ interface ApsRequest {
153
+ commandId: FirmwareCommand;
154
+ request: ApsDataRequest;
63
155
  seqNumber: number;
64
156
  // biome-ignore lint/suspicious/noExplicitAny: API
65
157
  resolve: (value: any) => void;
66
158
  reject: (value: Error) => void;
67
- ts?: number;
159
+ ts: number; // time sent
68
160
  }
69
161
 
70
162
  interface WaitForDataRequest {
71
163
  addr: number | string;
72
164
  profileId: number;
73
165
  clusterId: number;
74
- transactionSequenceNumber?: number;
166
+ transactionSequenceNumber: number;
75
167
  resolve: (value: ReceivedDataResponse | PromiseLike<ReceivedDataResponse>) => void;
76
168
  reject: (value: Error) => void;
77
- ts?: number;
78
- timeout?: number;
169
+ confirmed: boolean;
170
+ ts: number;
171
+ timeout: number;
79
172
  }
80
173
 
81
174
  interface ReceivedDataResponse {
@@ -86,11 +179,11 @@ interface ReceivedDataResponse {
86
179
  payloadLength: number;
87
180
  deviceState: number;
88
181
  destAddrMode: number;
89
- destAddr16?: number;
182
+ destAddr16: number;
90
183
  destAddr64?: string;
91
184
  destEndpoint: number;
92
185
  srcAddrMode: number;
93
- srcAddr16?: number;
186
+ srcAddr16: number;
94
187
  srcAddr64?: string;
95
188
  srcEndpoint: number;
96
189
  profileId: number;
@@ -143,38 +236,11 @@ interface ApsDataRequest {
143
236
  asduPayload: Buffer;
144
237
  txOptions: number;
145
238
  radius: number;
146
- timeout?: number; // seconds
239
+ timeout: number; // seconds
147
240
  }
148
241
 
149
- type ParamMac = string;
150
- type ParamPanId = number;
151
- type ParamExtPanId = string;
152
- type ParamNwkAddr = number;
153
- type ParamChannel = number;
154
- type ParamChannelMask = number;
155
- type ParamPermitJoin = number;
156
- type ParamNetworkKey = string;
157
-
158
- type Command = ParamMac | ParamPanId | ParamNwkAddr | ParamExtPanId | ParamChannel | ParamChannelMask | ParamPermitJoin | ParamNetworkKey;
159
- type ParameterT = number | number[];
160
-
161
- export type {
162
- Request,
163
- WaitForDataRequest,
164
- ApsDataRequest,
165
- ReceivedDataResponse,
166
- DataStateResponse,
167
- ParameterT,
168
- Command,
169
- ParamMac,
170
- ParamPanId,
171
- ParamNwkAddr,
172
- ParamExtPanId,
173
- ParamChannel,
174
- ParamChannelMask,
175
- ParamPermitJoin,
176
- ParamNetworkKey,
177
- GpDataInd,
178
- };
242
+ type Command = Buffer | number | bigint;
243
+
244
+ export type {ApsRequest, Request, WaitForDataRequest, ApsDataRequest, ReceivedDataResponse, DataStateResponse, Command, GpDataInd};
179
245
 
180
246
  export default {PARAM};