matterbridge 1.2.21 → 1.3.0

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.
Files changed (101) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +48 -9
  3. package/dist/cluster/AirQualityCluster.d.ts.map +1 -0
  4. package/dist/cluster/AirQualityCluster.js.map +1 -0
  5. package/dist/cluster/BooleanStateConfigurationCluster.d.ts +2200 -0
  6. package/dist/cluster/BooleanStateConfigurationCluster.d.ts.map +1 -0
  7. package/dist/cluster/BooleanStateConfigurationCluster.js +388 -0
  8. package/dist/cluster/BooleanStateConfigurationCluster.js.map +1 -0
  9. package/dist/cluster/BridgedDeviceBasicInformationCluster.d.ts.map +1 -0
  10. package/dist/cluster/BridgedDeviceBasicInformationCluster.js.map +1 -0
  11. package/dist/cluster/CarbonMonoxideConcentrationMeasurementCluster.d.ts +396 -0
  12. package/dist/cluster/CarbonMonoxideConcentrationMeasurementCluster.d.ts.map +1 -0
  13. package/dist/cluster/CarbonMonoxideConcentrationMeasurementCluster.js +30 -0
  14. package/dist/cluster/CarbonMonoxideConcentrationMeasurementCluster.js.map +1 -0
  15. package/dist/cluster/ConcentrationMeasurementCluster.d.ts +524 -0
  16. package/dist/cluster/ConcentrationMeasurementCluster.d.ts.map +1 -0
  17. package/dist/cluster/ConcentrationMeasurementCluster.js +282 -0
  18. package/dist/cluster/ConcentrationMeasurementCluster.js.map +1 -0
  19. package/dist/cluster/DeviceEnergyManagementCluster.d.ts +7851 -0
  20. package/dist/cluster/DeviceEnergyManagementCluster.d.ts.map +1 -0
  21. package/dist/cluster/DeviceEnergyManagementCluster.js +1634 -0
  22. package/dist/cluster/DeviceEnergyManagementCluster.js.map +1 -0
  23. package/dist/cluster/DeviceEnergyManagementModeCluster.d.ts +68 -0
  24. package/dist/cluster/DeviceEnergyManagementModeCluster.d.ts.map +1 -0
  25. package/dist/cluster/DeviceEnergyManagementModeCluster.js +49 -0
  26. package/dist/cluster/DeviceEnergyManagementModeCluster.js.map +1 -0
  27. package/dist/cluster/ElectricalEnergyMeasurementCluster.d.ts +4978 -0
  28. package/dist/cluster/ElectricalEnergyMeasurementCluster.d.ts.map +1 -0
  29. package/dist/cluster/ElectricalEnergyMeasurementCluster.js +510 -0
  30. package/dist/cluster/ElectricalEnergyMeasurementCluster.js.map +1 -0
  31. package/dist/cluster/ElectricalPowerMeasurementCluster.d.ts +3250 -0
  32. package/dist/cluster/ElectricalPowerMeasurementCluster.d.ts.map +1 -0
  33. package/dist/cluster/ElectricalPowerMeasurementCluster.js +675 -0
  34. package/dist/cluster/ElectricalPowerMeasurementCluster.js.map +1 -0
  35. package/dist/cluster/FanControlCluster.d.ts +1583 -0
  36. package/dist/cluster/FanControlCluster.d.ts.map +1 -0
  37. package/dist/cluster/FanControlCluster.js +492 -0
  38. package/dist/cluster/FanControlCluster.js.map +1 -0
  39. package/dist/cluster/MeasurementAccuracy.d.ts +63 -0
  40. package/dist/cluster/MeasurementAccuracy.d.ts.map +1 -0
  41. package/dist/cluster/MeasurementAccuracy.js +47 -0
  42. package/dist/cluster/MeasurementAccuracy.js.map +1 -0
  43. package/dist/cluster/MeasurementAccuracyRange.d.ts +134 -0
  44. package/dist/cluster/MeasurementAccuracyRange.d.ts.map +1 -0
  45. package/dist/cluster/MeasurementAccuracyRange.js +103 -0
  46. package/dist/cluster/MeasurementAccuracyRange.js.map +1 -0
  47. package/dist/cluster/MeasurementType.d.ts +68 -0
  48. package/dist/cluster/MeasurementType.d.ts.map +1 -0
  49. package/dist/cluster/MeasurementType.js +69 -0
  50. package/dist/cluster/MeasurementType.js.map +1 -0
  51. package/dist/cluster/PowerTopologyCluster.d.ts +355 -0
  52. package/dist/cluster/PowerTopologyCluster.d.ts.map +1 -0
  53. package/dist/cluster/PowerTopologyCluster.js +138 -0
  54. package/dist/cluster/PowerTopologyCluster.js.map +1 -0
  55. package/dist/cluster/SmokeCoAlarmCluster.d.ts +1599 -0
  56. package/dist/cluster/SmokeCoAlarmCluster.d.ts.map +1 -0
  57. package/dist/cluster/SmokeCoAlarmCluster.js +603 -0
  58. package/dist/cluster/SmokeCoAlarmCluster.js.map +1 -0
  59. package/dist/cluster/TvocCluster.d.ts.map +1 -0
  60. package/dist/cluster/TvocCluster.js.map +1 -0
  61. package/dist/defaultConfigSchema.d.ts.map +1 -1
  62. package/dist/defaultConfigSchema.js +26 -12
  63. package/dist/defaultConfigSchema.js.map +1 -1
  64. package/dist/index.d.ts +7 -2
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +8 -2
  67. package/dist/index.js.map +1 -1
  68. package/dist/matterbridge.d.ts +63 -1
  69. package/dist/matterbridge.d.ts.map +1 -1
  70. package/dist/matterbridge.js +72 -26
  71. package/dist/matterbridge.js.map +1 -1
  72. package/dist/matterbridgeDevice.d.ts +692 -30
  73. package/dist/matterbridgeDevice.d.ts.map +1 -1
  74. package/dist/matterbridgeDevice.js +429 -73
  75. package/dist/matterbridgeDevice.js.map +1 -1
  76. package/dist/matterbridgeDeviceV8.d.ts +3 -5
  77. package/dist/matterbridgeDeviceV8.d.ts.map +1 -1
  78. package/dist/matterbridgeDeviceV8.js +62 -14
  79. package/dist/matterbridgeDeviceV8.js.map +1 -1
  80. package/dist/matterbridgeV8.d.ts +69 -5
  81. package/dist/matterbridgeV8.d.ts.map +1 -1
  82. package/dist/matterbridgeV8.js +413 -99
  83. package/dist/matterbridgeV8.js.map +1 -1
  84. package/frontend/build/asset-manifest.json +3 -3
  85. package/frontend/build/index.html +1 -1
  86. package/frontend/build/static/js/{main.23829a0f.js → main.cbfc6c9b.js} +3 -3
  87. package/frontend/build/static/js/{main.23829a0f.js.map → main.cbfc6c9b.js.map} +1 -1
  88. package/package.json +6 -6
  89. package/dist/AirQualityCluster.d.ts.map +0 -1
  90. package/dist/AirQualityCluster.js.map +0 -1
  91. package/dist/BridgedDeviceBasicInformationCluster.d.ts.map +0 -1
  92. package/dist/BridgedDeviceBasicInformationCluster.js.map +0 -1
  93. package/dist/TvocCluster.d.ts.map +0 -1
  94. package/dist/TvocCluster.js.map +0 -1
  95. /package/dist/{AirQualityCluster.d.ts → cluster/AirQualityCluster.d.ts} +0 -0
  96. /package/dist/{AirQualityCluster.js → cluster/AirQualityCluster.js} +0 -0
  97. /package/dist/{BridgedDeviceBasicInformationCluster.d.ts → cluster/BridgedDeviceBasicInformationCluster.d.ts} +0 -0
  98. /package/dist/{BridgedDeviceBasicInformationCluster.js → cluster/BridgedDeviceBasicInformationCluster.js} +0 -0
  99. /package/dist/{TvocCluster.d.ts → cluster/TvocCluster.d.ts} +0 -0
  100. /package/dist/{TvocCluster.js → cluster/TvocCluster.js} +0 -0
  101. /package/frontend/build/static/js/{main.23829a0f.js.LICENSE.txt → main.cbfc6c9b.js.LICENSE.txt} +0 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,45 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [1.3.0] - 2024-06-16
6
+
7
+ This release is all about Matter 1.3
8
+
9
+ If you are wondering whether the controllers already support Matter 1.3, the answer is unfortunately no.
10
+
11
+ Only Home Automation supports:
12
+ - airQualitySensor (Matter 1.2)
13
+
14
+ and (probably only like BooleanState cluster)
15
+ - waterFreezeDetector (Matter 1.3)
16
+ - waterLeakDetector (Matter 1.3)
17
+ - rainSensor (Matter 1.3)
18
+
19
+ ### Changed
20
+ - [matterbridge]: Updated dependencies
21
+ - [matterbridge]: Default config and schema for the new plugin matterbridge-shelly (will be published after this release)
22
+
23
+ ### Added
24
+ - [matterbridgeDevice]: Added waterFreezeDetector, waterLeakDetector, rainSensor, smokeCoAlarm, electricalSensor and deviceEnergyManagement device types as conformance to Matter 1.3
25
+ - [matterbridgeDevice]: Added all clusters needed for the above Matter 1.3 device types
26
+ - [matterbridgeDevice]: Added FanControl cluster (rev. 2) helper methods for the Fan device type
27
+ - [matterbridge]: Added parameter -matterlogger [debug | info | notice | warn | error | fatal] to set the matter.js Logger separately from the Matterbridge log
28
+ - [frontend]: Added logger level settings to reflect -matterlogger [debug | info | notice | warn | error | fatal]
29
+
30
+ <a href="https://www.buymeacoffee.com/luligugithub">
31
+ <img src="./yellow-button.png" alt="Buy me a coffee" width="120">
32
+ </a>
33
+
34
+ ## [1.2.22] - 2024-06-04
35
+
36
+ ### Changed
37
+ - [matterbridge]: Updated dependencies
38
+ - [matterbridge]: Default config and schema for the new plugin matterbridge-shelly
39
+
40
+ <a href="https://www.buymeacoffee.com/luligugithub">
41
+ <img src="./yellow-button.png" alt="Buy me a coffee" width="120">
42
+ </a>
43
+
5
44
  ## [1.2.21] - 2024-06-04
6
45
 
7
46
  ### Changed
package/README.md CHANGED
@@ -2,9 +2,10 @@
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/matterbridge.svg)](https://www.npmjs.com/package/matterbridge)
4
4
  [![npm downloads](https://img.shields.io/npm/dt/matterbridge.svg)](https://www.npmjs.com/package/matterbridge)
5
+ [![Docker Version](https://img.shields.io/docker/v/luligu/matterbridge?label=docker%20version&sort=semver)](https://hub.docker.com/r/luligu/matterbridge)
6
+ [![Docker Pulls](https://img.shields.io/docker/pulls/luligu/matterbridge.svg)](https://hub.docker.com/r/luligu/matterbridge)
5
7
  ![Node.js CI](https://github.com/Luligu/matterbridge/actions/workflows/build.yml/badge.svg)
6
8
 
7
-
8
9
  [![power by](https://img.shields.io/badge/powered%20by-matter--history-blue)](https://www.npmjs.com/package/matter-history)
9
10
  [![power by](https://img.shields.io/badge/powered%20by-node--ansi--logger-blue)](https://www.npmjs.com/package/node-ansi-logger)
10
11
  [![power by](https://img.shields.io/badge/powered%20by-node--persist--manager-blue)](https://www.npmjs.com/package/node-persist-manager)
@@ -329,7 +330,7 @@ After=network-online.target
329
330
 
330
331
  [Service]
331
332
  Type=simple
332
- ExecStart=/usr/bin/matterbridge -bridge -service -port 5550
333
+ ExecStart=/usr/bin/matterbridge -bridge -service
333
334
  WorkingDirectory=/home/<USER>/Matterbridge
334
335
  StandardOutput=inherit
335
336
  StandardError=inherit
@@ -473,36 +474,73 @@ docker logs matterbridge
473
474
  docker logs --tail 1000 -f matterbridge
474
475
  ```
475
476
 
476
- # Known issues
477
+ # Known general issues
478
+
479
+ ## Session XYZ does not exist
480
+ This message may appear after Matterbridge restarts, indicating that the controller is still using a session from the previous connection that has since been closed.
481
+ After some time, the controller will reconnect.
482
+ In this context, the message is not indicative of a problem.
477
483
 
478
- ## Apple Home issues
484
+ ## Apple Home
479
485
 
480
486
  The HomePods, being a WiFi devices, sometimes pruduce message trasmission errors. The Apple TV with network cable is more reliable (but also more expensive).
481
487
 
482
488
  Solved with the version 17.5 of the HomePod/AppleTV. Now they are stable.
483
489
 
484
- ### DoorLock
490
+ ### DoorLock issue
485
491
 
486
492
  The DoorLock cluster in the Home app takes a while to get online. The Home app shows no response for 1 or 2 seconds but then the accessory goes online. With the Eve app or the Controller app this issue is not present.
487
493
 
488
494
  Solved with the version 17.5 of the HomePod/AppleTV.
489
495
 
496
+ ## Home Assistant
497
+
498
+ So far is the only controller supporting some Matter 1.3 device type:
499
+ - air quality sensor
500
+
501
+ HA also support electrical measurements from EveHistoryCluster (used in Matterbridge plugins)
502
+
490
503
  ## Home Assistant issues (Matter Server for HA is still in Beta)
491
504
 
492
- - if HA doesn't show all devices just reload the HA Matter Server or reboot HA
493
- - it doesn't seem that HA reacts to removing a device from the aggregator: they remain like unavailable...
494
- - in the Home Assistant Core log you can see sometimes error messages relating to unique id not found but it seems to be an issue related to missing some matter packet during the commissioning and subscription phase...
505
+ - If HA doesn't show all devices just reload the Matter Server or reboot HA
506
+ - Home Assistant doesn't seem to react when a device is removed from the bridge: they remain in HA unavailable forever...
507
+ - In the Home Assistant Core log you can see sometimes error messages relating to unique id not found but it seems to be an issue related to missing some matter packet during the commissioning and subscription phase...
508
+ - Version 6.1.0 is more stable and has solved the problem of the commissioning window: now pairing is again easy. Use Apple Home when you have to choose the controller type even if you pair Matterbridge directly with HA.
495
509
 
496
510
  ## Google Home
497
511
 
512
+ No issues reported so far.
513
+
498
514
  ## Alexa
499
515
 
516
+ Tested by Tamer Salah
517
+
518
+ Alexa needs the standard port 5540 to pair (from matter.js readme).
519
+
520
+ There is no support for these Matter device types:
521
+ - pressure sensor
522
+ - flow sensor
523
+ - light sensor
524
+
525
+ In the zigbee2mqtt and shelly plugins select the option to expose
526
+ the switch devices like light or outlet cause they don't show up like switch
527
+ (Matterbridge uses a modified switch device type without client cluster).
528
+
500
529
  ## SmartThings
501
530
 
531
+ Tested by Tamer Salah
532
+
533
+ No issues reported so far.
534
+
502
535
  ## eWeLink
503
536
 
537
+ Tested by Tamer Salah
538
+
539
+ eWeLink needs the standard port 5540 for commissioning.
540
+
504
541
  ## Tuya/Smart Life
505
542
 
543
+ Check the matter.js readme.
506
544
 
507
545
  # Contribution Guidelines
508
546
 
@@ -518,7 +556,7 @@ I warmly welcome contributions to this project! Whether it's reporting bugs, pro
518
556
 
519
557
  ## Submitting Changes
520
558
 
521
- - Create a new pull request from my repository and I'll be glad to check it out
559
+ - Create a new pull request against the dev from my repository and I'll be glad to check it out
522
560
  - Be sure to follow the existing code style
523
561
  - Add unit tests for any new or changed functionality if possible
524
562
  - In your pull request, do describe what your changes do and how they work
@@ -530,6 +568,7 @@ We believe in a welcoming and respectful community for all. Please make sure to
530
568
  ## Support
531
569
 
532
570
  If you find this project helpful and you wish to support the ongoing development, you can do so by buying me a coffee.
571
+ On my side I sponsor the packages that I use in this project. It would be nice to have sponsors too.
533
572
  Click on the badge below to get started:
534
573
 
535
574
  <a href="https://www.buymeacoffee.com/luligugithub">
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AirQualityCluster.d.ts","sourceRoot":"","sources":["../../src/cluster/AirQualityCluster.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EAAmB,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACvF,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAE7D,yBAAiB,UAAU,CAAC;IAC1B,KAAY,cAAc;QACxB,OAAO,IAAI;QACX,IAAI,IAAI;QACR,IAAI,IAAI;QACR,QAAQ,IAAI;QACZ,IAAI,IAAI;QACR,QAAQ,IAAI;QACZ,aAAa,IAAI;KAClB;IAEM,MAAM,uBAAuB;;;;KAIlC,CAAC;IACI,MAAM,2BAA2B;;;;KAItC,CAAC;IACI,MAAM,2BAA2B;;;;KAItC,CAAC;IACI,MAAM,gCAAgC;;;;KAI3C,CAAC;IAEH,KAAY,OAAO;QACjB,cAAc,mBAAmB;QACjC,kBAAkB,uBAAuB;QACzC,kBAAkB,uBAAuB;QACzC,uBAAuB,4BAA4B;KACpD;IAEM,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAsBf,CAAC;IAEI,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAsC,CAAC;IAGnE,UAAiB,OAAQ,SAAQ,QAAQ,CAAC,OAAO,eAAe,CAAC;KAAG;IAE7D,MAAM,OAAO,EAAE,OAAyB,CAAC;IAEzC,MAAM,gBAAgB;;;;;;;;;;;;;MAS3B,CAAC;IAGH,UAAiB,QAAS,SAAQ,QAAQ,CAAC,OAAO,gBAAgB,CAAC;KAAG;IAE/D,MAAM,QAAQ,EAAE,QAA2B,CAAC;CACpD;AAED,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC;AACnD,eAAO,MAAM,iBAAiB,oBAAqB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AirQualityCluster.js","sourceRoot":"","sources":["../../src/cluster/AirQualityCluster.ts"],"names":[],"mappings":"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"}