matterbridge-example-dynamic-platform 1.3.7-dev-20250730-3e59229 → 1.3.7-dev-20250801-09a1219
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 +8 -1
- package/dist/platform.js +31 -9
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
@@ -23,14 +23,21 @@ If you like this project and find it useful, please consider giving it a star on
|
|
23
23
|
<img src="bmc-button.svg" alt="Buy me a coffee" width="120">
|
24
24
|
</a>
|
25
25
|
|
26
|
-
## [1.3.7] - 2025-
|
26
|
+
## [1.3.7] - 2025-08-01
|
27
27
|
|
28
28
|
### Added
|
29
29
|
|
30
|
+
- [airquality]: Added support of Concentration Measurements for Home app.
|
31
|
+
|
30
32
|
### Changed
|
31
33
|
|
32
34
|
- [package]: Updated dependencies.
|
33
35
|
|
36
|
+
### Fixed
|
37
|
+
|
38
|
+
- [platform]: Fixed missed softwareVersion and hardwareVersion. Thanks Tamer.
|
39
|
+
- [platform]: Fixed missed BridgedDeviceBasicInformation cluster for single class devices. Thanks Tamer.
|
40
|
+
|
34
41
|
<a href="https://www.buymeacoffee.com/luligugithub">
|
35
42
|
<img src="bmc-button.svg" alt="Buy me a coffee" width="80">
|
36
43
|
</a>
|
package/dist/platform.js
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
import { MatterbridgeEndpoint, MatterbridgeDynamicPlatform, airQualitySensor, bridgedNode, colorTemperatureLight, coverDevice, dimmableLight, doorLockDevice, fanDevice, flowSensor, humiditySensor, onOffLight, onOffOutlet, onOffSwitch, powerSource, rainSensor, smokeCoAlarm, temperatureSensor, thermostatDevice, waterFreezeDetector, waterLeakDetector, airPurifier, pumpDevice, waterValve, genericSwitch, airConditioner, cooktop, microwaveOven, oven, refrigerator, onOffMountedSwitch, dimmableMountedSwitch, extendedColorLight, } from 'matterbridge';
|
2
2
|
import { RoboticVacuumCleaner, LaundryWasher, WaterHeater, Evse, SolarPower, BatteryStorage, LaundryDryer, HeatPump, Dishwasher, ExtractorHood } from 'matterbridge/devices';
|
3
|
-
import { isValidBoolean, isValidNumber } from 'matterbridge/utils';
|
3
|
+
import { isValidBoolean, isValidNumber, isValidString } from 'matterbridge/utils';
|
4
4
|
import { debugStringify } from 'matterbridge/logger';
|
5
|
-
import { AreaNamespaceTag, LocationTag, NumberTag, PositionTag, SwitchesTag } from 'matterbridge/matter';
|
6
|
-
import { PowerSource, BooleanState, OnOff, LevelControl, AirQuality, CarbonDioxideConcentrationMeasurement, CarbonMonoxideConcentrationMeasurement, FlowMeasurement, ColorControl, DoorLock, FanControl, FormaldehydeConcentrationMeasurement, NitrogenDioxideConcentrationMeasurement, OzoneConcentrationMeasurement, Pm10ConcentrationMeasurement, Pm1ConcentrationMeasurement, Pm25ConcentrationMeasurement, RadonConcentrationMeasurement, RelativeHumidityMeasurement, RelativeHumidityMeasurementCluster, SmokeCoAlarm, TemperatureMeasurement, Thermostat, ThermostatCluster, TotalVolatileOrganicCompoundsConcentrationMeasurement, WindowCovering, EnergyEvseMode, EnergyEvse, RvcRunMode, RvcCleanMode, } from 'matterbridge/matter/clusters';
|
5
|
+
import { AreaNamespaceTag, LocationTag, NumberTag, PositionTag, SwitchesTag, UINT16_MAX, UINT32_MAX } from 'matterbridge/matter';
|
6
|
+
import { PowerSource, BooleanState, OnOff, LevelControl, AirQuality, CarbonDioxideConcentrationMeasurement, CarbonMonoxideConcentrationMeasurement, FlowMeasurement, ColorControl, DoorLock, FanControl, FormaldehydeConcentrationMeasurement, NitrogenDioxideConcentrationMeasurement, OzoneConcentrationMeasurement, Pm10ConcentrationMeasurement, Pm1ConcentrationMeasurement, Pm25ConcentrationMeasurement, RadonConcentrationMeasurement, RelativeHumidityMeasurement, RelativeHumidityMeasurementCluster, SmokeCoAlarm, TemperatureMeasurement, Thermostat, ThermostatCluster, TotalVolatileOrganicCompoundsConcentrationMeasurement, WindowCovering, EnergyEvseMode, EnergyEvse, RvcRunMode, RvcCleanMode, ConcentrationMeasurement, Descriptor, BridgedDeviceBasicInformation, } from 'matterbridge/matter/clusters';
|
7
7
|
import { Appliances } from './appliances.js';
|
8
8
|
export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatform {
|
9
9
|
switch;
|
@@ -882,12 +882,12 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
|
|
882
882
|
.createDefaultCarbonDioxideConcentrationMeasurementClusterServer(400)
|
883
883
|
.createDefaultNitrogenDioxideConcentrationMeasurementClusterServer(1)
|
884
884
|
.createDefaultOzoneConcentrationMeasurementClusterServer(1)
|
885
|
-
.createDefaultFormaldehydeConcentrationMeasurementClusterServer(1)
|
886
|
-
.createDefaultPm1ConcentrationMeasurementClusterServer(100)
|
887
|
-
.createDefaultPm25ConcentrationMeasurementClusterServer(100)
|
888
|
-
.createDefaultPm10ConcentrationMeasurementClusterServer(100)
|
889
|
-
.createDefaultRadonConcentrationMeasurementClusterServer(100)
|
890
|
-
.createDefaultTvocMeasurementClusterServer(100);
|
885
|
+
.createDefaultFormaldehydeConcentrationMeasurementClusterServer(1, ConcentrationMeasurement.MeasurementUnit.Ugm3)
|
886
|
+
.createDefaultPm1ConcentrationMeasurementClusterServer(100, ConcentrationMeasurement.MeasurementUnit.Ugm3)
|
887
|
+
.createDefaultPm25ConcentrationMeasurementClusterServer(100, ConcentrationMeasurement.MeasurementUnit.Ugm3)
|
888
|
+
.createDefaultPm10ConcentrationMeasurementClusterServer(100, ConcentrationMeasurement.MeasurementUnit.Ugm3)
|
889
|
+
.createDefaultRadonConcentrationMeasurementClusterServer(100, ConcentrationMeasurement.MeasurementUnit.Ugm3)
|
890
|
+
.createDefaultTvocMeasurementClusterServer(100, ConcentrationMeasurement.MeasurementUnit.Ugm3);
|
891
891
|
this.airQuality = await this.addDevice(this.airQuality);
|
892
892
|
this.momentarySwitch = new MatterbridgeEndpoint([bridgedNode, powerSource], { uniqueStorageKey: 'Momentary switch composed' }, this.config.debug)
|
893
893
|
.createDefaultBridgedDeviceBasicInformationClusterServer('Momentary switch (Top-1 Middle-2 Bottom-3)', 'serial_947942331225', 0xfff1, 'Matterbridge', 'Matterbridge MomentarySwitch')
|
@@ -1424,6 +1424,28 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
|
|
1424
1424
|
device.softwareVersionString = this.version === '' ? 'Unknown' : this.version;
|
1425
1425
|
device.hardwareVersion = parseInt(this.matterbridge.matterbridgeVersion.replace(/\D/g, ''));
|
1426
1426
|
device.hardwareVersionString = this.matterbridge.matterbridgeVersion;
|
1427
|
+
device.softwareVersion = isValidNumber(device.softwareVersion, 0, UINT32_MAX) ? device.softwareVersion : undefined;
|
1428
|
+
device.softwareVersionString = isValidString(device.softwareVersionString) ? device.softwareVersionString.slice(0, 64) : undefined;
|
1429
|
+
device.hardwareVersion = isValidNumber(device.hardwareVersion, 0, UINT16_MAX) ? device.hardwareVersion : undefined;
|
1430
|
+
device.hardwareVersionString = isValidString(device.hardwareVersionString) ? device.hardwareVersionString.slice(0, 64) : undefined;
|
1431
|
+
const options = device.getClusterServerOptions(BridgedDeviceBasicInformation.Cluster.id);
|
1432
|
+
if (options) {
|
1433
|
+
options.softwareVersion = device.softwareVersion || 1;
|
1434
|
+
options.softwareVersionString = device.softwareVersionString || '1.0.0';
|
1435
|
+
options.hardwareVersion = device.hardwareVersion || 1;
|
1436
|
+
options.hardwareVersionString = device.hardwareVersionString || '1.0.0';
|
1437
|
+
}
|
1438
|
+
if (device.mode === undefined && !device.deviceTypes.has(bridgedNode.code)) {
|
1439
|
+
device.deviceTypes.set(bridgedNode.code, bridgedNode);
|
1440
|
+
const options = device.getClusterServerOptions(Descriptor.Cluster.id);
|
1441
|
+
if (options) {
|
1442
|
+
const deviceTypeList = options.deviceTypeList;
|
1443
|
+
if (!deviceTypeList.find((dt) => dt.deviceType === bridgedNode.code)) {
|
1444
|
+
deviceTypeList.push({ deviceType: bridgedNode.code, revision: bridgedNode.revision });
|
1445
|
+
}
|
1446
|
+
}
|
1447
|
+
device.createDefaultBridgedDeviceBasicInformationClusterServer(device.deviceName, device.serialNumber, device.vendorId, device.vendorName, device.productName, device.softwareVersion, device.softwareVersionString, device.hardwareVersion, device.hardwareVersionString);
|
1448
|
+
}
|
1427
1449
|
await this.registerDevice(device);
|
1428
1450
|
this.bridgedDevices.set(device.deviceName, device);
|
1429
1451
|
return device;
|
package/npm-shrinkwrap.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "matterbridge-example-dynamic-platform",
|
3
|
-
"version": "1.3.7-dev-
|
3
|
+
"version": "1.3.7-dev-20250801-09a1219",
|
4
4
|
"lockfileVersion": 3,
|
5
5
|
"requires": true,
|
6
6
|
"packages": {
|
7
7
|
"": {
|
8
8
|
"name": "matterbridge-example-dynamic-platform",
|
9
|
-
"version": "1.3.7-dev-
|
9
|
+
"version": "1.3.7-dev-20250801-09a1219",
|
10
10
|
"license": "Apache-2.0",
|
11
11
|
"dependencies": {
|
12
12
|
"node-ansi-logger": "3.1.1",
|
package/package.json
CHANGED