matterbridge 3.0.7-dev-20250618-fb768ee → 3.0.7

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 (188) hide show
  1. package/CHANGELOG.md +3 -2
  2. package/README-DEV.md +4 -4
  3. package/dist/cli.d.ts +29 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +62 -2
  6. package/dist/cli.js.map +1 -0
  7. package/dist/clusters/export.d.ts +2 -0
  8. package/dist/clusters/export.d.ts.map +1 -0
  9. package/dist/clusters/export.js +2 -0
  10. package/dist/clusters/export.js.map +1 -0
  11. package/dist/defaultConfigSchema.d.ts +27 -0
  12. package/dist/defaultConfigSchema.d.ts.map +1 -0
  13. package/dist/defaultConfigSchema.js +23 -0
  14. package/dist/defaultConfigSchema.js.map +1 -0
  15. package/dist/deviceManager.d.ts +114 -0
  16. package/dist/deviceManager.d.ts.map +1 -0
  17. package/dist/deviceManager.js +94 -1
  18. package/dist/deviceManager.js.map +1 -0
  19. package/dist/devices/export.d.ts +5 -0
  20. package/dist/devices/export.d.ts.map +1 -0
  21. package/dist/devices/export.js +2 -0
  22. package/dist/devices/export.js.map +1 -0
  23. package/dist/evse.d.ts +67 -0
  24. package/dist/evse.d.ts.map +1 -0
  25. package/dist/evse.js +65 -9
  26. package/dist/evse.js.map +1 -0
  27. package/dist/frontend.d.ts +256 -0
  28. package/dist/frontend.d.ts.map +1 -0
  29. package/dist/frontend.js +374 -16
  30. package/dist/frontend.js.map +1 -0
  31. package/dist/globalMatterbridge.d.ts +32 -0
  32. package/dist/globalMatterbridge.d.ts.map +1 -0
  33. package/dist/globalMatterbridge.js +20 -0
  34. package/dist/globalMatterbridge.js.map +1 -0
  35. package/dist/helpers.d.ts +47 -0
  36. package/dist/helpers.d.ts.map +1 -0
  37. package/dist/helpers.js +51 -0
  38. package/dist/helpers.js.map +1 -0
  39. package/dist/index.d.ts +37 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +28 -1
  42. package/dist/index.js.map +1 -0
  43. package/dist/laundryWasher.d.ts +243 -0
  44. package/dist/laundryWasher.d.ts.map +1 -0
  45. package/dist/laundryWasher.js +92 -7
  46. package/dist/laundryWasher.js.map +1 -0
  47. package/dist/logger/export.d.ts +2 -0
  48. package/dist/logger/export.d.ts.map +1 -0
  49. package/dist/logger/export.js +1 -0
  50. package/dist/logger/export.js.map +1 -0
  51. package/dist/matter/behaviors.d.ts +2 -0
  52. package/dist/matter/behaviors.d.ts.map +1 -0
  53. package/dist/matter/behaviors.js +2 -0
  54. package/dist/matter/behaviors.js.map +1 -0
  55. package/dist/matter/clusters.d.ts +2 -0
  56. package/dist/matter/clusters.d.ts.map +1 -0
  57. package/dist/matter/clusters.js +2 -0
  58. package/dist/matter/clusters.js.map +1 -0
  59. package/dist/matter/devices.d.ts +2 -0
  60. package/dist/matter/devices.d.ts.map +1 -0
  61. package/dist/matter/devices.js +2 -0
  62. package/dist/matter/devices.js.map +1 -0
  63. package/dist/matter/endpoints.d.ts +2 -0
  64. package/dist/matter/endpoints.d.ts.map +1 -0
  65. package/dist/matter/endpoints.js +2 -0
  66. package/dist/matter/endpoints.js.map +1 -0
  67. package/dist/matter/export.d.ts +5 -0
  68. package/dist/matter/export.d.ts.map +1 -0
  69. package/dist/matter/export.js +2 -0
  70. package/dist/matter/export.js.map +1 -0
  71. package/dist/matter/types.d.ts +3 -0
  72. package/dist/matter/types.d.ts.map +1 -0
  73. package/dist/matter/types.js +2 -0
  74. package/dist/matter/types.js.map +1 -0
  75. package/dist/matterbridge.d.ts +445 -0
  76. package/dist/matterbridge.d.ts.map +1 -0
  77. package/dist/matterbridge.js +748 -46
  78. package/dist/matterbridge.js.map +1 -0
  79. package/dist/matterbridgeAccessoryPlatform.d.ts +40 -0
  80. package/dist/matterbridgeAccessoryPlatform.d.ts.map +1 -0
  81. package/dist/matterbridgeAccessoryPlatform.js +34 -0
  82. package/dist/matterbridgeAccessoryPlatform.js.map +1 -0
  83. package/dist/matterbridgeBehaviors.d.ts +1333 -0
  84. package/dist/matterbridgeBehaviors.d.ts.map +1 -0
  85. package/dist/matterbridgeBehaviors.js +54 -1
  86. package/dist/matterbridgeBehaviors.js.map +1 -0
  87. package/dist/matterbridgeDeviceTypes.d.ts +644 -0
  88. package/dist/matterbridgeDeviceTypes.d.ts.map +1 -0
  89. package/dist/matterbridgeDeviceTypes.js +578 -15
  90. package/dist/matterbridgeDeviceTypes.js.map +1 -0
  91. package/dist/matterbridgeDynamicPlatform.d.ts +40 -0
  92. package/dist/matterbridgeDynamicPlatform.d.ts.map +1 -0
  93. package/dist/matterbridgeDynamicPlatform.js +34 -0
  94. package/dist/matterbridgeDynamicPlatform.js.map +1 -0
  95. package/dist/matterbridgeEndpoint.d.ts +1145 -0
  96. package/dist/matterbridgeEndpoint.d.ts.map +1 -0
  97. package/dist/matterbridgeEndpoint.js +995 -40
  98. package/dist/matterbridgeEndpoint.js.map +1 -0
  99. package/dist/matterbridgeEndpointHelpers.d.ts +3083 -0
  100. package/dist/matterbridgeEndpointHelpers.d.ts.map +1 -0
  101. package/dist/matterbridgeEndpointHelpers.js +204 -10
  102. package/dist/matterbridgeEndpointHelpers.js.map +1 -0
  103. package/dist/matterbridgePlatform.d.ts +290 -0
  104. package/dist/matterbridgePlatform.d.ts.map +1 -0
  105. package/dist/matterbridgePlatform.js +221 -6
  106. package/dist/matterbridgePlatform.js.map +1 -0
  107. package/dist/matterbridgeTypes.d.ts +196 -0
  108. package/dist/matterbridgeTypes.d.ts.map +1 -0
  109. package/dist/matterbridgeTypes.js +24 -0
  110. package/dist/matterbridgeTypes.js.map +1 -0
  111. package/dist/pluginManager.d.ts +273 -0
  112. package/dist/pluginManager.d.ts.map +1 -0
  113. package/dist/pluginManager.js +269 -3
  114. package/dist/pluginManager.js.map +1 -0
  115. package/dist/roboticVacuumCleaner.d.ts +102 -0
  116. package/dist/roboticVacuumCleaner.d.ts.map +1 -0
  117. package/dist/roboticVacuumCleaner.js +81 -6
  118. package/dist/roboticVacuumCleaner.js.map +1 -0
  119. package/dist/shelly.d.ts +161 -0
  120. package/dist/shelly.d.ts.map +1 -0
  121. package/dist/shelly.js +155 -7
  122. package/dist/shelly.js.map +1 -0
  123. package/dist/storage/export.d.ts +2 -0
  124. package/dist/storage/export.d.ts.map +1 -0
  125. package/dist/storage/export.js +1 -0
  126. package/dist/storage/export.js.map +1 -0
  127. package/dist/update.d.ts +58 -0
  128. package/dist/update.d.ts.map +1 -0
  129. package/dist/update.js +53 -0
  130. package/dist/update.js.map +1 -0
  131. package/dist/utils/colorUtils.d.ts +61 -0
  132. package/dist/utils/colorUtils.d.ts.map +1 -0
  133. package/dist/utils/colorUtils.js +205 -2
  134. package/dist/utils/colorUtils.js.map +1 -0
  135. package/dist/utils/commandLine.d.ts +58 -0
  136. package/dist/utils/commandLine.d.ts.map +1 -0
  137. package/dist/utils/commandLine.js +53 -0
  138. package/dist/utils/commandLine.js.map +1 -0
  139. package/dist/utils/copyDirectory.d.ts +32 -0
  140. package/dist/utils/copyDirectory.d.ts.map +1 -0
  141. package/dist/utils/copyDirectory.js +37 -1
  142. package/dist/utils/copyDirectory.js.map +1 -0
  143. package/dist/utils/createDirectory.d.ts +32 -0
  144. package/dist/utils/createDirectory.d.ts.map +1 -0
  145. package/dist/utils/createDirectory.js +31 -0
  146. package/dist/utils/createDirectory.js.map +1 -0
  147. package/dist/utils/createZip.d.ts +38 -0
  148. package/dist/utils/createZip.d.ts.map +1 -0
  149. package/dist/utils/createZip.js +42 -2
  150. package/dist/utils/createZip.js.map +1 -0
  151. package/dist/utils/deepCopy.d.ts +31 -0
  152. package/dist/utils/deepCopy.d.ts.map +1 -0
  153. package/dist/utils/deepCopy.js +38 -0
  154. package/dist/utils/deepCopy.js.map +1 -0
  155. package/dist/utils/deepEqual.d.ts +53 -0
  156. package/dist/utils/deepEqual.d.ts.map +1 -0
  157. package/dist/utils/deepEqual.js +71 -1
  158. package/dist/utils/deepEqual.js.map +1 -0
  159. package/dist/utils/export.d.ts +12 -0
  160. package/dist/utils/export.d.ts.map +1 -0
  161. package/dist/utils/export.js +1 -0
  162. package/dist/utils/export.js.map +1 -0
  163. package/dist/utils/hex.d.ts +48 -0
  164. package/dist/utils/hex.d.ts.map +1 -0
  165. package/dist/utils/hex.js +57 -0
  166. package/dist/utils/hex.js.map +1 -0
  167. package/dist/utils/isvalid.d.ts +102 -0
  168. package/dist/utils/isvalid.d.ts.map +1 -0
  169. package/dist/utils/isvalid.js +100 -0
  170. package/dist/utils/isvalid.js.map +1 -0
  171. package/dist/utils/network.d.ts +69 -0
  172. package/dist/utils/network.d.ts.map +1 -0
  173. package/dist/utils/network.js +76 -5
  174. package/dist/utils/network.js.map +1 -0
  175. package/dist/utils/spawn.d.ts +12 -0
  176. package/dist/utils/spawn.d.ts.map +1 -0
  177. package/dist/utils/spawn.js +16 -0
  178. package/dist/utils/spawn.js.map +1 -0
  179. package/dist/utils/wait.d.ts +52 -0
  180. package/dist/utils/wait.d.ts.map +1 -0
  181. package/dist/utils/wait.js +58 -9
  182. package/dist/utils/wait.js.map +1 -0
  183. package/dist/waterHeater.d.ts +90 -0
  184. package/dist/waterHeater.d.ts.map +1 -0
  185. package/dist/waterHeater.js +62 -2
  186. package/dist/waterHeater.js.map +1 -0
  187. package/npm-shrinkwrap.json +2 -2
  188. package/package.json +2 -1
package/dist/shelly.js CHANGED
@@ -1,13 +1,53 @@
1
+ /**
2
+ * This file contains the shelly api functions.
3
+ *
4
+ * @file shelly.ts
5
+ * @author Luca Liguori
6
+ * @date 2025-02-19
7
+ * @version 1.1.0
8
+ *
9
+ * Copyright 2025, 2026, 2027 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
+ */
1
23
  import { WS_ID_SHELLY_MAIN_UPDATE, WS_ID_SHELLY_SYS_UPDATE } from './frontend.js';
2
24
  import { debugStringify } from './logger/export.js';
3
25
  let verifyIntervalSecs = 15;
4
26
  let verifyTimeoutSecs = 600;
27
+ /**
28
+ * Sets the interval for verification in seconds.
29
+ *
30
+ * @param {number} seconds - The interval in seconds.
31
+ * @returns {void}
32
+ */
5
33
  export function setVerifyIntervalSecs(seconds) {
6
34
  verifyIntervalSecs = seconds;
7
35
  }
36
+ /**
37
+ * Sets the timeout for verification in seconds.
38
+ *
39
+ * @param {number} seconds - The timeout in seconds.
40
+ * @returns {void}
41
+ */
8
42
  export function setVerifyTimeoutSecs(seconds) {
9
43
  verifyTimeoutSecs = seconds;
10
44
  }
45
+ /**
46
+ * Fetches Shelly system updates. If available: logs the result, sends a snackbar message, and broadcasts the message.
47
+ *
48
+ * @param {Matterbridge} matterbridge - The Matterbridge instance.
49
+ * @returns {Promise<void>} A promise that resolves when the operation is complete.
50
+ */
11
51
  export async function getShellySysUpdate(matterbridge) {
12
52
  try {
13
53
  const updates = (await getShelly('/api/updates/sys/check'));
@@ -26,19 +66,33 @@ export async function getShellySysUpdate(matterbridge) {
26
66
  matterbridge.log.error(`Error getting Shelly system updates: ${err instanceof Error ? err.message : String(err)}`);
27
67
  }
28
68
  }
69
+ /**
70
+ * Triggers Shelly system updates.
71
+ *
72
+ * @param {Matterbridge} matterbridge - The Matterbridge instance.
73
+ * @returns {Promise<void>} A promise that resolves when the operation is complete.
74
+ */
29
75
  export async function triggerShellySysUpdate(matterbridge) {
30
76
  try {
77
+ // Trigger the update request
31
78
  await getShelly('/api/updates/sys/perform');
32
79
  matterbridge.log.notice('Installing Shelly system update...');
33
80
  matterbridge.matterbridgeInformation.shellySysUpdate = false;
34
81
  matterbridge.frontend.wssSendSnackbarMessage('Installing Shelly system update...', 15);
35
82
  matterbridge.frontend.wssBroadcastMessage(WS_ID_SHELLY_SYS_UPDATE, 'shelly-sys-update', { available: false });
83
+ // Begin polling update status
36
84
  await verifyShellyUpdate(matterbridge, '/api/updates/sys/status', 'Shelly system update');
37
85
  }
38
86
  catch (err) {
39
87
  matterbridge.log.error(`Error triggering Shelly system update: ${err instanceof Error ? err.message : String(err)}`);
40
88
  }
41
89
  }
90
+ /**
91
+ * Fetches Shelly main updates. If available: logs the result, sends a snackbar message, and broadcasts the message.
92
+ *
93
+ * @param {Matterbridge} matterbridge - The Matterbridge instance.
94
+ * @returns {Promise<void>} A promise that resolves when the operation is complete.
95
+ */
42
96
  export async function getShellyMainUpdate(matterbridge) {
43
97
  try {
44
98
  const updates = (await getShelly('/api/updates/main/check'));
@@ -57,19 +111,33 @@ export async function getShellyMainUpdate(matterbridge) {
57
111
  matterbridge.log.error(`Error getting Shelly main updates: ${err instanceof Error ? err.message : String(err)}`);
58
112
  }
59
113
  }
114
+ /**
115
+ * Triggers Shelly main updates.
116
+ * @param {Matterbridge} matterbridge - The Matterbridge instance.
117
+ * @returns {Promise<void>} A promise that resolves when the operation is complete.
118
+ */
60
119
  export async function triggerShellyMainUpdate(matterbridge) {
61
120
  try {
121
+ // Trigger the perform-update request
62
122
  await getShelly('/api/updates/main/perform');
63
123
  matterbridge.log.notice('Installing Shelly software update...');
64
124
  matterbridge.matterbridgeInformation.shellyMainUpdate = false;
65
125
  matterbridge.frontend.wssSendSnackbarMessage('Installing Shelly software update...', 15);
66
126
  matterbridge.frontend.wssBroadcastMessage(WS_ID_SHELLY_MAIN_UPDATE, 'shelly-main-update', { available: false });
127
+ // Begin polling the update status
67
128
  await verifyShellyUpdate(matterbridge, '/api/updates/main/status', 'Shelly software update');
68
129
  }
69
130
  catch (err) {
70
131
  matterbridge.log.error(`Error triggering Shelly main update: ${err instanceof Error ? err.message : String(err)}`);
71
132
  }
72
133
  }
134
+ /**
135
+ * Verifies Shelly update.
136
+ * @param {Matterbridge} matterbridge - The Matterbridge instance.
137
+ * @param {string} api - The api to call: /api/updates/sys/status or /api/updates/main/status
138
+ * @param {string} name - The name of the update.
139
+ * @returns {Promise<void>} A promise that resolves when the operation is complete.
140
+ */
73
141
  export async function verifyShellyUpdate(matterbridge, api, name) {
74
142
  return new Promise((resolve) => {
75
143
  const timeout = setTimeout(() => {
@@ -77,9 +145,9 @@ export async function verifyShellyUpdate(matterbridge, api, name) {
77
145
  matterbridge.frontend.wssSendCloseSnackbarMessage(`${name} in progress...`);
78
146
  clearInterval(interval);
79
147
  resolve();
80
- }, verifyTimeoutSecs * 1000);
148
+ }, verifyTimeoutSecs * 1000); // 10 minutes
81
149
  const interval = setInterval(() => {
82
- getShelly(api, 10 * 1000)
150
+ getShelly(api, 10 * 1000) // 10 seconds
83
151
  .then(async (data) => {
84
152
  if (data.updatingInProgress) {
85
153
  matterbridge.log.debug(`${name} in progress...`);
@@ -101,9 +169,15 @@ export async function verifyShellyUpdate(matterbridge, api, name) {
101
169
  clearTimeout(timeout);
102
170
  resolve();
103
171
  });
104
- }, verifyIntervalSecs * 1000);
172
+ }, verifyIntervalSecs * 1000); // 15 seconds
105
173
  });
106
174
  }
175
+ /**
176
+ * Triggers Shelly change network configuration.
177
+ * @param {Matterbridge} matterbridge - The Matterbridge instance.
178
+ * @param {object} config - The network configuration.
179
+ * @returns {Promise<void>} A promise that resolves when the operation is complete.
180
+ */
107
181
  export async function triggerShellyChangeIp(matterbridge, config) {
108
182
  const api = config.type === 'static' ? '/api/network/connection/static' : '/api/network/connection/dynamic';
109
183
  const data = { interface: 'end0' };
@@ -126,6 +200,11 @@ export async function triggerShellyChangeIp(matterbridge, config) {
126
200
  matterbridge.frontend.wssSendSnackbarMessage('Error changing Shelly network configuration', 10, 'error');
127
201
  }
128
202
  }
203
+ /**
204
+ * Triggers Shelly system reboot.
205
+ * @param {Matterbridge} matterbridge - The Matterbridge instance.
206
+ * @returns {Promise<void>} A promise that resolves when the operation is complete.
207
+ */
129
208
  export async function triggerShellyReboot(matterbridge) {
130
209
  matterbridge.log.debug(`Triggering Shelly system reboot`);
131
210
  try {
@@ -143,6 +222,13 @@ export async function triggerShellyReboot(matterbridge) {
143
222
  matterbridge.frontend.wssSendSnackbarMessage('Error rebooting Shelly board', 10, 'error');
144
223
  }
145
224
  }
225
+ /**
226
+ * Triggers Shelly soft reset.
227
+ * It will replaces network config with the default one (edn0 on dhcp).
228
+ *
229
+ * @param {Matterbridge} matterbridge - The Matterbridge instance.
230
+ * @returns {Promise<void>} A promise that resolves when the operation is complete.
231
+ */
146
232
  export async function triggerShellySoftReset(matterbridge) {
147
233
  matterbridge.log.debug(`Triggering Shelly soft reset`);
148
234
  try {
@@ -160,6 +246,13 @@ export async function triggerShellySoftReset(matterbridge) {
160
246
  matterbridge.frontend.wssSendSnackbarMessage('Error resetting the network parameters on Shelly board', 10, 'error');
161
247
  }
162
248
  }
249
+ /**
250
+ * Triggers Shelly hard reset.
251
+ * It will do a hard reset and will remove both directories .matterbridge Matterbridge.
252
+ *
253
+ * @param {Matterbridge} matterbridge - The Matterbridge instance.
254
+ * @returns {Promise<void>} A promise that resolves when the operation is complete.
255
+ */
163
256
  export async function triggerShellyHardReset(matterbridge) {
164
257
  matterbridge.log.debug(`Triggering Shelly hard reset`);
165
258
  try {
@@ -177,6 +270,12 @@ export async function triggerShellyHardReset(matterbridge) {
177
270
  matterbridge.frontend.wssSendSnackbarMessage('Error while factory resetting the Shelly board', 10, 'error');
178
271
  }
179
272
  }
273
+ /**
274
+ * Fetches Shelly system log and write it to shelly.log.
275
+ *
276
+ * @param {Matterbridge} matterbridge - The Matterbridge instance.
277
+ * @returns {Promise<void>} A promise that resolves when the operation is complete.
278
+ */
180
279
  export async function createShellySystemLog(matterbridge) {
181
280
  const { promises: fs } = await import('node:fs');
182
281
  const path = await import('node:path');
@@ -191,6 +290,27 @@ export async function createShellySystemLog(matterbridge) {
191
290
  matterbridge.log.error(`Error getting Shelly system log: ${error instanceof Error ? error.message : error}`);
192
291
  }
193
292
  }
293
+ /**
294
+ * Perform a GET to Shelly board apis.
295
+ * @param {string} api - The api to call:
296
+ *
297
+ * /api/updates/sys/check => [{name:string; ...}]
298
+ * /api/updates/sys/perform => {"updatingInProgress":true} or {"updatingInProgress":false}
299
+ * /api/updates/sys/status => {"updatingInProgress":true} or {"updatingInProgress":false}
300
+ * /api/updates/main/check => [{name:string; ...}]
301
+ * /api/updates/main/perform => {"updatingInProgress":true} or {"updatingInProgress":false}
302
+ * /api/updates/main/status => {"updatingInProgress":true} or {"updatingInProgress":false}
303
+ *
304
+ * /api/logs/system => text
305
+ *
306
+ * /api/reset/soft => "ok" Replaces network config with default one (edn0 on dhcp)
307
+ * /api/reset/hard => reboot on success Hard reset makes soft reset + removing both directories .matterbridge Matterbridge + reboot
308
+ *
309
+ *
310
+ * @param {number} [timeout=60000] - The timeout duration in milliseconds (default is 60000ms).
311
+ * @returns {Promise<any>} A promise that resolves to the response.
312
+ * @throws {Error} If the request fails.
313
+ */
194
314
  export async function getShelly(api, timeout = 60000) {
195
315
  const http = await import('node:http');
196
316
  return new Promise((resolve, reject) => {
@@ -204,12 +324,13 @@ export async function getShelly(api, timeout = 60000) {
204
324
  let data = '';
205
325
  if (res.statusCode !== 200) {
206
326
  clearTimeout(timeoutId);
207
- res.resume();
208
- req.destroy();
327
+ res.resume(); // Discard response data to close the socket properly
328
+ req.destroy(); // Forcefully close the request
209
329
  reject(new Error(`Failed to fetch data. Status code: ${res.statusCode}`));
210
330
  return;
211
331
  }
212
332
  res.on('data', (chunk) => {
333
+ // console.log(chunk);
213
334
  data += chunk;
214
335
  });
215
336
  res.on('end', () => {
@@ -224,6 +345,7 @@ export async function getShelly(api, timeout = 60000) {
224
345
  }
225
346
  }
226
347
  else {
348
+ // console.log(data);
227
349
  resolve(data);
228
350
  }
229
351
  });
@@ -234,6 +356,29 @@ export async function getShelly(api, timeout = 60000) {
234
356
  });
235
357
  });
236
358
  }
359
+ /**
360
+ * Perform a POST request to Shelly board apis.
361
+ * @param {string} api - The api to call:
362
+ *
363
+ * Set static ip
364
+ * /api/network/connection/static -d '{"interface": "end0", "addr": "10.11.12.101", "mask": "255.255.255.0", "gw": "10.11.12.1", "dns": "1.1.1.1"}' => {}
365
+ *
366
+ * Set dhcp
367
+ * /api/network/connection/dynamic -d '{"interface": "end0"}' => {}
368
+ *
369
+ * Reboot
370
+ * /api/system/reboot => {"success":true}
371
+ *
372
+ * curl -H "Content-Type: application/json" -X POST http://127.0.0.1:8101/api/network/connection/dynamic
373
+ * -d '{"interface": "end0"}'
374
+ *
375
+ * curl -H "Content-Type: application/json" -X POST http://127.0.0.1:8101/api/network/connection/static
376
+ * -d '{"interface": "end0", "addr": "192.168.1.64", "mask": "255.255.255.0", "gw": "192.168.1.1", "dns": "192.168.1.1"}'
377
+ *
378
+ * @param {number} [timeout=60000] - The timeout duration in milliseconds (default is 60000ms).
379
+ * @returns {Promise<any>} A promise that resolves to the response.
380
+ * @throws {Error} If the request fails.
381
+ */
237
382
  export async function postShelly(api, data, timeout = 60000) {
238
383
  const http = await import('node:http');
239
384
  return new Promise((resolve, reject) => {
@@ -254,10 +399,11 @@ export async function postShelly(api, data, timeout = 60000) {
254
399
  };
255
400
  const req = http.request(url, options, (res) => {
256
401
  let responseData = '';
402
+ // Check for non-success status codes (e.g., 300+)
257
403
  if (res.statusCode && res.statusCode >= 300) {
258
404
  clearTimeout(timeoutId);
259
- res.resume();
260
- req.destroy();
405
+ res.resume(); // Discard response data to free up memory
406
+ req.destroy(); // Close the request
261
407
  return reject(new Error(`Failed to post data. Status code: ${res.statusCode}`));
262
408
  }
263
409
  res.on('data', (chunk) => {
@@ -278,7 +424,9 @@ export async function postShelly(api, data, timeout = 60000) {
278
424
  clearTimeout(timeoutId);
279
425
  reject(new Error(`Request failed: ${error instanceof Error ? error.message : error}`));
280
426
  });
427
+ // Send the JSON data
281
428
  req.write(jsonData);
282
429
  req.end();
283
430
  });
284
431
  }
432
+ //# sourceMappingURL=shelly.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shelly.js","sourceRoot":"","sources":["../src/shelly.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAKH,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,IAAI,kBAAkB,GAAG,EAAE,CAAC;AAC5B,IAAI,iBAAiB,GAAG,GAAG,CAAC;AAE5B;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,kBAAkB,GAAG,OAAO,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,iBAAiB,GAAG,OAAO,CAAC;AAC9B,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,YAA0B;IACjE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,CAAC,MAAM,SAAS,CAAC,wBAAwB,CAAC,CAAuB,CAAC;QAClF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEjC,YAAY,CAAC,uBAAuB,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5D,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,mBAAmB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7G,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC;YACnE,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,mCAAmC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,wCAAwC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrH,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,YAA0B;IACrE,IAAI,CAAC;QACH,6BAA6B;QAC7B,MAAM,SAAS,CAAC,0BAA0B,CAAC,CAAC;QAC5C,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC;QAC9D,YAAY,CAAC,uBAAuB,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7D,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,oCAAoC,EAAE,EAAE,CAAC,CAAC;QACvF,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,mBAAmB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAE9G,8BAA8B;QAC9B,MAAM,kBAAkB,CAAC,YAAY,EAAE,yBAAyB,EAAE,sBAAsB,CAAC,CAAC;IAC5F,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,0CAA0C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACvH,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,YAA0B;IAClE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,CAAC,MAAM,SAAS,CAAC,yBAAyB,CAAC,CAAuB,CAAC;QACnF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEjC,YAAY,CAAC,uBAAuB,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7D,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,wBAAwB,EAAE,oBAAoB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/G,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,qCAAqC,IAAI,EAAE,CAAC,CAAC;YACrE,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,qCAAqC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAChG,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,sCAAsC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,YAA0B;IACtE,IAAI,CAAC;QACH,qCAAqC;QACrC,MAAM,SAAS,CAAC,2BAA2B,CAAC,CAAC;QAC7C,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC;QAChE,YAAY,CAAC,uBAAuB,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9D,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,sCAAsC,EAAE,EAAE,CAAC,CAAC;QACzF,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,wBAAwB,EAAE,oBAAoB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAEhH,kCAAkC;QAClC,MAAM,kBAAkB,CAAC,YAAY,EAAE,0BAA0B,EAAE,wBAAwB,CAAC,CAAC;IAC/F,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,wCAAwC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrH,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,YAA0B,EAAE,GAAW,EAAE,IAAY;IAC5F,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACnC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,kBAAkB,CAAC,CAAC;YAClD,YAAY,CAAC,QAAQ,CAAC,2BAA2B,CAAC,GAAG,IAAI,iBAAiB,CAAC,CAAC;YAC5E,aAAa,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,EAAE,CAAC;QACZ,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC,aAAa;QAC3C,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,SAAS,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;iBACpC,IAAI,CAAC,KAAK,EAAE,IAAqC,EAAE,EAAE;gBACpD,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC5B,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,iBAAiB,CAAC,CAAC;oBACjD,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,GAAG,IAAI,iBAAiB,EAAE,CAAC,CAAC,CAAC;gBAC5E,CAAC;qBAAM,CAAC;oBACN,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,YAAY,CAAC,CAAC;oBAC7C,YAAY,CAAC,QAAQ,CAAC,2BAA2B,CAAC,GAAG,IAAI,iBAAiB,CAAC,CAAC;oBAC5E,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,GAAG,IAAI,YAAY,EAAE,EAAE,CAAC,CAAC;oBACtE,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACxB,YAAY,CAAC,OAAO,CAAC,CAAC;oBACtB,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACf,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B,IAAI,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACrH,YAAY,CAAC,QAAQ,CAAC,2BAA2B,CAAC,GAAG,IAAI,iBAAiB,CAAC,CAAC;gBAC5E,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACxB,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC,CAAC,CAAC,aAAa;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,YAA0B,EAAE,MAA6F;IACnK,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,iCAAiC,CAAC;IAC5G,MAAM,IAAI,GAAmF,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IACnH,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;IAC3B,CAAC;IAED,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,mDAAmD,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpG,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5B,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,kDAAkD,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC;QAChE,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,sCAAsC,CAAC,CAAC;IACvF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,4DAA4D,cAAc,CAAC,MAAM,CAAC,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxK,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,gDAAgD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjI,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,6CAA6C,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC3G,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,YAA0B;IAClE,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC1D,IAAI,CAAC;QACH,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC;QAC7E,MAAM,UAAU,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;QAC3C,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACzD,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;QACrD,YAAY,CAAC,QAAQ,CAAC,2BAA2B,CAAC,2BAA2B,CAAC,CAAC;QAC/E,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,iCAAiC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;IAChG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,8CAA8C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/H,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClH,YAAY,CAAC,QAAQ,CAAC,2BAA2B,CAAC,2BAA2B,CAAC,CAAC;QAC/E,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,8BAA8B,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC5F,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,YAA0B;IACrE,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,qDAAqD,EAAE,CAAC,CAAC,CAAC;QACvG,MAAM,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACnC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACtD,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,qDAAqD,CAAC,CAAC;QAC/E,YAAY,CAAC,QAAQ,CAAC,2BAA2B,CAAC,qDAAqD,CAAC,CAAC;QACzG,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,uDAAuD,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;IACtH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,2CAA2C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5H,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,2DAA2D,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5I,YAAY,CAAC,QAAQ,CAAC,2BAA2B,CAAC,qDAAqD,CAAC,CAAC;QACzG,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,wDAAwD,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IACtH,CAAC;AACH,CAAC;AACD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,YAA0B;IACrE,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,mCAAmC,EAAE,CAAC,CAAC,CAAC;QACrF,MAAM,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACnC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACtD,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC;QAC7D,YAAY,CAAC,QAAQ,CAAC,2BAA2B,CAAC,mCAAmC,CAAC,CAAC;QACvF,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,qCAAqC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;IACpG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,2CAA2C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5H,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,mDAAmD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpI,YAAY,CAAC,QAAQ,CAAC,2BAA2B,CAAC,mCAAmC,CAAC,CAAC;QACvF,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,gDAAgD,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC9G,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,YAA0B;IACpE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IAEvC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAC3D,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACjD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;QACtF,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC;QAChE,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,sCAAsC,CAAC,CAAC;IACvF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,oCAAoC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/G,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,OAAO,GAAG,KAAK;IAC1D,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IACvC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,wBAAwB,GAAG,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAChC,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,OAAO,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC;QACzE,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;QAEpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;YAC/D,IAAI,IAAI,GAAG,EAAE,CAAC;YAEd,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gBAC3B,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,qDAAqD;gBACnE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,+BAA+B;gBAC9C,MAAM,CAAC,IAAI,KAAK,CAAC,sCAAsC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;gBAC1E,OAAO;YACT,CAAC;YAED,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBACvB,sBAAsB;gBACtB,IAAI,IAAI,KAAK,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,IAAI,GAAG,KAAK,kBAAkB,EAAE,CAAC;oBAC/B,IAAI,CAAC;wBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAClC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACpB,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,MAAM,CAAC,IAAI,KAAK,CAAC,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBACxG,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,qBAAqB;oBACrB,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACxB,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW,EAAE,IAAS,EAAE,OAAO,GAAG,KAAK;IACtE,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IACvC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,wBAAwB,GAAG,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAChC,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,OAAO,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC;QACzE,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;QAEpB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,OAAO,GAAmB;YAC9B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;aAC9C;YACD,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC;QAEF,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC7C,IAAI,YAAY,GAAG,EAAE,CAAC;YAEtB,kDAAkD;YAClD,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;gBAC5C,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,0CAA0C;gBACxD,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,oBAAoB;gBACnC,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,qCAAqC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAClF,CAAC;YAED,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBACvB,YAAY,IAAI,KAAK,CAAC;YACxB,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,IAAI,CAAC;oBACH,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBAC9C,OAAO,CAAC,YAAY,CAAC,CAAC;gBACxB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,IAAI,KAAK,CAAC,kCAAkC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAClG,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACxB,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;QAEH,qBAAqB;QACrB,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACpB,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from 'node-persist-manager';
2
+ //# sourceMappingURL=export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/storage/export.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
@@ -1 +1,2 @@
1
1
  export * from 'node-persist-manager';
2
+ //# sourceMappingURL=export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/storage/export.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * This file contains the check updates functions.
3
+ *
4
+ * @file update.ts
5
+ * @author Luca Liguori
6
+ * @date 2025-02-24
7
+ * @version 1.0.0
8
+ *
9
+ * Copyright 2025, 2026, 2027 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
+ import { Matterbridge } from './matterbridge.js';
24
+ import { RegisteredPlugin } from './matterbridgeTypes.js';
25
+ /**
26
+ * Checks for updates for Matterbridge and its plugins.
27
+ * If the 'shelly' parameter is present, also checks for Shelly updates.
28
+ *
29
+ * @param {Matterbridge} matterbridge - The Matterbridge instance.
30
+ * @returns {Promise<void>} A promise that resolves when the update checks are complete.
31
+ */
32
+ export declare function checkUpdates(matterbridge: Matterbridge): Promise<void>;
33
+ /**
34
+ * Retrieves the latest version of Matterbridge and updates the matterbridgeLatestVersion property.
35
+ * If there is an error retrieving the latest version, logs an error message.
36
+ *
37
+ * @param {Matterbridge} matterbridge - The Matterbridge instance.
38
+ * @returns {Promise<String | undefined>} A promise that resolves when the latest version is retrieved.
39
+ */
40
+ export declare function getMatterbridgeLatestVersion(matterbridge: Matterbridge): Promise<string | undefined>;
41
+ /**
42
+ * Retrieves the latest dev version of Matterbridge and updates the matterbridgeDevVersion property.
43
+ * If there is an error retrieving the latest version, logs an error message.
44
+ *
45
+ * @param {Matterbridge} matterbridge - The Matterbridge instance.
46
+ * @returns {Promise<string | undefined>} A promise that resolves when the latest dev version is retrieved.
47
+ */
48
+ export declare function getMatterbridgeDevVersion(matterbridge: Matterbridge): Promise<string | undefined>;
49
+ /**
50
+ * Retrieves the latest version of a plugin and updates the plugin's latestVersion property.
51
+ * If there is an error retrieving the latest version, logs an error message.
52
+ *
53
+ * @param {Matterbridge} matterbridge - The Matterbridge instance.
54
+ * @param {RegisteredPlugin} plugin - The plugin for which to retrieve the latest version.
55
+ * @returns {Promise<string | undefined>} A promise that resolves when the latest version is retrieved.
56
+ */
57
+ export declare function getPluginLatestVersion(matterbridge: Matterbridge, plugin: RegisteredPlugin): Promise<string | undefined>;
58
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAMH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAO,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB5E;AAED;;;;;;GAMG;AACH,wBAAsB,4BAA4B,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAmB1G;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAmBvG;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAgB9H"}
package/dist/update.js CHANGED
@@ -1,5 +1,35 @@
1
+ /**
2
+ * This file contains the check updates functions.
3
+ *
4
+ * @file update.ts
5
+ * @author Luca Liguori
6
+ * @date 2025-02-24
7
+ * @version 1.0.0
8
+ *
9
+ * Copyright 2025, 2026, 2027 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
+ // AnsiLogger module
1
24
  import { db, nt, wr } from 'node-ansi-logger';
2
25
  import { plg } from './matterbridgeTypes.js';
26
+ /**
27
+ * Checks for updates for Matterbridge and its plugins.
28
+ * If the 'shelly' parameter is present, also checks for Shelly updates.
29
+ *
30
+ * @param {Matterbridge} matterbridge - The Matterbridge instance.
31
+ * @returns {Promise<void>} A promise that resolves when the update checks are complete.
32
+ */
3
33
  export async function checkUpdates(matterbridge) {
4
34
  const { hasParameter } = await import('./utils/commandLine.js');
5
35
  const latestVersion = getMatterbridgeLatestVersion(matterbridge);
@@ -19,6 +49,13 @@ export async function checkUpdates(matterbridge) {
19
49
  }
20
50
  await Promise.all([latestVersion, devVersion, ...pluginsVersions, ...shellyUpdates]);
21
51
  }
52
+ /**
53
+ * Retrieves the latest version of Matterbridge and updates the matterbridgeLatestVersion property.
54
+ * If there is an error retrieving the latest version, logs an error message.
55
+ *
56
+ * @param {Matterbridge} matterbridge - The Matterbridge instance.
57
+ * @returns {Promise<String | undefined>} A promise that resolves when the latest version is retrieved.
58
+ */
22
59
  export async function getMatterbridgeLatestVersion(matterbridge) {
23
60
  const { getNpmPackageVersion } = await import('./utils/network.js');
24
61
  try {
@@ -40,6 +77,13 @@ export async function getMatterbridgeLatestVersion(matterbridge) {
40
77
  matterbridge.log.warn(`Error getting Matterbridge latest version: ${error instanceof Error ? error.message : error}`);
41
78
  }
42
79
  }
80
+ /**
81
+ * Retrieves the latest dev version of Matterbridge and updates the matterbridgeDevVersion property.
82
+ * If there is an error retrieving the latest version, logs an error message.
83
+ *
84
+ * @param {Matterbridge} matterbridge - The Matterbridge instance.
85
+ * @returns {Promise<string | undefined>} A promise that resolves when the latest dev version is retrieved.
86
+ */
43
87
  export async function getMatterbridgeDevVersion(matterbridge) {
44
88
  const { getNpmPackageVersion } = await import('./utils/network.js');
45
89
  try {
@@ -61,6 +105,14 @@ export async function getMatterbridgeDevVersion(matterbridge) {
61
105
  matterbridge.log.warn(`Error getting Matterbridge latest dev version: ${error instanceof Error ? error.message : error}`);
62
106
  }
63
107
  }
108
+ /**
109
+ * Retrieves the latest version of a plugin and updates the plugin's latestVersion property.
110
+ * If there is an error retrieving the latest version, logs an error message.
111
+ *
112
+ * @param {Matterbridge} matterbridge - The Matterbridge instance.
113
+ * @param {RegisteredPlugin} plugin - The plugin for which to retrieve the latest version.
114
+ * @returns {Promise<string | undefined>} A promise that resolves when the latest version is retrieved.
115
+ */
64
116
  export async function getPluginLatestVersion(matterbridge, plugin) {
65
117
  const { getNpmPackageVersion } = await import('./utils/network.js');
66
118
  try {
@@ -79,3 +131,4 @@ export async function getPluginLatestVersion(matterbridge, plugin) {
79
131
  matterbridge.log.warn(`Error getting plugin ${plg}${plugin.name}${wr} latest version: ${error instanceof Error ? error.message : error}`);
80
132
  }
81
133
  }
134
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * This file contains the color utilities.
3
+ *
4
+ * @file colorUtils.ts
5
+ * @author Luca Liguori
6
+ * @date 2023-10-05
7
+ * @version 1.3.0
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
+ export interface RGB {
24
+ r: number;
25
+ g: number;
26
+ b: number;
27
+ }
28
+ export interface XY {
29
+ x: number;
30
+ y: number;
31
+ }
32
+ export interface HSL {
33
+ h: number;
34
+ s: number;
35
+ l: number;
36
+ }
37
+ export declare function hslColorToRgbColor(hue: number, saturation: number, luminance: number): RGB;
38
+ export declare function rgbColorToXYColor(rgb: RGB): XY;
39
+ export declare function xyColorToRgbColor(x: number, y: number, brightness?: number): RGB;
40
+ export declare function rgbColorToHslColor(rgb: RGB): HSL;
41
+ export declare function xyToHsl(x: number, y: number): HSL;
42
+ export declare function miredToKelvin(mired: number): number;
43
+ export declare function kelvinToMired(kelvin: number): number;
44
+ export declare function kelvinToRGB(kelvin: number): RGB;
45
+ /**
46
+ * Converts CIE color space to RGB color space
47
+ * @param {Number} x
48
+ * @param {Number} y
49
+ * @param {Number} brightness - Ranges from 1 to 254
50
+ * @return {Array} Array that contains the color values for red, green and blue
51
+ * From: https://github.com/usolved/cie-rgb-converter/blob/master/cie_rgb_converter.js
52
+ */
53
+ /**
54
+ * Converts RGB color space to CIE color space
55
+ * @param {Number} red
56
+ * @param {Number} green
57
+ * @param {Number} blue
58
+ * @return {Array} Array that contains the CIE color values for x and y
59
+ * From: https://github.com/usolved/cie-rgb-converter/blob/master/cie_rgb_converter.js
60
+ */
61
+ //# sourceMappingURL=colorUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colorUtils.d.ts","sourceRoot":"","sources":["../../src/utils/colorUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,MAAM,WAAW,GAAG;IAClB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,EAAE;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,GAAG;IAClB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG,CA+C1F;AAGD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,CA6B9C;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,SAAM,GAAG,GAAG,CAgD7E;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAmChD;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,GAAG,CAGjD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAsC/C;AAwDD;;;;;;;GAOG;AAsDH;;;;;;;GAOG"}