matterbridge-example-dynamic-platform 1.3.7-dev-20250801-c8f0e36 → 1.3.7
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 +6 -1
- package/dist/platform.js +25 -3
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
@@ -23,7 +23,7 @@ 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
|
|
@@ -33,6 +33,11 @@ If you like this project and find it useful, please consider giving it a star on
|
|
33
33
|
|
34
34
|
- [package]: Updated dependencies.
|
35
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
|
+
|
36
41
|
<a href="https://www.buymeacoffee.com/luligugithub">
|
37
42
|
<img src="bmc-button.svg" alt="Buy me a coffee" width="80">
|
38
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, ConcentrationMeasurement, } 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;
|
@@ -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
|
3
|
+
"version": "1.3.7",
|
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
|
9
|
+
"version": "1.3.7",
|
10
10
|
"license": "Apache-2.0",
|
11
11
|
"dependencies": {
|
12
12
|
"node-ansi-logger": "3.1.1",
|