matterbridge 3.3.8 → 3.3.9-dev-20251118-930cfdb
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 +18 -0
- package/README-DEV.md +20 -25
- package/dist/broadcastServer.js +1 -93
- package/dist/broadcastServerTypes.js +0 -24
- package/dist/cli.js +1 -97
- package/dist/cliEmitter.js +0 -37
- package/dist/cliHistory.js +0 -38
- package/dist/clusters/export.js +0 -2
- package/dist/defaultConfigSchema.js +0 -24
- package/dist/deviceManager.js +1 -105
- package/dist/devices/airConditioner.js +0 -57
- package/dist/devices/batteryStorage.js +1 -48
- package/dist/devices/cooktop.js +0 -55
- package/dist/devices/dishwasher.js +0 -57
- package/dist/devices/evse.js +10 -74
- package/dist/devices/export.js +0 -5
- package/dist/devices/extractorHood.js +0 -43
- package/dist/devices/heatPump.js +2 -50
- package/dist/devices/laundryDryer.js +3 -62
- package/dist/devices/laundryWasher.js +4 -70
- package/dist/devices/microwaveOven.js +5 -88
- package/dist/devices/oven.js +0 -85
- package/dist/devices/refrigerator.js +0 -102
- package/dist/devices/roboticVacuumCleaner.js +9 -100
- package/dist/devices/solarPower.js +0 -38
- package/dist/devices/speaker.js +0 -84
- package/dist/devices/temperatureControl.js +3 -24
- package/dist/devices/waterHeater.js +2 -82
- package/dist/dgram/coap.js +13 -126
- package/dist/dgram/dgram.js +2 -114
- package/dist/dgram/mb_coap.js +3 -41
- package/dist/dgram/mb_mdns.js +15 -80
- package/dist/dgram/mdns.js +137 -299
- package/dist/dgram/multicast.js +1 -62
- package/dist/dgram/unicast.js +0 -54
- package/dist/frontend.js +39 -454
- package/dist/frontendTypes.js +0 -45
- package/dist/helpers.js +0 -53
- package/dist/index.js +0 -25
- package/dist/jestutils/export.js +0 -1
- package/dist/jestutils/jestHelpers.js +104 -278
- package/dist/logger/export.js +0 -1
- package/dist/matter/behaviors.js +0 -2
- package/dist/matter/clusters.js +0 -2
- package/dist/matter/devices.js +0 -2
- package/dist/matter/endpoints.js +0 -2
- package/dist/matter/export.js +0 -3
- package/dist/matter/types.js +0 -3
- package/dist/matterbridge.js +51 -792
- package/dist/matterbridgeAccessoryPlatform.js +0 -38
- package/dist/matterbridgeBehaviors.js +5 -68
- package/dist/matterbridgeDeviceTypes.js +14 -635
- package/dist/matterbridgeDynamicPlatform.js +0 -38
- package/dist/matterbridgeEndpoint.js +82 -1445
- package/dist/matterbridgeEndpointHelpers.js +21 -483
- package/dist/matterbridgeEndpointTypes.js +0 -25
- package/dist/matterbridgePlatform.js +1 -354
- package/dist/matterbridgeTypes.js +0 -26
- package/dist/pluginManager.js +11 -346
- package/dist/shelly.js +7 -168
- package/dist/storage/export.js +0 -1
- package/dist/update.js +0 -69
- package/dist/utils/colorUtils.js +2 -97
- package/dist/utils/commandLine.js +0 -60
- package/dist/utils/copyDirectory.js +1 -38
- package/dist/utils/createDirectory.js +0 -33
- package/dist/utils/createZip.js +2 -47
- package/dist/utils/deepCopy.js +0 -39
- package/dist/utils/deepEqual.js +1 -72
- package/dist/utils/error.js +0 -41
- package/dist/utils/export.js +0 -1
- package/dist/utils/format.js +0 -49
- package/dist/utils/hex.js +0 -124
- package/dist/utils/inspector.js +1 -69
- package/dist/utils/isvalid.js +0 -101
- package/dist/utils/network.js +5 -96
- package/dist/utils/spawn.js +0 -71
- package/dist/utils/tracker.js +1 -64
- package/dist/utils/wait.js +8 -60
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -2
- package/dist/broadcastServer.d.ts +0 -115
- package/dist/broadcastServer.d.ts.map +0 -1
- package/dist/broadcastServer.js.map +0 -1
- package/dist/broadcastServerTypes.d.ts +0 -806
- package/dist/broadcastServerTypes.d.ts.map +0 -1
- package/dist/broadcastServerTypes.js.map +0 -1
- package/dist/cli.d.ts +0 -30
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/cliEmitter.d.ts +0 -50
- package/dist/cliEmitter.d.ts.map +0 -1
- package/dist/cliEmitter.js.map +0 -1
- package/dist/cliHistory.d.ts +0 -48
- package/dist/cliHistory.d.ts.map +0 -1
- package/dist/cliHistory.js.map +0 -1
- package/dist/clusters/export.d.ts +0 -2
- package/dist/clusters/export.d.ts.map +0 -1
- package/dist/clusters/export.js.map +0 -1
- package/dist/defaultConfigSchema.d.ts +0 -28
- package/dist/defaultConfigSchema.d.ts.map +0 -1
- package/dist/defaultConfigSchema.js.map +0 -1
- package/dist/deviceManager.d.ts +0 -128
- package/dist/deviceManager.d.ts.map +0 -1
- package/dist/deviceManager.js.map +0 -1
- package/dist/devices/airConditioner.d.ts +0 -98
- package/dist/devices/airConditioner.d.ts.map +0 -1
- package/dist/devices/airConditioner.js.map +0 -1
- package/dist/devices/batteryStorage.d.ts +0 -48
- package/dist/devices/batteryStorage.d.ts.map +0 -1
- package/dist/devices/batteryStorage.js.map +0 -1
- package/dist/devices/cooktop.d.ts +0 -60
- package/dist/devices/cooktop.d.ts.map +0 -1
- package/dist/devices/cooktop.js.map +0 -1
- package/dist/devices/dishwasher.d.ts +0 -71
- package/dist/devices/dishwasher.d.ts.map +0 -1
- package/dist/devices/dishwasher.js.map +0 -1
- package/dist/devices/evse.d.ts +0 -76
- package/dist/devices/evse.d.ts.map +0 -1
- package/dist/devices/evse.js.map +0 -1
- package/dist/devices/export.d.ts +0 -17
- package/dist/devices/export.d.ts.map +0 -1
- package/dist/devices/export.js.map +0 -1
- package/dist/devices/extractorHood.d.ts +0 -46
- package/dist/devices/extractorHood.d.ts.map +0 -1
- package/dist/devices/extractorHood.js.map +0 -1
- package/dist/devices/heatPump.d.ts +0 -47
- package/dist/devices/heatPump.d.ts.map +0 -1
- package/dist/devices/heatPump.js.map +0 -1
- package/dist/devices/laundryDryer.d.ts +0 -67
- package/dist/devices/laundryDryer.d.ts.map +0 -1
- package/dist/devices/laundryDryer.js.map +0 -1
- package/dist/devices/laundryWasher.d.ts +0 -81
- package/dist/devices/laundryWasher.d.ts.map +0 -1
- package/dist/devices/laundryWasher.js.map +0 -1
- package/dist/devices/microwaveOven.d.ts +0 -168
- package/dist/devices/microwaveOven.d.ts.map +0 -1
- package/dist/devices/microwaveOven.js.map +0 -1
- package/dist/devices/oven.d.ts +0 -105
- package/dist/devices/oven.d.ts.map +0 -1
- package/dist/devices/oven.js.map +0 -1
- package/dist/devices/refrigerator.d.ts +0 -118
- package/dist/devices/refrigerator.d.ts.map +0 -1
- package/dist/devices/refrigerator.js.map +0 -1
- package/dist/devices/roboticVacuumCleaner.d.ts +0 -112
- package/dist/devices/roboticVacuumCleaner.d.ts.map +0 -1
- package/dist/devices/roboticVacuumCleaner.js.map +0 -1
- package/dist/devices/solarPower.d.ts +0 -40
- package/dist/devices/solarPower.d.ts.map +0 -1
- package/dist/devices/solarPower.js.map +0 -1
- package/dist/devices/speaker.d.ts +0 -87
- package/dist/devices/speaker.d.ts.map +0 -1
- package/dist/devices/speaker.js.map +0 -1
- package/dist/devices/temperatureControl.d.ts +0 -166
- package/dist/devices/temperatureControl.d.ts.map +0 -1
- package/dist/devices/temperatureControl.js.map +0 -1
- package/dist/devices/waterHeater.d.ts +0 -111
- package/dist/devices/waterHeater.d.ts.map +0 -1
- package/dist/devices/waterHeater.js.map +0 -1
- package/dist/dgram/coap.d.ts +0 -205
- package/dist/dgram/coap.d.ts.map +0 -1
- package/dist/dgram/coap.js.map +0 -1
- package/dist/dgram/dgram.d.ts +0 -141
- package/dist/dgram/dgram.d.ts.map +0 -1
- package/dist/dgram/dgram.js.map +0 -1
- package/dist/dgram/mb_coap.d.ts +0 -24
- package/dist/dgram/mb_coap.d.ts.map +0 -1
- package/dist/dgram/mb_coap.js.map +0 -1
- package/dist/dgram/mb_mdns.d.ts +0 -24
- package/dist/dgram/mb_mdns.d.ts.map +0 -1
- package/dist/dgram/mb_mdns.js.map +0 -1
- package/dist/dgram/mdns.d.ts +0 -290
- package/dist/dgram/mdns.d.ts.map +0 -1
- package/dist/dgram/mdns.js.map +0 -1
- package/dist/dgram/multicast.d.ts +0 -67
- package/dist/dgram/multicast.d.ts.map +0 -1
- package/dist/dgram/multicast.js.map +0 -1
- package/dist/dgram/unicast.d.ts +0 -56
- package/dist/dgram/unicast.d.ts.map +0 -1
- package/dist/dgram/unicast.js.map +0 -1
- package/dist/frontend.d.ts +0 -238
- package/dist/frontend.d.ts.map +0 -1
- package/dist/frontend.js.map +0 -1
- package/dist/frontendTypes.d.ts +0 -529
- package/dist/frontendTypes.d.ts.map +0 -1
- package/dist/frontendTypes.js.map +0 -1
- package/dist/helpers.d.ts +0 -48
- package/dist/helpers.d.ts.map +0 -1
- package/dist/helpers.js.map +0 -1
- package/dist/index.d.ts +0 -34
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/jestutils/export.d.ts +0 -2
- package/dist/jestutils/export.d.ts.map +0 -1
- package/dist/jestutils/export.js.map +0 -1
- package/dist/jestutils/jestHelpers.d.ts +0 -250
- package/dist/jestutils/jestHelpers.d.ts.map +0 -1
- package/dist/jestutils/jestHelpers.js.map +0 -1
- package/dist/logger/export.d.ts +0 -2
- package/dist/logger/export.d.ts.map +0 -1
- package/dist/logger/export.js.map +0 -1
- package/dist/matter/behaviors.d.ts +0 -2
- package/dist/matter/behaviors.d.ts.map +0 -1
- package/dist/matter/behaviors.js.map +0 -1
- package/dist/matter/clusters.d.ts +0 -2
- package/dist/matter/clusters.d.ts.map +0 -1
- package/dist/matter/clusters.js.map +0 -1
- package/dist/matter/devices.d.ts +0 -2
- package/dist/matter/devices.d.ts.map +0 -1
- package/dist/matter/devices.js.map +0 -1
- package/dist/matter/endpoints.d.ts +0 -2
- package/dist/matter/endpoints.d.ts.map +0 -1
- package/dist/matter/endpoints.js.map +0 -1
- package/dist/matter/export.d.ts +0 -5
- package/dist/matter/export.d.ts.map +0 -1
- package/dist/matter/export.js.map +0 -1
- package/dist/matter/types.d.ts +0 -3
- package/dist/matter/types.d.ts.map +0 -1
- package/dist/matter/types.js.map +0 -1
- package/dist/matterbridge.d.ts +0 -469
- package/dist/matterbridge.d.ts.map +0 -1
- package/dist/matterbridge.js.map +0 -1
- package/dist/matterbridgeAccessoryPlatform.d.ts +0 -41
- package/dist/matterbridgeAccessoryPlatform.d.ts.map +0 -1
- package/dist/matterbridgeAccessoryPlatform.js.map +0 -1
- package/dist/matterbridgeBehaviors.d.ts +0 -2404
- package/dist/matterbridgeBehaviors.d.ts.map +0 -1
- package/dist/matterbridgeBehaviors.js.map +0 -1
- package/dist/matterbridgeDeviceTypes.d.ts +0 -698
- package/dist/matterbridgeDeviceTypes.d.ts.map +0 -1
- package/dist/matterbridgeDeviceTypes.js.map +0 -1
- package/dist/matterbridgeDynamicPlatform.d.ts +0 -41
- package/dist/matterbridgeDynamicPlatform.d.ts.map +0 -1
- package/dist/matterbridgeDynamicPlatform.js.map +0 -1
- package/dist/matterbridgeEndpoint.d.ts +0 -1490
- package/dist/matterbridgeEndpoint.d.ts.map +0 -1
- package/dist/matterbridgeEndpoint.js.map +0 -1
- package/dist/matterbridgeEndpointHelpers.d.ts +0 -787
- package/dist/matterbridgeEndpointHelpers.d.ts.map +0 -1
- package/dist/matterbridgeEndpointHelpers.js.map +0 -1
- package/dist/matterbridgeEndpointTypes.d.ts +0 -197
- package/dist/matterbridgeEndpointTypes.d.ts.map +0 -1
- package/dist/matterbridgeEndpointTypes.js.map +0 -1
- package/dist/matterbridgePlatform.d.ts +0 -415
- package/dist/matterbridgePlatform.d.ts.map +0 -1
- package/dist/matterbridgePlatform.js.map +0 -1
- package/dist/matterbridgeTypes.d.ts +0 -239
- package/dist/matterbridgeTypes.d.ts.map +0 -1
- package/dist/matterbridgeTypes.js.map +0 -1
- package/dist/pluginManager.d.ts +0 -371
- package/dist/pluginManager.d.ts.map +0 -1
- package/dist/pluginManager.js.map +0 -1
- package/dist/shelly.d.ts +0 -174
- package/dist/shelly.d.ts.map +0 -1
- package/dist/shelly.js.map +0 -1
- package/dist/storage/export.d.ts +0 -2
- package/dist/storage/export.d.ts.map +0 -1
- package/dist/storage/export.js.map +0 -1
- package/dist/update.d.ts +0 -75
- package/dist/update.d.ts.map +0 -1
- package/dist/update.js.map +0 -1
- package/dist/utils/colorUtils.d.ts +0 -101
- package/dist/utils/colorUtils.d.ts.map +0 -1
- package/dist/utils/colorUtils.js.map +0 -1
- package/dist/utils/commandLine.d.ts +0 -66
- package/dist/utils/commandLine.d.ts.map +0 -1
- package/dist/utils/commandLine.js.map +0 -1
- package/dist/utils/copyDirectory.d.ts +0 -33
- package/dist/utils/copyDirectory.d.ts.map +0 -1
- package/dist/utils/copyDirectory.js.map +0 -1
- package/dist/utils/createDirectory.d.ts +0 -34
- package/dist/utils/createDirectory.d.ts.map +0 -1
- package/dist/utils/createDirectory.js.map +0 -1
- package/dist/utils/createZip.d.ts +0 -39
- package/dist/utils/createZip.d.ts.map +0 -1
- package/dist/utils/createZip.js.map +0 -1
- package/dist/utils/deepCopy.d.ts +0 -32
- package/dist/utils/deepCopy.d.ts.map +0 -1
- package/dist/utils/deepCopy.js.map +0 -1
- package/dist/utils/deepEqual.d.ts +0 -54
- package/dist/utils/deepEqual.d.ts.map +0 -1
- package/dist/utils/deepEqual.js.map +0 -1
- package/dist/utils/error.d.ts +0 -44
- package/dist/utils/error.d.ts.map +0 -1
- package/dist/utils/error.js.map +0 -1
- package/dist/utils/export.d.ts +0 -13
- package/dist/utils/export.d.ts.map +0 -1
- package/dist/utils/export.js.map +0 -1
- package/dist/utils/format.d.ts +0 -53
- package/dist/utils/format.d.ts.map +0 -1
- package/dist/utils/format.js.map +0 -1
- package/dist/utils/hex.d.ts +0 -89
- package/dist/utils/hex.d.ts.map +0 -1
- package/dist/utils/hex.js.map +0 -1
- package/dist/utils/inspector.d.ts +0 -87
- package/dist/utils/inspector.d.ts.map +0 -1
- package/dist/utils/inspector.js.map +0 -1
- package/dist/utils/isvalid.d.ts +0 -103
- package/dist/utils/isvalid.d.ts.map +0 -1
- package/dist/utils/isvalid.js.map +0 -1
- package/dist/utils/network.d.ts +0 -101
- package/dist/utils/network.d.ts.map +0 -1
- package/dist/utils/network.js.map +0 -1
- package/dist/utils/spawn.d.ts +0 -35
- package/dist/utils/spawn.d.ts.map +0 -1
- package/dist/utils/spawn.js.map +0 -1
- package/dist/utils/tracker.d.ts +0 -108
- package/dist/utils/tracker.d.ts.map +0 -1
- package/dist/utils/tracker.js.map +0 -1
- package/dist/utils/wait.d.ts +0 -54
- package/dist/utils/wait.d.ts.map +0 -1
- package/dist/utils/wait.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -28,6 +28,24 @@ Advantages:
|
|
|
28
28
|
- individual plugin isolation in childbridge mode;
|
|
29
29
|
- ability to update the plugin in childbridge mode without restarting matterbridge;
|
|
30
30
|
|
|
31
|
+
## [3.3.9] - Not published
|
|
32
|
+
|
|
33
|
+
### Development Breaking Changes
|
|
34
|
+
|
|
35
|
+
Removed the following long deprecated elements:
|
|
36
|
+
|
|
37
|
+
- [platform]: Matterbridge instead of PlatformMatterbridge in the platform constructor (deprecated since 3.0.0).
|
|
38
|
+
- [endpoint]: uniqueStorageKey instead of id in MatterbridgeEndpointOptions (deprecated since months).
|
|
39
|
+
- [endpoint]: endpointId instead of number in MatterbridgeEndpointOptions (deprecated since months).
|
|
40
|
+
|
|
41
|
+
### Changed
|
|
42
|
+
|
|
43
|
+
- [package]: Updated dependencies.
|
|
44
|
+
|
|
45
|
+
<a href="https://www.buymeacoffee.com/luligugithub">
|
|
46
|
+
<img src="bmc-button.svg" alt="Buy me a coffee" width="80">
|
|
47
|
+
</a>
|
|
48
|
+
|
|
31
49
|
## [3.3.8] - 2025-11-15
|
|
32
50
|
|
|
33
51
|
### Development Breaking Changes
|
package/README-DEV.md
CHANGED
|
@@ -199,7 +199,7 @@ The plugin platform type.
|
|
|
199
199
|
The plugin config (loaded before the platform constructor is called and saved after onShutdown() is called).
|
|
200
200
|
Here you can store your plugin configuration (see matterbridge-zigbee2mqtt for example)
|
|
201
201
|
|
|
202
|
-
### constructor(matterbridge:
|
|
202
|
+
### constructor(matterbridge: PlatformMatterbridge, log: AnsiLogger, config: PlatformConfig)
|
|
203
203
|
|
|
204
204
|
The contructor is called when is plugin is loaded.
|
|
205
205
|
|
|
@@ -282,7 +282,7 @@ You create a Matter device with a new instance of MatterbridgeEndpoint(definitio
|
|
|
282
282
|
|
|
283
283
|
In the above example we create a contact sensor device type with also a power source device type feature replaceble battery.
|
|
284
284
|
|
|
285
|
-
All device types are defined in src\matterbridgeDeviceTypes.ts and taken from the 'Matter-1.4-Device-Library-Specification.pdf'.
|
|
285
|
+
All device types are defined in src\matterbridgeDeviceTypes.ts and taken from the 'Matter-1.4.1-Device-Library-Specification.pdf'.
|
|
286
286
|
|
|
287
287
|
All default cluster helpers are available as methods of MatterbridgeEndpoint.
|
|
288
288
|
|
|
@@ -293,12 +293,6 @@ All default cluster helpers are available as methods of MatterbridgeEndpoint.
|
|
|
293
293
|
- @param {string} [id] - The unique storage key for the endpoint. If not provided, a default key will be used.
|
|
294
294
|
- @param {EndpointNumber} [number] - The endpoint number for the endpoint. If not provided, the endpoint will be created with the next available endpoint number.
|
|
295
295
|
|
|
296
|
-
```typescript
|
|
297
|
-
const robot = new RoboticVacuumCleaner('Robot Vacuum', 'RVC1238777820', 'server');
|
|
298
|
-
```
|
|
299
|
-
|
|
300
|
-
In the above example we create a Rvc device type with its own server node.
|
|
301
|
-
|
|
302
296
|
The mode=`server` property of MatterbridgeEndpointOptions, allows to create an independent (not bridged) Matter device with its server node. In this case the bridge mode is not relevant.
|
|
303
297
|
|
|
304
298
|
The mode=`matter` property of MatterbridgeEndpointOptions, allows to create a (not bridged) Matter device that is added to the Matterbridge server node alongside the aggregator.
|
|
@@ -318,50 +312,50 @@ const robot = new RoboticVacuumCleaner('Robot Vacuum', 'RVC1238777820', 'server'
|
|
|
318
312
|
### Chapter 13. Appliances Device Types - Single class device types
|
|
319
313
|
|
|
320
314
|
```typescript
|
|
321
|
-
|
|
315
|
+
const laundryWasher = new LaundryWasher('Laundry Washer', 'LW1234567890');
|
|
322
316
|
```
|
|
323
317
|
|
|
324
318
|
```typescript
|
|
325
|
-
|
|
319
|
+
const laundryDryer = new LaundryDryer('Laundry Dryer', 'LDW1235227890');
|
|
326
320
|
```
|
|
327
321
|
|
|
328
322
|
```typescript
|
|
329
|
-
|
|
323
|
+
const dishwasher = new Dishwasher('Dishwasher', 'DW1234567890');
|
|
330
324
|
```
|
|
331
325
|
|
|
332
326
|
```typescript
|
|
333
|
-
|
|
327
|
+
const extractorHood = new ExtractorHood('Extractor Hood', 'EH1234567893');
|
|
334
328
|
```
|
|
335
329
|
|
|
336
330
|
```typescript
|
|
337
|
-
|
|
331
|
+
const microwaveOven = new MicrowaveOven('Microwave Oven', 'MO1234567893');
|
|
338
332
|
```
|
|
339
333
|
|
|
340
334
|
The Oven is always a composed device. You create the Oven and add one or more cabinet.
|
|
341
335
|
|
|
342
336
|
```typescript
|
|
343
|
-
|
|
344
|
-
|
|
337
|
+
const oven = new Oven('Oven', 'OV1234567890');
|
|
338
|
+
oven.addCabinet('Upper Cabinet', [{ mfgCode: null, namespaceId: PositionTag.Top.namespaceId, tag: PositionTag.Top.tag, label: PositionTag.Top.label }]);
|
|
345
339
|
```
|
|
346
340
|
|
|
347
341
|
The Cooktop is always a composed device. You create the Cooktop and add one or more surface.
|
|
348
342
|
|
|
349
343
|
```typescript
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
344
|
+
const cooktop = new Cooktop('Cooktop', 'CT1234567890');
|
|
345
|
+
cooktop.addSurface('Surface Top Left', [
|
|
346
|
+
{ mfgCode: null, namespaceId: PositionTag.Top.namespaceId, tag: PositionTag.Top.tag, label: PositionTag.Top.label },
|
|
347
|
+
{ mfgCode: null, namespaceId: PositionTag.Left.namespaceId, tag: PositionTag.Left.tag, label: PositionTag.Left.label },
|
|
348
|
+
]);
|
|
355
349
|
```
|
|
356
350
|
|
|
357
351
|
The Refrigerator is always a composed device. You create the Refrigerator and add one or more cabinet.
|
|
358
352
|
|
|
359
353
|
```typescript
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
354
|
+
const refrigerator = new Refrigerator('Refrigerator', 'RE1234567890');
|
|
355
|
+
refrigerator.addCabinet('Refrigerator Top', [
|
|
356
|
+
{ mfgCode: null, namespaceId: PositionTag.Top.namespaceId, tag: PositionTag.Top.tag, label: 'Refrigerator Top' },
|
|
357
|
+
{ mfgCode: null, namespaceId: RefrigeratorTag.Refrigerator.namespaceId, tag: RefrigeratorTag.Refrigerator.tag, label: RefrigeratorTag.Refrigerator.label },
|
|
358
|
+
]);
|
|
365
359
|
```
|
|
366
360
|
|
|
367
361
|
### Chapter 14. Energy Device Types - Single class device types
|
|
@@ -394,6 +388,7 @@ Each plugin has a minimal default config file injected by Matterbridge when it i
|
|
|
394
388
|
{
|
|
395
389
|
name: plugin.name, // i.e. matterbridge-test
|
|
396
390
|
type: plugin.type, // i.e. AccessoryPlatform or DynamicPlatform (on the first run is AnyPlatform cause it is still unknown)
|
|
391
|
+
version: plugin.version,
|
|
397
392
|
debug: false,
|
|
398
393
|
unregisterOnShutdown: false
|
|
399
394
|
}
|
package/dist/broadcastServer.js
CHANGED
|
@@ -1,36 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file contains the BroadcastServer class.
|
|
3
|
-
*
|
|
4
|
-
* @file broadcastServer.ts
|
|
5
|
-
* @author Luca Liguori
|
|
6
|
-
* @created 2025-10-05
|
|
7
|
-
* @version 1.0.2
|
|
8
|
-
* @license Apache-2.0
|
|
9
|
-
*
|
|
10
|
-
* Copyright 2024, 2025, 2026 Luca Liguori.
|
|
11
|
-
*
|
|
12
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
-
* you may not use this file except in compliance with the License.
|
|
14
|
-
* You may obtain a copy of the License at
|
|
15
|
-
*
|
|
16
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
-
*
|
|
18
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
19
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
-
* See the License for the specific language governing permissions and
|
|
22
|
-
* limitations under the License.
|
|
23
|
-
*/
|
|
24
|
-
// eslint-disable-next-line no-console
|
|
25
1
|
if (process.argv.includes('--loader') || process.argv.includes('-loader'))
|
|
26
2
|
console.log('\u001B[32mBroadcastServer loaded.\u001B[40;0m');
|
|
27
3
|
import { EventEmitter } from 'node:events';
|
|
28
4
|
import { BroadcastChannel } from 'node:worker_threads';
|
|
29
5
|
import { debugStringify } from 'node-ansi-logger';
|
|
30
6
|
import { hasParameter } from './utils/commandLine.js';
|
|
31
|
-
/**
|
|
32
|
-
* BroadcastServer class to handle broadcast messages between workers with BroadcastChannel.
|
|
33
|
-
*/
|
|
34
7
|
export class BroadcastServer extends EventEmitter {
|
|
35
8
|
name;
|
|
36
9
|
log;
|
|
@@ -38,13 +11,6 @@ export class BroadcastServer extends EventEmitter {
|
|
|
38
11
|
broadcastChannel;
|
|
39
12
|
debug = hasParameter('debug') || hasParameter('verbose');
|
|
40
13
|
verbose = hasParameter('verbose');
|
|
41
|
-
/**
|
|
42
|
-
* Creates an instance of BroadcastServer.
|
|
43
|
-
*
|
|
44
|
-
* @param {string} name - The name of the broadcast server.
|
|
45
|
-
* @param {AnsiLogger} log - The logger instance to use for logging.
|
|
46
|
-
* @param {string} channel - The channel name for the broadcast. Default is 'broadcast-channel'.
|
|
47
|
-
*/
|
|
48
14
|
constructor(name, log, channel = 'broadcast-channel') {
|
|
49
15
|
super();
|
|
50
16
|
this.name = name;
|
|
@@ -53,72 +19,30 @@ export class BroadcastServer extends EventEmitter {
|
|
|
53
19
|
this.broadcastChannel = new BroadcastChannel(this.channel);
|
|
54
20
|
this.broadcastChannel.onmessage = this.broadcastMessageHandler.bind(this);
|
|
55
21
|
}
|
|
56
|
-
/**
|
|
57
|
-
* Closes the broadcast channel.
|
|
58
|
-
*
|
|
59
|
-
* @returns {void}
|
|
60
|
-
*/
|
|
61
22
|
close() {
|
|
62
|
-
// @ts-expect-error: wrong type definition in node.d.ts
|
|
63
23
|
this.broadcastChannel.onmessage = null;
|
|
64
24
|
this.broadcastChannel.close();
|
|
65
25
|
}
|
|
66
|
-
/**
|
|
67
|
-
* Generates a unique ID with range 100000-999999.
|
|
68
|
-
*
|
|
69
|
-
* @returns {number} - A unique ID between 100000 and 999999
|
|
70
|
-
*/
|
|
71
26
|
getUniqueId() {
|
|
72
|
-
return Math.floor(Math.random() * (999999 - 100000 + 1)) + 100000;
|
|
27
|
+
return Math.floor(Math.random() * (999999 - 100000 + 1)) + 100000;
|
|
73
28
|
}
|
|
74
|
-
/**
|
|
75
|
-
* Type guard to check if a message is a request of a specific type.
|
|
76
|
-
*
|
|
77
|
-
* @param {unknown} msg - The message to check.
|
|
78
|
-
* @param {T} type - The type to check against.
|
|
79
|
-
* @returns {msg is WorkerRequest<T>} True if the message is a request of the specified type.
|
|
80
|
-
*/
|
|
81
29
|
isWorkerRequest(msg, type) {
|
|
82
30
|
return typeof msg === 'object' && msg !== null && 'id' in msg && 'timestamp' in msg && 'type' in msg && msg.type === type && !('response' in msg) && 'src' in msg && 'dst' in msg;
|
|
83
31
|
}
|
|
84
|
-
/**
|
|
85
|
-
* Type guard to check if a message is a response of a specific type.
|
|
86
|
-
*
|
|
87
|
-
* @param {unknown} msg - The message to check.
|
|
88
|
-
* @param {T} type - The type to check against.
|
|
89
|
-
* @returns {msg is WorkerResponse<T>} True if the message is a response of the specified type.
|
|
90
|
-
*/
|
|
91
32
|
isWorkerResponse(msg, type) {
|
|
92
33
|
return typeof msg === 'object' && msg !== null && 'id' in msg && 'timestamp' in msg && 'type' in msg && msg.type === type && 'response' in msg && 'src' in msg && 'dst' in msg;
|
|
93
34
|
}
|
|
94
|
-
/**
|
|
95
|
-
* Handles incoming broadcast messages.
|
|
96
|
-
*
|
|
97
|
-
* @param {MessageEvent} event - The message event containing the broadcast message.
|
|
98
|
-
* @returns {void}
|
|
99
|
-
*/
|
|
100
35
|
broadcastMessageHandler(event) {
|
|
101
36
|
const data = event.data;
|
|
102
37
|
if (this.verbose)
|
|
103
38
|
this.log.debug(`Received broadcast message: ${debugStringify(data)}`);
|
|
104
39
|
this.emit('broadcast_message', data);
|
|
105
40
|
}
|
|
106
|
-
/**
|
|
107
|
-
* Broadcast a message to all workers.
|
|
108
|
-
*
|
|
109
|
-
* @param {WorkerMessage} message - The message to broadcast.
|
|
110
|
-
*/
|
|
111
41
|
broadcast(message) {
|
|
112
42
|
if (this.verbose)
|
|
113
43
|
this.log.debug(`Broadcasting message: ${debugStringify(message)}`);
|
|
114
44
|
this.broadcastChannel.postMessage(message);
|
|
115
45
|
}
|
|
116
|
-
/**
|
|
117
|
-
* Broadcast a request message to all workers.
|
|
118
|
-
*
|
|
119
|
-
* @param {WorkerRequest<T>} message - The typed request message to broadcast.
|
|
120
|
-
* @returns {void}
|
|
121
|
-
*/
|
|
122
46
|
request(message) {
|
|
123
47
|
if (message.id === undefined) {
|
|
124
48
|
message.id = this.getUniqueId();
|
|
@@ -134,12 +58,6 @@ export class BroadcastServer extends EventEmitter {
|
|
|
134
58
|
this.log.debug(`Broadcasting request message: ${debugStringify(message)}`);
|
|
135
59
|
this.broadcastChannel.postMessage(message);
|
|
136
60
|
}
|
|
137
|
-
/**
|
|
138
|
-
* Broadcast a response message to all workers.
|
|
139
|
-
*
|
|
140
|
-
* @param {WorkerResponse<T>} message - The typed response message to broadcast.
|
|
141
|
-
* @returns {void}
|
|
142
|
-
*/
|
|
143
61
|
respond(message) {
|
|
144
62
|
if (message.timestamp === undefined) {
|
|
145
63
|
message.timestamp = Date.now();
|
|
@@ -152,15 +70,6 @@ export class BroadcastServer extends EventEmitter {
|
|
|
152
70
|
this.log.debug(`Broadcasting response message: ${debugStringify(message)}`);
|
|
153
71
|
this.broadcastChannel.postMessage(message);
|
|
154
72
|
}
|
|
155
|
-
/**
|
|
156
|
-
* Fetch data from a worker.
|
|
157
|
-
* It broadcasts a request message and waits for a response with the same id.
|
|
158
|
-
*
|
|
159
|
-
* @param {WorkerRequest<T>} message - The typed request message to broadcast.
|
|
160
|
-
* @param {number} timeout - The timeout in milliseconds to wait for a response. Default is 100ms.
|
|
161
|
-
* @returns {Promise<WorkerResponse<T>>} A promise that resolves with the response from the worker or rejects on timeout.
|
|
162
|
-
* @throws {Error} If the fetch operation times out after 100ms.
|
|
163
|
-
*/
|
|
164
73
|
async fetch(message, timeout = 100) {
|
|
165
74
|
if (message.id === undefined) {
|
|
166
75
|
message.id = this.getUniqueId();
|
|
@@ -189,4 +98,3 @@ export class BroadcastServer extends EventEmitter {
|
|
|
189
98
|
});
|
|
190
99
|
}
|
|
191
100
|
}
|
|
192
|
-
//# sourceMappingURL=broadcastServer.js.map
|
|
@@ -1,25 +1 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file contains the BroadcastServer types.
|
|
3
|
-
*
|
|
4
|
-
* @file broadcastServerTypes.ts
|
|
5
|
-
* @author Luca Liguori
|
|
6
|
-
* @created 2025-10-05
|
|
7
|
-
* @version 1.0.0
|
|
8
|
-
* @license Apache-2.0
|
|
9
|
-
*
|
|
10
|
-
* Copyright 2025, 2026, 2027 Luca Liguori.
|
|
11
|
-
*
|
|
12
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
-
* you may not use this file except in compliance with the License.
|
|
14
|
-
* You may obtain a copy of the License at
|
|
15
|
-
*
|
|
16
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
-
*
|
|
18
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
19
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
-
* See the License for the specific language governing permissions and
|
|
22
|
-
* limitations under the License.
|
|
23
|
-
*/
|
|
24
1
|
export {};
|
|
25
|
-
//# sourceMappingURL=broadcastServerTypes.js.map
|
package/dist/cli.js
CHANGED
|
@@ -1,33 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file contains the CLI entry point of Matterbridge.
|
|
3
|
-
*
|
|
4
|
-
* @file cli.ts
|
|
5
|
-
* @author Luca Liguori
|
|
6
|
-
* @created 2023-12-29
|
|
7
|
-
* @version 3.0.0
|
|
8
|
-
* @license Apache-2.0
|
|
9
|
-
*
|
|
10
|
-
* Copyright 2023, 2024, 2025 Luca Liguori.
|
|
11
|
-
*
|
|
12
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
-
* you may not use this file except in compliance with the License.
|
|
14
|
-
* You may obtain a copy of the License at
|
|
15
|
-
*
|
|
16
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
-
*
|
|
18
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
19
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
-
* See the License for the specific language governing permissions and
|
|
22
|
-
* limitations under the License.
|
|
23
|
-
*/
|
|
24
|
-
/* eslint-disable no-console */
|
|
25
|
-
/* eslint-disable n/no-process-exit */
|
|
26
1
|
if (process.argv.includes('--loader') || process.argv.includes('-loader'))
|
|
27
2
|
console.log('\u001B[32mCli loaded.\u001B[40;0m');
|
|
28
|
-
// AnsiLogger module
|
|
29
3
|
import { AnsiLogger } from 'node-ansi-logger';
|
|
30
|
-
// Cli
|
|
31
4
|
import { cliEmitter } from './cliEmitter.js';
|
|
32
5
|
import { hasParameter, hasAnyParameter } from './utils/commandLine.js';
|
|
33
6
|
import { inspectError } from './utils/error.js';
|
|
@@ -37,10 +10,7 @@ import { formatBytes, formatUptime } from './utils/format.js';
|
|
|
37
10
|
export let instance;
|
|
38
11
|
export const tracker = new Tracker('Cli', false, false);
|
|
39
12
|
export const inspector = new Inspector('Cli', false, false);
|
|
40
|
-
const log = new AnsiLogger({ logName: 'Cli', logTimestampFormat: 4
|
|
41
|
-
/**
|
|
42
|
-
* Starts the CPU and memory tracker.
|
|
43
|
-
*/
|
|
13
|
+
const log = new AnsiLogger({ logName: 'Cli', logTimestampFormat: 4, logLevel: hasParameter('debug') ? "debug" : "info" });
|
|
44
14
|
function startCpuMemoryCheck() {
|
|
45
15
|
log.debug(`Cpu memory check starting...`);
|
|
46
16
|
tracker.start();
|
|
@@ -53,50 +23,26 @@ function startCpuMemoryCheck() {
|
|
|
53
23
|
});
|
|
54
24
|
log.debug(`Cpu memory check started`);
|
|
55
25
|
}
|
|
56
|
-
/**
|
|
57
|
-
* Stops the CPU and memory tracker.
|
|
58
|
-
*/
|
|
59
26
|
function stopCpuMemoryCheck() {
|
|
60
27
|
log.debug(`Cpu memory check stopping...`);
|
|
61
28
|
tracker.stop();
|
|
62
29
|
tracker.removeAllListeners();
|
|
63
30
|
log.debug(`Cpu memory check stopped`);
|
|
64
31
|
}
|
|
65
|
-
/**
|
|
66
|
-
* Starts the inspector for heap sampling.
|
|
67
|
-
* This function is called when the -inspect parameter is passed.
|
|
68
|
-
*/
|
|
69
32
|
async function startInspector() {
|
|
70
33
|
await inspector.start();
|
|
71
34
|
}
|
|
72
|
-
/**
|
|
73
|
-
* Stops the heap sampling and saves the profile.
|
|
74
|
-
* This function is called when the -inspect parameter is passed.
|
|
75
|
-
*/
|
|
76
35
|
async function stopInspector() {
|
|
77
36
|
await inspector.stop();
|
|
78
37
|
}
|
|
79
|
-
/**
|
|
80
|
-
* Takes a heap snapshot
|
|
81
|
-
*/
|
|
82
38
|
async function takeHeapSnapshot() {
|
|
83
39
|
await inspector.takeHeapSnapshot();
|
|
84
40
|
}
|
|
85
|
-
/**
|
|
86
|
-
* Triggers a manual garbage collection.
|
|
87
|
-
* This function is working only if the node process is started with --expose_gc.
|
|
88
|
-
*
|
|
89
|
-
* @remarks To check the effect of the garbage collection, add also --trace_gc or --trace_gc_verbose.
|
|
90
|
-
*/
|
|
91
41
|
function triggerGarbageCollection() {
|
|
92
42
|
inspector.runGarbageCollector();
|
|
93
43
|
}
|
|
94
|
-
/**
|
|
95
|
-
* Registers event handlers for the Matterbridge instance.
|
|
96
|
-
*/
|
|
97
44
|
function registerHandlers() {
|
|
98
45
|
log.debug('Registering event handlers...');
|
|
99
|
-
// istanbul ignore next cause registerHandlers is called only if instance is defined
|
|
100
46
|
if (!instance)
|
|
101
47
|
return;
|
|
102
48
|
instance.on('shutdown', () => shutdown());
|
|
@@ -110,9 +56,6 @@ function registerHandlers() {
|
|
|
110
56
|
instance.on('triggergarbagecollection', () => triggerGarbageCollection());
|
|
111
57
|
log.debug('Registered event handlers');
|
|
112
58
|
}
|
|
113
|
-
/**
|
|
114
|
-
* Shuts down the Matterbridge instance and exits the process.
|
|
115
|
-
*/
|
|
116
59
|
async function shutdown() {
|
|
117
60
|
log.debug('Received shutdown event, exiting...');
|
|
118
61
|
if (hasParameter('inspect'))
|
|
@@ -121,56 +64,26 @@ async function shutdown() {
|
|
|
121
64
|
cliEmitter.emit('shutdown');
|
|
122
65
|
process.exit(0);
|
|
123
66
|
}
|
|
124
|
-
/**
|
|
125
|
-
* Restarts the Matterbridge instance.
|
|
126
|
-
*/
|
|
127
67
|
async function restart() {
|
|
128
68
|
log.debug('Received restart event, loading...');
|
|
129
69
|
const { Matterbridge } = await import('./matterbridge.js');
|
|
130
70
|
instance = await Matterbridge.loadInstance(true);
|
|
131
71
|
registerHandlers();
|
|
132
72
|
}
|
|
133
|
-
/**
|
|
134
|
-
* Updates the Matterbridge instance.
|
|
135
|
-
*/
|
|
136
73
|
async function update() {
|
|
137
74
|
log.debug('Received update event, updating...');
|
|
138
|
-
// TODO: Implement update logic outside of matterbridge
|
|
139
75
|
const { Matterbridge } = await import('./matterbridge.js');
|
|
140
76
|
instance = await Matterbridge.loadInstance(true);
|
|
141
77
|
registerHandlers();
|
|
142
78
|
}
|
|
143
|
-
/**
|
|
144
|
-
* Starts the CPU and memory check when the -startmemorycheck parameter is passed.
|
|
145
|
-
*/
|
|
146
79
|
function start() {
|
|
147
80
|
log.debug('Received start memory check event');
|
|
148
81
|
startCpuMemoryCheck();
|
|
149
82
|
}
|
|
150
|
-
/**
|
|
151
|
-
* Stops the CPU and memory check when the -stopmemorycheck parameter is passed.
|
|
152
|
-
*/
|
|
153
83
|
function stop() {
|
|
154
84
|
log.debug('Received stop memory check event');
|
|
155
85
|
stopCpuMemoryCheck();
|
|
156
86
|
}
|
|
157
|
-
/**
|
|
158
|
-
* Main function that initializes the Matterbridge instance and starts the CLI.
|
|
159
|
-
*
|
|
160
|
-
* @remarks
|
|
161
|
-
*
|
|
162
|
-
* Debug parameters:
|
|
163
|
-
*
|
|
164
|
-
* --debug enables debug logging.
|
|
165
|
-
*
|
|
166
|
-
* --verbose enables verbose logging.
|
|
167
|
-
*
|
|
168
|
-
* --loader enables loader logging.
|
|
169
|
-
*
|
|
170
|
-
* --inspect enables the inspector for heap sampling.
|
|
171
|
-
*
|
|
172
|
-
* --snapshotinterval <milliseconds> can be used to set the heap snapshot interval. Default is undefined. Minimum is 30000 ms.
|
|
173
|
-
*/
|
|
174
87
|
async function main() {
|
|
175
88
|
log.debug(`Cli main() started`);
|
|
176
89
|
startCpuMemoryCheck();
|
|
@@ -180,7 +93,6 @@ async function main() {
|
|
|
180
93
|
const { Matterbridge } = await import('./matterbridge.js');
|
|
181
94
|
instance = await Matterbridge.loadInstance(true);
|
|
182
95
|
log.debug(`***Matterbridge.loadInstance(true) exited`);
|
|
183
|
-
// Check if the instance needs to shut down from parseCommandLine()
|
|
184
96
|
if (!instance || instance.shutdown) {
|
|
185
97
|
shutdown();
|
|
186
98
|
}
|
|
@@ -198,18 +110,11 @@ main().catch((error) => {
|
|
|
198
110
|
inspectError(log, 'Matterbridge.loadInstance() failed with error', error);
|
|
199
111
|
shutdown();
|
|
200
112
|
});
|
|
201
|
-
/**
|
|
202
|
-
* Displays the version.
|
|
203
|
-
*/
|
|
204
113
|
async function version() {
|
|
205
|
-
// Dynamic JSON import (Node >= 20) with import attributes
|
|
206
114
|
const { default: pkg } = await import('../package.json', { with: { type: 'json' } });
|
|
207
115
|
console.log(`Matterbridge version ${pkg.version}`);
|
|
208
116
|
process.exit(0);
|
|
209
117
|
}
|
|
210
|
-
/**
|
|
211
|
-
* Displays the help.
|
|
212
|
-
*/
|
|
213
118
|
function help() {
|
|
214
119
|
console.log(`
|
|
215
120
|
Usage: matterbridge [options] [command]
|
|
@@ -263,4 +168,3 @@ function help() {
|
|
|
263
168
|
`);
|
|
264
169
|
process.exit(0);
|
|
265
170
|
}
|
|
266
|
-
//# sourceMappingURL=cli.js.map
|
package/dist/cliEmitter.js
CHANGED
|
@@ -1,49 +1,12 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file contains the CLI emitter.
|
|
3
|
-
*
|
|
4
|
-
* @file cliEmitter.ts
|
|
5
|
-
* @author Luca Liguori
|
|
6
|
-
* @created 2025-07-04
|
|
7
|
-
* @version 1.0.2
|
|
8
|
-
* @license Apache-2.0
|
|
9
|
-
*
|
|
10
|
-
* Copyright 2025, 2026, 2027 Luca Liguori.
|
|
11
|
-
*
|
|
12
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
-
* you may not use this file except in compliance with the License.
|
|
14
|
-
* You may obtain a copy of the License at
|
|
15
|
-
*
|
|
16
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
-
*
|
|
18
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
19
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
-
* See the License for the specific language governing permissions and
|
|
22
|
-
* limitations under the License.
|
|
23
|
-
*/
|
|
24
|
-
// eslint-disable-next-line no-console
|
|
25
1
|
if (process.argv.includes('--loader') || process.argv.includes('-loader'))
|
|
26
2
|
console.log('\u001B[32mCli emitter loaded.\u001B[40;0m');
|
|
27
3
|
import { EventEmitter } from 'node:events';
|
|
28
4
|
export const cliEmitter = new EventEmitter();
|
|
29
5
|
export let lastOsCpuUsage = 0;
|
|
30
6
|
export let lastProcessCpuUsage = 0;
|
|
31
|
-
/**
|
|
32
|
-
* Sets the last os CPU usage.
|
|
33
|
-
*
|
|
34
|
-
* @param {number} val - The os CPU usage percentage to set.
|
|
35
|
-
* @returns {void}
|
|
36
|
-
*/
|
|
37
7
|
export function setLastOsCpuUsage(val) {
|
|
38
8
|
lastOsCpuUsage = val;
|
|
39
9
|
}
|
|
40
|
-
/**
|
|
41
|
-
* Sets the last process CPU usage.
|
|
42
|
-
*
|
|
43
|
-
* @param {number} val - The process CPU usage percentage to set.
|
|
44
|
-
* @returns {void}
|
|
45
|
-
*/
|
|
46
10
|
export function setLastProcessCpuUsage(val) {
|
|
47
11
|
lastProcessCpuUsage = val;
|
|
48
12
|
}
|
|
49
|
-
//# sourceMappingURL=cliEmitter.js.map
|
package/dist/cliHistory.js
CHANGED
|
@@ -1,40 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file contains the CLI history page generator.
|
|
3
|
-
*
|
|
4
|
-
* @file cliHistory.ts
|
|
5
|
-
* @author Luca Liguori
|
|
6
|
-
* @created 2025-10-09
|
|
7
|
-
* @version 1.0.1
|
|
8
|
-
* @license Apache-2.0
|
|
9
|
-
*
|
|
10
|
-
* Copyright 2025, 2026, 2027 Luca Liguori.
|
|
11
|
-
*
|
|
12
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
-
* you may not use this file except in compliance with the License.
|
|
14
|
-
* You may obtain a copy of the License at
|
|
15
|
-
*
|
|
16
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
-
*
|
|
18
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
19
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
-
* See the License for the specific language governing permissions and
|
|
22
|
-
* limitations under the License.
|
|
23
|
-
*/
|
|
24
|
-
// eslint-disable-next-line no-console
|
|
25
1
|
if (process.argv.includes('--loader') || process.argv.includes('-loader'))
|
|
26
2
|
console.log('\u001B[32mCli history loaded.\u001B[40;0m');
|
|
27
3
|
import { writeFileSync } from 'node:fs';
|
|
28
4
|
import path from 'node:path';
|
|
29
5
|
import os from 'node:os';
|
|
30
6
|
import { Tracker } from './utils/tracker.js';
|
|
31
|
-
/**
|
|
32
|
-
* Generates a static HTML dashboard displaying CPU and memory history.
|
|
33
|
-
*
|
|
34
|
-
* @param {GenerateHistoryPageOptions} [options] - Optional configuration for output path, page title, and refresh interval.
|
|
35
|
-
*
|
|
36
|
-
* @returns {string | undefined} The absolute path to the generated HTML file, or undefined if no samples exist.
|
|
37
|
-
*/
|
|
38
7
|
export function generateHistoryPage(options = {}) {
|
|
39
8
|
const pageTitle = options.pageTitle ?? 'Matterbridge CPU & Memory History';
|
|
40
9
|
const hostname = options.hostname ?? os.hostname();
|
|
@@ -814,13 +783,6 @@ export function generateHistoryPage(options = {}) {
|
|
|
814
783
|
writeFileSync(outputPath, html, { encoding: 'utf-8' });
|
|
815
784
|
return outputPath;
|
|
816
785
|
}
|
|
817
|
-
/**
|
|
818
|
-
* Escapes HTML special characters to prevent breaking embedded markup.
|
|
819
|
-
*
|
|
820
|
-
* @param {string} input - The string to escape.
|
|
821
|
-
* @returns {string} The escaped string safe for HTML contexts.
|
|
822
|
-
*/
|
|
823
786
|
function escapeHtml(input) {
|
|
824
787
|
return input.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, ''');
|
|
825
788
|
}
|
|
826
|
-
//# sourceMappingURL=cliHistory.js.map
|
package/dist/clusters/export.js
CHANGED
|
@@ -1,26 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file contains the default config for the plugins.
|
|
3
|
-
*
|
|
4
|
-
* @file defaultConfigSchema.ts
|
|
5
|
-
* @author Luca Liguori
|
|
6
|
-
* @created 2024-05-07
|
|
7
|
-
* @version 1.0.1
|
|
8
|
-
* @license Apache-2.0
|
|
9
|
-
*
|
|
10
|
-
* Copyright 2024, 2025, 2026 Luca Liguori.
|
|
11
|
-
*
|
|
12
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
-
* you may not use this file except in compliance with the License.
|
|
14
|
-
* You may obtain a copy of the License at
|
|
15
|
-
*
|
|
16
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
-
*
|
|
18
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
19
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
-
* See the License for the specific language governing permissions and
|
|
22
|
-
* limitations under the License.
|
|
23
|
-
*/
|
|
24
1
|
export const zigbee2mqtt_config = {
|
|
25
2
|
name: 'matterbridge-zigbee2mqtt',
|
|
26
3
|
type: 'DynamicPlatform',
|
|
@@ -82,4 +59,3 @@ export const shelly_config = {
|
|
|
82
59
|
debugWs: false,
|
|
83
60
|
unregisterOnShutdown: false,
|
|
84
61
|
};
|
|
85
|
-
//# sourceMappingURL=defaultConfigSchema.js.map
|