homebridge-econet-rheem 1.5.10 → 1.5.12-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/CHANGELOG.md +14 -2
  2. package/dist/homebridge/index.js.map +1 -0
  3. package/dist/{platform.d.ts → homebridge/platform.d.ts} +4 -1
  4. package/dist/homebridge/platform.js +98 -0
  5. package/dist/homebridge/platform.js.map +1 -0
  6. package/dist/homebridge/settings.js.map +1 -0
  7. package/dist/{accessories → homebridge}/thermostatAccessory.d.ts +1 -1
  8. package/dist/{accessories → homebridge}/thermostatAccessory.js +8 -6
  9. package/dist/homebridge/thermostatAccessory.js.map +1 -0
  10. package/dist/{accessories → homebridge}/waterHeaterAccessory.d.ts +1 -1
  11. package/dist/{accessories → homebridge}/waterHeaterAccessory.js +7 -5
  12. package/dist/homebridge/waterHeaterAccessory.js.map +1 -0
  13. package/dist/lang/en.d.ts +52 -0
  14. package/dist/lang/en.js +64 -0
  15. package/dist/lang/en.js.map +1 -0
  16. package/dist/model/api.d.ts +36 -0
  17. package/dist/model/api.js +367 -0
  18. package/dist/model/api.js.map +1 -0
  19. package/dist/model/auth.d.ts +11 -0
  20. package/dist/model/auth.js +52 -0
  21. package/dist/model/auth.js.map +1 -0
  22. package/dist/model/{enums.d.ts → constants.d.ts} +4 -0
  23. package/dist/model/{enums.js → constants.js} +6 -1
  24. package/dist/model/constants.js.map +1 -0
  25. package/dist/model/equipment.d.ts +9 -9
  26. package/dist/model/equipment.js +15 -29
  27. package/dist/model/equipment.js.map +1 -1
  28. package/dist/model/recoverySimulator.d.ts +2 -2
  29. package/dist/model/recoverySimulator.js +7 -8
  30. package/dist/model/recoverySimulator.js.map +1 -1
  31. package/dist/model/thermostat.d.ts +6 -6
  32. package/dist/model/thermostat.js +62 -70
  33. package/dist/model/thermostat.js.map +1 -1
  34. package/dist/model/types.d.ts +82 -0
  35. package/dist/model/types.js +12 -0
  36. package/dist/model/types.js.map +1 -0
  37. package/dist/model/waterHeater.d.ts +7 -5
  38. package/dist/model/waterHeater.js +34 -37
  39. package/dist/model/waterHeater.js.map +1 -1
  40. package/dist/tools/storage.d.ts +3 -0
  41. package/dist/tools/storage.js +22 -0
  42. package/dist/tools/storage.js.map +1 -0
  43. package/dist/tools/temperature.d.ts +3 -0
  44. package/dist/tools/temperature.js +14 -0
  45. package/dist/tools/temperature.js.map +1 -0
  46. package/dist/tools/time.d.ts +4 -0
  47. package/dist/tools/time.js +5 -0
  48. package/dist/tools/time.js.map +1 -0
  49. package/dist/tools/version.d.ts +1 -0
  50. package/dist/tools/version.js +18 -0
  51. package/dist/tools/version.js.map +1 -0
  52. package/example_responses/auth.json +45 -0
  53. package/example_responses/locations.json +1656 -0
  54. package/package.json +4 -2
  55. package/src/homebridge-ui/public/index.html +104 -0
  56. package/dist/accessories/thermostatAccessory.js.map +0 -1
  57. package/dist/accessories/waterHeaterAccessory.js.map +0 -1
  58. package/dist/index.js.map +0 -1
  59. package/dist/model/econet.d.ts +0 -48
  60. package/dist/model/econet.js +0 -319
  61. package/dist/model/econet.js.map +0 -1
  62. package/dist/model/enums.js.map +0 -1
  63. package/dist/model/utils.d.ts +0 -9
  64. package/dist/model/utils.js +0 -53
  65. package/dist/model/utils.js.map +0 -1
  66. package/dist/platform.js +0 -101
  67. package/dist/platform.js.map +0 -1
  68. package/dist/settings.js.map +0 -1
  69. package/notes +0 -7
  70. /package/dist/{index.d.ts → homebridge/index.d.ts} +0 -0
  71. /package/dist/{index.js → homebridge/index.js} +0 -0
  72. /package/dist/{settings.d.ts → homebridge/settings.d.ts} +0 -0
  73. /package/dist/{settings.js → homebridge/settings.js} +0 -0
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "displayName": "Homebridge Econet Rheem",
5
5
  "description": "Homebridge plugin based on pyeconet for control of Rheem water heaters",
6
6
  "type": "module",
7
- "version": "1.5.10",
7
+ "version": "1.5.12-beta.0",
8
8
  "homepage": "https://github.com/mpatfield/homebridge-econet-rheem#readme",
9
9
  "repository": {
10
10
  "type": "git",
@@ -17,7 +17,7 @@
17
17
  "bugs": {
18
18
  "url": "https://github.com/mpatfield/homebridge-econet-rheem/issues"
19
19
  },
20
- "main": "dist/index.js",
20
+ "main": "dist/homebridge/index.js",
21
21
  "scripts": {
22
22
  "build": "rimraf ./dist && tsc",
23
23
  "lint": "eslint . --max-warnings=0",
@@ -41,6 +41,8 @@
41
41
  "homebridge": "^1.8.0 || ^2.0.0-beta.0"
42
42
  },
43
43
  "dependencies": {
44
+ "@homebridge/plugin-ui-utils": "^2.0.2",
45
+ "axios": "^1.7.2",
44
46
  "homebridge-lib": "^7.1.4",
45
47
  "mqtt": "^5.7.0"
46
48
  },
@@ -0,0 +1,104 @@
1
+ <p class="text-center">
2
+ <img
3
+ src="https://github.com/mpatfield/homebridge-econet-rheem/blob/latest/img/banner.png?raw=true"
4
+ alt="homebridge-econet-rheem logo"
5
+ style="width: 60%;"
6
+ />
7
+ </p>
8
+ <div id="support" class="text-center" style="display: none;">
9
+ <p>For help and support please visit <a target="_blank" href="https://github.com/mpatfield/homebridge-econet-rheem/">GitHub</a>. We hope you find this plugin useful!</p>
10
+ </div>
11
+ <div id="pageIntro" class="text-center" style="display: none;">
12
+ <p class="lead">Thank you for installing <strong>homebridge-econet-rheem</strong></p>
13
+ <p>
14
+ </br>You will need your Rheem username and password</br>
15
+ </p>
16
+ </br><button type="button" class="btn btn-primary" id="introContinue">Continue &rarr;</button>
17
+ </div>
18
+ <div id="spinner-container">
19
+ <div id="spinner" class="spinner"></div>
20
+ </div>
21
+ <style>
22
+
23
+ #spinner-container {
24
+ margin-top: 2rem;
25
+ display: none;
26
+ justify-content: center;
27
+ }
28
+
29
+ .spinner {
30
+ border: 8px solid #f3f3f3;
31
+ border-radius: 50%;
32
+ border-top: 8px solid #3498db;
33
+ width: 60px;
34
+ height: 60px;
35
+ -webkit-animation: spin 1s linear infinite; /* Safari */
36
+ animation: spin 1s linear infinite;
37
+ }
38
+
39
+ /* Safari */
40
+ @-webkit-keyframes spin {
41
+ 0% { -webkit-transform: rotate(0deg); }
42
+ 100% { -webkit-transform: rotate(360deg); }
43
+ }
44
+
45
+ @keyframes spin {
46
+ 0% { transform: rotate(0deg); }
47
+ 100% { transform: rotate(360deg); }
48
+ }
49
+ </style>
50
+ <script>
51
+ ;(async () => {
52
+
53
+ const showSpinner = () => {
54
+ const spinnerContainer = document.getElementById('spinner-container')
55
+ spinnerContainer.style.display = 'flex'
56
+ }
57
+
58
+ const hideSpinner = () => {
59
+ const spinnerContainer = document.getElementById('spinner-container')
60
+ spinnerContainer.style.display = 'none'
61
+ }
62
+
63
+ const showIntro = () => {
64
+ const introContinue = document.getElementById('introContinue')
65
+ introContinue.addEventListener('click', async () => {
66
+ showSettings()
67
+ })
68
+ document.getElementById('pageIntro').style.display = 'block'
69
+ hideSpinner()
70
+ }
71
+
72
+ const showSupport = () => {
73
+ document.getElementById('support').style.display = 'block'
74
+ }
75
+
76
+ const showSettings = async () => {
77
+ document.getElementById('pageIntro').style.display = 'none'
78
+ showSpinner()
79
+ showSupport()
80
+ await homebridge.showSchemaForm()
81
+ hideSpinner()
82
+ }
83
+
84
+ try {
85
+
86
+ showSpinner()
87
+ await new Promise(r => setTimeout(r, 500))
88
+
89
+ const currentConfig = await homebridge.getPluginConfig()
90
+
91
+ if (currentConfig.length) {
92
+ await showSettings()
93
+ } else {
94
+ currentConfig.push({ name: 'Econet Rheem' })
95
+ await homebridge.updatePluginConfig(currentConfig)
96
+ showIntro()
97
+ }
98
+
99
+ } catch (err) {
100
+ homebridge.toast.error(err.message, 'Sorry, something went wrong. Please try again.')
101
+ hideSpinner()
102
+ }
103
+ })()
104
+ </script>
@@ -1 +0,0 @@
1
- {"version":3,"file":"thermostatAccessory.js","sourceRoot":"","sources":["../../src/accessories/thermostatAccessory.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"waterHeaterAccessory.js","sourceRoot":"","sources":["../../src/accessories/waterHeaterAccessory.ts"],"names":[],"mappings":"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"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C;;GAEG;AACH,eAAe,CAAC,GAAQ,EAAE,EAAE;IAC1B,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC;AAC3D,CAAC,CAAC"}
@@ -1,48 +0,0 @@
1
- import { Logger } from 'homebridge';
2
- import { Equipment } from './equipment.js';
3
- export declare const WATER_HEATER = "WH";
4
- export declare const THERMOSTAT = "HVAC";
5
- export declare class PyeconetError extends Error {
6
- constructor(message: string);
7
- }
8
- export declare class InvalidCredentialsError extends PyeconetError {
9
- constructor(message: string);
10
- }
11
- export declare class InvalidResponseFormat extends PyeconetError {
12
- constructor(message: string);
13
- }
14
- export declare class GenericHTTPError extends PyeconetError {
15
- constructor(message: string);
16
- }
17
- export declare class EconetApi {
18
- readonly log: Logger;
19
- private readonly email;
20
- private readonly password;
21
- readonly storagePath: string;
22
- private readonly verbose;
23
- private readonly debugMQTT;
24
- private mqttOptions;
25
- private userToken;
26
- private accountId;
27
- private equipment;
28
- private mqttClient;
29
- private shouldReconnect;
30
- private isReconnecting;
31
- private reconnectCount;
32
- private idleMQTTTimer;
33
- constructor(log: Logger, email: string, password: string, storagePath: string, verbose: boolean, debugMQTT: boolean);
34
- static login(log: Logger, email: string, password: string, storagePath: string, verbose: boolean, debugMQTT: boolean): Promise<EconetApi>;
35
- private authenticate;
36
- subscribe(): void;
37
- private connect;
38
- private resetIdleMQTTTimer;
39
- private reconnect;
40
- publish(payload: {
41
- [key: string]: number;
42
- }, deviceId: string, serialNumber: string): void;
43
- unsubscribe(): void;
44
- private getLocation;
45
- getEquipment(): Promise<void>;
46
- getEquipmentByType(types: string[]): Promise<Map<string, Equipment[]>>;
47
- private saveMQTT;
48
- }
@@ -1,319 +0,0 @@
1
- import mqtt from 'mqtt';
2
- import { WaterHeater } from './waterHeater.js';
3
- import { Thermostat } from './thermostat.js';
4
- import { MINUTE, safeGetItem, safeSetItem, SECOND } from './utils.js';
5
- import path from 'path';
6
- const HOST = 'rheem.clearblade.com';
7
- const REST_URL = `https://${HOST}/api/v/1`;
8
- const CLEAR_BLADE_SYSTEM_KEY = 'e2e699cb0bb0bbb88fc8858cb5a401';
9
- const CLEAR_BLADE_SYSTEM_SECRET = 'E2E699CB0BE6C6FADDB1B0BC9A20';
10
- const HEADERS = {
11
- 'ClearBlade-SystemKey': CLEAR_BLADE_SYSTEM_KEY,
12
- 'ClearBlade-SystemSecret': CLEAR_BLADE_SYSTEM_SECRET,
13
- 'Content-Type': 'application/json; charset=UTF-8',
14
- };
15
- const RECONNECT_DELAYS = [5 * SECOND, 15 * SECOND, MINUTE, 2 * MINUTE, 5 * MINUTE];
16
- const IDLE_CONNECTION_TIMER_INTERVAL = 16 * MINUTE;
17
- const RETRYABLE_CODES = [
18
- 3, // MQTT: Server unavailable
19
- 'ECONNREFUSED', 'ETIMEDOUT', 'ECONNRESET',
20
- 'ENOTFOUND', 'EHOSTUNREACH', 'ENETUNREACH',
21
- ];
22
- const MQTT_DEBUG_FILE_NAME = 'mqttDebug.json';
23
- export const WATER_HEATER = 'WH';
24
- export const THERMOSTAT = 'HVAC';
25
- export class PyeconetError extends Error {
26
- constructor(message) {
27
- super(message);
28
- this.name = 'PyeconetError';
29
- }
30
- }
31
- export class InvalidCredentialsError extends PyeconetError {
32
- constructor(message) {
33
- super(message);
34
- this.name = 'InvalidCredentialsError';
35
- }
36
- }
37
- export class InvalidResponseFormat extends PyeconetError {
38
- constructor(message) {
39
- super(message);
40
- this.name = 'InvalidResponseFormat';
41
- }
42
- }
43
- export class GenericHTTPError extends PyeconetError {
44
- constructor(message) {
45
- super(message);
46
- this.name = 'GenericHTTPError';
47
- }
48
- }
49
- export class EconetApi {
50
- log;
51
- email;
52
- password;
53
- storagePath;
54
- verbose;
55
- debugMQTT;
56
- mqttOptions = null;
57
- userToken = null;
58
- accountId = null;
59
- equipment = new Map();
60
- mqttClient = null;
61
- shouldReconnect = false;
62
- isReconnecting = false;
63
- reconnectCount = 0;
64
- idleMQTTTimer = null;
65
- constructor(log, email, password, storagePath, verbose, debugMQTT) {
66
- this.log = log;
67
- this.email = email;
68
- this.password = password;
69
- this.storagePath = storagePath;
70
- this.verbose = verbose;
71
- this.debugMQTT = debugMQTT;
72
- }
73
- static async login(log, email, password, storagePath, verbose, debugMQTT) {
74
- const api = new EconetApi(log, email, password, storagePath, verbose, debugMQTT);
75
- await api.authenticate();
76
- return api;
77
- }
78
- async authenticate() {
79
- const response = await fetch(`${REST_URL}/user/auth`, {
80
- method: 'POST',
81
- headers: HEADERS,
82
- body: JSON.stringify({ email: this.email, password: this.password }),
83
- });
84
- if (response.status === 200) {
85
- const json = await response.json();
86
- if (json.options.success) {
87
- this.log.info('Successfully authenticated');
88
- this.userToken = json.user_token;
89
- this.accountId = json.options.account_id;
90
- const timeString = Date.now().toString().replace('.', '').slice(0, 13);
91
- const clientId = `${this.email}${timeString}_android`;
92
- this.mqttOptions = {
93
- clientId,
94
- username: this.userToken,
95
- password: CLEAR_BLADE_SYSTEM_KEY,
96
- rejectUnauthorized: true,
97
- keepalive: 90,
98
- reconnectPeriod: 0,
99
- };
100
- }
101
- else {
102
- throw new InvalidCredentialsError(json.options.message || 'Invalid credentials');
103
- }
104
- }
105
- else {
106
- throw new GenericHTTPError(`HTTP error: ${response.status}`);
107
- }
108
- }
109
- subscribe() {
110
- this.shouldReconnect = true;
111
- this.connect();
112
- }
113
- connect() {
114
- if (!this.equipment.size) {
115
- this.log.error('No equipment');
116
- return;
117
- }
118
- if (!this.mqttOptions) {
119
- this.log.error('MQTT options are undefined');
120
- return;
121
- }
122
- this.mqttClient = mqtt.connect(`mqtts://${HOST}:1884`, this.mqttOptions);
123
- this.mqttClient.on('connect', () => {
124
- this.mqttClient.subscribe(`user/${this.accountId}/device/reported`);
125
- this.mqttClient.subscribe(`user/${this.accountId}/device/desired`);
126
- this.log.info('Connected and listening for updates...');
127
- });
128
- this.mqttClient.on('message', (topic, message) => {
129
- this.reconnectCount = 0;
130
- this.resetIdleMQTTTimer();
131
- try {
132
- const unpackedJson = JSON.parse(message.toString());
133
- if (this.verbose) {
134
- this.log.info(`Received message from topic: ${topic}\n`, JSON.stringify(unpackedJson, null, 2));
135
- }
136
- const serial = unpackedJson.serial_number;
137
- const equipment = this.equipment.get(serial);
138
- if (equipment) {
139
- equipment.updateFromMQTT(unpackedJson);
140
- if (this.debugMQTT) {
141
- this.saveMQTT(unpackedJson);
142
- }
143
- }
144
- }
145
- catch (e) {
146
- this.log.error('Failed to parse message:', message.toString());
147
- }
148
- });
149
- this.mqttClient.on('offline', () => {
150
- this.log.debug('Client offline');
151
- });
152
- this.mqttClient.on('close', () => {
153
- this.log.info('Connection closed');
154
- this.reconnect();
155
- });
156
- this.mqttClient.on('error', (err) => {
157
- if (err.code !== undefined && RETRYABLE_CODES.includes(err.code)) {
158
- if (this.verbose) {
159
- this.log.error('Client error:', err);
160
- }
161
- this.reconnect();
162
- }
163
- else {
164
- this.log.error('Client error:', err);
165
- }
166
- });
167
- }
168
- resetIdleMQTTTimer() {
169
- if (this.idleMQTTTimer) {
170
- clearTimeout(this.idleMQTTTimer);
171
- }
172
- this.idleMQTTTimer = setTimeout(() => {
173
- this.log.info('Idle connection');
174
- this.reconnect();
175
- }, IDLE_CONNECTION_TIMER_INTERVAL);
176
- }
177
- async reconnect() {
178
- if (!this.shouldReconnect || this.isReconnecting) {
179
- return;
180
- }
181
- this.isReconnecting = true;
182
- if (this.mqttClient) {
183
- this.mqttClient.end(true);
184
- this.mqttClient = null;
185
- }
186
- this.reconnectCount++;
187
- if (this.reconnectCount % RECONNECT_DELAYS.length === 0) {
188
- try {
189
- this.log.error('Having trouble staying connected');
190
- this.log.info('Attempting to re-authenticate');
191
- await this.authenticate();
192
- }
193
- catch (error) {
194
- this.log.error('Re-authentication failed:', error);
195
- }
196
- }
197
- const reconnectDelay = RECONNECT_DELAYS[Math.min(this.reconnectCount, RECONNECT_DELAYS.length - 1)];
198
- if (reconnectDelay <= MINUTE) {
199
- this.log.info(`Will attempt to reconnect in ${reconnectDelay / SECOND} seconds...`);
200
- }
201
- else {
202
- this.log.info(`Will attempt to reconnect in ${reconnectDelay / MINUTE} minutes...`);
203
- }
204
- setTimeout(() => {
205
- this.isReconnecting = false;
206
- this.connect();
207
- }, reconnectDelay);
208
- }
209
- publish(payload, deviceId, serialNumber) {
210
- const dateTime = new Date().toISOString().replace(/\.\d{3}Z$/, '');
211
- const transactionId = `ANDROID_${dateTime}`;
212
- const publishPayload = {
213
- transactionId,
214
- device_name: deviceId,
215
- serial_number: serialNumber,
216
- ...payload,
217
- };
218
- if (!this.mqttClient || !this.mqttClient.connected) {
219
- this.log.error('Client not connected');
220
- return;
221
- }
222
- const topic = `user/${this.accountId}/device/desired`;
223
- const message = JSON.stringify(publishPayload, null, 2);
224
- if (this.verbose) {
225
- this.log.info(`Publishing message to topic: ${topic}\n`, message);
226
- }
227
- this.mqttClient.publish(topic, message);
228
- }
229
- unsubscribe() {
230
- this.shouldReconnect = false;
231
- if (this.mqttClient) {
232
- this.mqttClient.end();
233
- }
234
- }
235
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
236
- async getLocation() {
237
- const headers = { ...HEADERS, 'ClearBlade-UserToken': this.userToken };
238
- const payload = {
239
- location_only: false,
240
- type: 'com.econet.econetconsumerandroid',
241
- version: '6.0.0-375-01b4870e',
242
- };
243
- const response = await fetch(`${REST_URL}/code/${CLEAR_BLADE_SYSTEM_KEY}/getUserDataForApp`, {
244
- method: 'POST',
245
- headers,
246
- body: JSON.stringify(payload),
247
- });
248
- if (response.status === 200) {
249
- const json = await response.json();
250
- if (json.success) {
251
- return json.results.locations;
252
- }
253
- throw new InvalidResponseFormat('Invalid response format');
254
- }
255
- throw new GenericHTTPError(`HTTP error: ${response.status}`);
256
- }
257
- async getEquipment() {
258
- const locations = await this.getLocation();
259
- for (const location of locations) {
260
- for (const equip of location.equiptments) {
261
- if ('error' in equip) {
262
- this.log.error(`Equipment error: ${equip.error}`);
263
- continue;
264
- }
265
- if (this.verbose) {
266
- this.log.info('Creating Equipment with data:\n', JSON.stringify(equip, null, 2));
267
- }
268
- let equipObj;
269
- if (equip.device_type === WATER_HEATER) {
270
- equipObj = new WaterHeater(this, equip);
271
- }
272
- else if (equip.device_type === THERMOSTAT) {
273
- equipObj = new Thermostat(this, equip);
274
- }
275
- else {
276
- continue;
277
- }
278
- this.equipment.set(equipObj.serialNumber, equipObj);
279
- if (equip.device_type === THERMOSTAT && equip.zoning_devices) {
280
- for (const zoningDevice of equip.zoning_devices) {
281
- const zoningEquip = new Thermostat(this, zoningDevice);
282
- this.equipment.set(zoningEquip.serialNumber, zoningEquip);
283
- }
284
- }
285
- }
286
- }
287
- }
288
- async getEquipmentByType(types) {
289
- if (!this.equipment.size) {
290
- await this.getEquipment();
291
- }
292
- const result = new Map();
293
- types.forEach((type) => result.set(type, []));
294
- for (const equip of this.equipment.values()) {
295
- if (types.includes(equip instanceof WaterHeater ? WATER_HEATER : THERMOSTAT)) {
296
- result.get(equip instanceof WaterHeater ? WATER_HEATER : THERMOSTAT).push(equip);
297
- }
298
- }
299
- return result;
300
- }
301
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
302
- saveMQTT(json) {
303
- const filePath = path.join(this.storagePath, MQTT_DEBUG_FILE_NAME);
304
- const ignoreKeys = new Set(['transactionId', 'device_name', 'serial_number']);
305
- for (const [key, value] of Object.entries(json)) {
306
- if (ignoreKeys.has(key)) {
307
- continue;
308
- }
309
- let valuesString = safeGetItem(filePath, key);
310
- let valuesArray = valuesString ? JSON.parse(valuesString) : [];
311
- const valuesSet = new Set(valuesArray);
312
- valuesSet.add(value);
313
- valuesArray = Array.from(valuesSet);
314
- valuesString = JSON.stringify(valuesArray);
315
- safeSetItem(filePath, key, valuesString);
316
- }
317
- }
318
- }
319
- //# sourceMappingURL=econet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"econet.js","sourceRoot":"","sources":["../../src/model/econet.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../src/model/enums.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,uBAQX;AARD,WAAY,uBAAuB;IACjC,mEAAO,CAAA;IACP,2EAAW,CAAA;IACX,2EAAW,CAAA;IACX,qEAAQ,CAAA;IACR,6EAAY,CAAA;IACZ,yFAAkB,CAAA;IAClB,4EAAY,CAAA;AACd,CAAC,EARW,uBAAuB,KAAvB,uBAAuB,QAQlC;AAED,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,mEAAc,CAAA;IACd,6DAAW,CAAA;AACb,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B"}
@@ -1,9 +0,0 @@
1
- import { TemperatureUnits } from '../model/enums.js';
2
- export declare const SECOND = 1000;
3
- export declare const MINUTE = 60000;
4
- export declare const HOUR = 3600000;
5
- export declare const toCelsius: (temp: number, units: TemperatureUnits) => number;
6
- export declare const fromCelsius: (temp: number, units: TemperatureUnits) => number;
7
- export default function getVersion(): string;
8
- export declare function safeGetItem(filePath: string, key: string): string | null;
9
- export declare function safeSetItem(filePath: string, key: string, value: string): void;
@@ -1,53 +0,0 @@
1
- import fs from 'fs';
2
- import path from 'path';
3
- import { TemperatureUnits } from '../model/enums.js';
4
- import { fileURLToPath } from 'url';
5
- export const SECOND = 1000;
6
- export const MINUTE = 60000;
7
- export const HOUR = 3600000;
8
- const fahrenheitToCelsius = (fahrenheit) => {
9
- return Number(((fahrenheit - 32) * 5 / 9).toFixed(1));
10
- };
11
- const celsiusToFahrenheit = (celsius) => {
12
- return Math.round((celsius * 9 / 5) + 32);
13
- };
14
- export const toCelsius = (temp, units) => {
15
- return units === TemperatureUnits.FAHRENHEIT ? fahrenheitToCelsius(temp) : temp;
16
- };
17
- export const fromCelsius = (temp, units) => {
18
- return units === TemperatureUnits.FAHRENHEIT ? celsiusToFahrenheit(temp) : temp;
19
- };
20
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
21
- function loadPackageJson() {
22
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
23
- const packageJSONPath = path.join(__dirname, '../../package.json');
24
- return JSON.parse(fs.readFileSync(packageJSONPath, { encoding: 'utf8' }));
25
- }
26
- export default function getVersion() {
27
- try {
28
- return loadPackageJson().version;
29
- }
30
- catch (error) {
31
- return '0.0.0';
32
- }
33
- }
34
- function readStorage(filePath) {
35
- if (!fs.existsSync(filePath)) {
36
- return {};
37
- }
38
- const data = fs.readFileSync(filePath, 'utf-8');
39
- return JSON.parse(data);
40
- }
41
- function writeStorage(filePath, storage) {
42
- fs.writeFileSync(filePath, JSON.stringify(storage, null, 2));
43
- }
44
- export function safeGetItem(filePath, key) {
45
- const storage = readStorage(filePath);
46
- return storage[key] ?? null;
47
- }
48
- export function safeSetItem(filePath, key, value) {
49
- const storage = readStorage(filePath);
50
- storage[key] = value;
51
- writeStorage(filePath, storage);
52
- }
53
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/model/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC;AAC3B,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC;AAC5B,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC;AAE5B,MAAM,mBAAmB,GAAG,CAAC,UAAkB,EAAU,EAAE;IACzD,OAAO,MAAM,CAAC,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,OAAe,EAAU,EAAE;IACtD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,KAAuB,EAAU,EAAE;IACzE,OAAO,KAAK,KAAK,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAClF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,KAAuB,EAAU,EAAE;IAC3E,OAAO,KAAK,KAAK,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAClF,CAAC,CAAC;AAGF,8DAA8D;AAC9D,SAAS,eAAe;IACtB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;IACnE,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,UAAU;IAChC,IAAI,CAAC;QACH,OAAO,eAAe,EAAE,CAAC,OAAO,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB;IACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB,EAAE,OAA+B;IACrE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,GAAW;IACvD,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtC,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,GAAW,EAAE,KAAa;IACtE,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACrB,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC"}