matterbridge-example-dynamic-platform 2.0.11 → 2.0.12
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/CHANGELOG.md +21 -0
- package/dist/module.js +45 -43
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -26,6 +26,27 @@ If you like this project and find it useful, please consider giving it a star on
|
|
|
26
26
|
|
|
27
27
|
<a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="120"></a>
|
|
28
28
|
|
|
29
|
+
## [2.0.12] - 2026-02-27
|
|
30
|
+
|
|
31
|
+
### Added
|
|
32
|
+
|
|
33
|
+
- [devContainer]: Add the new [dev container setup](https://matterbridge.io/reflector/MatterbridgeDevContainer.html).
|
|
34
|
+
- [devContainer]: Add the new [reflector dev container setup](https://matterbridge.io/reflector/Reflector.html).
|
|
35
|
+
|
|
36
|
+
### Changed
|
|
37
|
+
|
|
38
|
+
- [package]: Update dependencies.
|
|
39
|
+
- [package]: Bump package to `automator` v.3.1.0.
|
|
40
|
+
- [package]: Bump `eslint` to v.10.0.2.
|
|
41
|
+
- [package]: Bump `typescript-eslint` to v.8.56.1.
|
|
42
|
+
- [package]: Replace `eslint-plugin-import` with `eslint-plugin-simple-import-sort`.
|
|
43
|
+
|
|
44
|
+
### Fixed
|
|
45
|
+
|
|
46
|
+
- [matter]: Fix a few matter 1.4.2 conformance issues raised by chip tests.
|
|
47
|
+
|
|
48
|
+
<a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a>
|
|
49
|
+
|
|
29
50
|
## [2.0.11] - 2026-02-18
|
|
30
51
|
|
|
31
52
|
### Changed
|
package/dist/module.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { isValidBoolean, isValidNumber, isValidObject, isValidString } from 'matterbridge/utils';
|
|
1
|
+
import { airPurifier, airQualitySensor, bridgedNode, colorTemperatureLight, contactSensor, coverDevice, dimmableLight, dimmableMountedSwitch, dimmableOutlet, doorLockDevice, electricalSensor, extendedColorLight, fanDevice, flowSensor, genericSwitch, humiditySensor, lightSensor, MatterbridgeDynamicPlatform, MatterbridgeEndpoint, modeSelect, occupancySensor, onOffLight, onOffMountedSwitch, onOffOutlet, onOffSwitch, powerSource, pressureSensor, pumpDevice, rainSensor, smokeCoAlarm, temperatureSensor, thermostatDevice, waterFreezeDetector, waterLeakDetector, waterValve, } from 'matterbridge';
|
|
2
|
+
import { AirConditioner, BasicVideoPlayer, BatteryStorage, Cooktop, Dishwasher, Evse, ExtractorHood, HeatPump, LaundryDryer, LaundryWasher, MicrowaveOven, Oven, Refrigerator, RoboticVacuumCleaner, SolarPower, Speaker, WaterHeater, } from 'matterbridge/devices';
|
|
4
3
|
import { debugStringify } from 'matterbridge/logger';
|
|
5
4
|
import { AreaNamespaceTag, LocationTag, NumberTag, PositionTag, RefrigeratorTag, SwitchesTag, UINT16_MAX, UINT32_MAX } from 'matterbridge/matter';
|
|
6
|
-
import {
|
|
5
|
+
import { AirQuality, BooleanState, BridgedDeviceBasicInformation, CarbonDioxideConcentrationMeasurement, CarbonMonoxideConcentrationMeasurement, ColorControl, Descriptor, DeviceEnergyManagement, DoorLock, ElectricalEnergyMeasurement, ElectricalPowerMeasurement, EnergyEvse, EnergyEvseMode, FanControl, FlowMeasurement, FormaldehydeConcentrationMeasurement, IlluminanceMeasurement, LevelControl, NitrogenDioxideConcentrationMeasurement, OccupancySensing, OnOff, OnOffCluster, OperationalState, OvenMode, OzoneConcentrationMeasurement, Pm1ConcentrationMeasurement, Pm10ConcentrationMeasurement, Pm25ConcentrationMeasurement, PowerSource, PressureMeasurement, RadonConcentrationMeasurement, RefrigeratorAndTemperatureControlledCabinetMode, RelativeHumidityMeasurement, RelativeHumidityMeasurementCluster, RvcCleanMode, RvcOperationalState, RvcRunMode, SmokeCoAlarm, TemperatureMeasurement, Thermostat, ThermostatCluster, TotalVolatileOrganicCompoundsConcentrationMeasurement, WindowCovering, } from 'matterbridge/matter/clusters';
|
|
6
|
+
import { isValidBoolean, isValidNumber, isValidObject, isValidString } from 'matterbridge/utils';
|
|
7
7
|
function luxToMatter(lux) {
|
|
8
8
|
if (!Number.isFinite(lux) || lux <= 0)
|
|
9
9
|
return 0;
|
|
@@ -180,7 +180,6 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
|
|
|
180
180
|
});
|
|
181
181
|
this.switch = new MatterbridgeEndpoint([onOffSwitch, bridgedNode, powerSource], { id: 'Switch' }, this.config.debug)
|
|
182
182
|
.createDefaultIdentifyClusterServer()
|
|
183
|
-
.createDefaultGroupsClusterServer()
|
|
184
183
|
.createDefaultBridgedDeviceBasicInformationClusterServer('Switch', 'SWI00010', 0xfff1, 'Matterbridge', 'Matterbridge Switch')
|
|
185
184
|
.createDefaultOnOffClusterServer()
|
|
186
185
|
.createDefaultPowerSourceWiredClusterServer();
|
|
@@ -196,10 +195,10 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
|
|
|
196
195
|
});
|
|
197
196
|
this.mountedOnOffSwitch = new MatterbridgeEndpoint([onOffMountedSwitch, onOffOutlet, bridgedNode, powerSource], { id: 'OnOffMountedSwitch' }, this.config.debug)
|
|
198
197
|
.createDefaultIdentifyClusterServer()
|
|
199
|
-
.createDefaultGroupsClusterServer()
|
|
200
198
|
.createDefaultBridgedDeviceBasicInformationClusterServer('OnOff Mounted Switch', 'OMS00011', 0xfff1, 'Matterbridge', 'Matterbridge OnOff Mounted Switch')
|
|
201
199
|
.createDefaultOnOffClusterServer()
|
|
202
|
-
.createDefaultPowerSourceWiredClusterServer()
|
|
200
|
+
.createDefaultPowerSourceWiredClusterServer()
|
|
201
|
+
.addRequiredClusterServers();
|
|
203
202
|
this.mountedOnOffSwitch = await this.addDevice(this.mountedOnOffSwitch);
|
|
204
203
|
this.mountedOnOffSwitch?.addCommandHandler('identify', async ({ request: { identifyTime } }) => {
|
|
205
204
|
this.mountedOnOffSwitch?.log.info(`Command identify called identifyTime:${identifyTime}`);
|
|
@@ -212,7 +211,6 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
|
|
|
212
211
|
});
|
|
213
212
|
this.mountedDimmerSwitch = new MatterbridgeEndpoint([dimmableMountedSwitch, dimmableOutlet, bridgedNode, powerSource], { id: 'DimmerMountedSwitch' }, this.config.debug)
|
|
214
213
|
.createDefaultIdentifyClusterServer()
|
|
215
|
-
.createDefaultGroupsClusterServer()
|
|
216
214
|
.createDefaultBridgedDeviceBasicInformationClusterServer('Dimmer Mounted Switch', 'DMS00012', 0xfff1, 'Matterbridge', 'Matterbridge Dimmer Mounted Switch')
|
|
217
215
|
.createDefaultOnOffClusterServer()
|
|
218
216
|
.createDefaultLevelControlClusterServer()
|
|
@@ -236,10 +234,10 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
|
|
|
236
234
|
});
|
|
237
235
|
this.lightOnOff = new MatterbridgeEndpoint([onOffLight, bridgedNode, powerSource], { id: 'Light (on/off)' }, this.config.debug)
|
|
238
236
|
.createDefaultIdentifyClusterServer()
|
|
239
|
-
.createDefaultGroupsClusterServer()
|
|
240
237
|
.createDefaultBridgedDeviceBasicInformationClusterServer('Light (on/off)', 'LON00013', 0xfff1, 'Matterbridge', 'Matterbridge Light on/off')
|
|
241
238
|
.createDefaultOnOffClusterServer()
|
|
242
|
-
.createDefaultPowerSourceWiredClusterServer()
|
|
239
|
+
.createDefaultPowerSourceWiredClusterServer()
|
|
240
|
+
.addRequiredClusterServers();
|
|
243
241
|
this.lightOnOff = await this.addDevice(this.lightOnOff);
|
|
244
242
|
this.lightOnOff?.addCommandHandler('identify', async ({ request: { identifyTime } }) => {
|
|
245
243
|
this.lightOnOff?.log.info(`Command identify called identifyTime:${identifyTime}`);
|
|
@@ -252,11 +250,11 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
|
|
|
252
250
|
});
|
|
253
251
|
this.dimmer = new MatterbridgeEndpoint([dimmableLight, bridgedNode, powerSource], { id: 'Dimmer' }, this.config.debug)
|
|
254
252
|
.createDefaultIdentifyClusterServer()
|
|
255
|
-
.createDefaultGroupsClusterServer()
|
|
256
253
|
.createDefaultBridgedDeviceBasicInformationClusterServer('Dimmer', 'DMR00014', 0xfff1, 'Matterbridge', 'Matterbridge Dimmer')
|
|
257
254
|
.createDefaultOnOffClusterServer()
|
|
258
255
|
.createDefaultLevelControlClusterServer()
|
|
259
|
-
.createDefaultPowerSourceWiredClusterServer()
|
|
256
|
+
.createDefaultPowerSourceWiredClusterServer()
|
|
257
|
+
.addRequiredClusterServers();
|
|
260
258
|
this.dimmer = await this.addDevice(this.dimmer);
|
|
261
259
|
this.dimmer?.addCommandHandler('identify', async ({ request: { identifyTime } }) => {
|
|
262
260
|
this.dimmer?.log.info(`Command identify called identifyTime:${identifyTime}`);
|
|
@@ -275,12 +273,12 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
|
|
|
275
273
|
});
|
|
276
274
|
this.light = new MatterbridgeEndpoint([extendedColorLight, bridgedNode, powerSource], { id: 'Light (XY, HS, CT)' }, this.config.debug)
|
|
277
275
|
.createDefaultIdentifyClusterServer()
|
|
278
|
-
.createDefaultGroupsClusterServer()
|
|
279
276
|
.createDefaultBridgedDeviceBasicInformationClusterServer('Light (XY, HS, CT)', 'LXC00015', 0xfff1, 'Matterbridge', 'Matterbridge Light')
|
|
280
277
|
.createDefaultOnOffClusterServer()
|
|
281
278
|
.createDefaultLevelControlClusterServer()
|
|
282
279
|
.createDefaultColorControlClusterServer()
|
|
283
|
-
.createDefaultPowerSourceWiredClusterServer()
|
|
280
|
+
.createDefaultPowerSourceWiredClusterServer()
|
|
281
|
+
.addRequiredClusterServers();
|
|
284
282
|
this.light = await this.addDevice(this.light);
|
|
285
283
|
this.light?.addCommandHandler('identify', async ({ request: { identifyTime } }) => {
|
|
286
284
|
this.light?.log.info(`Command identify called identifyTime:${identifyTime}`);
|
|
@@ -314,12 +312,12 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
|
|
|
314
312
|
});
|
|
315
313
|
this.lightHS = new MatterbridgeEndpoint([colorTemperatureLight, bridgedNode, powerSource], { id: 'Light (HS, CT)' }, this.config.debug)
|
|
316
314
|
.createDefaultIdentifyClusterServer()
|
|
317
|
-
.createDefaultGroupsClusterServer()
|
|
318
315
|
.createDefaultBridgedDeviceBasicInformationClusterServer('Light (HS, CT)', 'LHC00016', 0xfff1, 'Matterbridge', 'Matterbridge Light')
|
|
319
316
|
.createDefaultOnOffClusterServer()
|
|
320
317
|
.createDefaultLevelControlClusterServer()
|
|
321
318
|
.createHsColorControlClusterServer()
|
|
322
|
-
.createDefaultPowerSourceWiredClusterServer()
|
|
319
|
+
.createDefaultPowerSourceWiredClusterServer()
|
|
320
|
+
.addRequiredClusterServers();
|
|
323
321
|
this.lightHS = await this.addDevice(this.lightHS);
|
|
324
322
|
this.lightHS?.addCommandHandler('identify', async ({ request: { identifyTime } }) => {
|
|
325
323
|
this.lightHS?.log.info(`Command identify called identifyTime:${identifyTime}`);
|
|
@@ -350,12 +348,12 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
|
|
|
350
348
|
});
|
|
351
349
|
this.lightXY = new MatterbridgeEndpoint([extendedColorLight, bridgedNode, powerSource], { id: 'Light (XY, CT)' }, this.config.debug)
|
|
352
350
|
.createDefaultIdentifyClusterServer()
|
|
353
|
-
.createDefaultGroupsClusterServer()
|
|
354
351
|
.createDefaultBridgedDeviceBasicInformationClusterServer('Light (XY, CT)', 'LXT00017', 0xfff1, 'Matterbridge', 'Matterbridge Light')
|
|
355
352
|
.createDefaultOnOffClusterServer()
|
|
356
353
|
.createDefaultLevelControlClusterServer()
|
|
357
354
|
.createXyColorControlClusterServer()
|
|
358
|
-
.createDefaultPowerSourceWiredClusterServer()
|
|
355
|
+
.createDefaultPowerSourceWiredClusterServer()
|
|
356
|
+
.addRequiredClusterServers();
|
|
359
357
|
this.lightXY = await this.addDevice(this.lightXY);
|
|
360
358
|
this.lightXY?.addCommandHandler('identify', async ({ request: { identifyTime } }) => {
|
|
361
359
|
this.lightXY?.log.info(`Command identify called identifyTime:${identifyTime}`);
|
|
@@ -380,12 +378,12 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
|
|
|
380
378
|
});
|
|
381
379
|
this.lightCT = new MatterbridgeEndpoint([colorTemperatureLight, bridgedNode, powerSource], { id: 'Light (CT)' }, this.config.debug)
|
|
382
380
|
.createDefaultIdentifyClusterServer()
|
|
383
|
-
.createDefaultGroupsClusterServer()
|
|
384
381
|
.createDefaultBridgedDeviceBasicInformationClusterServer('Light (CT)', 'LCT00018', 0xfff1, 'Matterbridge', 'Matterbridge Light')
|
|
385
382
|
.createDefaultOnOffClusterServer()
|
|
386
383
|
.createDefaultLevelControlClusterServer()
|
|
387
384
|
.createCtColorControlClusterServer()
|
|
388
|
-
.createDefaultPowerSourceWiredClusterServer()
|
|
385
|
+
.createDefaultPowerSourceWiredClusterServer()
|
|
386
|
+
.addRequiredClusterServers();
|
|
389
387
|
this.lightCT = await this.addDevice(this.lightCT);
|
|
390
388
|
this.lightCT?.addCommandHandler('identify', async ({ request: { identifyTime } }) => {
|
|
391
389
|
this.lightCT?.log.info(`Command identify called identifyTime:${identifyTime}`);
|
|
@@ -407,10 +405,10 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
|
|
|
407
405
|
});
|
|
408
406
|
this.outlet = new MatterbridgeEndpoint([onOffOutlet, bridgedNode, powerSource], { id: 'Outlet' }, this.config.debug)
|
|
409
407
|
.createDefaultIdentifyClusterServer()
|
|
410
|
-
.createDefaultGroupsClusterServer()
|
|
411
408
|
.createDefaultBridgedDeviceBasicInformationClusterServer('Outlet', 'OUT00019', 0xfff1, 'Matterbridge', 'Matterbridge Outlet')
|
|
412
409
|
.createDefaultOnOffClusterServer()
|
|
413
|
-
.createDefaultPowerSourceWiredClusterServer()
|
|
410
|
+
.createDefaultPowerSourceWiredClusterServer()
|
|
411
|
+
.addRequiredClusterServers();
|
|
414
412
|
this.outlet = await this.addDevice(this.outlet);
|
|
415
413
|
this.outlet?.addCommandHandler('identify', async ({ request: { identifyTime } }) => {
|
|
416
414
|
this.outlet?.log.info(`Command identify called identifyTime:${identifyTime}`);
|
|
@@ -457,7 +455,7 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
|
|
|
457
455
|
this.outletEnergyApparent?.addCommandHandler('off', async () => {
|
|
458
456
|
this.outletEnergyApparent?.log.info('Command off called');
|
|
459
457
|
});
|
|
460
|
-
this.smartOutlet = new MatterbridgeEndpoint([bridgedNode, powerSource
|
|
458
|
+
this.smartOutlet = new MatterbridgeEndpoint([electricalSensor, bridgedNode, powerSource], { id: 'SmartOutlet' }, this.config.debug)
|
|
461
459
|
.createDefaultBridgedDeviceBasicInformationClusterServer('Smart outlet', 'SOU00063', 0xfff1, 'Matterbridge', 'Matterbridge Smart Outlet')
|
|
462
460
|
.createDefaultPowerSourceWiredClusterServer()
|
|
463
461
|
.createDefaultElectricalEnergyMeasurementClusterServer(0, 0)
|
|
@@ -490,10 +488,10 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
|
|
|
490
488
|
this.smartOutlet = await this.addDevice(this.smartOutlet);
|
|
491
489
|
this.coverLift = new MatterbridgeEndpoint([coverDevice, bridgedNode, powerSource], { id: 'CoverLift' }, this.config.debug)
|
|
492
490
|
.createDefaultIdentifyClusterServer()
|
|
493
|
-
.createDefaultGroupsClusterServer()
|
|
494
491
|
.createDefaultBridgedDeviceBasicInformationClusterServer('Cover lift', 'COV00020', 0xfff1, 'Matterbridge', 'Matterbridge Cover')
|
|
495
492
|
.createDefaultWindowCoveringClusterServer()
|
|
496
|
-
.createDefaultPowerSourceWiredClusterServer()
|
|
493
|
+
.createDefaultPowerSourceWiredClusterServer()
|
|
494
|
+
.addRequiredClusterServers();
|
|
497
495
|
this.coverLift = await this.addDevice(this.coverLift);
|
|
498
496
|
this.coverLift?.addCommandHandler('identify', async ({ request: { identifyTime } }) => {
|
|
499
497
|
this.coverLift?.log.info(`Command identify called identifyTime:${identifyTime}`);
|
|
@@ -516,10 +514,10 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
|
|
|
516
514
|
});
|
|
517
515
|
this.coverLiftTilt = new MatterbridgeEndpoint([coverDevice, bridgedNode, powerSource], { id: 'CoverLiftTilt' }, this.config.debug)
|
|
518
516
|
.createDefaultIdentifyClusterServer()
|
|
519
|
-
.createDefaultGroupsClusterServer()
|
|
520
517
|
.createDefaultBridgedDeviceBasicInformationClusterServer('Cover lift and tilt', 'CLT00021', 0xfff1, 'Matterbridge', 'Matterbridge Cover')
|
|
521
518
|
.createDefaultLiftTiltWindowCoveringClusterServer()
|
|
522
|
-
.createDefaultPowerSourceWiredClusterServer()
|
|
519
|
+
.createDefaultPowerSourceWiredClusterServer()
|
|
520
|
+
.addRequiredClusterServers();
|
|
523
521
|
this.coverLiftTilt = await this.addDevice(this.coverLiftTilt);
|
|
524
522
|
this.coverLiftTilt?.addCommandHandler('identify', async ({ request: { identifyTime } }) => {
|
|
525
523
|
this.coverLiftTilt?.log.info(`Command identify called identifyTime:${identifyTime}`);
|
|
@@ -549,7 +547,8 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
|
|
|
549
547
|
.createDefaultIdentifyClusterServer()
|
|
550
548
|
.createDefaultBridgedDeviceBasicInformationClusterServer('Lock', 'LOC00022', 0xfff1, 'Matterbridge', 'Matterbridge Lock')
|
|
551
549
|
.createDefaultDoorLockClusterServer()
|
|
552
|
-
.createDefaultPowerSourceRechargeableBatteryClusterServer(30)
|
|
550
|
+
.createDefaultPowerSourceRechargeableBatteryClusterServer(30)
|
|
551
|
+
.addRequiredClusterServers();
|
|
553
552
|
this.lock = await this.addDevice(this.lock);
|
|
554
553
|
this.lock?.addCommandHandler('identify', async ({ request: { identifyTime } }) => {
|
|
555
554
|
this.lock?.log.info(`Command identify called identifyTime:${identifyTime}`);
|
|
@@ -569,10 +568,10 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
|
|
|
569
568
|
}, this.lock.log);
|
|
570
569
|
this.thermoAuto = new MatterbridgeEndpoint([thermostatDevice, bridgedNode, powerSource], { id: 'Thermostat (AutoMode)' }, this.config.debug)
|
|
571
570
|
.createDefaultIdentifyClusterServer()
|
|
572
|
-
.createDefaultGroupsClusterServer()
|
|
573
571
|
.createDefaultBridgedDeviceBasicInformationClusterServer('Thermostat (Auto)', 'TAU00023', 0xfff1, 'Matterbridge', 'Matterbridge Thermostat')
|
|
574
572
|
.createDefaultThermostatClusterServer(20, 18, 22)
|
|
575
|
-
.createDefaultPowerSourceRechargeableBatteryClusterServer(70, PowerSource.BatChargeLevel.Ok, 4700)
|
|
573
|
+
.createDefaultPowerSourceRechargeableBatteryClusterServer(70, PowerSource.BatChargeLevel.Ok, 4700)
|
|
574
|
+
.addRequiredClusterServers();
|
|
576
575
|
this.thermoAuto
|
|
577
576
|
.addChildDeviceType('Flow', flowSensor)
|
|
578
577
|
.createDefaultFlowMeasurementClusterServer(1 * 10)
|
|
@@ -608,10 +607,10 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
|
|
|
608
607
|
}, this.thermoAuto.log);
|
|
609
608
|
this.thermoAutoOccupancy = new MatterbridgeEndpoint([thermostatDevice, bridgedNode, powerSource], { id: 'Thermostat (AutoModeOccupancy)' }, this.config.debug)
|
|
610
609
|
.createDefaultIdentifyClusterServer()
|
|
611
|
-
.createDefaultGroupsClusterServer()
|
|
612
610
|
.createDefaultBridgedDeviceBasicInformationClusterServer('Thermostat (AutoOccupancy)', 'TAO00058', 0xfff1, 'Matterbridge', 'Matterbridge Thermostat Presets')
|
|
613
611
|
.createDefaultThermostatClusterServer(20, 18, 22, 1, 0, 35, 15, 50, 10, 30, false, 20.5)
|
|
614
|
-
.createDefaultPowerSourceWiredClusterServer()
|
|
612
|
+
.createDefaultPowerSourceWiredClusterServer()
|
|
613
|
+
.addRequiredClusterServers();
|
|
615
614
|
this.thermoAutoOccupancy = await this.addDevice(this.thermoAutoOccupancy);
|
|
616
615
|
await this.thermoAutoOccupancy?.subscribeAttribute(ThermostatCluster.id, 'systemMode', (value) => {
|
|
617
616
|
const lookupSystemMode = ['Off', 'Auto', '', 'Cool', 'Heat', 'EmergencyHeat', 'Precooling', 'FanOnly', 'Dry', 'Sleep'];
|
|
@@ -731,10 +730,10 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
|
|
|
731
730
|
];
|
|
732
731
|
this.thermoAutoPresets = new MatterbridgeEndpoint([thermostatDevice, bridgedNode, powerSource], { id: 'Thermostat (AutoModePresets)' }, this.config.debug)
|
|
733
732
|
.createDefaultIdentifyClusterServer()
|
|
734
|
-
.createDefaultGroupsClusterServer()
|
|
735
733
|
.createDefaultBridgedDeviceBasicInformationClusterServer('Thermostat (AutoModePresets)', 'TAP00058', 0xfff1, 'Matterbridge', 'Matterbridge Thermostat With Presets')
|
|
736
734
|
.createDefaultPresetsThermostatClusterServer(20, 18, 22, 1, 0, 35, 15, 50, 10, 30, false, 20.5, undefined, presets_List, presetTypeDefinitions)
|
|
737
|
-
.createDefaultPowerSourceWiredClusterServer()
|
|
735
|
+
.createDefaultPowerSourceWiredClusterServer()
|
|
736
|
+
.addRequiredClusterServers();
|
|
738
737
|
if (this.thermoAutoPresets) {
|
|
739
738
|
this.thermoAutoPresets
|
|
740
739
|
.addChildDeviceType('Temperature', temperatureSensor)
|
|
@@ -790,10 +789,10 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
|
|
|
790
789
|
}, this.thermoAutoPresets.log);
|
|
791
790
|
this.thermoHeat = new MatterbridgeEndpoint([thermostatDevice, bridgedNode, powerSource], { id: 'Thermostat (Heat)' }, this.config.debug)
|
|
792
791
|
.createDefaultIdentifyClusterServer()
|
|
793
|
-
.createDefaultGroupsClusterServer()
|
|
794
792
|
.createDefaultBridgedDeviceBasicInformationClusterServer('Thermostat (Heat)', 'THE00024', 0xfff1, 'Matterbridge', 'Matterbridge Thermostat')
|
|
795
793
|
.createDefaultHeatingThermostatClusterServer(20, 18, 5, 35)
|
|
796
|
-
.createDefaultPowerSourceReplaceableBatteryClusterServer(70, PowerSource.BatChargeLevel.Ok, 6010, 'AA 1.5V', 4)
|
|
794
|
+
.createDefaultPowerSourceReplaceableBatteryClusterServer(70, PowerSource.BatChargeLevel.Ok, 6010, 'AA 1.5V', 4)
|
|
795
|
+
.addRequiredClusterServers();
|
|
797
796
|
this.thermoHeat
|
|
798
797
|
.addChildDeviceType('TemperatureIN', [temperatureSensor], {
|
|
799
798
|
tagList: [
|
|
@@ -828,10 +827,10 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
|
|
|
828
827
|
}, this.thermoHeat.log);
|
|
829
828
|
this.thermoCool = new MatterbridgeEndpoint([thermostatDevice, bridgedNode, powerSource], { id: 'Thermostat (Cool)' }, this.config.debug)
|
|
830
829
|
.createDefaultIdentifyClusterServer()
|
|
831
|
-
.createDefaultGroupsClusterServer()
|
|
832
830
|
.createDefaultBridgedDeviceBasicInformationClusterServer('Thermostat (Cool)', 'TCO00025', 0xfff1, 'Matterbridge', 'Matterbridge Thermostat')
|
|
833
831
|
.createDefaultCoolingThermostatClusterServer(20, 18, 5, 35)
|
|
834
|
-
.createDefaultPowerSourceReplaceableBatteryClusterServer(40, PowerSource.BatChargeLevel.Ok, 5080, 'AA 1.5V', 4)
|
|
832
|
+
.createDefaultPowerSourceReplaceableBatteryClusterServer(40, PowerSource.BatChargeLevel.Ok, 5080, 'AA 1.5V', 4)
|
|
833
|
+
.addRequiredClusterServers();
|
|
835
834
|
this.thermoCool = await this.addDevice(this.thermoCool);
|
|
836
835
|
this.thermoCool?.addCommandHandler('identify', async ({ request: { identifyTime } }) => {
|
|
837
836
|
this.thermoCool?.log.info(`Command identify called identifyTime ${identifyTime}`);
|
|
@@ -854,7 +853,8 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
|
|
|
854
853
|
.createDefaultRelativeHumidityMeasurementClusterServer(50 * 100)
|
|
855
854
|
.createDefaultPowerSourceWiredClusterServer()
|
|
856
855
|
.createDefaultActivatedCarbonFilterMonitoringClusterServer()
|
|
857
|
-
.createDefaultHepaFilterMonitoringClusterServer()
|
|
856
|
+
.createDefaultHepaFilterMonitoringClusterServer()
|
|
857
|
+
.addRequiredClusterServers();
|
|
858
858
|
this.airPurifier = await this.addDevice(this.airPurifier);
|
|
859
859
|
this.airPurifier?.addCommandHandler('identify', async ({ request: { identifyTime } }) => {
|
|
860
860
|
this.airPurifier?.log.info(`Command identify called identifyTime:${identifyTime}`);
|
|
@@ -893,7 +893,8 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
|
|
|
893
893
|
.createOnOffClusterServer()
|
|
894
894
|
.createLevelControlClusterServer()
|
|
895
895
|
.createDefaultPumpConfigurationAndControlClusterServer()
|
|
896
|
-
.createDefaultPowerSourceWiredClusterServer()
|
|
896
|
+
.createDefaultPowerSourceWiredClusterServer()
|
|
897
|
+
.addRequiredClusterServers();
|
|
897
898
|
this.pump = await this.addDevice(this.pump);
|
|
898
899
|
this.pump?.addCommandHandler('identify', async ({ request: { identifyTime } }) => {
|
|
899
900
|
this.pump?.log.info(`Command identify called identifyTime:${identifyTime}`);
|
|
@@ -914,7 +915,8 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
|
|
|
914
915
|
.createDefaultBridgedDeviceBasicInformationClusterServer('Water valve', 'WAV00029', 0xfff1, 'Matterbridge', 'Matterbridge Water valve')
|
|
915
916
|
.createDefaultIdentifyClusterServer()
|
|
916
917
|
.createDefaultValveConfigurationAndControlClusterServer()
|
|
917
|
-
.createDefaultPowerSourceWiredClusterServer()
|
|
918
|
+
.createDefaultPowerSourceWiredClusterServer()
|
|
919
|
+
.addRequiredClusterServers();
|
|
918
920
|
this.valve = await this.addDevice(this.valve);
|
|
919
921
|
this.valve?.addCommandHandler('identify', async ({ request: { identifyTime } }) => {
|
|
920
922
|
this.valve?.log.info(`Command identify called identifyTime:${identifyTime}`);
|
|
@@ -1103,7 +1105,8 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
|
|
|
1103
1105
|
.createDefaultPowerSourceRechargeableBatteryClusterServer()
|
|
1104
1106
|
.createDefaultIdentifyClusterServer()
|
|
1105
1107
|
.createDefaultBooleanStateClusterServer(false)
|
|
1106
|
-
.createDefaultBooleanStateConfigurationClusterServer()
|
|
1108
|
+
.createDefaultBooleanStateConfigurationClusterServer()
|
|
1109
|
+
.addRequiredClusterServers();
|
|
1107
1110
|
this.rain = await this.addDevice(this.rain);
|
|
1108
1111
|
this.smokeCo = new MatterbridgeEndpoint([smokeCoAlarm, bridgedNode, powerSource], { id: 'SmokeCo alarm sensor' }, this.config.debug)
|
|
1109
1112
|
.createDefaultBridgedDeviceBasicInformationClusterServer('SmokeCo alarm sensor', 'SCA00037', 0xfff1, 'Matterbridge', 'Matterbridge SmokeCo Sensor')
|
|
@@ -1144,7 +1147,6 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
|
|
|
1144
1147
|
this.airQuality = await this.addDevice(this.airQuality);
|
|
1145
1148
|
this.momentarySwitch = new MatterbridgeEndpoint([bridgedNode, powerSource], { id: 'Momentary switch composed' }, this.config.debug)
|
|
1146
1149
|
.createDefaultBridgedDeviceBasicInformationClusterServer('Momentary switch', 'MOS00041', 0xfff1, 'Matterbridge', 'Matterbridge MomentarySwitch')
|
|
1147
|
-
.createDefaultIdentifyClusterServer()
|
|
1148
1150
|
.createDefaultPowerSourceReplaceableBatteryClusterServer(50, PowerSource.BatChargeLevel.Ok, 2900, 'CR2450', 1);
|
|
1149
1151
|
this.momentarySwitch
|
|
1150
1152
|
.addChildDeviceType('Momentary switch 1', [genericSwitch], {
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "matterbridge-example-dynamic-platform",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.12",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "matterbridge-example-dynamic-platform",
|
|
9
|
-
"version": "2.0.
|
|
9
|
+
"version": "2.0.12",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"node-ansi-logger": "3.2.0",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "matterbridge-example-dynamic-platform",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.12",
|
|
4
4
|
"description": "Matterbridge dynamic plugin",
|
|
5
5
|
"author": "https://github.com/Luligu",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"node-persist-manager": "2.0.1"
|
|
72
72
|
},
|
|
73
73
|
"overrides": {
|
|
74
|
-
"eslint": "10.0.
|
|
74
|
+
"eslint": "10.0.2",
|
|
75
75
|
"@eslint/js": "10.0.1"
|
|
76
76
|
}
|
|
77
77
|
}
|