zigbee-clusters 2.10.0 → 3.0.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.
package/README.md CHANGED
@@ -15,6 +15,16 @@ Make sure to take a look at the API documentation: [https://athombv.github.io/no
15
15
 
16
16
  ## Breaking changes
17
17
 
18
+ v3.0.0
19
+
20
+ - **iasZone**: Unified `zoneType` enum keys between attribute and `zoneEnrollRequest` command to match ZCL spec (Table 8-5). See [#176](https://github.com/athombv/node-zigbee-clusters/pull/176) for full impact analysis.
21
+ - `cabonMonoxideSensor` -> `carbonMonoxideSensor` (typo fix)
22
+ - `keyfob` -> `keyFob` (spec says "Key fob" - two words)
23
+ - `standard` -> `standardCIE` (in `zoneEnrollRequest`)
24
+ - `invalid` -> `invalidZoneType` (in `zoneEnrollRequest`)
25
+ - `keyPad` -> `keypad` (in `zoneEnrollRequest`, spec says "Keypad" - one word)
26
+ - Added missing `doorWindowHandle` (0x0016) zone type from spec
27
+
18
28
  v2.0.0
19
29
 
20
30
  - Changed `Cluster.readAttributes` signature, attributes must now be specified as an array of strings.
package/index.d.ts CHANGED
@@ -467,7 +467,7 @@ export interface IASWDCluster extends ZCLNodeCluster {
467
467
 
468
468
  export interface IASZoneClusterAttributes {
469
469
  zoneState?: 'notEnrolled' | 'enrolled';
470
- zoneType?: 'standardCIE' | 'motionSensor' | 'contactSwitch' | 'fireSensor' | 'waterSensor' | 'cabonMonoxideSensor' | 'personalEmergencyDevice' | 'vibrationMovementSensor' | 'remoteControl' | 'keyfob' | 'keypad' | 'standardWarningDevice' | 'glassBreakSensor' | 'securityRepeater' | 'invalidZoneType';
470
+ zoneType?: 'standardCIE' | 'motionSensor' | 'contactSwitch' | 'doorWindowHandle' | 'fireSensor' | 'waterSensor' | 'carbonMonoxideSensor' | 'personalEmergencyDevice' | 'vibrationMovementSensor' | 'remoteControl' | 'keyFob' | 'keypad' | 'standardWarningDevice' | 'glassBreakSensor' | 'securityRepeater' | 'invalidZoneType';
471
471
  zoneStatus?: Partial<{ alarm1: boolean; alarm2: boolean; tamper: boolean; battery: boolean; supervisionReports: boolean; restoreReports: boolean; trouble: boolean; acMains: boolean; test: boolean; batteryDefect: boolean }>;
472
472
  iasCIEAddress?: string;
473
473
  zoneId?: number;
@@ -481,7 +481,7 @@ export interface IASZoneCluster extends ZCLNodeCluster {
481
481
  once<K extends keyof IASZoneClusterAttributes & string>(eventName: `attr.${K}`, listener: (value: IASZoneClusterAttributes[K]) => void): this;
482
482
  zoneStatusChangeNotification(args: { zoneStatus: Partial<{ alarm1: boolean; alarm2: boolean; tamper: boolean; battery: boolean; supervisionReports: boolean; restoreReports: boolean; trouble: boolean; acMains: boolean; test: boolean; batteryDefect: boolean }>; extendedStatus: number; zoneId: number; delay: number }, opts?: ClusterCommandOptions): Promise<void>;
483
483
  zoneEnrollResponse(args: { enrollResponseCode: 'success' | 'notSupported' | 'noEnrollPermit' | 'tooManyZones'; zoneId: number }, opts?: ClusterCommandOptions): Promise<void>;
484
- zoneEnrollRequest(args: { zoneType: 'standard' | 'motionSensor' | 'contactSwitch' | 'fireSensor' | 'waterSensor' | 'carbonMonoxideSensor' | 'personalEmergencyDevice' | 'vibrationMovementSensor' | 'remoteControl' | 'keyFob' | 'keyPad' | 'standardWarningDevice' | 'glassBreakSensor' | 'securityRepeater' | 'invalid'; manufacturerCode: number }, opts?: ClusterCommandOptions): Promise<void>;
484
+ zoneEnrollRequest(args: { zoneType: 'standardCIE' | 'motionSensor' | 'contactSwitch' | 'doorWindowHandle' | 'fireSensor' | 'waterSensor' | 'carbonMonoxideSensor' | 'personalEmergencyDevice' | 'vibrationMovementSensor' | 'remoteControl' | 'keyFob' | 'keypad' | 'standardWarningDevice' | 'glassBreakSensor' | 'securityRepeater' | 'invalidZoneType'; manufacturerCode: number }, opts?: ClusterCommandOptions): Promise<void>;
485
485
  initiateNormalOperationMode(opts?: ClusterCommandOptions): Promise<void>;
486
486
  }
487
487
 
@@ -5,6 +5,25 @@ const { ZCLDataTypes } = require('../zclTypes');
5
5
 
6
6
  const ZONE_STATUS_DATA_TYPE = ZCLDataTypes.map16('alarm1', 'alarm2', 'tamper', 'battery', 'supervisionReports', 'restoreReports', 'trouble', 'acMains', 'test', 'batteryDefect');
7
7
 
8
+ const ZONE_TYPE_VALUES = {
9
+ standardCIE: 0x0000,
10
+ motionSensor: 0x000d,
11
+ contactSwitch: 0x0015,
12
+ doorWindowHandle: 0x0016,
13
+ fireSensor: 0x0028,
14
+ waterSensor: 0x002a,
15
+ carbonMonoxideSensor: 0x002b,
16
+ personalEmergencyDevice: 0x002c,
17
+ vibrationMovementSensor: 0x002d,
18
+ remoteControl: 0x010f,
19
+ keyFob: 0x0115,
20
+ keypad: 0x021d,
21
+ standardWarningDevice: 0x0225,
22
+ glassBreakSensor: 0x0226,
23
+ securityRepeater: 0x0229,
24
+ invalidZoneType: 0xffff,
25
+ };
26
+
8
27
  const ATTRIBUTES = {
9
28
  zoneState: {
10
29
  id: 0,
@@ -15,23 +34,7 @@ const ATTRIBUTES = {
15
34
  },
16
35
  zoneType: {
17
36
  id: 1,
18
- type: ZCLDataTypes.enum16({
19
- standardCIE: 0,
20
- motionSensor: 13,
21
- contactSwitch: 21,
22
- fireSensor: 40,
23
- waterSensor: 42,
24
- cabonMonoxideSensor: 43,
25
- personalEmergencyDevice: 44,
26
- vibrationMovementSensor: 45,
27
- remoteControl: 271,
28
- keyfob: 277,
29
- keypad: 541,
30
- standardWarningDevice: 549,
31
- glassBreakSensor: 550,
32
- securityRepeater: 553,
33
- invalidZoneType: 65535,
34
- }),
37
+ type: ZCLDataTypes.enum16(ZONE_TYPE_VALUES),
35
38
  },
36
39
  zoneStatus: {
37
40
  id: 2,
@@ -78,23 +81,7 @@ const COMMANDS = {
78
81
  // Add direction property as "initiateNormalOperationMode" has same command id.
79
82
  direction: Cluster.DIRECTION_SERVER_TO_CLIENT,
80
83
  args: {
81
- zoneType: ZCLDataTypes.enum16({
82
- standard: 0x0000,
83
- motionSensor: 0x000d,
84
- contactSwitch: 0x0015,
85
- fireSensor: 0x0028,
86
- waterSensor: 0x002a,
87
- carbonMonoxideSensor: 0x002b,
88
- personalEmergencyDevice: 0x002c,
89
- vibrationMovementSensor: 0x002d,
90
- remoteControl: 0x010f,
91
- keyFob: 0x0115,
92
- keyPad: 0x021d,
93
- standardWarningDevice: 0x0225,
94
- glassBreakSensor: 0x0226,
95
- securityRepeater: 0x0229,
96
- invalid: 0xffff,
97
- }),
84
+ zoneType: ZCLDataTypes.enum16(ZONE_TYPE_VALUES),
98
85
  manufacturerCode: ZCLDataTypes.uint16,
99
86
  },
100
87
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zigbee-clusters",
3
- "version": "2.10.0",
3
+ "version": "3.0.0",
4
4
  "description": "Zigbee Cluster Library for Node.js",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -32,7 +32,7 @@
32
32
  },
33
33
  "homepage": "https://github.com/athombv/node-zigbee-clusters#readme",
34
34
  "devDependencies": {
35
- "@athombv/jsdoc-template": "^1.6.1",
35
+ "@athombv/jsdoc-template": "^1.6.3",
36
36
  "@types/node": "^25.0.10",
37
37
  "@types/sinon": "^17.0.3",
38
38
  "concurrently": "^5.2.0",