matterbridge 3.0.6 → 3.0.7-dev-20250615-2a6da14

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 (187) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README-DEV.md +66 -35
  3. package/README.md +1 -1
  4. package/dist/cli.js +2 -62
  5. package/dist/clusters/export.js +1 -0
  6. package/dist/defaultConfigSchema.js +0 -23
  7. package/dist/deviceManager.js +1 -94
  8. package/dist/devices/export.js +4 -0
  9. package/dist/evse.js +9 -65
  10. package/dist/frontend.js +16 -374
  11. package/dist/globalMatterbridge.js +0 -20
  12. package/dist/helpers.js +0 -51
  13. package/dist/index.js +1 -28
  14. package/dist/laundryWasher.js +7 -92
  15. package/dist/logger/export.js +0 -1
  16. package/dist/matter/behaviors.js +0 -2
  17. package/dist/matter/clusters.js +0 -2
  18. package/dist/matter/devices.js +0 -2
  19. package/dist/matter/endpoints.js +0 -2
  20. package/dist/matter/export.js +0 -2
  21. package/dist/matter/types.js +0 -2
  22. package/dist/matterbridge.js +46 -748
  23. package/dist/matterbridgeAccessoryPlatform.js +0 -34
  24. package/dist/matterbridgeBehaviors.js +1 -54
  25. package/dist/matterbridgeDeviceTypes.js +15 -578
  26. package/dist/matterbridgeDynamicPlatform.js +0 -34
  27. package/dist/matterbridgeEndpoint.js +43 -997
  28. package/dist/matterbridgeEndpointHelpers.js +10 -204
  29. package/dist/matterbridgePlatform.js +7 -225
  30. package/dist/matterbridgeTypes.js +0 -24
  31. package/dist/pluginManager.js +3 -269
  32. package/dist/roboticVacuumCleaner.js +6 -81
  33. package/dist/shelly.js +7 -155
  34. package/dist/storage/export.js +0 -1
  35. package/dist/update.js +0 -53
  36. package/dist/utils/colorUtils.js +2 -205
  37. package/dist/utils/commandLine.js +0 -53
  38. package/dist/utils/copyDirectory.js +1 -37
  39. package/dist/utils/createDirectory.js +0 -31
  40. package/dist/utils/createZip.js +2 -42
  41. package/dist/utils/deepCopy.js +0 -38
  42. package/dist/utils/deepEqual.js +1 -71
  43. package/dist/utils/export.js +0 -1
  44. package/dist/utils/hex.js +0 -57
  45. package/dist/utils/isvalid.js +0 -100
  46. package/dist/utils/network.js +5 -76
  47. package/dist/utils/spawn.js +0 -16
  48. package/dist/utils/wait.js +9 -58
  49. package/dist/waterHeater.js +2 -62
  50. package/npm-shrinkwrap.json +41 -29
  51. package/package.json +23 -20
  52. package/dist/cli.d.ts +0 -29
  53. package/dist/cli.d.ts.map +0 -1
  54. package/dist/cli.js.map +0 -1
  55. package/dist/cluster/export.d.ts +0 -2
  56. package/dist/cluster/export.d.ts.map +0 -1
  57. package/dist/cluster/export.js +0 -3
  58. package/dist/cluster/export.js.map +0 -1
  59. package/dist/defaultConfigSchema.d.ts +0 -27
  60. package/dist/defaultConfigSchema.d.ts.map +0 -1
  61. package/dist/defaultConfigSchema.js.map +0 -1
  62. package/dist/deviceManager.d.ts +0 -114
  63. package/dist/deviceManager.d.ts.map +0 -1
  64. package/dist/deviceManager.js.map +0 -1
  65. package/dist/evse.d.ts +0 -67
  66. package/dist/evse.d.ts.map +0 -1
  67. package/dist/evse.js.map +0 -1
  68. package/dist/frontend.d.ts +0 -256
  69. package/dist/frontend.d.ts.map +0 -1
  70. package/dist/frontend.js.map +0 -1
  71. package/dist/globalMatterbridge.d.ts +0 -32
  72. package/dist/globalMatterbridge.d.ts.map +0 -1
  73. package/dist/globalMatterbridge.js.map +0 -1
  74. package/dist/helpers.d.ts +0 -47
  75. package/dist/helpers.d.ts.map +0 -1
  76. package/dist/helpers.js.map +0 -1
  77. package/dist/index.d.ts +0 -37
  78. package/dist/index.d.ts.map +0 -1
  79. package/dist/index.js.map +0 -1
  80. package/dist/laundryWasher.d.ts +0 -243
  81. package/dist/laundryWasher.d.ts.map +0 -1
  82. package/dist/laundryWasher.js.map +0 -1
  83. package/dist/logger/export.d.ts +0 -2
  84. package/dist/logger/export.d.ts.map +0 -1
  85. package/dist/logger/export.js.map +0 -1
  86. package/dist/matter/behaviors.d.ts +0 -2
  87. package/dist/matter/behaviors.d.ts.map +0 -1
  88. package/dist/matter/behaviors.js.map +0 -1
  89. package/dist/matter/clusters.d.ts +0 -2
  90. package/dist/matter/clusters.d.ts.map +0 -1
  91. package/dist/matter/clusters.js.map +0 -1
  92. package/dist/matter/devices.d.ts +0 -2
  93. package/dist/matter/devices.d.ts.map +0 -1
  94. package/dist/matter/devices.js.map +0 -1
  95. package/dist/matter/endpoints.d.ts +0 -2
  96. package/dist/matter/endpoints.d.ts.map +0 -1
  97. package/dist/matter/endpoints.js.map +0 -1
  98. package/dist/matter/export.d.ts +0 -5
  99. package/dist/matter/export.d.ts.map +0 -1
  100. package/dist/matter/export.js.map +0 -1
  101. package/dist/matter/types.d.ts +0 -3
  102. package/dist/matter/types.d.ts.map +0 -1
  103. package/dist/matter/types.js.map +0 -1
  104. package/dist/matterbridge.d.ts +0 -445
  105. package/dist/matterbridge.d.ts.map +0 -1
  106. package/dist/matterbridge.js.map +0 -1
  107. package/dist/matterbridgeAccessoryPlatform.d.ts +0 -40
  108. package/dist/matterbridgeAccessoryPlatform.d.ts.map +0 -1
  109. package/dist/matterbridgeAccessoryPlatform.js.map +0 -1
  110. package/dist/matterbridgeBehaviors.d.ts +0 -1333
  111. package/dist/matterbridgeBehaviors.d.ts.map +0 -1
  112. package/dist/matterbridgeBehaviors.js.map +0 -1
  113. package/dist/matterbridgeDeviceTypes.d.ts +0 -644
  114. package/dist/matterbridgeDeviceTypes.d.ts.map +0 -1
  115. package/dist/matterbridgeDeviceTypes.js.map +0 -1
  116. package/dist/matterbridgeDynamicPlatform.d.ts +0 -40
  117. package/dist/matterbridgeDynamicPlatform.d.ts.map +0 -1
  118. package/dist/matterbridgeDynamicPlatform.js.map +0 -1
  119. package/dist/matterbridgeEndpoint.d.ts +0 -1144
  120. package/dist/matterbridgeEndpoint.d.ts.map +0 -1
  121. package/dist/matterbridgeEndpoint.js.map +0 -1
  122. package/dist/matterbridgeEndpointHelpers.d.ts +0 -3083
  123. package/dist/matterbridgeEndpointHelpers.d.ts.map +0 -1
  124. package/dist/matterbridgeEndpointHelpers.js.map +0 -1
  125. package/dist/matterbridgePlatform.d.ts +0 -294
  126. package/dist/matterbridgePlatform.d.ts.map +0 -1
  127. package/dist/matterbridgePlatform.js.map +0 -1
  128. package/dist/matterbridgeTypes.d.ts +0 -196
  129. package/dist/matterbridgeTypes.d.ts.map +0 -1
  130. package/dist/matterbridgeTypes.js.map +0 -1
  131. package/dist/pluginManager.d.ts +0 -273
  132. package/dist/pluginManager.d.ts.map +0 -1
  133. package/dist/pluginManager.js.map +0 -1
  134. package/dist/roboticVacuumCleaner.d.ts +0 -102
  135. package/dist/roboticVacuumCleaner.d.ts.map +0 -1
  136. package/dist/roboticVacuumCleaner.js.map +0 -1
  137. package/dist/shelly.d.ts +0 -161
  138. package/dist/shelly.d.ts.map +0 -1
  139. package/dist/shelly.js.map +0 -1
  140. package/dist/storage/export.d.ts +0 -2
  141. package/dist/storage/export.d.ts.map +0 -1
  142. package/dist/storage/export.js.map +0 -1
  143. package/dist/update.d.ts +0 -58
  144. package/dist/update.d.ts.map +0 -1
  145. package/dist/update.js.map +0 -1
  146. package/dist/utils/colorUtils.d.ts +0 -61
  147. package/dist/utils/colorUtils.d.ts.map +0 -1
  148. package/dist/utils/colorUtils.js.map +0 -1
  149. package/dist/utils/commandLine.d.ts +0 -58
  150. package/dist/utils/commandLine.d.ts.map +0 -1
  151. package/dist/utils/commandLine.js.map +0 -1
  152. package/dist/utils/copyDirectory.d.ts +0 -32
  153. package/dist/utils/copyDirectory.d.ts.map +0 -1
  154. package/dist/utils/copyDirectory.js.map +0 -1
  155. package/dist/utils/createDirectory.d.ts +0 -32
  156. package/dist/utils/createDirectory.d.ts.map +0 -1
  157. package/dist/utils/createDirectory.js.map +0 -1
  158. package/dist/utils/createZip.d.ts +0 -38
  159. package/dist/utils/createZip.d.ts.map +0 -1
  160. package/dist/utils/createZip.js.map +0 -1
  161. package/dist/utils/deepCopy.d.ts +0 -31
  162. package/dist/utils/deepCopy.d.ts.map +0 -1
  163. package/dist/utils/deepCopy.js.map +0 -1
  164. package/dist/utils/deepEqual.d.ts +0 -53
  165. package/dist/utils/deepEqual.d.ts.map +0 -1
  166. package/dist/utils/deepEqual.js.map +0 -1
  167. package/dist/utils/export.d.ts +0 -12
  168. package/dist/utils/export.d.ts.map +0 -1
  169. package/dist/utils/export.js.map +0 -1
  170. package/dist/utils/hex.d.ts +0 -48
  171. package/dist/utils/hex.d.ts.map +0 -1
  172. package/dist/utils/hex.js.map +0 -1
  173. package/dist/utils/isvalid.d.ts +0 -102
  174. package/dist/utils/isvalid.d.ts.map +0 -1
  175. package/dist/utils/isvalid.js.map +0 -1
  176. package/dist/utils/network.d.ts +0 -69
  177. package/dist/utils/network.d.ts.map +0 -1
  178. package/dist/utils/network.js.map +0 -1
  179. package/dist/utils/spawn.d.ts +0 -12
  180. package/dist/utils/spawn.d.ts.map +0 -1
  181. package/dist/utils/spawn.js.map +0 -1
  182. package/dist/utils/wait.d.ts +0 -52
  183. package/dist/utils/wait.d.ts.map +0 -1
  184. package/dist/utils/wait.js.map +0 -1
  185. package/dist/waterHeater.d.ts +0 -90
  186. package/dist/waterHeater.d.ts.map +0 -1
  187. package/dist/waterHeater.js.map +0 -1
package/dist/evse.js CHANGED
@@ -1,49 +1,12 @@
1
- /**
2
- * This file contains the Evse class.
3
- *
4
- * @file energy-evse.ts
5
- * @author Luca Liguori
6
- * @contributor Ludovic BOUÉ
7
- * @date 2025-05-27
8
- * @version 1.1.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
  import { EnergyEvseServer } from '@matter/main/behaviors/energy-evse';
25
2
  import { EnergyEvseModeServer } from '@matter/main/behaviors/energy-evse-mode';
26
3
  import { EnergyEvse, EnergyEvseMode } from '@matter/main/clusters';
27
4
  import { DeviceEnergyManagement } from '@matter/main/clusters/device-energy-management';
28
5
  import { ModeBase } from '@matter/main/clusters/mode-base';
29
- // Matterbridge
30
6
  import { MatterbridgeEndpoint } from './matterbridgeEndpoint.js';
31
7
  import { MatterbridgeServer } from './matterbridgeBehaviors.js';
32
8
  import { deviceEnergyManagement, electricalSensor, evse, powerSource } from './matterbridgeDeviceTypes.js';
33
9
  export class Evse extends MatterbridgeEndpoint {
34
- /**
35
- * Creates an instance of the EVSE class.
36
- *
37
- * @param {string} name - The name of the EVSE.
38
- * @param {string} serial - The serial number of the EVSE.
39
- * @param {number} [currentMode] - The current mode of the EnergyEvseMode cluster. Defaults to mode 1 (EnergyEvseMode.ModeTag.Manual).
40
- * @param {EnergyEvseMode.ModeOption[]} [supportedModes] - The supported modes for the EnergyEvseMode cluster. This is a fixed attribute that defaults to a predefined set of EnergyEvseMode cluster modes.
41
- * @param {EnergyEvse.State} [state] - The current state of the EVSE. Defaults to NotPluggedIn.
42
- * @param {EnergyEvse.SupplyState} [supplyState] - The supply state of the EVSE. Defaults to Disabled.
43
- * @param {EnergyEvse.FaultState} [faultState] - The fault state of the EVSE. Defaults to NoError.
44
- * @param {number} [absMinPower=0] - Indicate the minimum electrical power that the ESA can consume when switched on. Defaults to `0` if not provided.
45
- * @param {number} [absMaxPower=0] - Indicate the maximum electrical power that the ESA can consume when switched on. Defaults to `0` if not provided.
46
- */
47
10
  constructor(name, serial, currentMode, supportedModes, state, supplyState, faultState, absMinPower, absMaxPower) {
48
11
  super([evse, powerSource, electricalSensor, deviceEnergyManagement], { uniqueStorageKey: `${name.replaceAll(' ', '')}-${serial.replaceAll(' ', '')}` }, true);
49
12
  this.createDefaultIdentifyClusterServer()
@@ -57,42 +20,29 @@ export class Evse extends MatterbridgeEndpoint {
57
20
  .createDefaultEnergyEvseModeClusterServer(currentMode, supportedModes)
58
21
  .addRequiredClusterServers();
59
22
  }
60
- /**
61
- * Creates a default EnergyEvseServer Cluster Server.
62
- *
63
- */
64
23
  createDefaultEnergyEvseClusterServer(state, supplyState, faultState) {
65
24
  this.behaviors.require(MatterbridgeEnergyEvseServer, {
66
25
  state: state ?? EnergyEvse.State.NotPluggedIn,
67
26
  supplyState: supplyState ?? EnergyEvse.SupplyState.ChargingEnabled,
68
27
  faultState: faultState ?? EnergyEvse.FaultState.NoError,
69
- chargingEnabledUntil: 0, // Persistent attribute
70
- circuitCapacity: 0, // Persistent attribute in mA
71
- minimumChargeCurrent: 6000, // Persistent attribute in mA
72
- maximumChargeCurrent: 0, // Persistent attribute in mA
73
- sessionId: null, // Persistent attribute
74
- sessionDuration: 0, // Persistent attribute
75
- sessionEnergyCharged: 0, // Persistent attribute
28
+ chargingEnabledUntil: 0,
29
+ circuitCapacity: 0,
30
+ minimumChargeCurrent: 6000,
31
+ maximumChargeCurrent: 0,
32
+ sessionId: null,
33
+ sessionDuration: 0,
34
+ sessionEnergyCharged: 0,
76
35
  });
77
36
  return this;
78
37
  }
79
- /**
80
- * Creates a default EnergyEvseMode Cluster Server.
81
- *
82
- * @param {number} [currentMode] - The current mode of the EnergyEvseMode cluster. Defaults to mode 1 (EnergyEvseMode.ModeTag.Manual).
83
- * @param {EnergyEvseMode.ModeOption[]} [supportedModes] - The supported modes for the EnergyEvseMode cluster. Defaults all EnergyEvseMode cluster modes.
84
- *
85
- * @returns {this} The current MatterbridgeEndpoint instance for chaining.
86
- */
87
38
  createDefaultEnergyEvseModeClusterServer(currentMode, supportedModes) {
88
39
  this.behaviors.require(MatterbridgeEnergyEvseModeServer, {
89
40
  supportedModes: supportedModes ?? [
90
41
  { label: 'On demand', mode: 1, modeTags: [{ value: EnergyEvseMode.ModeTag.Manual }] },
91
42
  { label: 'Scheduled', mode: 2, modeTags: [{ value: EnergyEvseMode.ModeTag.TimeOfUse }] },
92
43
  { label: 'Solar charging', mode: 3, modeTags: [{ value: EnergyEvseMode.ModeTag.SolarCharging }] },
93
- // { label: 'Home to vehicle and Vehicle to home', mode: 4, modeTags: [{ value: EnergyEvseMode.ModeTag.V2X }] }, // This mode is not valid in charging only EVSEs
94
- ], // FixedAttribute
95
- currentMode: currentMode ?? 1, // Persistent attribute
44
+ ],
45
+ currentMode: currentMode ?? 1,
96
46
  });
97
47
  return this;
98
48
  }
@@ -108,8 +58,6 @@ export class MatterbridgeEnergyEvseServer extends EnergyEvseServer {
108
58
  this.state.state = EnergyEvse.State.PluggedInDemand;
109
59
  }
110
60
  this.state.chargingEnabledUntil = 0;
111
- // super.disable();
112
- // disable is not implemented in matter.js
113
61
  }
114
62
  enableCharging(request) {
115
63
  const device = this.endpoint.stateOf(MatterbridgeServer);
@@ -123,9 +71,6 @@ export class MatterbridgeEnergyEvseServer extends EnergyEvseServer {
123
71
  this.state.chargingEnabledUntil = request.chargingEnabledUntil;
124
72
  this.state.minimumChargeCurrent = request.minimumChargeCurrent;
125
73
  this.state.maximumChargeCurrent = request.maximumChargeCurrent;
126
- // The implementation should also stop the charging session at the required time and update the sessionId, sessionDuration, and sessionEnergyCharged attributes if needed.
127
- // super.enableCharging();
128
- // enableCharging is not implemented in matter.js
129
74
  }
130
75
  }
131
76
  export class MatterbridgeEnergyEvseModeServer extends EnergyEvseModeServer {
@@ -143,4 +88,3 @@ export class MatterbridgeEnergyEvseModeServer extends EnergyEvseModeServer {
143
88
  return { status: ModeBase.ModeChangeStatus.Success, statusText: 'Success' };
144
89
  }
145
90
  }
146
- //# sourceMappingURL=evse.js.map