zigbee-herdsman 4.1.1 → 4.2.0

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 (46) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +21 -0
  3. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts +5 -2
  4. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts.map +1 -1
  5. package/dist/adapter/deconz/adapter/deconzAdapter.js +374 -328
  6. package/dist/adapter/deconz/adapter/deconzAdapter.js.map +1 -1
  7. package/dist/adapter/deconz/driver/constants.d.ts +121 -63
  8. package/dist/adapter/deconz/driver/constants.d.ts.map +1 -1
  9. package/dist/adapter/deconz/driver/constants.js +122 -40
  10. package/dist/adapter/deconz/driver/constants.js.map +1 -1
  11. package/dist/adapter/deconz/driver/driver.d.ts +66 -38
  12. package/dist/adapter/deconz/driver/driver.d.ts.map +1 -1
  13. package/dist/adapter/deconz/driver/driver.js +982 -434
  14. package/dist/adapter/deconz/driver/driver.js.map +1 -1
  15. package/dist/adapter/deconz/driver/frameParser.d.ts.map +1 -1
  16. package/dist/adapter/deconz/driver/frameParser.js +333 -266
  17. package/dist/adapter/deconz/driver/frameParser.js.map +1 -1
  18. package/dist/adapter/ember/enums.d.ts +21 -370
  19. package/dist/adapter/ember/enums.d.ts.map +1 -1
  20. package/dist/adapter/ember/enums.js +20 -383
  21. package/dist/adapter/ember/enums.js.map +1 -1
  22. package/dist/adapter/ember/ezsp/consts.d.ts +1 -1
  23. package/dist/adapter/ember/ezsp/consts.js +1 -1
  24. package/dist/adapter/ember/ezsp/enums.d.ts +29 -3
  25. package/dist/adapter/ember/ezsp/enums.d.ts.map +1 -1
  26. package/dist/adapter/ember/ezsp/enums.js +29 -2
  27. package/dist/adapter/ember/ezsp/enums.js.map +1 -1
  28. package/dist/adapter/ember/ezsp/ezsp.d.ts +29 -4
  29. package/dist/adapter/ember/ezsp/ezsp.d.ts.map +1 -1
  30. package/dist/adapter/ember/ezsp/ezsp.js +66 -3
  31. package/dist/adapter/ember/ezsp/ezsp.js.map +1 -1
  32. package/dist/adapter/ember/uart/ash.js +1 -1
  33. package/dist/controller/model/device.d.ts.map +1 -1
  34. package/dist/controller/model/device.js +3 -2
  35. package/dist/controller/model/device.js.map +1 -1
  36. package/package.json +2 -2
  37. package/src/adapter/deconz/adapter/deconzAdapter.ts +444 -367
  38. package/src/adapter/deconz/driver/constants.ts +147 -82
  39. package/src/adapter/deconz/driver/driver.ts +1091 -501
  40. package/src/adapter/deconz/driver/frameParser.ts +351 -272
  41. package/src/adapter/ember/enums.ts +20 -397
  42. package/src/adapter/ember/ezsp/consts.ts +1 -1
  43. package/src/adapter/ember/ezsp/enums.ts +31 -4
  44. package/src/adapter/ember/ezsp/ezsp.ts +79 -3
  45. package/src/adapter/ember/uart/ash.ts +1 -1
  46. package/src/controller/model/device.ts +5 -2
@@ -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,159 @@ 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
+ ts: number;
170
+ timeout: number;
79
171
  }
80
172
 
81
173
  interface ReceivedDataResponse {
@@ -86,11 +178,11 @@ interface ReceivedDataResponse {
86
178
  payloadLength: number;
87
179
  deviceState: number;
88
180
  destAddrMode: number;
89
- destAddr16?: number;
181
+ destAddr16: number;
90
182
  destAddr64?: string;
91
183
  destEndpoint: number;
92
184
  srcAddrMode: number;
93
- srcAddr16?: number;
185
+ srcAddr16: number;
94
186
  srcAddr64?: string;
95
187
  srcEndpoint: number;
96
188
  profileId: number;
@@ -143,38 +235,11 @@ interface ApsDataRequest {
143
235
  asduPayload: Buffer;
144
236
  txOptions: number;
145
237
  radius: number;
146
- timeout?: number; // seconds
238
+ timeout: number; // seconds
147
239
  }
148
240
 
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
- };
241
+ type Command = Buffer | number | bigint;
242
+
243
+ export type {ApsRequest, Request, WaitForDataRequest, ApsDataRequest, ReceivedDataResponse, DataStateResponse, Command, GpDataInd};
179
244
 
180
245
  export default {PARAM};