zigbee-herdsman 6.0.0 → 6.0.2

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 (96) hide show
  1. package/.github/workflows/ci.yml +10 -5
  2. package/.github/workflows/typedoc.yaml +2 -2
  3. package/.release-please-manifest.json +1 -1
  4. package/CHANGELOG.md +19 -0
  5. package/biome.json +1 -1
  6. package/dist/adapter/ezsp/driver/uart.js +1 -1
  7. package/dist/adapter/ezsp/driver/uart.js.map +1 -1
  8. package/dist/adapter/z-stack/adapter/zStackAdapter.js +4 -4
  9. package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +1 -1
  10. package/dist/adapter/zigate/adapter/zigateAdapter.js +4 -4
  11. package/dist/adapter/zigate/adapter/zigateAdapter.js.map +1 -1
  12. package/dist/controller/controller.d.ts.map +1 -1
  13. package/dist/controller/controller.js +7 -10
  14. package/dist/controller/controller.js.map +1 -1
  15. package/dist/controller/events.d.ts +1 -1
  16. package/dist/controller/events.d.ts.map +1 -1
  17. package/dist/controller/helpers/request.d.ts.map +1 -1
  18. package/dist/controller/helpers/request.js +2 -1
  19. package/dist/controller/helpers/request.js.map +1 -1
  20. package/dist/controller/helpers/zclFrameConverter.d.ts +2 -4
  21. package/dist/controller/helpers/zclFrameConverter.d.ts.map +1 -1
  22. package/dist/controller/helpers/zclFrameConverter.js +2 -0
  23. package/dist/controller/helpers/zclFrameConverter.js.map +1 -1
  24. package/dist/controller/model/device.d.ts +13 -24
  25. package/dist/controller/model/device.d.ts.map +1 -1
  26. package/dist/controller/model/device.js +89 -129
  27. package/dist/controller/model/device.js.map +1 -1
  28. package/dist/controller/model/endpoint.d.ts +17 -16
  29. package/dist/controller/model/endpoint.d.ts.map +1 -1
  30. package/dist/controller/model/endpoint.js +31 -16
  31. package/dist/controller/model/endpoint.js.map +1 -1
  32. package/dist/controller/model/group.d.ts +6 -6
  33. package/dist/controller/model/group.d.ts.map +1 -1
  34. package/dist/controller/model/group.js +5 -3
  35. package/dist/controller/model/group.js.map +1 -1
  36. package/dist/controller/model/index.d.ts +1 -0
  37. package/dist/controller/model/index.d.ts.map +1 -1
  38. package/dist/controller/model/index.js +3 -1
  39. package/dist/controller/model/index.js.map +1 -1
  40. package/dist/controller/model/zigbeeEntity.d.ts +8 -0
  41. package/dist/controller/model/zigbeeEntity.d.ts.map +1 -0
  42. package/dist/controller/model/zigbeeEntity.js +11 -0
  43. package/dist/controller/model/zigbeeEntity.js.map +1 -0
  44. package/dist/controller/tstype.d.ts +22 -0
  45. package/dist/controller/tstype.d.ts.map +1 -1
  46. package/dist/zspec/zcl/definition/cluster.d.ts.map +1 -1
  47. package/dist/zspec/zcl/definition/cluster.js +2 -9
  48. package/dist/zspec/zcl/definition/cluster.js.map +1 -1
  49. package/dist/zspec/zcl/definition/clusters-typegen.js +61 -13
  50. package/dist/zspec/zcl/definition/clusters-typegen.js.map +1 -1
  51. package/dist/zspec/zcl/definition/clusters-types.d.ts +173 -140
  52. package/dist/zspec/zcl/definition/clusters-types.d.ts.map +1 -1
  53. package/dist/zspec/zcl/definition/enums.d.ts +10 -0
  54. package/dist/zspec/zcl/definition/enums.d.ts.map +1 -1
  55. package/dist/zspec/zcl/definition/enums.js +12 -1
  56. package/dist/zspec/zcl/definition/enums.js.map +1 -1
  57. package/dist/zspec/zcl/definition/tstype.d.ts +1 -1
  58. package/dist/zspec/zcl/definition/tstype.d.ts.map +1 -1
  59. package/dist/zspec/zcl/index.d.ts +1 -0
  60. package/dist/zspec/zcl/index.d.ts.map +1 -1
  61. package/dist/zspec/zcl/index.js.map +1 -1
  62. package/dist/zspec/zcl/utils.d.ts +1 -1
  63. package/dist/zspec/zcl/utils.d.ts.map +1 -1
  64. package/dist/zspec/zcl/utils.js +1 -1
  65. package/dist/zspec/zcl/utils.js.map +1 -1
  66. package/package.json +3 -4
  67. package/src/adapter/ezsp/driver/driver.ts +1 -1
  68. package/src/adapter/ezsp/driver/uart.ts +1 -1
  69. package/src/adapter/z-stack/adapter/zStackAdapter.ts +4 -4
  70. package/src/adapter/zigate/adapter/zigateAdapter.ts +4 -4
  71. package/src/controller/controller.ts +11 -15
  72. package/src/controller/events.ts +1 -1
  73. package/src/controller/helpers/request.ts +3 -1
  74. package/src/controller/helpers/zclFrameConverter.ts +13 -17
  75. package/src/controller/model/device.ts +104 -148
  76. package/src/controller/model/endpoint.ts +112 -64
  77. package/src/controller/model/group.ts +33 -9
  78. package/src/controller/model/index.ts +1 -0
  79. package/src/controller/model/zigbeeEntity.ts +30 -0
  80. package/src/controller/tstype.ts +234 -0
  81. package/src/zspec/zcl/definition/cluster.ts +2 -9
  82. package/src/zspec/zcl/definition/clusters-typegen.ts +96 -19
  83. package/src/zspec/zcl/definition/clusters-types.ts +195 -146
  84. package/src/zspec/zcl/definition/enums.ts +11 -0
  85. package/src/zspec/zcl/definition/tstype.ts +0 -1
  86. package/src/zspec/zcl/index.ts +1 -0
  87. package/src/zspec/zcl/utils.ts +1 -1
  88. package/test/adapter/ezsp/uart.test.ts +2 -2
  89. package/test/adapter/z-stack/znp.test.ts +4 -4
  90. package/test/benchOptions.ts +14 -0
  91. package/test/controller.bench.ts +96 -75
  92. package/test/controller.test.ts +296 -98
  93. package/test/requests.bench.ts +37 -14
  94. package/test/vitest.config.mts +1 -2
  95. package/test/zcl.test.ts +1 -1
  96. package/test/zspec/zcl/utils.test.ts +4 -4
@@ -7,6 +7,7 @@ import {InterviewState} from "../src/controller/model/device";
7
7
  import {setLogger} from "../src/utils/logger";
8
8
  import * as Zcl from "../src/zspec/zcl";
9
9
  import * as Zdo from "../src/zspec/zdo";
10
+ import {BENCH_OPTIONS} from "./benchOptions";
10
11
  import {uint16To8Array} from "./utils/math";
11
12
 
12
13
  let sendZclFrameToEndpointResponse: ZclPayload | undefined;
@@ -107,14 +108,12 @@ const BASIC_RESP = Zcl.Frame.create(
107
108
  ).toBuffer();
108
109
 
109
110
  describe("Requests", () => {
110
- beforeEach(() => {
111
- sendZclFrameToEndpointResponse = undefined;
112
- sendZdoResponse = undefined;
113
- });
114
-
115
111
  bench(
116
112
  "device lqi",
117
113
  async () => {
114
+ sendZclFrameToEndpointResponse = undefined;
115
+ sendZdoResponse = undefined;
116
+
118
117
  sendZdoResponse = Zdo.Buffalo.readResponse(true, Zdo.ClusterId.LQI_TABLE_RESPONSE, LQI_TABLE_RESPONSE);
119
118
  const resp = await device.lqi();
120
119
 
@@ -122,20 +121,26 @@ describe("Requests", () => {
122
121
  throw new Error("Invalid response");
123
122
  }
124
123
  },
125
- {throws: true},
124
+ BENCH_OPTIONS,
126
125
  );
127
126
 
128
127
  bench(
129
128
  "device.endpoint write basic",
130
129
  async () => {
130
+ sendZclFrameToEndpointResponse = undefined;
131
+ sendZdoResponse = undefined;
132
+
131
133
  await endpoint.write("genBasic", {modelId: "Herd-02", manufacturerName: "HerdsmanNew"}, {sendPolicy: "immediate"});
132
134
  },
133
- {throws: true},
135
+ BENCH_OPTIONS,
134
136
  );
135
137
 
136
138
  bench(
137
139
  "device.endpoint read basic",
138
140
  async () => {
141
+ sendZclFrameToEndpointResponse = undefined;
142
+ sendZdoResponse = undefined;
143
+
139
144
  sendZclFrameToEndpointResponse = {
140
145
  clusterID: Zcl.Clusters.genBasic.ID,
141
146
  header: Zcl.Header.fromBuffer(BASIC_RESP),
@@ -153,54 +158,72 @@ describe("Requests", () => {
153
158
  throw new Error("Invalid response");
154
159
  }
155
160
  },
156
- {throws: true},
161
+ BENCH_OPTIONS,
157
162
  );
158
163
 
159
164
  bench(
160
165
  "device.endpoint defaultRsp",
161
166
  async () => {
167
+ sendZclFrameToEndpointResponse = undefined;
168
+ sendZdoResponse = undefined;
169
+
162
170
  await endpoint.defaultResponse(0, 0, 0, 1);
163
171
  },
164
- {throws: true},
172
+ BENCH_OPTIONS,
165
173
  );
166
174
 
167
175
  bench(
168
176
  "device.endpoint command",
169
177
  async () => {
178
+ sendZclFrameToEndpointResponse = undefined;
179
+ sendZdoResponse = undefined;
180
+
170
181
  await endpoint.command("genOnOff", "offWithEffect", {effectid: 1, effectvariant: 2}, {sendPolicy: "immediate"});
171
182
  },
172
- {throws: true},
183
+ BENCH_OPTIONS,
173
184
  );
174
185
 
175
186
  bench(
176
187
  "device.endpoint commandResponse",
177
188
  async () => {
189
+ sendZclFrameToEndpointResponse = undefined;
190
+ sendZdoResponse = undefined;
191
+
178
192
  await endpoint.commandResponse("genAlarms", "alarm", {alarmcode: 123, clusterid: 456}, {sendPolicy: "immediate"});
179
193
  },
180
- {throws: true},
194
+ BENCH_OPTIONS,
181
195
  );
182
196
 
183
197
  bench(
184
198
  "group write basic",
185
199
  async () => {
200
+ sendZclFrameToEndpointResponse = undefined;
201
+ sendZdoResponse = undefined;
202
+
186
203
  await group.write("genBasic", {modelId: "Herd-02", manufacturerName: "HerdsmanNew"});
187
204
  },
188
- {throws: true},
205
+ BENCH_OPTIONS,
189
206
  );
190
207
 
191
208
  bench(
192
209
  "group read basic",
193
210
  async () => {
211
+ sendZclFrameToEndpointResponse = undefined;
212
+ sendZdoResponse = undefined;
213
+
194
214
  await group.read("genBasic", ["modelId", "manufacturerName"]);
195
215
  },
196
- {throws: true},
216
+ BENCH_OPTIONS,
197
217
  );
198
218
 
199
219
  bench(
200
220
  "group command",
201
221
  async () => {
222
+ sendZclFrameToEndpointResponse = undefined;
223
+ sendZdoResponse = undefined;
224
+
202
225
  await group.command("genRssiLocation", "getDevCfg", {targetaddr: IEEE_ADDRESS1}, {});
203
226
  },
204
- {throws: true},
227
+ BENCH_OPTIONS,
205
228
  );
206
229
  });
@@ -1,8 +1,7 @@
1
- import codspeedPlugin from "@codspeed/vitest-plugin";
2
1
  import {defineConfig} from "vitest/config";
3
2
 
4
3
  export default defineConfig({
5
- plugins: [codspeedPlugin()],
4
+ plugins: [],
6
5
  test: {
7
6
  globals: true,
8
7
  onConsoleLog(_log: string, _type: "stdout" | "stderr"): boolean | undefined {
package/test/zcl.test.ts CHANGED
@@ -110,7 +110,7 @@ describe("Zcl", () => {
110
110
 
111
111
  it("ZclFrame from buffer parse payload with unknown frame type", () => {
112
112
  expect(() => {
113
- // @ts-ignore
113
+ // @ts-expect-error
114
114
  Zcl.Frame.parsePayload({frameControl: {frameType: 9}}, undefined);
115
115
  }).toThrow("Unsupported frameType '9'");
116
116
  });
@@ -51,13 +51,13 @@ describe("ZCL Utils", () => {
51
51
  ],
52
52
  [
53
53
  "by ID with non-matching manufacturer code",
54
- {key: Zcl.Clusters.sprutDevice.ID, manufacturerCode: 123, customClusters: {}},
55
- {cluster: Zcl.Clusters.sprutDevice, name: "sprutDevice"},
54
+ {key: Zcl.Clusters.manuSpecificSinope.ID, manufacturerCode: 123, customClusters: {}},
55
+ {cluster: Zcl.Clusters.manuSpecificSinope, name: "manuSpecificSinope"},
56
56
  ],
57
57
  [
58
58
  "by ID with matching manufacturer code",
59
- {key: Zcl.Clusters.sprutDevice.ID, manufacturerCode: Zcl.Clusters.sprutDevice.manufacturerCode!, customClusters: {}},
60
- {cluster: Zcl.Clusters.sprutDevice, name: "sprutDevice"},
59
+ {key: Zcl.Clusters.manuSpecificSinope.ID, manufacturerCode: Zcl.Clusters.manuSpecificSinope.manufacturerCode!, customClusters: {}},
60
+ {cluster: Zcl.Clusters.manuSpecificSinope, name: "manuSpecificSinope"},
61
61
  ],
62
62
  [
63
63
  "custom by ID",