@switchbot/homebridge-switchbot 5.0.0-beta.0 → 5.0.0-beta.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.
- package/dist/devices-matter/ColorLightAccessory.d.ts +3 -1
- package/dist/devices-matter/ColorLightAccessory.d.ts.map +1 -1
- package/dist/devices-matter/ColorLightAccessory.js +35 -36
- package/dist/devices-matter/ColorLightAccessory.js.map +1 -1
- package/dist/devices-matter/ColorTemperatureLightAccessory.d.ts +3 -1
- package/dist/devices-matter/ColorTemperatureLightAccessory.d.ts.map +1 -1
- package/dist/devices-matter/ColorTemperatureLightAccessory.js +32 -37
- package/dist/devices-matter/ColorTemperatureLightAccessory.js.map +1 -1
- package/dist/devices-matter/ContactSensorAccessory.d.ts +3 -1
- package/dist/devices-matter/ContactSensorAccessory.d.ts.map +1 -1
- package/dist/devices-matter/ContactSensorAccessory.js +16 -13
- package/dist/devices-matter/ContactSensorAccessory.js.map +1 -1
- package/dist/devices-matter/DimmableLightAccessory.d.ts +3 -1
- package/dist/devices-matter/DimmableLightAccessory.d.ts.map +1 -1
- package/dist/devices-matter/DimmableLightAccessory.js +24 -27
- package/dist/devices-matter/DimmableLightAccessory.js.map +1 -1
- package/dist/devices-matter/DoorLockAccessory.d.ts +3 -1
- package/dist/devices-matter/DoorLockAccessory.d.ts.map +1 -1
- package/dist/devices-matter/DoorLockAccessory.js +25 -22
- package/dist/devices-matter/DoorLockAccessory.js.map +1 -1
- package/dist/devices-matter/ExtendedColorLightAccessory.d.ts +3 -1
- package/dist/devices-matter/ExtendedColorLightAccessory.d.ts.map +1 -1
- package/dist/devices-matter/ExtendedColorLightAccessory.js +40 -41
- package/dist/devices-matter/ExtendedColorLightAccessory.js.map +1 -1
- package/dist/devices-matter/FanAccessory.d.ts +3 -1
- package/dist/devices-matter/FanAccessory.d.ts.map +1 -1
- package/dist/devices-matter/FanAccessory.js +31 -23
- package/dist/devices-matter/FanAccessory.js.map +1 -1
- package/dist/devices-matter/HumiditySensorAccessory.d.ts +3 -1
- package/dist/devices-matter/HumiditySensorAccessory.d.ts.map +1 -1
- package/dist/devices-matter/HumiditySensorAccessory.js +16 -15
- package/dist/devices-matter/HumiditySensorAccessory.js.map +1 -1
- package/dist/devices-matter/LeakSensorAccessory.d.ts +3 -1
- package/dist/devices-matter/LeakSensorAccessory.d.ts.map +1 -1
- package/dist/devices-matter/LeakSensorAccessory.js +16 -13
- package/dist/devices-matter/LeakSensorAccessory.js.map +1 -1
- package/dist/devices-matter/LightSensorAccessory.d.ts +3 -1
- package/dist/devices-matter/LightSensorAccessory.d.ts.map +1 -1
- package/dist/devices-matter/LightSensorAccessory.js +16 -15
- package/dist/devices-matter/LightSensorAccessory.js.map +1 -1
- package/dist/devices-matter/OccupancySensorAccessory.d.ts +3 -1
- package/dist/devices-matter/OccupancySensorAccessory.d.ts.map +1 -1
- package/dist/devices-matter/OccupancySensorAccessory.js +17 -21
- package/dist/devices-matter/OccupancySensorAccessory.js.map +1 -1
- package/dist/devices-matter/OnOffLightAccessory.d.ts +3 -1
- package/dist/devices-matter/OnOffLightAccessory.d.ts.map +1 -1
- package/dist/devices-matter/OnOffLightAccessory.js +22 -21
- package/dist/devices-matter/OnOffLightAccessory.js.map +1 -1
- package/dist/devices-matter/OnOffOutletAccessory.d.ts +3 -3
- package/dist/devices-matter/OnOffOutletAccessory.d.ts.map +1 -1
- package/dist/devices-matter/OnOffOutletAccessory.js +24 -27
- package/dist/devices-matter/OnOffOutletAccessory.js.map +1 -1
- package/dist/devices-matter/OnOffSwitchAccessory.d.ts +3 -1
- package/dist/devices-matter/OnOffSwitchAccessory.d.ts.map +1 -1
- package/dist/devices-matter/OnOffSwitchAccessory.js +18 -19
- package/dist/devices-matter/OnOffSwitchAccessory.js.map +1 -1
- package/dist/devices-matter/RoboticVacuumAccessory.d.ts +3 -1
- package/dist/devices-matter/RoboticVacuumAccessory.d.ts.map +1 -1
- package/dist/devices-matter/RoboticVacuumAccessory.js +77 -145
- package/dist/devices-matter/RoboticVacuumAccessory.js.map +1 -1
- package/dist/devices-matter/TemperatureSensorAccessory.d.ts +3 -1
- package/dist/devices-matter/TemperatureSensorAccessory.d.ts.map +1 -1
- package/dist/devices-matter/TemperatureSensorAccessory.js +18 -15
- package/dist/devices-matter/TemperatureSensorAccessory.js.map +1 -1
- package/dist/devices-matter/ThermostatAccessory.d.ts +3 -1
- package/dist/devices-matter/ThermostatAccessory.d.ts.map +1 -1
- package/dist/devices-matter/ThermostatAccessory.js +37 -29
- package/dist/devices-matter/ThermostatAccessory.js.map +1 -1
- package/dist/devices-matter/VenetianBlindAccessory.d.ts +3 -1
- package/dist/devices-matter/VenetianBlindAccessory.d.ts.map +1 -1
- package/dist/devices-matter/VenetianBlindAccessory.js +39 -40
- package/dist/devices-matter/VenetianBlindAccessory.js.map +1 -1
- package/dist/devices-matter/WindowBlindAccessory.d.ts +3 -1
- package/dist/devices-matter/WindowBlindAccessory.d.ts.map +1 -1
- package/dist/devices-matter/WindowBlindAccessory.js +36 -37
- package/dist/devices-matter/WindowBlindAccessory.js.map +1 -1
- package/dist/platform-hap.d.ts.map +1 -1
- package/dist/platform-hap.js +18 -1
- package/dist/platform-hap.js.map +1 -1
- package/dist/platform-matter.d.ts.map +1 -1
- package/dist/platform-matter.js +17 -0
- package/dist/platform-matter.js.map +1 -1
- package/dist/utils.d.ts +5 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +43 -0
- package/dist/utils.js.map +1 -1
- package/docs/variables/default.html +1 -1
- package/package.json +1 -1
- package/src/devices-matter/ColorLightAccessory.ts +37 -40
- package/src/devices-matter/ColorTemperatureLightAccessory.ts +35 -41
- package/src/devices-matter/ContactSensorAccessory.ts +18 -14
- package/src/devices-matter/DimmableLightAccessory.ts +26 -30
- package/src/devices-matter/DoorLockAccessory.ts +28 -24
- package/src/devices-matter/ExtendedColorLightAccessory.ts +43 -47
- package/src/devices-matter/FanAccessory.ts +33 -25
- package/src/devices-matter/HumiditySensorAccessory.ts +18 -16
- package/src/devices-matter/LeakSensorAccessory.ts +18 -14
- package/src/devices-matter/LightSensorAccessory.ts +18 -16
- package/src/devices-matter/OccupancySensorAccessory.ts +18 -22
- package/src/devices-matter/OnOffLightAccessory.ts +23 -23
- package/src/devices-matter/OnOffOutletAccessory.ts +25 -31
- package/src/devices-matter/OnOffSwitchAccessory.ts +20 -21
- package/src/devices-matter/RoboticVacuumAccessory.ts +79 -156
- package/src/devices-matter/TemperatureSensorAccessory.ts +20 -16
- package/src/devices-matter/ThermostatAccessory.ts +39 -34
- package/src/devices-matter/VenetianBlindAccessory.ts +41 -44
- package/src/devices-matter/WindowBlindAccessory.ts +37 -39
- package/src/platform-hap.ts +16 -1
- package/src/platform-matter.ts +15 -0
- package/src/utils.ts +49 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtendedColorLightAccessory.js","sourceRoot":"","sources":["../../src/devices-matter/ExtendedColorLightAccessory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,2BAA4B,SAAQ,mBAAmB;IAClE,YAAY,GAAQ,EAAE,GAAW;
|
|
1
|
+
{"version":3,"file":"ExtendedColorLightAccessory.js","sourceRoot":"","sources":["../../src/devices-matter/ExtendedColorLightAccessory.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
import type { API, Logger } from 'homebridge';
|
|
5
5
|
import { BaseMatterAccessory } from './BaseMatterAccessory.js';
|
|
6
6
|
export declare class FanAccessory extends BaseMatterAccessory {
|
|
7
|
-
constructor(api: API, log: Logger)
|
|
7
|
+
constructor(api: API, log: Logger, opts?: Partial<import('./BaseMatterAccessory').BaseMatterAccessoryConfig & {
|
|
8
|
+
deviceId?: string;
|
|
9
|
+
}>);
|
|
8
10
|
private handleStep;
|
|
9
11
|
private handleFanModeChange;
|
|
10
12
|
private handlePercentSettingChange;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FanAccessory.d.ts","sourceRoot":"","sources":["../../src/devices-matter/FanAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAkB,MAAM,YAAY,CAAA;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,qBAAa,YAAa,SAAQ,mBAAmB;gBACvC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"FanAccessory.d.ts","sourceRoot":"","sources":["../../src/devices-matter/FanAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAkB,MAAM,YAAY,CAAA;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,qBAAa,YAAa,SAAQ,mBAAmB;gBACvC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,uBAAuB,EAAE,yBAAyB,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;YA0CtH,UAAU;YAQV,mBAAmB;YAQnB,0BAA0B;IAgBjC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIjC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAO7C"}
|
|
@@ -3,32 +3,40 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { BaseMatterAccessory } from './BaseMatterAccessory.js';
|
|
5
5
|
export class FanAccessory extends BaseMatterAccessory {
|
|
6
|
-
constructor(api, log) {
|
|
7
|
-
const serialNumber = 'FAN-001';
|
|
6
|
+
constructor(api, log, opts) {
|
|
7
|
+
const serialNumber = opts?.serialNumber ?? 'FAN-001';
|
|
8
|
+
const displayName = opts?.displayName ?? 'Fan';
|
|
9
|
+
const manufacturer = opts?.manufacturer ?? 'Homebridge Matter';
|
|
10
|
+
const model = opts?.model ?? 'HB-MATTER-FAN';
|
|
11
|
+
const firmwareRevision = opts?.firmwareRevision ?? '2.0.0';
|
|
12
|
+
const hardwareRevision = opts?.hardwareRevision ?? '1.0.0';
|
|
13
|
+
const clusters = opts?.clusters ?? {
|
|
14
|
+
fanControl: {
|
|
15
|
+
fanMode: api.matter.types.FanControl.FanMode.Off,
|
|
16
|
+
fanModeSequence: api.matter.types.FanControl.FanModeSequence.OffLowMedHigh,
|
|
17
|
+
percentSetting: 0,
|
|
18
|
+
percentCurrent: 0,
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
const handlers = opts?.handlers ?? {
|
|
22
|
+
fanControl: {
|
|
23
|
+
step: async (request) => this.handleStep(request),
|
|
24
|
+
fanModeChange: async (request) => this.handleFanModeChange(request),
|
|
25
|
+
percentSettingChange: async (request) => this.handlePercentSettingChange(request),
|
|
26
|
+
},
|
|
27
|
+
};
|
|
8
28
|
super(api, log, {
|
|
9
|
-
uuid: api.matter.uuid.generate(serialNumber),
|
|
10
|
-
displayName
|
|
29
|
+
uuid: opts?.uuid ?? api.matter.uuid.generate(serialNumber),
|
|
30
|
+
displayName,
|
|
11
31
|
deviceType: api.matter.deviceTypes.Fan,
|
|
12
32
|
serialNumber,
|
|
13
|
-
manufacturer
|
|
14
|
-
model
|
|
15
|
-
firmwareRevision
|
|
16
|
-
hardwareRevision
|
|
17
|
-
clusters
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
fanModeSequence: api.matter.types.FanControl.FanModeSequence.OffLowMedHigh,
|
|
21
|
-
percentSetting: 0,
|
|
22
|
-
percentCurrent: 0,
|
|
23
|
-
},
|
|
24
|
-
},
|
|
25
|
-
handlers: {
|
|
26
|
-
fanControl: {
|
|
27
|
-
step: async (request) => this.handleStep(request),
|
|
28
|
-
fanModeChange: async (request) => this.handleFanModeChange(request),
|
|
29
|
-
percentSettingChange: async (request) => this.handlePercentSettingChange(request),
|
|
30
|
-
},
|
|
31
|
-
},
|
|
33
|
+
manufacturer,
|
|
34
|
+
model,
|
|
35
|
+
firmwareRevision,
|
|
36
|
+
hardwareRevision,
|
|
37
|
+
clusters,
|
|
38
|
+
handlers,
|
|
39
|
+
context: { deviceId: opts?.deviceId, ...(opts?.context ?? {}) },
|
|
32
40
|
});
|
|
33
41
|
this.logInfo('initialized.');
|
|
34
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FanAccessory.js","sourceRoot":"","sources":["../../src/devices-matter/FanAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,YAAa,SAAQ,mBAAmB;IACnD,YAAY,GAAQ,EAAE,GAAW;
|
|
1
|
+
{"version":3,"file":"FanAccessory.js","sourceRoot":"","sources":["../../src/devices-matter/FanAccessory.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
import type { API, Logger } from 'homebridge';
|
|
5
5
|
import { BaseMatterAccessory } from './BaseMatterAccessory.js';
|
|
6
6
|
export declare class HumiditySensorAccessory extends BaseMatterAccessory {
|
|
7
|
-
constructor(api: API, log: Logger)
|
|
7
|
+
constructor(api: API, log: Logger, opts?: Partial<import('./BaseMatterAccessory').BaseMatterAccessoryConfig & {
|
|
8
|
+
deviceId?: string;
|
|
9
|
+
}>);
|
|
8
10
|
updateHumidity(percent: number): void;
|
|
9
11
|
}
|
|
10
12
|
//# sourceMappingURL=HumiditySensorAccessory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HumiditySensorAccessory.d.ts","sourceRoot":"","sources":["../../src/devices-matter/HumiditySensorAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,qBAAa,uBAAwB,SAAQ,mBAAmB;gBAClD,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"HumiditySensorAccessory.d.ts","sourceRoot":"","sources":["../../src/devices-matter/HumiditySensorAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,qBAAa,uBAAwB,SAAQ,mBAAmB;gBAClD,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,uBAAuB,EAAE,yBAAyB,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA0B7H,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAK7C"}
|
|
@@ -3,24 +3,25 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { BaseMatterAccessory } from './BaseMatterAccessory.js';
|
|
5
5
|
export class HumiditySensorAccessory extends BaseMatterAccessory {
|
|
6
|
-
constructor(api, log) {
|
|
7
|
-
const serialNumber = 'SENSOR-005';
|
|
6
|
+
constructor(api, log, opts) {
|
|
7
|
+
const serialNumber = opts?.serialNumber ?? 'SENSOR-005';
|
|
8
|
+
const displayName = opts?.displayName ?? 'Humidity Sensor';
|
|
9
|
+
const manufacturer = opts?.manufacturer ?? 'Homebridge Matter';
|
|
10
|
+
const model = opts?.model ?? 'HB-MATTER-SENSOR-HUMIDITY';
|
|
11
|
+
const firmwareRevision = opts?.firmwareRevision ?? '2.0.0';
|
|
12
|
+
const hardwareRevision = opts?.hardwareRevision ?? '1.0.0';
|
|
13
|
+
const clusters = opts?.clusters ?? { relativeHumidityMeasurement: { measuredValue: 5500, minMeasuredValue: 0, maxMeasuredValue: 10000 } };
|
|
8
14
|
super(api, log, {
|
|
9
|
-
uuid: api.matter.uuid.generate(serialNumber),
|
|
10
|
-
displayName
|
|
15
|
+
uuid: opts?.uuid ?? api.matter.uuid.generate(serialNumber),
|
|
16
|
+
displayName,
|
|
11
17
|
deviceType: api.matter.deviceTypes.HumiditySensor,
|
|
12
18
|
serialNumber,
|
|
13
|
-
manufacturer
|
|
14
|
-
model
|
|
15
|
-
firmwareRevision
|
|
16
|
-
hardwareRevision
|
|
17
|
-
clusters
|
|
18
|
-
|
|
19
|
-
measuredValue: 5500, // 55% (in hundredths of a percent)
|
|
20
|
-
minMeasuredValue: 0,
|
|
21
|
-
maxMeasuredValue: 10000,
|
|
22
|
-
},
|
|
23
|
-
},
|
|
19
|
+
manufacturer,
|
|
20
|
+
model,
|
|
21
|
+
firmwareRevision,
|
|
22
|
+
hardwareRevision,
|
|
23
|
+
clusters,
|
|
24
|
+
context: { deviceId: opts?.deviceId, ...(opts?.context ?? {}) },
|
|
24
25
|
});
|
|
25
26
|
this.logInfo('initialized.');
|
|
26
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HumiditySensorAccessory.js","sourceRoot":"","sources":["../../src/devices-matter/HumiditySensorAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,uBAAwB,SAAQ,mBAAmB;IAC9D,YAAY,GAAQ,EAAE,GAAW;
|
|
1
|
+
{"version":3,"file":"HumiditySensorAccessory.js","sourceRoot":"","sources":["../../src/devices-matter/HumiditySensorAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,uBAAwB,SAAQ,mBAAmB;IAC9D,YAAY,GAAQ,EAAE,GAAW,EAAE,IAAiG;QAClI,MAAM,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,YAAY,CAAA;QACvD,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,iBAAiB,CAAA;QAC1D,MAAM,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,mBAAmB,CAAA;QAC9D,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,2BAA2B,CAAA;QACxD,MAAM,gBAAgB,GAAG,IAAI,EAAE,gBAAgB,IAAI,OAAO,CAAA;QAC1D,MAAM,gBAAgB,GAAG,IAAI,EAAE,gBAAgB,IAAI,OAAO,CAAA;QAE1D,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,EAAE,2BAA2B,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE,CAAA;QAEzI,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC1D,WAAW;YACX,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc;YACjD,YAAY;YACZ,YAAY;YACZ,KAAK;YACL,gBAAgB;YAChB,gBAAgB;YAChB,QAAQ;YACR,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE;SAChE,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEM,cAAc,CAAC,OAAe;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,CAAA,CAAC,wBAAwB;QAChE,IAAI,CAAC,WAAW,CAAC,6BAA6B,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAA;QACzE,IAAI,CAAC,OAAO,CAAC,aAAa,OAAO,IAAI,CAAC,CAAA;IACxC,CAAC;CACF"}
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
import type { API, Logger } from 'homebridge';
|
|
5
5
|
import { BaseMatterAccessory } from './BaseMatterAccessory.js';
|
|
6
6
|
export declare class LeakSensorAccessory extends BaseMatterAccessory {
|
|
7
|
-
constructor(api: API, log: Logger)
|
|
7
|
+
constructor(api: API, log: Logger, opts?: Partial<import('./BaseMatterAccessory').BaseMatterAccessoryConfig & {
|
|
8
|
+
deviceId?: string;
|
|
9
|
+
}>);
|
|
8
10
|
updateLeakState(leakDetected: boolean): void;
|
|
9
11
|
}
|
|
10
12
|
//# sourceMappingURL=LeakSensorAccessory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LeakSensorAccessory.d.ts","sourceRoot":"","sources":["../../src/devices-matter/LeakSensorAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,qBAAa,mBAAoB,SAAQ,mBAAmB;gBAC9C,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"LeakSensorAccessory.d.ts","sourceRoot":"","sources":["../../src/devices-matter/LeakSensorAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,qBAAa,mBAAoB,SAAQ,mBAAmB;gBAC9C,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,uBAAuB,EAAE,yBAAyB,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA0B7H,eAAe,CAAC,YAAY,EAAE,OAAO,GAAG,IAAI;CAIpD"}
|
|
@@ -3,22 +3,25 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { BaseMatterAccessory } from './BaseMatterAccessory.js';
|
|
5
5
|
export class LeakSensorAccessory extends BaseMatterAccessory {
|
|
6
|
-
constructor(api, log) {
|
|
7
|
-
const serialNumber = 'SENSOR-007';
|
|
6
|
+
constructor(api, log, opts) {
|
|
7
|
+
const serialNumber = opts?.serialNumber ?? 'SENSOR-007';
|
|
8
|
+
const displayName = opts?.displayName ?? 'Leak Sensor';
|
|
9
|
+
const manufacturer = opts?.manufacturer ?? 'Homebridge Matter';
|
|
10
|
+
const model = opts?.model ?? 'HB-MATTER-SENSOR-LEAK';
|
|
11
|
+
const firmwareRevision = opts?.firmwareRevision ?? '2.0.0';
|
|
12
|
+
const hardwareRevision = opts?.hardwareRevision ?? '1.0.0';
|
|
13
|
+
const clusters = opts?.clusters ?? { booleanState: { stateValue: false } };
|
|
8
14
|
super(api, log, {
|
|
9
|
-
uuid: api.matter.uuid.generate(serialNumber),
|
|
10
|
-
displayName
|
|
15
|
+
uuid: opts?.uuid ?? api.matter.uuid.generate(serialNumber),
|
|
16
|
+
displayName,
|
|
11
17
|
deviceType: api.matter.deviceTypes.LeakSensor,
|
|
12
18
|
serialNumber,
|
|
13
|
-
manufacturer
|
|
14
|
-
model
|
|
15
|
-
firmwareRevision
|
|
16
|
-
hardwareRevision
|
|
17
|
-
clusters
|
|
18
|
-
|
|
19
|
-
stateValue: false, // false = dry, true = leak
|
|
20
|
-
},
|
|
21
|
-
},
|
|
19
|
+
manufacturer,
|
|
20
|
+
model,
|
|
21
|
+
firmwareRevision,
|
|
22
|
+
hardwareRevision,
|
|
23
|
+
clusters,
|
|
24
|
+
context: { deviceId: opts?.deviceId, ...(opts?.context ?? {}) },
|
|
22
25
|
});
|
|
23
26
|
this.logInfo('initialized.');
|
|
24
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LeakSensorAccessory.js","sourceRoot":"","sources":["../../src/devices-matter/LeakSensorAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,mBAAoB,SAAQ,mBAAmB;IAC1D,YAAY,GAAQ,EAAE,GAAW;
|
|
1
|
+
{"version":3,"file":"LeakSensorAccessory.js","sourceRoot":"","sources":["../../src/devices-matter/LeakSensorAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,mBAAoB,SAAQ,mBAAmB;IAC1D,YAAY,GAAQ,EAAE,GAAW,EAAE,IAAiG;QAClI,MAAM,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,YAAY,CAAA;QACvD,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,aAAa,CAAA;QACtD,MAAM,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,mBAAmB,CAAA;QAC9D,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,uBAAuB,CAAA;QACpD,MAAM,gBAAgB,GAAG,IAAI,EAAE,gBAAgB,IAAI,OAAO,CAAA;QAC1D,MAAM,gBAAgB,GAAG,IAAI,EAAE,gBAAgB,IAAI,OAAO,CAAA;QAE1D,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,CAAA;QAE1E,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC1D,WAAW;YACX,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU;YAC7C,YAAY;YACZ,YAAY;YACZ,KAAK;YACL,gBAAgB;YAChB,gBAAgB;YAChB,QAAQ;YACR,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE;SAChE,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEM,eAAe,CAAC,YAAqB;QAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAA;QACzF,IAAI,CAAC,OAAO,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;IAC9D,CAAC;CACF"}
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
import type { API, Logger } from 'homebridge';
|
|
5
5
|
import { BaseMatterAccessory } from './BaseMatterAccessory.js';
|
|
6
6
|
export declare class LightSensorAccessory extends BaseMatterAccessory {
|
|
7
|
-
constructor(api: API, log: Logger)
|
|
7
|
+
constructor(api: API, log: Logger, opts?: Partial<import('./BaseMatterAccessory').BaseMatterAccessoryConfig & {
|
|
8
|
+
deviceId?: string;
|
|
9
|
+
}>);
|
|
8
10
|
updateIlluminance(lux: number): void;
|
|
9
11
|
}
|
|
10
12
|
//# sourceMappingURL=LightSensorAccessory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LightSensorAccessory.d.ts","sourceRoot":"","sources":["../../src/devices-matter/LightSensorAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,qBAAa,oBAAqB,SAAQ,mBAAmB;gBAC/C,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"LightSensorAccessory.d.ts","sourceRoot":"","sources":["../../src/devices-matter/LightSensorAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,qBAAa,oBAAqB,SAAQ,mBAAmB;gBAC/C,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,uBAAuB,EAAE,yBAAyB,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA0B7H,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAK5C"}
|
|
@@ -3,24 +3,25 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { BaseMatterAccessory } from './BaseMatterAccessory.js';
|
|
5
5
|
export class LightSensorAccessory extends BaseMatterAccessory {
|
|
6
|
-
constructor(api, log) {
|
|
7
|
-
const serialNumber = 'SENSOR-002';
|
|
6
|
+
constructor(api, log, opts) {
|
|
7
|
+
const serialNumber = opts?.serialNumber ?? 'SENSOR-002';
|
|
8
|
+
const displayName = opts?.displayName ?? 'Light Sensor';
|
|
9
|
+
const manufacturer = opts?.manufacturer ?? 'Homebridge Matter';
|
|
10
|
+
const model = opts?.model ?? 'HB-MATTER-SENSOR-LIGHT';
|
|
11
|
+
const firmwareRevision = opts?.firmwareRevision ?? '2.0.0';
|
|
12
|
+
const hardwareRevision = opts?.hardwareRevision ?? '1.0.0';
|
|
13
|
+
const clusters = opts?.clusters ?? { illuminanceMeasurement: { measuredValue: 5000, minMeasuredValue: 1, maxMeasuredValue: 65534 } };
|
|
8
14
|
super(api, log, {
|
|
9
|
-
uuid: api.matter.uuid.generate(serialNumber),
|
|
10
|
-
displayName
|
|
15
|
+
uuid: opts?.uuid ?? api.matter.uuid.generate(serialNumber),
|
|
16
|
+
displayName,
|
|
11
17
|
deviceType: api.matter.deviceTypes.LightSensor,
|
|
12
18
|
serialNumber,
|
|
13
|
-
manufacturer
|
|
14
|
-
model
|
|
15
|
-
firmwareRevision
|
|
16
|
-
hardwareRevision
|
|
17
|
-
clusters
|
|
18
|
-
|
|
19
|
-
measuredValue: 5000,
|
|
20
|
-
minMeasuredValue: 1,
|
|
21
|
-
maxMeasuredValue: 65534,
|
|
22
|
-
},
|
|
23
|
-
},
|
|
19
|
+
manufacturer,
|
|
20
|
+
model,
|
|
21
|
+
firmwareRevision,
|
|
22
|
+
hardwareRevision,
|
|
23
|
+
clusters,
|
|
24
|
+
context: { deviceId: opts?.deviceId, ...(opts?.context ?? {}) },
|
|
24
25
|
});
|
|
25
26
|
this.logInfo('initialized.');
|
|
26
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LightSensorAccessory.js","sourceRoot":"","sources":["../../src/devices-matter/LightSensorAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,oBAAqB,SAAQ,mBAAmB;IAC3D,YAAY,GAAQ,EAAE,GAAW;
|
|
1
|
+
{"version":3,"file":"LightSensorAccessory.js","sourceRoot":"","sources":["../../src/devices-matter/LightSensorAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,oBAAqB,SAAQ,mBAAmB;IAC3D,YAAY,GAAQ,EAAE,GAAW,EAAE,IAAiG;QAClI,MAAM,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,YAAY,CAAA;QACvD,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,cAAc,CAAA;QACvD,MAAM,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,mBAAmB,CAAA;QAC9D,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,wBAAwB,CAAA;QACrD,MAAM,gBAAgB,GAAG,IAAI,EAAE,gBAAgB,IAAI,OAAO,CAAA;QAC1D,MAAM,gBAAgB,GAAG,IAAI,EAAE,gBAAgB,IAAI,OAAO,CAAA;QAE1D,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,EAAE,sBAAsB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE,CAAA;QAEpI,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC1D,WAAW;YACX,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW;YAC9C,YAAY;YACZ,YAAY;YACZ,KAAK;YACL,gBAAgB;YAChB,gBAAgB;YAChB,QAAQ;YACR,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE;SAChE,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEM,iBAAiB,CAAC,GAAW;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;QACjD,IAAI,CAAC,WAAW,CAAC,wBAAwB,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAA;QACpE,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,CAAA;IAC1C,CAAC;CACF"}
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
import type { API, Logger } from 'homebridge';
|
|
5
5
|
import { BaseMatterAccessory } from './BaseMatterAccessory.js';
|
|
6
6
|
export declare class OccupancySensorAccessory extends BaseMatterAccessory {
|
|
7
|
-
constructor(api: API, log: Logger)
|
|
7
|
+
constructor(api: API, log: Logger, opts?: Partial<import('./BaseMatterAccessory').BaseMatterAccessoryConfig & {
|
|
8
|
+
deviceId?: string;
|
|
9
|
+
}>);
|
|
8
10
|
updateOccupancyDetected(detected: boolean): void;
|
|
9
11
|
}
|
|
10
12
|
//# sourceMappingURL=OccupancySensorAccessory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OccupancySensorAccessory.d.ts","sourceRoot":"","sources":["../../src/devices-matter/OccupancySensorAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,qBAAa,wBAAyB,SAAQ,mBAAmB;gBACnD,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"OccupancySensorAccessory.d.ts","sourceRoot":"","sources":["../../src/devices-matter/OccupancySensorAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,qBAAa,wBAAyB,SAAQ,mBAAmB;gBACnD,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,uBAAuB,EAAE,yBAAyB,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAgC7H,uBAAuB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;CAMxD"}
|
|
@@ -3,33 +3,29 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { BaseMatterAccessory } from './BaseMatterAccessory.js';
|
|
5
5
|
export class OccupancySensorAccessory extends BaseMatterAccessory {
|
|
6
|
-
constructor(api, log) {
|
|
7
|
-
const serialNumber = 'SENSOR-003';
|
|
6
|
+
constructor(api, log, opts) {
|
|
7
|
+
const serialNumber = opts?.serialNumber ?? 'SENSOR-003';
|
|
8
8
|
// Note: Matter.js API calls this "MotionSensor" but it's actually an Occupancy Sensor
|
|
9
9
|
const OccupancySensingServer = api.matter.deviceTypes.MotionSensor.requirements.OccupancySensingServer;
|
|
10
10
|
const OccupancySensorWithPIR = api.matter.deviceTypes.MotionSensor.with(OccupancySensingServer.with('PassiveInfrared'));
|
|
11
|
+
const clusters = opts?.clusters ?? {
|
|
12
|
+
occupancySensing: {
|
|
13
|
+
occupancy: { occupied: false },
|
|
14
|
+
occupancySensorType: 0,
|
|
15
|
+
occupancySensorTypeBitmap: { pir: true, ultrasonic: false, physicalContact: false },
|
|
16
|
+
},
|
|
17
|
+
};
|
|
11
18
|
super(api, log, {
|
|
12
|
-
uuid: api.matter.uuid.generate(serialNumber),
|
|
13
|
-
displayName: 'Occupancy Sensor',
|
|
19
|
+
uuid: opts?.uuid ?? api.matter.uuid.generate(serialNumber),
|
|
20
|
+
displayName: opts?.displayName ?? 'Occupancy Sensor',
|
|
14
21
|
deviceType: OccupancySensorWithPIR,
|
|
15
22
|
serialNumber,
|
|
16
|
-
manufacturer: 'Homebridge Matter',
|
|
17
|
-
model: 'HB-MATTER-SENSOR-OCCUPANCY',
|
|
18
|
-
firmwareRevision: '2.0.0',
|
|
19
|
-
hardwareRevision: '1.0.0',
|
|
20
|
-
clusters
|
|
21
|
-
|
|
22
|
-
occupancy: {
|
|
23
|
-
occupied: false,
|
|
24
|
-
},
|
|
25
|
-
occupancySensorType: 0,
|
|
26
|
-
occupancySensorTypeBitmap: {
|
|
27
|
-
pir: true,
|
|
28
|
-
ultrasonic: false,
|
|
29
|
-
physicalContact: false,
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
},
|
|
23
|
+
manufacturer: opts?.manufacturer ?? 'Homebridge Matter',
|
|
24
|
+
model: opts?.model ?? 'HB-MATTER-SENSOR-OCCUPANCY',
|
|
25
|
+
firmwareRevision: opts?.firmwareRevision ?? '2.0.0',
|
|
26
|
+
hardwareRevision: opts?.hardwareRevision ?? '1.0.0',
|
|
27
|
+
clusters,
|
|
28
|
+
context: { deviceId: opts?.deviceId, ...(opts?.context ?? {}) },
|
|
33
29
|
});
|
|
34
30
|
this.logInfo('initialized.');
|
|
35
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OccupancySensorAccessory.js","sourceRoot":"","sources":["../../src/devices-matter/OccupancySensorAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,wBAAyB,SAAQ,mBAAmB;IAC/D,YAAY,GAAQ,EAAE,GAAW;
|
|
1
|
+
{"version":3,"file":"OccupancySensorAccessory.js","sourceRoot":"","sources":["../../src/devices-matter/OccupancySensorAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,wBAAyB,SAAQ,mBAAmB;IAC/D,YAAY,GAAQ,EAAE,GAAW,EAAE,IAAiG;QAClI,MAAM,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,YAAY,CAAA;QACvD,sFAAsF;QACtF,MAAM,sBAAsB,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,YAAY,CAAC,sBAAsB,CAAA;QACtG,MAAM,sBAAsB,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CACrE,sBAAsB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAC/C,CAAA;QAED,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI;YACjC,gBAAgB,EAAE;gBAChB,SAAS,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC9B,mBAAmB,EAAE,CAAC;gBACtB,yBAAyB,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE;aACpF;SACF,CAAA;QAED,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC1D,WAAW,EAAE,IAAI,EAAE,WAAW,IAAI,kBAAkB;YACpD,UAAU,EAAE,sBAAsB;YAClC,YAAY;YACZ,YAAY,EAAE,IAAI,EAAE,YAAY,IAAI,mBAAmB;YACvD,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,4BAA4B;YAClD,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,IAAI,OAAO;YACnD,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,IAAI,OAAO;YACnD,QAAQ;YACR,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE;SAChE,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEM,uBAAuB,CAAC,QAAiB;QAC9C,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE;YACnC,SAAS,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;SAClC,CAAC,CAAA;QACF,IAAI,CAAC,OAAO,CAAC,cAAc,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAA;IAChE,CAAC;CACF"}
|
|
@@ -13,7 +13,9 @@ import { BaseMatterAccessory } from './BaseMatterAccessory.js';
|
|
|
13
13
|
* It extends BaseMatterAccessory to inherit common functionality.
|
|
14
14
|
*/
|
|
15
15
|
export declare class OnOffLightAccessory extends BaseMatterAccessory {
|
|
16
|
-
constructor(api: API, log: Logger)
|
|
16
|
+
constructor(api: API, log: Logger, opts?: Partial<import('./BaseMatterAccessory').BaseMatterAccessoryConfig & {
|
|
17
|
+
deviceId?: string;
|
|
18
|
+
}>);
|
|
17
19
|
/**
|
|
18
20
|
* Handle the "on" command from Matter
|
|
19
21
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnOffLightAccessory.d.ts","sourceRoot":"","sources":["../../src/devices-matter/OnOffLightAccessory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,mBAAmB;gBAC9C,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"OnOffLightAccessory.d.ts","sourceRoot":"","sources":["../../src/devices-matter/OnOffLightAccessory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,mBAAmB;gBAC9C,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,uBAAuB,EAAE,yBAAyB,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAsCpI;;OAEG;YACW,eAAe;IAoB7B;;OAEG;YACW,gBAAgB;IAgB9B;;;OAGG;IACI,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAK5C;;;OAGG;IACI,eAAe,IAAI,IAAI;CAqB/B"}
|
|
@@ -12,16 +12,27 @@ import { BaseMatterAccessory } from './BaseMatterAccessory.js';
|
|
|
12
12
|
* It extends BaseMatterAccessory to inherit common functionality.
|
|
13
13
|
*/
|
|
14
14
|
export class OnOffLightAccessory extends BaseMatterAccessory {
|
|
15
|
-
constructor(api, log) {
|
|
16
|
-
const serialNumber = 'LIGHT-001';
|
|
17
|
-
const displayName = 'On/Off Light';
|
|
18
|
-
const manufacturer = 'Homebridge Matter';
|
|
19
|
-
const model = 'HB-MATTER-LIGHT-ON-OFF';
|
|
20
|
-
const firmwareRevision = '2.0.0';
|
|
21
|
-
const hardwareRevision = '1.0.0';
|
|
15
|
+
constructor(api, log, opts) {
|
|
16
|
+
const serialNumber = opts?.serialNumber ?? 'LIGHT-001';
|
|
17
|
+
const displayName = opts?.displayName ?? 'On/Off Light';
|
|
18
|
+
const manufacturer = opts?.manufacturer ?? 'Homebridge Matter';
|
|
19
|
+
const model = opts?.model ?? 'HB-MATTER-LIGHT-ON-OFF';
|
|
20
|
+
const firmwareRevision = opts?.firmwareRevision ?? '2.0.0';
|
|
21
|
+
const hardwareRevision = opts?.hardwareRevision ?? '1.0.0';
|
|
22
|
+
const clusters = opts?.clusters ?? { onOff: { onOff: true } };
|
|
23
|
+
const handlers = opts?.handlers ?? {
|
|
24
|
+
onOff: {
|
|
25
|
+
on: async () => {
|
|
26
|
+
log.debug(`${displayName} on handler invoked (default no-op).`);
|
|
27
|
+
},
|
|
28
|
+
off: async () => {
|
|
29
|
+
log.debug(`${displayName} off handler invoked (default no-op).`);
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
};
|
|
22
33
|
// Call parent constructor with device configuration
|
|
23
34
|
super(api, log, {
|
|
24
|
-
uuid: api.matter.uuid.generate(serialNumber),
|
|
35
|
+
uuid: opts?.uuid ?? api.matter.uuid.generate(serialNumber),
|
|
25
36
|
displayName,
|
|
26
37
|
deviceType: api.matter.deviceTypes.OnOffLight,
|
|
27
38
|
serialNumber,
|
|
@@ -29,19 +40,9 @@ export class OnOffLightAccessory extends BaseMatterAccessory {
|
|
|
29
40
|
model,
|
|
30
41
|
firmwareRevision,
|
|
31
42
|
hardwareRevision,
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
onOff: true, // initial state: light is on
|
|
36
|
-
},
|
|
37
|
-
},
|
|
38
|
-
// Command handlers
|
|
39
|
-
handlers: {
|
|
40
|
-
onOff: {
|
|
41
|
-
on: async () => this.handleOnCommand(),
|
|
42
|
-
off: async () => this.handleOffCommand(),
|
|
43
|
-
},
|
|
44
|
-
},
|
|
43
|
+
clusters,
|
|
44
|
+
handlers,
|
|
45
|
+
context: { deviceId: opts?.deviceId, ...(opts?.context ?? {}) },
|
|
45
46
|
});
|
|
46
47
|
this.logInfo('initialized.');
|
|
47
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnOffLightAccessory.js","sourceRoot":"","sources":["../../src/devices-matter/OnOffLightAccessory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D;;;;;GAKG;AACH,MAAM,OAAO,mBAAoB,SAAQ,mBAAmB;IAC1D,YAAY,GAAQ,EAAE,GAAW;
|
|
1
|
+
{"version":3,"file":"OnOffLightAccessory.js","sourceRoot":"","sources":["../../src/devices-matter/OnOffLightAccessory.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
import type { API, Logger } from 'homebridge';
|
|
5
5
|
import { BaseMatterAccessory } from './BaseMatterAccessory.js';
|
|
6
6
|
export declare class OnOffOutletAccessory extends BaseMatterAccessory {
|
|
7
|
-
constructor(api: API, log: Logger)
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
constructor(api: API, log: Logger, opts?: Partial<import('./BaseMatterAccessory').BaseMatterAccessoryConfig & {
|
|
8
|
+
deviceId?: string;
|
|
9
|
+
}>);
|
|
10
10
|
updateOnOffState(isOn: boolean): void;
|
|
11
11
|
}
|
|
12
12
|
//# sourceMappingURL=OnOffOutletAccessory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnOffOutletAccessory.d.ts","sourceRoot":"","sources":["../../src/devices-matter/OnOffOutletAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,qBAAa,oBAAqB,SAAQ,mBAAmB;gBAC/C,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"OnOffOutletAccessory.d.ts","sourceRoot":"","sources":["../../src/devices-matter/OnOffOutletAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,qBAAa,oBAAqB,SAAQ,mBAAmB;gBAC/C,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,uBAAuB,EAAE,yBAAyB,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAiC7H,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;CAG7C"}
|
|
@@ -3,39 +3,36 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { BaseMatterAccessory } from './BaseMatterAccessory.js';
|
|
5
5
|
export class OnOffOutletAccessory extends BaseMatterAccessory {
|
|
6
|
-
constructor(api, log) {
|
|
7
|
-
const serialNumber = 'OUTLET-001';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
firmwareRevision: '2.0.0',
|
|
16
|
-
hardwareRevision: '1.0.0',
|
|
17
|
-
clusters: {
|
|
18
|
-
onOff: {
|
|
19
|
-
onOff: false,
|
|
6
|
+
constructor(api, log, opts) {
|
|
7
|
+
const serialNumber = opts?.serialNumber ?? 'OUTLET-001';
|
|
8
|
+
const displayName = opts?.displayName ?? 'On/Off Outlet';
|
|
9
|
+
const clusters = opts?.clusters ?? { onOff: { onOff: false } };
|
|
10
|
+
const handlers = opts?.handlers ?? {
|
|
11
|
+
onOff: {
|
|
12
|
+
on: async () => {
|
|
13
|
+
// default no-op; platform may inject handlers via opts.handlers
|
|
14
|
+
log.debug(`${displayName} on handler invoked (default no-op).`);
|
|
20
15
|
},
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
onOff: {
|
|
24
|
-
on: async () => this.handleOn(),
|
|
25
|
-
off: async () => this.handleOff(),
|
|
16
|
+
off: async () => {
|
|
17
|
+
log.debug(`${displayName} off handler invoked (default no-op).`);
|
|
26
18
|
},
|
|
27
19
|
},
|
|
20
|
+
};
|
|
21
|
+
super(api, log, {
|
|
22
|
+
uuid: opts?.uuid ?? api.matter.uuid.generate(serialNumber),
|
|
23
|
+
displayName,
|
|
24
|
+
deviceType: api.matter.deviceTypes.OnOffOutlet,
|
|
25
|
+
serialNumber,
|
|
26
|
+
manufacturer: opts?.manufacturer ?? 'Homebridge Matter',
|
|
27
|
+
model: opts?.model ?? 'HB-MATTER-OUTLET-ON-OFF',
|
|
28
|
+
firmwareRevision: opts?.firmwareRevision ?? '2.0.0',
|
|
29
|
+
hardwareRevision: opts?.hardwareRevision ?? '1.0.0',
|
|
30
|
+
clusters,
|
|
31
|
+
handlers,
|
|
32
|
+
context: { deviceId: opts?.deviceId, ...(opts?.context ?? {}) },
|
|
28
33
|
});
|
|
29
34
|
this.logInfo('initialized.');
|
|
30
35
|
}
|
|
31
|
-
async handleOn() {
|
|
32
|
-
this.logInfo('turning on.');
|
|
33
|
-
// TODO: await myOutletAPI.turnOn()
|
|
34
|
-
}
|
|
35
|
-
async handleOff() {
|
|
36
|
-
this.logInfo('turning off.');
|
|
37
|
-
// TODO: await myOutletAPI.turnOff()
|
|
38
|
-
}
|
|
39
36
|
updateOnOffState(isOn) {
|
|
40
37
|
this.updateState(this.api.matter.clusterNames.OnOff, { onOff: isOn });
|
|
41
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnOffOutletAccessory.js","sourceRoot":"","sources":["../../src/devices-matter/OnOffOutletAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,oBAAqB,SAAQ,mBAAmB;IAC3D,YAAY,GAAQ,EAAE,GAAW;
|
|
1
|
+
{"version":3,"file":"OnOffOutletAccessory.js","sourceRoot":"","sources":["../../src/devices-matter/OnOffOutletAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,oBAAqB,SAAQ,mBAAmB;IAC3D,YAAY,GAAQ,EAAE,GAAW,EAAE,IAAiG;QAClI,MAAM,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,YAAY,CAAA;QACvD,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,eAAe,CAAA;QACxD,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAA;QAC9D,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI;YACjC,KAAK,EAAE;gBACL,EAAE,EAAE,KAAK,IAAI,EAAE;oBACb,gEAAgE;oBAChE,GAAG,CAAC,KAAK,CAAC,GAAG,WAAW,sCAAsC,CAAC,CAAA;gBACjE,CAAC;gBACD,GAAG,EAAE,KAAK,IAAI,EAAE;oBACd,GAAG,CAAC,KAAK,CAAC,GAAG,WAAW,uCAAuC,CAAC,CAAA;gBAClE,CAAC;aACF;SACF,CAAA;QAED,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC1D,WAAW;YACX,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW;YAC9C,YAAY;YACZ,YAAY,EAAE,IAAI,EAAE,YAAY,IAAI,mBAAmB;YACvD,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,yBAAyB;YAC/C,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,IAAI,OAAO;YACnD,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,IAAI,OAAO;YACnD,QAAQ;YACR,QAAQ;YACR,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE;SAChE,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEM,gBAAgB,CAAC,IAAa;QACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACvE,CAAC;CACF"}
|