matterbridge 1.6.5 → 1.6.6-dev.13

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 (102) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README-DEV.md +3 -3
  3. package/README.md +4 -0
  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 -1
  11. package/dist/matterbridge.js +106 -706
  12. package/dist/matterbridgeAccessoryPlatform.js +0 -33
  13. package/dist/matterbridgeBehaviors.js +10 -29
  14. package/dist/matterbridgeDevice.js +58 -939
  15. package/dist/matterbridgeDeviceTypes.js +21 -42
  16. package/dist/matterbridgeDynamicPlatform.js +0 -33
  17. package/dist/matterbridgeEdge.js +0 -528
  18. package/dist/matterbridgeEndpoint.js +79 -1090
  19. package/dist/matterbridgePlatform.js +36 -76
  20. package/dist/matterbridgeTypes.js +0 -24
  21. package/dist/matterbridgeWebsocket.js +8 -45
  22. package/dist/pluginManager.js +3 -237
  23. package/dist/storage/export.js +0 -1
  24. package/dist/utils/colorUtils.js +33 -165
  25. package/dist/utils/export.js +0 -1
  26. package/dist/utils/utils.js +7 -252
  27. package/frontend/build/asset-manifest.json +3 -3
  28. package/frontend/build/index.html +1 -1
  29. package/frontend/build/static/js/{main.0ab89802.js → main.a742de4e.js} +9 -9
  30. package/frontend/build/static/js/{main.0ab89802.js.map → main.a742de4e.js.map} +1 -1
  31. package/npm-shrinkwrap.json +115 -104
  32. package/package.json +5 -5
  33. package/dist/cli.d.ts +0 -25
  34. package/dist/cli.d.ts.map +0 -1
  35. package/dist/cli.js.map +0 -1
  36. package/dist/cluster/export.d.ts +0 -2
  37. package/dist/cluster/export.d.ts.map +0 -1
  38. package/dist/cluster/export.js.map +0 -1
  39. package/dist/defaultConfigSchema.d.ts +0 -27
  40. package/dist/defaultConfigSchema.d.ts.map +0 -1
  41. package/dist/defaultConfigSchema.js.map +0 -1
  42. package/dist/deviceManager.d.ts +0 -46
  43. package/dist/deviceManager.d.ts.map +0 -1
  44. package/dist/deviceManager.js.map +0 -1
  45. package/dist/index.d.ts +0 -40
  46. package/dist/index.d.ts.map +0 -1
  47. package/dist/index.js.map +0 -1
  48. package/dist/logger/export.d.ts +0 -2
  49. package/dist/logger/export.d.ts.map +0 -1
  50. package/dist/logger/export.js.map +0 -1
  51. package/dist/matter/export.d.ts +0 -5
  52. package/dist/matter/export.d.ts.map +0 -1
  53. package/dist/matter/export.js.map +0 -1
  54. package/dist/matterbridge.d.ts +0 -466
  55. package/dist/matterbridge.d.ts.map +0 -1
  56. package/dist/matterbridge.js.map +0 -1
  57. package/dist/matterbridgeAccessoryPlatform.d.ts +0 -39
  58. package/dist/matterbridgeAccessoryPlatform.d.ts.map +0 -1
  59. package/dist/matterbridgeAccessoryPlatform.js.map +0 -1
  60. package/dist/matterbridgeBehaviors.d.ts +0 -934
  61. package/dist/matterbridgeBehaviors.d.ts.map +0 -1
  62. package/dist/matterbridgeBehaviors.js.map +0 -1
  63. package/dist/matterbridgeDevice.d.ts +0 -6504
  64. package/dist/matterbridgeDevice.d.ts.map +0 -1
  65. package/dist/matterbridgeDevice.js.map +0 -1
  66. package/dist/matterbridgeDeviceTypes.d.ts +0 -65
  67. package/dist/matterbridgeDeviceTypes.d.ts.map +0 -1
  68. package/dist/matterbridgeDeviceTypes.js.map +0 -1
  69. package/dist/matterbridgeDynamicPlatform.d.ts +0 -39
  70. package/dist/matterbridgeDynamicPlatform.d.ts.map +0 -1
  71. package/dist/matterbridgeDynamicPlatform.js.map +0 -1
  72. package/dist/matterbridgeEdge.d.ts +0 -89
  73. package/dist/matterbridgeEdge.d.ts.map +0 -1
  74. package/dist/matterbridgeEdge.js.map +0 -1
  75. package/dist/matterbridgeEndpoint.d.ts +0 -8529
  76. package/dist/matterbridgeEndpoint.d.ts.map +0 -1
  77. package/dist/matterbridgeEndpoint.js.map +0 -1
  78. package/dist/matterbridgePlatform.d.ts +0 -96
  79. package/dist/matterbridgePlatform.d.ts.map +0 -1
  80. package/dist/matterbridgePlatform.js.map +0 -1
  81. package/dist/matterbridgeTypes.d.ts +0 -147
  82. package/dist/matterbridgeTypes.d.ts.map +0 -1
  83. package/dist/matterbridgeTypes.js.map +0 -1
  84. package/dist/matterbridgeWebsocket.d.ts +0 -49
  85. package/dist/matterbridgeWebsocket.d.ts.map +0 -1
  86. package/dist/matterbridgeWebsocket.js.map +0 -1
  87. package/dist/pluginManager.d.ts +0 -238
  88. package/dist/pluginManager.d.ts.map +0 -1
  89. package/dist/pluginManager.js.map +0 -1
  90. package/dist/storage/export.d.ts +0 -2
  91. package/dist/storage/export.d.ts.map +0 -1
  92. package/dist/storage/export.js.map +0 -1
  93. package/dist/utils/colorUtils.d.ts +0 -61
  94. package/dist/utils/colorUtils.d.ts.map +0 -1
  95. package/dist/utils/colorUtils.js.map +0 -1
  96. package/dist/utils/export.d.ts +0 -3
  97. package/dist/utils/export.d.ts.map +0 -1
  98. package/dist/utils/export.js.map +0 -1
  99. package/dist/utils/utils.d.ts +0 -221
  100. package/dist/utils/utils.d.ts.map +0 -1
  101. package/dist/utils/utils.js.map +0 -1
  102. /package/frontend/build/static/js/{main.0ab89802.js.LICENSE.txt → main.a742de4e.js.LICENSE.txt} +0 -0
package/CHANGELOG.md CHANGED
@@ -14,6 +14,41 @@ If you want to run Matterbridge in Home Assistant please use the official add-on
14
14
 
15
15
  Tamer (https://github.com/tammeryousef1006) has created the Matterbridge Discord group: https://discord.gg/QX58CDe6hd.
16
16
 
17
+ ## [1.6.6-dev.13] - 2024-12-10
18
+
19
+ ### Added
20
+
21
+ - [frontend]: Add the possibility to install a specific version or the dev of any plugin (i.e. you can install matterbridge-hass@dev or matterbridge-hass@0.0.3).
22
+ It is also possible to use the install plugin to install a specific version of matterbridge (i.e. you can install matterbridge@dev or matterbridge@1.6.5)
23
+ - [frontend]: Add the possibility to set the matter discriminator for commissioning (you can always override passing **-discriminator [DISCRIMINATOR]** on the command line).
24
+ - [frontend]: Add the possibility to set the matter passcode for commissioning (you can always override passing **-passcode [PASSCODE]** on the command line).
25
+ - [frontend]: Add the possibility to set the matter port for commissioning (you can always override passing **-port [PORT]** on the command line).
26
+ - [deviceTypes]: Add device type airConditioner (not supported by the Apple Home).
27
+ - [docker]: Add matterbridge-hass to docker dev.
28
+ - [platform]: Added validateDeviceWhiteBlackList and validateEntityBlackList to be used consistently by all plugins.
29
+ - [/api/devices]: Added productUrl and configUrl.
30
+
31
+ ### Changed
32
+
33
+ - [package]: Update matter.js to 0.11.9-alpha.0-20241206-22f23333.
34
+ - [package]: Update matter.js to 0.11.9-alpha.0-20241207-b604cfa44
35
+ - [package]: Update matter.js to 0.11.9-alpha.0-20241209-06a8040e1
36
+ - [plugin]: Removed check on package types since we are moving to production plugins.
37
+ - [package]: Set required node version to 18, 20 and 22.
38
+ - [package]: Update dependencies.
39
+ - [onOff]: Set default to OnOff.Feature.Lighting.
40
+ - [levelControl]: Set default to LevelControl.Feature.Lighting.
41
+ - [lightSensor]: Refactor lightSensor removing Group optional cluster server.
42
+ - [jest]: Update Jest tests.
43
+
44
+ ### Fixed
45
+
46
+ - [device]: Fix typos in Device and Endpoint.
47
+
48
+ <a href="https://www.buymeacoffee.com/luligugithub">
49
+ <img src="./yellow-button.png" alt="Buy me a coffee" width="120">
50
+ </a>
51
+
17
52
  ## [1.6.5] - 2024-12-02
18
53
 
19
54
  ### Changed
package/README-DEV.md CHANGED
@@ -71,9 +71,9 @@ I added some error messages when a plugin has wrong imports or configurations an
71
71
 
72
72
  I'm working with matter.js team to define the strategy for the migration of Matterbridge to the new API.
73
73
 
74
- - First phase: crete MatterbridgeEdge class: completed 90%
75
- - Second phase: create MatterbridgeEndpoint and MatterbridgeBehaviors classes: completed 90%
76
- - Third phase: modifiy all plugins to support both normal and edge mode of Matterbridge: completed 80%
74
+ - First phase: create MatterbridgeEdge class: completed 95%
75
+ - Second phase: create MatterbridgeEndpoint and MatterbridgeBehaviors classes: completed 95%
76
+ - Third phase: modifiy all plugins to support both normal and edge mode of Matterbridge: completed 90%
77
77
  - Fourth phase: remove all old api code from Matterbridge and all plugins...
78
78
 
79
79
  ## How to create your plugin
package/README.md CHANGED
@@ -46,6 +46,10 @@ A special thank to Apollon77 for his incredible work.
46
46
 
47
47
  To run Matterbridge, you need either a [Node.js](https://nodejs.org/en/download/package-manager) environment or [Docker](https://docs.docker.com/get-started/get-docker/) installed on your system.
48
48
 
49
+ If you don't have Node.js already install, please use this method to install it on a debian device: https://github.com/nodesource/distributions. Nvm is not a good choice.
50
+
51
+ If you don't have Docker already install, please use this method to install it on a debian device: https://docs.docker.com/desktop/setup/install/linux/debian/.
52
+
49
53
  ## Installation
50
54
 
51
55
  Follow these steps to install Matterbridge:
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',
@@ -83,4 +61,3 @@ export const shelly_config = {
83
61
  debugWs: false,
84
62
  unregisterOnShutdown: false,
85
63
  };
86
- //# 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
@@ -2,4 +2,3 @@ export * from '@matter/main';
2
2
  export * from '../matterbridgeDeviceTypes.js';
3
3
  export * from '../matterbridgeEndpoint.js';
4
4
  export * from '../matterbridgeBehaviors.js';
5
- //# sourceMappingURL=export.js.map