matterbridge 1.7.0 → 1.7.2-dev.1

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 (106) hide show
  1. package/CHANGELOG.md +52 -9
  2. package/README-EDGE.md +4 -6
  3. package/README-SERVICE.md +2 -2
  4. package/dist/cli.js +0 -26
  5. package/dist/cluster/export.js +0 -2
  6. package/dist/defaultConfigSchema.js +0 -23
  7. package/dist/deviceManager.js +1 -26
  8. package/dist/index.js +0 -30
  9. package/dist/logger/export.js +0 -1
  10. package/dist/matter/export.js +0 -4
  11. package/dist/matterbridge.js +61 -707
  12. package/dist/matterbridgeAccessoryPlatform.js +0 -33
  13. package/dist/matterbridgeBehaviors.js +1 -29
  14. package/dist/matterbridgeDevice.js +9 -996
  15. package/dist/matterbridgeDeviceTypes.js +11 -82
  16. package/dist/matterbridgeDynamicPlatform.js +0 -33
  17. package/dist/matterbridgeEdge.js +0 -530
  18. package/dist/matterbridgeEndpoint.js +14 -1121
  19. package/dist/matterbridgePlatform.js +8 -112
  20. package/dist/matterbridgeTypes.js +0 -24
  21. package/dist/matterbridgeWebsocket.js +60 -49
  22. package/dist/pluginManager.js +3 -238
  23. package/dist/storage/export.js +0 -1
  24. package/dist/utils/colorUtils.js +2 -205
  25. package/dist/utils/export.js +0 -1
  26. package/dist/utils/utils.js +7 -252
  27. package/frontend/build/asset-manifest.json +6 -6
  28. package/frontend/build/index.html +1 -1
  29. package/frontend/build/static/css/{main.f1fce054.css → main.b1a621ee.css} +2 -2
  30. package/frontend/build/static/css/main.b1a621ee.css.map +1 -0
  31. package/frontend/build/static/js/{main.5caad8c7.js → main.0cc31fc9.js} +10 -10
  32. package/frontend/build/static/js/main.0cc31fc9.js.map +1 -0
  33. package/npm-shrinkwrap.json +8 -8
  34. package/package.json +1 -2
  35. package/dist/cli.d.ts +0 -25
  36. package/dist/cli.d.ts.map +0 -1
  37. package/dist/cli.js.map +0 -1
  38. package/dist/cluster/export.d.ts +0 -2
  39. package/dist/cluster/export.d.ts.map +0 -1
  40. package/dist/cluster/export.js.map +0 -1
  41. package/dist/defaultConfigSchema.d.ts +0 -27
  42. package/dist/defaultConfigSchema.d.ts.map +0 -1
  43. package/dist/defaultConfigSchema.js.map +0 -1
  44. package/dist/deviceManager.d.ts +0 -46
  45. package/dist/deviceManager.d.ts.map +0 -1
  46. package/dist/deviceManager.js.map +0 -1
  47. package/dist/index.d.ts +0 -40
  48. package/dist/index.d.ts.map +0 -1
  49. package/dist/index.js.map +0 -1
  50. package/dist/logger/export.d.ts +0 -2
  51. package/dist/logger/export.d.ts.map +0 -1
  52. package/dist/logger/export.js.map +0 -1
  53. package/dist/matter/export.d.ts +0 -11
  54. package/dist/matter/export.d.ts.map +0 -1
  55. package/dist/matter/export.js.map +0 -1
  56. package/dist/matterbridge.d.ts +0 -483
  57. package/dist/matterbridge.d.ts.map +0 -1
  58. package/dist/matterbridge.js.map +0 -1
  59. package/dist/matterbridgeAccessoryPlatform.d.ts +0 -39
  60. package/dist/matterbridgeAccessoryPlatform.d.ts.map +0 -1
  61. package/dist/matterbridgeAccessoryPlatform.js.map +0 -1
  62. package/dist/matterbridgeBehaviors.d.ts +0 -942
  63. package/dist/matterbridgeBehaviors.d.ts.map +0 -1
  64. package/dist/matterbridgeBehaviors.js.map +0 -1
  65. package/dist/matterbridgeDevice.d.ts +0 -7077
  66. package/dist/matterbridgeDevice.d.ts.map +0 -1
  67. package/dist/matterbridgeDevice.js.map +0 -1
  68. package/dist/matterbridgeDeviceTypes.d.ts +0 -109
  69. package/dist/matterbridgeDeviceTypes.d.ts.map +0 -1
  70. package/dist/matterbridgeDeviceTypes.js.map +0 -1
  71. package/dist/matterbridgeDynamicPlatform.d.ts +0 -39
  72. package/dist/matterbridgeDynamicPlatform.d.ts.map +0 -1
  73. package/dist/matterbridgeDynamicPlatform.js.map +0 -1
  74. package/dist/matterbridgeEdge.d.ts +0 -91
  75. package/dist/matterbridgeEdge.d.ts.map +0 -1
  76. package/dist/matterbridgeEdge.js.map +0 -1
  77. package/dist/matterbridgeEndpoint.d.ts +0 -10151
  78. package/dist/matterbridgeEndpoint.d.ts.map +0 -1
  79. package/dist/matterbridgeEndpoint.js.map +0 -1
  80. package/dist/matterbridgePlatform.d.ts +0 -140
  81. package/dist/matterbridgePlatform.d.ts.map +0 -1
  82. package/dist/matterbridgePlatform.js.map +0 -1
  83. package/dist/matterbridgeTypes.d.ts +0 -169
  84. package/dist/matterbridgeTypes.d.ts.map +0 -1
  85. package/dist/matterbridgeTypes.js.map +0 -1
  86. package/dist/matterbridgeWebsocket.d.ts +0 -49
  87. package/dist/matterbridgeWebsocket.d.ts.map +0 -1
  88. package/dist/matterbridgeWebsocket.js.map +0 -1
  89. package/dist/pluginManager.d.ts +0 -238
  90. package/dist/pluginManager.d.ts.map +0 -1
  91. package/dist/pluginManager.js.map +0 -1
  92. package/dist/storage/export.d.ts +0 -2
  93. package/dist/storage/export.d.ts.map +0 -1
  94. package/dist/storage/export.js.map +0 -1
  95. package/dist/utils/colorUtils.d.ts +0 -61
  96. package/dist/utils/colorUtils.d.ts.map +0 -1
  97. package/dist/utils/colorUtils.js.map +0 -1
  98. package/dist/utils/export.d.ts +0 -3
  99. package/dist/utils/export.d.ts.map +0 -1
  100. package/dist/utils/export.js.map +0 -1
  101. package/dist/utils/utils.d.ts +0 -221
  102. package/dist/utils/utils.d.ts.map +0 -1
  103. package/dist/utils/utils.js.map +0 -1
  104. package/frontend/build/static/css/main.f1fce054.css.map +0 -1
  105. package/frontend/build/static/js/main.5caad8c7.js.map +0 -1
  106. /package/frontend/build/static/js/{main.5caad8c7.js.LICENSE.txt → main.0cc31fc9.js.LICENSE.txt} +0 -0
package/CHANGELOG.md CHANGED
@@ -17,17 +17,60 @@ Tamer (https://github.com/tammeryousef1006) has created the Matterbridge Discord
17
17
 
18
18
  Matterbridge edge is now released. The default mode is still the normal mode to allow the storage conversion. See https://github.com/Luligu/matterbridge/blob/dev/README-EDGE.md to manually switch to edge mode after the conversion is done.
19
19
 
20
- The frontend has a new dark and light mode. The dark mode is now the default mode.
20
+ The frontend has a new dark and light mode. The dark mode is now the default mode.
21
21
  It is possible to change the mode (Classic, Dark or Light) in Settings, Matterbridge settings.
22
22
 
23
- ## [1.7.0] - 2025-01-03
23
+ ## [1.7.2] - 2025-01-09
24
+
25
+ ### Added
26
+
27
+ - [platform]: Added selectEntity to get the entity names from a list in the config editor.
28
+ - [websocket]: Added api /api/select/entities.
29
+
30
+ ### Changed
31
+
32
+ - [frontend]: Frontend v.2.3.5
33
+ - [package]: Update dependencies.
34
+
35
+ ### Fixed
36
+
37
+ - [edge]: Fixed ValveConfigurationAndControlServer behavior.
38
+
39
+ <a href="https://www.buymeacoffee.com/luligugithub">
40
+ <img src="./yellow-button.png" alt="Buy me a coffee" width="120">
41
+ </a>
42
+
43
+ ## [1.7.1] - 2025-01-07
44
+
45
+ ### Added
46
+
47
+ - [platform]: Added selectDevice to get the device names from a list in the config editor.
48
+ - [websocket]: Added api /api/select.
49
+ - [frontend]: Added configUrl to Devices page.
50
+ - [frontend]: Added config button to Devices page.
51
+ - [frontend]: Added id and deviceTypes to Devices page.
52
+
53
+ ### Changed
54
+
55
+ - [websocket]: Added params to /api/clusters.
56
+ - [frontend]: Frontend v.2.3.3
57
+
58
+ ### Fixed
59
+
60
+ - [frontend]: Fixed WebSocketProvider online.
61
+
62
+ <a href="https://www.buymeacoffee.com/luligugithub">
63
+ <img src="./yellow-button.png" alt="Buy me a coffee" width="120">
64
+ </a>
65
+
66
+ ## [1.7.0] - 2025-01-04
24
67
 
25
68
  ### Added
26
69
 
27
70
  - [edge]: Added guide https://github.com/Luligu/matterbridge/blob/dev/README-EDGE.md.
28
- - [storage]: Added conversion from old matter storage to the new api format with fabrics, resumptionRecords, network, commissioning, operationalCredentials, acl and parts number. The conversion is triggered every time you shutdown or restart matterbridge till the new storage has been used with matterbridge edge.
29
- - [storage]: Added conversion for child endpoint numbers.
30
- - [storage]: Added conversion for childbridge mode.
71
+ - [storage]: Added conversion from old matter storage to the new api format with fabrics, resumptionRecords, network, commissioning, operationalCredentials, acl and parts number. The conversion is triggered every time you shutdown or restart matterbridge till the new storage has been used with matterbridge edge.
72
+ - [storage]: Added conversion for child endpoint numbers.
73
+ - [storage]: Added conversion for childbridge mode.
31
74
  - [package]: Update README.md and README-SERVICE.md to include instructions for using SSL on port 443.
32
75
  - [platform]: Added checkEndpointNumbers() to detect endpoint numbers changes.
33
76
  - [frontend]: Frontend v.2.3.0
@@ -35,10 +78,10 @@ It is possible to change the mode (Classic, Dark or Light) in Settings, Matterbr
35
78
  - [frontend]: Custom rfjsreact-jsonschema-form for the config editor.
36
79
  - [frontend]: Added columns configuration to Devices.
37
80
  - [frontend]: Added clear logs button in Logs.
38
- - [unregister]: Added unregister for Matterbridge edge.
39
- - [reset]: Added reset for Matterbridge edge.
40
- - [factoryreset]: Added factoryreset for Matterbridge edge.
41
- - [websocket]: Added /api/clusters and removed all fetch calls from frontend.
81
+ - [unregister]: Added unregister for Matterbridge edge.
82
+ - [reset]: Added reset for Matterbridge edge.
83
+ - [factoryreset]: Added factoryreset for Matterbridge edge.
84
+ - [websocket]: Added /api/clusters and removed all fetch calls from frontend.
42
85
 
43
86
  ### Changed
44
87
 
package/README-EDGE.md CHANGED
@@ -1,10 +1,8 @@
1
- # <img src="https://github.com/Luligu/matterbridge/blob/main/frontend/public/matterbridge%2064x64.png" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge
2
-
3
- # Matterbridge edge
1
+ # <img src="https://github.com/Luligu/matterbridge/blob/main/frontend/public/matterbridge%2064x64.png" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge edge
4
2
 
5
3
  Matterbridge Edge is the version of Matterbridge running with the new Matter.js API.
6
4
 
7
- After months of work, the migration of Matterbridge from the old API to the new API is now complete. This includes the conversion of the entire old storage format to the new API storage format, encompassing fabrics, resumption records, network, commissioning, operational credentials, ACL, and part numbers.
5
+ After months of work, the migration of Matterbridge from the old API to the new API is now complete. This includes the conversion of the entire old storage format to the new API storage format, encompassing fabrics, resumption records, network, commissioning, operational credentials, ACL, and part numbers. The conversion doesn't convert the persisted attributes, so at restart for a while it is possible to see wrong states on the controllers.
8
6
 
9
7
  A special thanks goes to Apollon for answering my countless questions and helping to resolve the many small issues that arose during this process.
10
8
 
@@ -25,7 +23,7 @@ There is no conversion back to the old storage.
25
23
 
26
24
  Matterbridge Edge will be officially released as version 2.0.0, as it represents a major update.
27
25
 
28
- ## How to run matterbridge in edge mode
26
+ ## How to run matterbridge in edge mode
29
27
 
30
28
  To start Matterbridge in Edge mode before its official release, you need to add the -edge parameter to the command line or Docker command.
31
29
 
@@ -73,4 +71,4 @@ services:
73
71
  - "${HOME}/Matterbridge:/root/Matterbridge" # Mounts the Matterbridge plugin directory
74
72
  - "${HOME}/.matterbridge:/root/.matterbridge" # Mounts the Matterbridge storage directory
75
73
  command: [ "matterbridge", "-docker", "-edge" ] # Override the image command adding -edge
76
- ```
74
+ ```
package/README-SERVICE.md CHANGED
@@ -49,13 +49,13 @@ After=network-online.target
49
49
  [Service]
50
50
  Type=simple
51
51
  ExecStart=matterbridge -service
52
- WorkingDirectory=/home/<USER>/Matterbridge
52
+ WorkingDirectory=/home/<USER>/Matterbridge
53
53
  StandardOutput=inherit
54
54
  StandardError=inherit
55
55
  Restart=always
56
56
  RestartSec=10s
57
57
  TimeoutStopSec=30s
58
- User=<USER>
58
+ User=<USER>
59
59
  Group=<USER>
60
60
 
61
61
  [Install]
package/dist/cli.js CHANGED
@@ -1,27 +1,4 @@
1
1
  #!/usr/bin/env node
2
- /**
3
- * This file contains the CLI entry point of Matterbridge.
4
- *
5
- * @file cli.ts
6
- * @author Luca Liguori
7
- * @date 2023-12-29
8
- * @version 1.0.11
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
2
  import { Matterbridge } from './matterbridge.js';
26
3
  import { MatterbridgeEdge } from './matterbridgeEdge.js';
27
4
  let instance;
@@ -64,7 +41,6 @@ async function restart() {
64
41
  async function update() {
65
42
  if (process.argv.includes('-debug'))
66
43
  console.log(cli + 'CLI: received update event, updating...' + rs);
67
- // TODO: Implement update logic outside of matterbridge
68
44
  if (process.argv.includes('-edge'))
69
45
  instance = await MatterbridgeEdge.loadInstance();
70
46
  else
@@ -72,8 +48,6 @@ async function update() {
72
48
  registerHandlers();
73
49
  }
74
50
  process.title = 'matterbridge';
75
- // Run the main function
76
51
  main().catch((error) => {
77
52
  console.error(er + `CLI: Matterbridge.loadInstance() failed with error: ${error}` + rs);
78
53
  });
79
- //# sourceMappingURL=cli.js.map
@@ -1,3 +1 @@
1
1
  export {};
2
- // Nothing to export right now
3
- //# sourceMappingURL=export.js.map
@@ -1,25 +1,3 @@
1
- /**
2
- * This file contains the default config for the plugins.
3
- *
4
- * @file defaultConfigSchema.ts
5
- * @author Luca Liguori
6
- * @date 2024-05-07
7
- * @version 1.0.1
8
- *
9
- * Copyright 2024, 2025, 2026 Luca Liguori.
10
- *
11
- * Licensed under the Apache License, Version 2.0 (the "License");
12
- * you may not use this file except in compliance with the License.
13
- * You may obtain a copy of the License at
14
- *
15
- * http://www.apache.org/licenses/LICENSE-2.0
16
- *
17
- * Unless required by applicable law or agreed to in writing, software
18
- * distributed under the License is distributed on an "AS IS" BASIS,
19
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
- * See the License for the specific language governing permissions and
21
- * limitations under the License. *
22
- */
23
1
  export const zigbee2mqtt_config = {
24
2
  name: 'matterbridge-zigbee2mqtt',
25
3
  type: 'DynamicPlatform',
@@ -85,4 +63,3 @@ export const shelly_config = {
85
63
  debugWs: false,
86
64
  unregisterOnShutdown: false,
87
65
  };
88
- //# sourceMappingURL=defaultConfigSchema.js.map
@@ -1,26 +1,3 @@
1
- /**
2
- * This file contains the DeviceManager class.
3
- *
4
- * @file devices.ts
5
- * @author Luca Liguori
6
- * @date 2024-07-26
7
- * @version 1.0.8
8
- *
9
- * Copyright 2024, 2025, 2026 Luca Liguori.
10
- *
11
- * Licensed under the Apache License, Version 2.0 (the "License");
12
- * you may not use this file except in compliance with the License.
13
- * You may obtain a copy of the License at
14
- *
15
- * http://www.apache.org/licenses/LICENSE-2.0
16
- *
17
- * Unless required by applicable law or agreed to in writing, software
18
- * distributed under the License is distributed on an "AS IS" BASIS,
19
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
- * See the License for the specific language governing permissions and
21
- * limitations under the License. *
22
- */
23
- // NodeStorage and AnsiLogger modules
24
1
  import { AnsiLogger, BLUE, er } from 'node-ansi-logger';
25
2
  import { dev } from './matterbridgeTypes.js';
26
3
  export class DeviceManager {
@@ -31,7 +8,7 @@ export class DeviceManager {
31
8
  constructor(matterbridge, nodeContext) {
32
9
  this.matterbridge = matterbridge;
33
10
  this.nodeContext = nodeContext;
34
- this.log = new AnsiLogger({ logName: 'DeviceManager', logTimestampFormat: 4 /* TimestampFormat.TIME_MILLIS */, logLevel: matterbridge.log.logLevel });
11
+ this.log = new AnsiLogger({ logName: 'DeviceManager', logTimestampFormat: 4, logLevel: matterbridge.log.logLevel });
35
12
  this.log.debug('Matterbridge device manager starting...');
36
13
  }
37
14
  get length() {
@@ -77,7 +54,6 @@ export class DeviceManager {
77
54
  }
78
55
  catch (error) {
79
56
  this.log.error(`Error processing forEach device ${dev}${device.deviceName}${er} serialNumber ${BLUE}${device.serialNumber}${er} uniqueId: ${BLUE}${device.uniqueId}${er}:`, error);
80
- // throw error;
81
57
  }
82
58
  });
83
59
  await Promise.all(tasks);
@@ -89,4 +65,3 @@ export class DeviceManager {
89
65
  this.log.logLevel = logLevel;
90
66
  }
91
67
  }
92
- //# sourceMappingURL=deviceManager.js.map
package/dist/index.js CHANGED
@@ -1,36 +1,10 @@
1
- /**
2
- * This file contains the entry point of Matterbridge.
3
- *
4
- * @file index.ts
5
- * @author Luca Liguori
6
- * @date 2023-12-29
7
- * @version 1.0.6
8
- *
9
- * Copyright 2023, 2024, 2025 Luca Liguori.
10
- *
11
- * Licensed under the Apache License, Version 2.0 (the "License");
12
- * you may not use this file except in compliance with the License.
13
- * You may obtain a copy of the License at
14
- *
15
- * http://www.apache.org/licenses/LICENSE-2.0
16
- *
17
- * Unless required by applicable law or agreed to in writing, software
18
- * distributed under the License is distributed on an "AS IS" BASIS,
19
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
- * See the License for the specific language governing permissions and
21
- * limitations under the License. *
22
- */
23
1
  import { Matterbridge } from './matterbridge.js';
24
2
  import { MatterbridgeEdge } from './matterbridgeEdge.js';
25
- // @matter
26
- // export { Identity, AtLeastOne } from '@matter/main';
27
3
  export * from '@matter/main/clusters';
28
4
  export * from '@matter/main/types';
29
5
  export { SemanticNamespace, ClosureTag, CompassDirectionTag, CompassLocationTag, DirectionTag, ElectricalMeasurementTag, LaundryTag, LevelTag, LocationTag, NumberTag, PositionTag, PowerSourceTag, RefrigeratorTag, RoomAirConditionerTag, SwitchesTag, } from '@matter/node';
30
- // @project-chip
31
6
  export * from '@project-chip/matter.js/device';
32
7
  export * from '@project-chip/matter.js/cluster';
33
- // Matterbridge
34
8
  export * from './matterbridge.js';
35
9
  export * from './matterbridgeTypes.js';
36
10
  export * from './matterbridgeDevice.js';
@@ -43,19 +17,15 @@ const cli = '\u001B[32m';
43
17
  const er = '\u001B[38;5;9m';
44
18
  const rs = '\u001B[40;0m';
45
19
  async function main() {
46
- // eslint-disable-next-line no-console
47
20
  if (process.argv.includes('-debug'))
48
21
  console.log(cli + 'MAIN: Matterbridge.loadInstance() called' + rs);
49
22
  if (process.argv.includes('-edge'))
50
23
  await MatterbridgeEdge.loadInstance();
51
24
  else
52
25
  await Matterbridge.loadInstance();
53
- // eslint-disable-next-line no-console
54
26
  if (process.argv.includes('-debug'))
55
27
  console.log(cli + 'MAIN: Matterbridge.loadInstance() exited' + rs);
56
28
  }
57
29
  main().catch((error) => {
58
- // eslint-disable-next-line no-console
59
30
  console.error(er + `MAIN: Matterbridge.loadInstance() failed with error: ${error}` + rs);
60
31
  });
61
- //# sourceMappingURL=index.js.map
@@ -1,2 +1 @@
1
1
  export * from 'node-ansi-logger';
2
- //# sourceMappingURL=export.js.map
@@ -1,14 +1,10 @@
1
- // @matter
2
1
  export * from '@matter/main';
3
2
  export { AggregatorEndpoint } from '@matter/main/endpoints';
4
3
  export * from '@matter/main/devices';
5
4
  export * from '@matter/main/behaviors';
6
- // export * from '@matter/main/clusters';
7
5
  export { FabricAction, MdnsService, PaseClient } from '@matter/main/protocol';
8
6
  export { AttributeElement, ClusterElement, ClusterModel, CommandElement, EventElement, FieldElement } from '@matter/main/model';
9
- // Matterbridge
10
7
  export * from '../matterbridgeDeviceTypes.js';
11
8
  export * from '../matterbridgeEndpoint.js';
12
9
  export * from '../matterbridgeBehaviors.js';
13
10
  export * from '../matterbridgeEdge.js';
14
- //# sourceMappingURL=export.js.map