homebridge-smarthq-client 1.2.5-beta.7 → 1.2.5-debug.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -0
- package/Readme.md +6 -1
- package/dist/airConditioner/airConditioner.d.ts +16 -0
- package/dist/airConditioner/airConditioner.js +190 -48
- package/dist/airConditioner/airConditioner.js.map +1 -1
- package/dist/platform.js +1 -1
- package/dist/platform.js.map +1 -1
- package/package.json +1 -1
- package/src/airConditioner/airConditioner.ts +195 -33
- package/src/platform.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [1.2.5](https://github.com/ceb400/homebridge-smarthq-client/releases/tag/v1.2.5) (2026-07-15)
|
|
6
|
+
- Merge beta branch into main branch
|
|
7
|
+
|
|
5
8
|
## [1.2.5-beta.7](https://github.com/ceb400/homebridge-smarthq-client/releases/tag/v1.2.5) (2026-07-08)
|
|
6
9
|
- Air conditioner was logging too much device state info. Changed to only log if enabled for debug logging
|
|
7
10
|
|
package/Readme.md
CHANGED
|
@@ -122,6 +122,10 @@ Once an access (and refresh) token have been saved this step will only be needed
|
|
|
122
122
|
used to store your tokens is deleted.
|
|
123
123
|
When an access token expires the plugin will use the refresh token to obtain a new access token automatically.
|
|
124
124
|
|
|
125
|
+
## (for Raspberry pi OS users) ##
|
|
126
|
+
To complete the authentication flow will require the Raspberry pi OS to have a desktop and browser installed.
|
|
127
|
+
For assistance in installing these components please see this [article](https://raspberrytips.com/upgrade-raspbian-lite-to-desktop/)
|
|
128
|
+
|
|
125
129
|
## Notifications (for refrigerators)
|
|
126
130
|
|
|
127
131
|
API device alerts are monitored for the following conditions:
|
|
@@ -153,7 +157,8 @@ will not be any tile/device shown in the Home app.
|
|
|
153
157
|
|
|
154
158
|
## Acknowledgements
|
|
155
159
|
|
|
156
|
-
[donavanbecker](https://github.com/donavanbecker) for the excellent 'ge-smarthq' pkg.
|
|
160
|
+
[donavanbecker](https://github.com/donavanbecker) for the excellent 'ge-smarthq' pkg.
|
|
161
|
+
[evan robert](https://github.com/actuallyevan) for contributing air conditioner device code
|
|
157
162
|
GE SmartHQ API Client
|
|
158
163
|
|
|
159
164
|
|
|
@@ -17,6 +17,20 @@ export declare class AirConditioner {
|
|
|
17
17
|
private currentAmbientCelsius;
|
|
18
18
|
private coolCelsiusMin;
|
|
19
19
|
private coolCelsiusMax;
|
|
20
|
+
private readonly MODE_COOL;
|
|
21
|
+
private readonly MODE_FANONLY;
|
|
22
|
+
private readonly MODE_DRY;
|
|
23
|
+
private readonly MODE_ENERGY_SAVER;
|
|
24
|
+
private readonly MODE_COOL_QUIET;
|
|
25
|
+
private readonly MODE_COOL_TURBO;
|
|
26
|
+
private readonly MODE_HEAT;
|
|
27
|
+
private readonly MODE_OFF;
|
|
28
|
+
private readonly MODE_ON;
|
|
29
|
+
private readonly FAN_SPEED_LOW;
|
|
30
|
+
private readonly FAN_SPEED_MEDIUM;
|
|
31
|
+
private readonly FAN_SPEED_HIGH;
|
|
32
|
+
private readonly FAN_SPEED_AUTO;
|
|
33
|
+
private readonly FAN_SPEED_OFF;
|
|
20
34
|
private client;
|
|
21
35
|
private api;
|
|
22
36
|
Service: typeof Service;
|
|
@@ -36,4 +50,6 @@ export declare class AirConditioner {
|
|
|
36
50
|
private findService;
|
|
37
51
|
private getLastElementAndCapitalize;
|
|
38
52
|
private setupWebSocket;
|
|
53
|
+
private addDebugState;
|
|
54
|
+
setupService(serviceType: string, displayName: string, serviceIdSuffix: string): Service;
|
|
39
55
|
}
|
|
@@ -17,6 +17,22 @@ export class AirConditioner {
|
|
|
17
17
|
// Configuration thresholds
|
|
18
18
|
coolCelsiusMin = 17.77;
|
|
19
19
|
coolCelsiusMax = 30.0;
|
|
20
|
+
//======== Thermostat mode constants ========
|
|
21
|
+
MODE_COOL = "cloud.smarthq.type.thermostatmode.cool";
|
|
22
|
+
MODE_FANONLY = "cloud.smarthq.type.thermostatmode.fanonly";
|
|
23
|
+
MODE_DRY = "cloud.smarthq.type.thermostatmode.dry";
|
|
24
|
+
MODE_ENERGY_SAVER = "cloud.smarthq.type.thermostatmode.cool.energysaver";
|
|
25
|
+
MODE_COOL_QUIET = "cloud.smarthq.type.thermostatmode.cool.quiet";
|
|
26
|
+
MODE_COOL_TURBO = "cloud.smarthq.type.thermostatmode.cool.turbo";
|
|
27
|
+
MODE_HEAT = "cloud.smarthq.type.thermostatmode.heat";
|
|
28
|
+
MODE_OFF = "cloud.smarthq.type.thermostatmode.off";
|
|
29
|
+
MODE_ON = "cloud.smarthq.type.thermostatmode.on";
|
|
30
|
+
//======== Fan speed constants ========
|
|
31
|
+
FAN_SPEED_LOW = "cloud.smarthq.type.fanspeed.low";
|
|
32
|
+
FAN_SPEED_MEDIUM = "cloud.smarthq.type.fanspeed.medium";
|
|
33
|
+
FAN_SPEED_HIGH = "cloud.smarthq.type.fanspeed.high";
|
|
34
|
+
FAN_SPEED_AUTO = "cloud.smarthq.type.fanspeed.auto";
|
|
35
|
+
FAN_SPEED_OFF = "cloud.smarthq.type.fanspeed.off";
|
|
20
36
|
client;
|
|
21
37
|
api;
|
|
22
38
|
Service;
|
|
@@ -128,7 +144,7 @@ export class AirConditioner {
|
|
|
128
144
|
.onSet(async (value) => {
|
|
129
145
|
this.isOn = value === 1;
|
|
130
146
|
if (this.isOn) {
|
|
131
|
-
const stateVal = this.lastActiveMode ===
|
|
147
|
+
const stateVal = this.lastActiveMode === this.MODE_FANONLY ? 1 : 3;
|
|
132
148
|
this.acThermostat.updateCharacteristic(this.Characteristic.CurrentHeaterCoolerState, stateVal);
|
|
133
149
|
for (const [mode, service] of this.modeOutlets.entries()) {
|
|
134
150
|
service.updateCharacteristic(this.Characteristic.On, this.lastActiveMode === mode);
|
|
@@ -146,14 +162,20 @@ export class AirConditioner {
|
|
|
146
162
|
service.updateCharacteristic(this.Characteristic.On, false);
|
|
147
163
|
}
|
|
148
164
|
}
|
|
149
|
-
|
|
165
|
+
const cmdBody = {
|
|
166
|
+
command: {
|
|
167
|
+
on: this.isOn,
|
|
168
|
+
commandType: 'cloud.smarthq.command.thermostat.v1.set',
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
this.sendCommand(cmdBody);
|
|
150
172
|
});
|
|
151
173
|
this.acThermostat
|
|
152
174
|
.getCharacteristic(this.Characteristic.CurrentHeaterCoolerState)
|
|
153
175
|
.onGet(() => {
|
|
154
176
|
if (!this.isOn)
|
|
155
177
|
return 0;
|
|
156
|
-
return this.lastActiveMode ===
|
|
178
|
+
return this.lastActiveMode === this.MODE_FANONLY ? 1 : 3;
|
|
157
179
|
});
|
|
158
180
|
this.acThermostat
|
|
159
181
|
.getCharacteristic(this.Characteristic.TargetHeaterCoolerState)
|
|
@@ -172,7 +194,16 @@ export class AirConditioner {
|
|
|
172
194
|
.onGet(() => this.lastActiveCelsius)
|
|
173
195
|
.onSet(async (value) => {
|
|
174
196
|
this.lastActiveCelsius = value;
|
|
175
|
-
|
|
197
|
+
// Clip celsius to hardware bounds to prevent API errors
|
|
198
|
+
const clippedCelsius = Math.max(this.coolCelsiusMin, Math.min(this.coolCelsiusMax, this.lastActiveCelsius));
|
|
199
|
+
const coolFahrenheit = Math.round(clippedCelsius * 1.8 + 32);
|
|
200
|
+
const cmdBody = {
|
|
201
|
+
command: {
|
|
202
|
+
coolFahrenheit: coolFahrenheit,
|
|
203
|
+
commandType: 'cloud.smarthq.command.thermostat.v1.set',
|
|
204
|
+
}
|
|
205
|
+
};
|
|
206
|
+
this.sendCommand(cmdBody);
|
|
176
207
|
});
|
|
177
208
|
this.acThermostat
|
|
178
209
|
.getCharacteristic(this.Characteristic.CurrentTemperature)
|
|
@@ -226,12 +257,43 @@ export class AirConditioner {
|
|
|
226
257
|
}
|
|
227
258
|
}
|
|
228
259
|
this.acThermostat.updateCharacteristic(this.Characteristic.Active, 1);
|
|
229
|
-
const stateVal = mode ===
|
|
260
|
+
const stateVal = mode === this.MODE_FANONLY ? 1 : 3;
|
|
230
261
|
this.acThermostat.updateCharacteristic(this.Characteristic.CurrentHeaterCoolerState, stateVal);
|
|
231
262
|
for (const [fanSpeed, service] of this.fanOutlets.entries()) {
|
|
232
263
|
service.updateCharacteristic(this.Characteristic.On, this.lastActiveFanSpeed === fanSpeed);
|
|
233
264
|
}
|
|
234
|
-
|
|
265
|
+
// Handle behavior constraint: Fan Only mode does not support Auto Fan Speed - force Fan Speed to Low
|
|
266
|
+
// Dry mode sets fan speed to Auto, which is valid. Only Fan Only mode needs to be adjusted.
|
|
267
|
+
let cmdBody;
|
|
268
|
+
switch (mode) {
|
|
269
|
+
case this.MODE_FANONLY:
|
|
270
|
+
cmdBody = {
|
|
271
|
+
command: {
|
|
272
|
+
mode: this.MODE_FANONLY,
|
|
273
|
+
fanSpeed: this.FAN_SPEED_LOW,
|
|
274
|
+
commandType: 'cloud.smarthq.command.thermostat.v1.set',
|
|
275
|
+
}
|
|
276
|
+
};
|
|
277
|
+
break;
|
|
278
|
+
case this.MODE_DRY:
|
|
279
|
+
cmdBody = {
|
|
280
|
+
command: {
|
|
281
|
+
mode: this.MODE_DRY,
|
|
282
|
+
fanSpeed: this.FAN_SPEED_AUTO,
|
|
283
|
+
commandType: 'cloud.smarthq.command.thermostat.v1.set',
|
|
284
|
+
}
|
|
285
|
+
};
|
|
286
|
+
break;
|
|
287
|
+
// Default case handles Cool and Heat modes, which support all(?) fan speeds
|
|
288
|
+
default:
|
|
289
|
+
cmdBody = {
|
|
290
|
+
command: {
|
|
291
|
+
mode: mode,
|
|
292
|
+
commandType: 'cloud.smarthq.command.thermostat.v1.set',
|
|
293
|
+
}
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
this.sendCommand(cmdBody);
|
|
235
297
|
}
|
|
236
298
|
else {
|
|
237
299
|
// Toggling active mode OFF powers down system
|
|
@@ -245,7 +307,13 @@ export class AirConditioner {
|
|
|
245
307
|
}
|
|
246
308
|
this.acThermostat.updateCharacteristic(this.Characteristic.Active, 0);
|
|
247
309
|
this.acThermostat.updateCharacteristic(this.Characteristic.CurrentHeaterCoolerState, 0);
|
|
248
|
-
|
|
310
|
+
const cmdBody = {
|
|
311
|
+
command: {
|
|
312
|
+
mode: this.MODE_OFF,
|
|
313
|
+
commandType: 'cloud.smarthq.command.thermostat.v1.set',
|
|
314
|
+
}
|
|
315
|
+
};
|
|
316
|
+
this.sendCommand(cmdBody);
|
|
249
317
|
}
|
|
250
318
|
}
|
|
251
319
|
});
|
|
@@ -260,16 +328,16 @@ export class AirConditioner {
|
|
|
260
328
|
.setCharacteristic(this.Characteristic.SerialNumber, this.parentAccessory.context.device.serial || 'Unknown');
|
|
261
329
|
// Clean up stale Fan Speed outlets from cache
|
|
262
330
|
const activeFanServiceUUIDs = new Set();
|
|
263
|
-
for (const
|
|
264
|
-
const [displayName] = this.getLastElementAndCapitalize(
|
|
331
|
+
for (const fanSpeedSetting of supportedFanSpeeds) {
|
|
332
|
+
const [displayName] = this.getLastElementAndCapitalize(fanSpeedSetting, '.');
|
|
265
333
|
const service = this.fanAccessory.getService(displayName) ||
|
|
266
|
-
this.fanAccessory.addService(this.Service.Outlet, displayName,
|
|
334
|
+
this.fanAccessory.addService(this.Service.Outlet, displayName, fanSpeedSetting);
|
|
267
335
|
if (!service.getCharacteristic(this.Characteristic.ConfiguredName)) {
|
|
268
336
|
service.addOptionalCharacteristic(this.Characteristic.ConfiguredName);
|
|
269
337
|
}
|
|
270
338
|
service.setCharacteristic(this.Characteristic.Name, displayName);
|
|
271
339
|
service.setCharacteristic(this.Characteristic.ConfiguredName, displayName);
|
|
272
|
-
activeFanServiceUUIDs.add(service.UUID + (
|
|
340
|
+
activeFanServiceUUIDs.add(service.UUID + (fanSpeedSetting || ''));
|
|
273
341
|
}
|
|
274
342
|
for (const service of [...this.fanAccessory.services]) {
|
|
275
343
|
if (service.UUID === this.Service.AccessoryInformation.UUID)
|
|
@@ -283,18 +351,18 @@ export class AirConditioner {
|
|
|
283
351
|
}
|
|
284
352
|
}
|
|
285
353
|
// Bind Fan Speed Outlets characteristics
|
|
286
|
-
for (const
|
|
287
|
-
const [displayName] = this.getLastElementAndCapitalize(
|
|
354
|
+
for (const fanSpeedSetting of supportedFanSpeeds) {
|
|
355
|
+
const [displayName] = this.getLastElementAndCapitalize(fanSpeedSetting, '.');
|
|
288
356
|
const service = this.fanAccessory.getService(displayName);
|
|
289
|
-
this.fanOutlets.set(
|
|
357
|
+
this.fanOutlets.set(fanSpeedSetting, service);
|
|
290
358
|
service
|
|
291
359
|
.getCharacteristic(this.Characteristic.On)
|
|
292
|
-
.onGet(() => this.isOn && this.lastActiveFanSpeed ===
|
|
360
|
+
.onGet(() => this.isOn && this.lastActiveFanSpeed === fanSpeedSetting)
|
|
293
361
|
.onSet(async (value) => {
|
|
294
362
|
if (value) {
|
|
295
363
|
// Handle behavior constraint: Fan Only mode does not support Auto Fan Speed
|
|
296
|
-
if (this.lastActiveMode ===
|
|
297
|
-
|
|
364
|
+
if (this.lastActiveMode === this.MODE_FANONLY &&
|
|
365
|
+
fanSpeedSetting === this.FAN_SPEED_AUTO) {
|
|
298
366
|
setTimeout(() => {
|
|
299
367
|
service.updateCharacteristic(this.Characteristic.On, false);
|
|
300
368
|
const activeService = this.fanOutlets.get(this.lastActiveFanSpeed);
|
|
@@ -305,23 +373,29 @@ export class AirConditioner {
|
|
|
305
373
|
return;
|
|
306
374
|
}
|
|
307
375
|
this.isOn = true;
|
|
308
|
-
this.lastActiveFanSpeed =
|
|
376
|
+
this.lastActiveFanSpeed = fanSpeedSetting;
|
|
309
377
|
for (const [fanSpeed, service] of this.fanOutlets.entries()) {
|
|
310
|
-
if (fanSpeed !==
|
|
378
|
+
if (fanSpeed !== fanSpeedSetting) {
|
|
311
379
|
service.updateCharacteristic(this.Characteristic.On, false);
|
|
312
380
|
}
|
|
313
381
|
}
|
|
314
382
|
this.acThermostat.updateCharacteristic(this.Characteristic.Active, 1);
|
|
315
|
-
const stateVal = this.lastActiveMode ===
|
|
383
|
+
const stateVal = this.lastActiveMode === this.MODE_FANONLY ? 1 : 3;
|
|
316
384
|
this.acThermostat.updateCharacteristic(this.Characteristic.CurrentHeaterCoolerState, stateVal);
|
|
317
385
|
for (const [modeKey, service] of this.modeOutlets.entries()) {
|
|
318
386
|
service.updateCharacteristic(this.Characteristic.On, this.lastActiveMode === modeKey);
|
|
319
387
|
}
|
|
320
|
-
|
|
388
|
+
const cmdBody = {
|
|
389
|
+
command: {
|
|
390
|
+
fanspeed: this.lastActiveFanSpeed,
|
|
391
|
+
commandType: 'cloud.smarthq.command.thermostat.v1.set',
|
|
392
|
+
}
|
|
393
|
+
};
|
|
394
|
+
this.sendCommand(cmdBody);
|
|
321
395
|
}
|
|
322
396
|
else {
|
|
323
397
|
// Toggling active fan speed OFF powers down system
|
|
324
|
-
if (this.lastActiveFanSpeed ===
|
|
398
|
+
if (this.lastActiveFanSpeed === fanSpeedSetting) {
|
|
325
399
|
this.isOn = false;
|
|
326
400
|
for (const service of this.modeOutlets.values()) {
|
|
327
401
|
service.updateCharacteristic(this.Characteristic.On, false);
|
|
@@ -331,57 +405,75 @@ export class AirConditioner {
|
|
|
331
405
|
}
|
|
332
406
|
this.acThermostat.updateCharacteristic(this.Characteristic.Active, 0);
|
|
333
407
|
this.acThermostat.updateCharacteristic(this.Characteristic.CurrentHeaterCoolerState, 0);
|
|
334
|
-
|
|
408
|
+
const cmdBody = {
|
|
409
|
+
command: {
|
|
410
|
+
fanspeed: this.FAN_SPEED_OFF,
|
|
411
|
+
commandType: 'cloud.smarthq.command.thermostat.v1.set',
|
|
412
|
+
}
|
|
413
|
+
};
|
|
414
|
+
this.sendCommand(cmdBody);
|
|
335
415
|
}
|
|
336
416
|
}
|
|
337
417
|
});
|
|
338
418
|
}
|
|
339
419
|
}
|
|
420
|
+
// D. Add Debug State switch to parent accessory
|
|
421
|
+
this.addDebugState('cloud.smarthq.service.thermostat.v1');
|
|
340
422
|
}
|
|
341
423
|
// ---------------------------
|
|
342
424
|
// API COMMAND SENDER
|
|
343
425
|
// ---------------------------
|
|
344
|
-
sendCommand() {
|
|
426
|
+
sendCommand(cmdBody) {
|
|
345
427
|
if (this.debounceTimeout) {
|
|
346
428
|
clearTimeout(this.debounceTimeout);
|
|
347
429
|
}
|
|
348
430
|
this.debounceTimeout = setTimeout(() => {
|
|
349
431
|
this.debounceTimeout = null;
|
|
350
|
-
this.executeSendCommand();
|
|
432
|
+
this.executeSendCommand(cmdBody);
|
|
351
433
|
}, 150);
|
|
352
434
|
}
|
|
353
|
-
async executeSendCommand() {
|
|
435
|
+
async executeSendCommand(command) {
|
|
354
436
|
const service = this.findService('cloud.smarthq.service.thermostat.v1', 'cloud.smarthq.domain.thermostat');
|
|
355
437
|
if (!service)
|
|
356
438
|
return;
|
|
357
439
|
this.commandQueue = this.commandQueue.then(async () => {
|
|
358
|
-
|
|
359
|
-
|
|
440
|
+
/*
|
|
441
|
+
const command: Record<string, unknown> = {
|
|
442
|
+
commandType: 'cloud.smarthq.command.thermostat.v1.set',
|
|
360
443
|
};
|
|
444
|
+
|
|
445
|
+
|
|
361
446
|
// Only send the 'on' parameter if it is transitioning (prevents GE firmware from resetting to ECO)
|
|
362
447
|
if (!this.isOn) {
|
|
363
|
-
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
command.on = true;
|
|
448
|
+
command.on = false;
|
|
449
|
+
} else if (!this.physicalOnState) {
|
|
450
|
+
command.on = true;
|
|
367
451
|
}
|
|
452
|
+
|
|
368
453
|
if (this.isOn) {
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
454
|
+
command.mode = this.lastActiveMode;
|
|
455
|
+
|
|
456
|
+
// Handle behavior constraint: Fan Only mode does not support Auto Fan Speed
|
|
457
|
+
if (
|
|
458
|
+
this.lastActiveMode === this.MODE_FANONLY &&
|
|
459
|
+
this.lastActiveFanSpeed === this.FAN_SPEED_AUTO
|
|
460
|
+
) {
|
|
461
|
+
command.fanSpeed = this.FAN_SPEED_LOW;
|
|
462
|
+
} else {
|
|
463
|
+
command.fanSpeed = this.lastActiveFanSpeed;
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
// Omit coolFahrenheit in Fan Only mode (thermostat has no cooling setpoint)
|
|
467
|
+
if (this.lastActiveMode !== this.MODE_FANONLY) {
|
|
468
|
+
// Clip celsius to hardware bounds to prevent API errors
|
|
469
|
+
const clippedCelsius = Math.max(
|
|
470
|
+
this.coolCelsiusMin,
|
|
471
|
+
Math.min(this.coolCelsiusMax, this.lastActiveCelsius),
|
|
472
|
+
);
|
|
473
|
+
command.coolFahrenheit = Math.round(clippedCelsius * 1.8 + 32);
|
|
474
|
+
}
|
|
384
475
|
}
|
|
476
|
+
*/
|
|
385
477
|
try {
|
|
386
478
|
await this.client.sendCommand({
|
|
387
479
|
command,
|
|
@@ -426,7 +518,7 @@ export class AirConditioner {
|
|
|
426
518
|
// Update HeaterCooler state dynamically based on power and mode
|
|
427
519
|
const stateVal = !this.isOn
|
|
428
520
|
? 0
|
|
429
|
-
: (this.lastActiveMode ===
|
|
521
|
+
: (this.lastActiveMode === this.MODE_FANONLY ? 1 : 3);
|
|
430
522
|
this.acThermostat.updateCharacteristic(this.Characteristic.CurrentHeaterCoolerState, stateVal);
|
|
431
523
|
// Update dynamic outlets
|
|
432
524
|
for (const [mode, service] of this.modeOutlets.entries()) {
|
|
@@ -469,5 +561,55 @@ export class AirConditioner {
|
|
|
469
561
|
this.platform.log.error(`Failed to connect to SmartHQ WebSocket for AC ${this.deviceId}:`, error);
|
|
470
562
|
}
|
|
471
563
|
}
|
|
564
|
+
// ---------------------------
|
|
565
|
+
// HELPERS FOR DEBUGGING
|
|
566
|
+
// Adds a 'Debug State' switch to the parent accessory that logs the current state of the specified service type when toggled on
|
|
567
|
+
// ---------------------------
|
|
568
|
+
addDebugState(serviceType) {
|
|
569
|
+
const debugState = this.setupService('Switch', 'Debug State', `${this.deviceId}-debug-state`);
|
|
570
|
+
debugState
|
|
571
|
+
.getCharacteristic(this.Characteristic.On)
|
|
572
|
+
.onGet(() => {
|
|
573
|
+
return debugState.getCharacteristic(this.Characteristic.On).value;
|
|
574
|
+
})
|
|
575
|
+
.onSet(async (value) => {
|
|
576
|
+
if (value) {
|
|
577
|
+
const response = await this.client.getDevice(this.deviceId);
|
|
578
|
+
const deviceServices = response.services ?? [];
|
|
579
|
+
for (const service of deviceServices) {
|
|
580
|
+
if (service.serviceType === serviceType) {
|
|
581
|
+
this.client.debug('Debug State - Device Info: ' + JSON.stringify(service, null, 2));
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
setTimeout(() => {
|
|
585
|
+
debugState.updateCharacteristic(this.Characteristic.On, false);
|
|
586
|
+
}, 1000);
|
|
587
|
+
}
|
|
588
|
+
});
|
|
589
|
+
}
|
|
590
|
+
setupService(serviceType, displayName, serviceIdSuffix) {
|
|
591
|
+
let service;
|
|
592
|
+
switch (serviceType) {
|
|
593
|
+
case 'Outlet':
|
|
594
|
+
service =
|
|
595
|
+
this.accessory.getService(displayName) ||
|
|
596
|
+
this.accessory.addService(this.Service.Outlet, displayName, serviceIdSuffix);
|
|
597
|
+
break;
|
|
598
|
+
case 'Switch':
|
|
599
|
+
service =
|
|
600
|
+
this.accessory.getService(displayName) ||
|
|
601
|
+
this.accessory.addService(this.Service.Switch, displayName, serviceIdSuffix);
|
|
602
|
+
break;
|
|
603
|
+
default:
|
|
604
|
+
this.client.debug('Unknown service type: ' + serviceType + '');
|
|
605
|
+
service =
|
|
606
|
+
this.accessory.getService(displayName) ||
|
|
607
|
+
this.accessory.addService(this.Service.Fan, displayName, serviceIdSuffix);
|
|
608
|
+
}
|
|
609
|
+
service.setCharacteristic(this.Characteristic.Name, displayName);
|
|
610
|
+
service.addOptionalCharacteristic(this.Characteristic.ConfiguredName);
|
|
611
|
+
service.setCharacteristic(this.Characteristic.ConfiguredName, displayName);
|
|
612
|
+
return service;
|
|
613
|
+
}
|
|
472
614
|
}
|
|
473
615
|
//# sourceMappingURL=airConditioner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"airConditioner.js","sourceRoot":"","sources":["../../src/airConditioner/airConditioner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"airConditioner.js","sourceRoot":"","sources":["../../src/airConditioner/airConditioner.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAiB,MAAM,gBAAgB,CAAC;AAI9D,MAAM,OAAO,cAAc;IAmDN;IACA;IACA;IACA;IACA;IAtDnB,cAAc;IACN,cAAc,GAAG,wCAAwC,CAAC;IAC1D,kBAAkB,GAAG,iCAAiC,CAAC;IACvD,iBAAiB,GAAG,KAAK,CAAC;IAC1B,IAAI,GAAG,KAAK,CAAC;IACb,eAAe,GAAG,KAAK,CAAC;IACxB,YAAY,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAChD,eAAe,GAA0B,IAAI,CAAC;IAE9C,qBAAqB,GAAG,KAAK,CAAC;IAEtC,2BAA2B;IACnB,cAAc,GAAG,KAAK,CAAC;IACvB,cAAc,GAAG,IAAI,CAAC;IAE9B,+CAA+C;IAC9B,SAAS,GAAY,wCAAwC,CAAC;IAC9D,YAAY,GAAS,2CAA2C,CAAC;IACjE,QAAQ,GAAa,uCAAuC,CAAC;IAC7D,iBAAiB,GAAI,oDAAoD,CAAC;IAC1E,eAAe,GAAM,8CAA8C,CAAC;IACpE,eAAe,GAAM,8CAA8C,CAAC;IACpE,SAAS,GAAY,wCAAwC,CAAC;IAC9D,QAAQ,GAAa,uCAAuC,CAAC;IAC7D,OAAO,GAAc,sCAAsC,CAAC;IAE7E,yCAAyC;IACxB,aAAa,GAAM,iCAAiC,CAAC;IACrD,gBAAgB,GAAG,oCAAoC,CAAC;IACxD,cAAc,GAAK,kCAAkC,CAAA;IACrD,cAAc,GAAK,kCAAkC,CAAC;IACtD,aAAa,GAAM,iCAAiC,CAAC;IAE9D,MAAM,CAAgB;IACtB,GAAG,CAAM;IAEV,OAAO,CAAiB;IACxB,cAAc,CAAwB;IAE7C,cAAc;IACN,eAAe,CAAoB;IACnC,cAAc,CAAgC;IAC9C,YAAY,CAAgC;IAEpD,WAAW;IACH,YAAY,CAAW;IACvB,WAAW,GAAyB,IAAI,GAAG,EAAE,CAAC;IAC9C,UAAU,GAAyB,IAAI,GAAG,EAAE,CAAC;IAErD,YACmB,QAAyB,EACzB,SAA4B,EAAE,0BAA0B;IACxD,cAA+B,EAC/B,QAAgB,EAChB,cAAmC;QAJnC,aAAQ,GAAR,QAAQ,CAAiB;QACzB,cAAS,GAAT,SAAS,CAAmB;QAC5B,mBAAc,GAAd,cAAc,CAAiB;QAC/B,aAAQ,GAAR,QAAQ,CAAQ;QAChB,mBAAc,GAAd,cAAc,CAAqB;QAEpD,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;QACpC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC;QAElD,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAEtC,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,CAAC;YAC9B,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ;YAClC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY;YAC1C,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW;YACxC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,IAAI,KAAK;SAC7C,CAAC,CAAC;QAEH,kDAAkD;QAClD,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CACxC,qCAAqC,EACrC,iCAAiC,CAClC,CAAC;QAEF,IAAI,iBAAiB,EAAE,KAAK,EAAE,CAAC;YAC7B,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;gBACvC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,EAAa,CAAC;gBAClD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC;YACnC,CAAC;YACD,IAAI,iBAAiB,CAAC,KAAK,CAAC,oBAAoB,IAAI,IAAI,EAAE,CAAC;gBACzD,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,CAAC,oBAA8B,CAAC;YAClF,CAAC;YACD,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;gBACzC,IAAI,CAAC,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAc,CAAC;YAC/D,CAAC;YACD,IAAI,iBAAiB,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;gBAC7C,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC,KAAK,CAAC,QAAkB,CAAC;YACvE,CAAC;QACH,CAAC;QAED,qDAAqD;QACrD,IAAI,iBAAiB,EAAE,MAAM,EAAE,CAAC;YAC9B,IAAI,iBAAiB,CAAC,MAAM,CAAC,2BAA2B,IAAI,IAAI,EAAE,CAAC;gBACjE,IAAI,CAAC,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,2BAAqC,CAAC;YACvF,CAAC;YACD,IAAI,iBAAiB,CAAC,MAAM,CAAC,2BAA2B,IAAI,IAAI,EAAE,CAAC;gBACjE,IAAI,CAAC,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,2BAAqC,CAAC;YACvF,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CACrC,mCAAmC,EACnC,qCAAqC,CACtC,CAAC;QACF,IAAI,cAAc,EAAE,KAAK,EAAE,gBAAgB,IAAI,IAAI,EAAE,CAAC;YACpD,IAAI,CAAC,qBAAqB,GAAG,cAAc,CAAC,KAAK,CAAC,gBAA0B,CAAC;QAC/E,CAAC;QAED,oCAAoC;QACpC,MAAM,cAAc,GAAc,iBAAiB,EAAE,MAAM,EAAE,cAA2B,IAAI,EAAE,CAAC;QAC/F,MAAM,kBAAkB,GAAc,iBAAiB,EAAE,MAAM,EAAE,kBAA+B,IAAI,EAAE,CAAC;QAEvG,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAC1D,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,+CAA+C;QAC/C,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,OAAuB,EAAE,EAAE;YAC3D,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC/C,IACE,OAAO,CAAC,UAAU,KAAK,iCAAiC;gBACxD,OAAO,CAAC,UAAU,KAAK,qCAAqC;gBAC5D,OAAO;YAET,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,8BAA8B;IAC9B,oBAAoB;IACpB,8BAA8B;IAEtB,gBAAgB,CAAC,cAAwB,EAAE,kBAA4B;QAC7E,uDAAuD;QACvD,MAAM,eAAe,GAAG;YACtB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI;YAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI;YACrB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;YACvB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI;SACzB,CAAC;QACF,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzD,IAAI,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,sDAAsD,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;gBACpG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,4CAA4C;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAE,CAAC;QACvF,UAAU;aACP,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC;aACzD,iBAAiB,CAChB,IAAI,CAAC,cAAc,CAAC,KAAK,EACzB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS,CACvD;aACA,iBAAiB,CAChB,IAAI,CAAC,cAAc,CAAC,YAAY,EAChC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,SAAS,CACxD,CAAC;QAEJ,yCAAyC;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC;QAC9C,IAAI,CAAC,YAAY;YACf,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC;gBACrC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,gBAAgB,CAAC,CAAC;QAErG,IAAI,CAAC,YAAY;aACd,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;aAC7C,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAChC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACrB,IAAI,CAAC,IAAI,GAAI,KAAgB,KAAK,CAAC,CAAC;YAEpC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnE,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC;gBAC/F,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;oBACzD,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC;gBACrF,CAAC;gBACD,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;oBAC5D,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,kBAAkB,KAAK,QAAQ,CAAC,CAAC;gBAC7F,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC;gBACxF,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;oBAChD,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBAC9D,CAAC;gBACD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;oBAC/C,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC;YACD,MAAM,OAAO,GAAG;gBACV,OAAO,EAAE;oBACP,EAAE,EAAE,IAAI,CAAC,IAAI;oBACb,WAAW,EAAE,yCAAyC;iBACvD;aACF,CAAC;YAEN,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,YAAY;aACd,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC;aAC/D,KAAK,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,CAAC;YACzB,OAAO,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,YAAY;aACd,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC;aAC9D,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,0BAA0B;aACzD,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;aACd,KAAK,CAAC,KAAK,IAAI,EAAE;YAChB,2BAA2B;QAC7B,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,YAAY;aACd,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,2BAA2B,CAAC;aAClE,QAAQ,CAAC;YACR,QAAQ,EAAE,IAAI,CAAC,cAAc;YAC7B,QAAQ,EAAE,IAAI,CAAC,cAAc;YAC7B,OAAO,EAAE,GAAG;SACb,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC;aACnC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACrB,IAAI,CAAC,iBAAiB,GAAG,KAAe,CAAC;YAEzC,wDAAwD;YACxD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAC7B,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,CACtD,CAAC;YACF,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;YAE7D,MAAM,OAAO,GAAG;gBACV,OAAO,EAAE;oBACP,cAAc,EAAE,cAAc;oBAC9B,WAAW,EAAE,yCAAyC;iBACvD;aACF,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,YAAY;aACd,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC;aACzD,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAE3C,wCAAwC;QACxC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAE,CAAC;YACpF,QAAQ;iBACL,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC;iBACzD,iBAAiB,CAChB,IAAI,CAAC,cAAc,CAAC,KAAK,EACzB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,gBAAgB,CAC9D;iBACA,iBAAiB,CAChB,IAAI,CAAC,cAAc,CAAC,YAAY,EAChC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,SAAS,CACxD,CAAC;YAEJ,yCAAyC;YACzC,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAU,CAAC;YACjD,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;gBAClC,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAClE,MAAM,OAAO,GACX,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC;oBAC3C,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;gBAEzE,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC;oBACnE,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;gBACxE,CAAC;gBACD,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBACjE,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;gBAE3E,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;YAC1D,CAAC;YAED,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxD,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI;oBAAE,SAAS;gBACtE,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;oBACnD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;wBACrC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,uCAAuC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;wBACrF,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC;YACH,CAAC;YAED,oCAAoC;YACpC,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;gBAClC,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAClE,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,WAAW,CAAE,CAAC;gBAE7D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAEpC,OAAO;qBACJ,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;qBACzC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC;qBACtD,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;oBACrB,IAAI,KAAK,EAAE,CAAC;wBACV,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;wBACjB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;wBAE3B,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;4BAC5D,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gCACrB,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;4BAC9D,CAAC;wBACH,CAAC;wBAED,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;wBACtE,MAAM,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACpD,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC;wBAE/F,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;4BAC5D,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,kBAAkB,KAAK,QAAQ,CAAC,CAAC;wBAC7F,CAAC;wBAED,qGAAqG;wBACrG,4FAA4F;wBAC5F,IAAI,OAAgC,CAAC;wBACrC,QAAQ,IAAI,EAAE,CAAC;4BACb,KAAK,IAAI,CAAC,YAAY;gCACpB,OAAO,GAAG;oCACR,OAAO,EAAE;wCACP,IAAI,EAAM,IAAI,CAAC,YAAY;wCAC3B,QAAQ,EAAE,IAAI,CAAC,aAAa;wCAC5B,WAAW,EAAE,yCAAyC;qCACvD;iCACF,CAAC;gCACF,MAAM;4BACR,KAAK,IAAI,CAAC,QAAQ;gCAChB,OAAO,GAAG;oCACR,OAAO,EAAE;wCACP,IAAI,EAAM,IAAI,CAAC,QAAQ;wCACvB,QAAQ,EAAE,IAAI,CAAC,cAAc;wCAC7B,WAAW,EAAE,yCAAyC;qCACvD;iCACF,CAAC;gCACF,MAAM;4BACN,4EAA4E;4BAC9E;gCACE,OAAO,GAAG;oCACR,OAAO,EAAE;wCACP,IAAI,EAAE,IAAI;wCACV,WAAW,EAAE,yCAAyC;qCACvD;iCACF,CAAC;wBACN,CAAC;wBAED,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBAC5B,CAAC;yBAAM,CAAC;wBACN,8CAA8C;wBAC9C,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;4BACjC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;4BAElB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;gCAChD,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;4BAC9D,CAAC;4BACD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;gCAC/C,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;4BAC9D,CAAC;4BAED,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;4BACtE,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC;4BAExF,MAAM,OAAO,GAA4B;gCACvC,OAAO,EAAE;oCACP,IAAI,EAAE,IAAI,CAAC,QAAQ;oCACnB,WAAW,EAAE,yCAAyC;iCACvD;6BACF,CAAC;4BAEF,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;wBAC5B,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAC;YACP,CAAC;QACH,CAAC;QAED,uCAAuC;QACvC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAE,CAAC;YACjF,OAAO;iBACJ,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC;iBACzD,iBAAiB,CAChB,IAAI,CAAC,cAAc,CAAC,KAAK,EACzB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,eAAe,CAC7D;iBACA,iBAAiB,CAChB,IAAI,CAAC,cAAc,CAAC,YAAY,EAChC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,SAAS,CACxD,CAAC;YAEJ,8CAA8C;YAC9C,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAU,CAAC;YAChD,KAAK,MAAM,eAAe,IAAI,kBAAkB,EAAE,CAAC;gBACjD,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;gBAC7E,MAAM,OAAO,GACX,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC;oBACzC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;gBAElF,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC;oBACnE,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;gBACxE,CAAC;gBACD,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBACjE,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;gBAE3E,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,CAAC;YACpE,CAAC;YAED,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtD,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI;oBAAE,SAAS;gBACtE,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;oBACnD,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;wBACpC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,4CAA4C,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;wBAC1F,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;oBAC3C,CAAC;gBACH,CAAC;YACH,CAAC;YAED,yCAAyC;YACzC,KAAK,MAAM,eAAe,IAAI,kBAAkB,EAAE,CAAC;gBACjD,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;gBAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,WAAW,CAAE,CAAC;gBAE3D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;gBAE9C,OAAO;qBACJ,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;qBACzC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,kBAAkB,KAAK,eAAe,CAAC;qBACrE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;oBACrB,IAAI,KAAK,EAAE,CAAC;wBACV,4EAA4E;wBAC5E,IACE,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,YAAY;4BACzC,eAAe,KAAK,IAAI,CAAC,cAAc,EACvC,CAAC;4BACD,UAAU,CAAC,GAAG,EAAE;gCACd,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gCAC5D,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gCACnE,IAAI,aAAa,EAAE,CAAC;oCAClB,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gCACxE,CAAC;4BACH,CAAC,EAAE,EAAE,CAAC,CAAC;4BACP,OAAO;wBACT,CAAC;wBAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;wBACjB,IAAI,CAAC,kBAAkB,GAAG,eAAe,CAAC;wBAE1C,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;4BAC5D,IAAI,QAAQ,KAAK,eAAe,EAAE,CAAC;gCACjC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;4BAC9D,CAAC;wBACH,CAAC;wBAED,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;wBACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnE,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC;wBAE/F,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;4BAC5D,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,KAAK,OAAO,CAAC,CAAC;wBACxF,CAAC;wBAED,MAAM,OAAO,GAA4B;4BACvC,OAAO,EAAE;gCACP,QAAQ,EAAE,IAAI,CAAC,kBAAkB;gCACjC,WAAW,EAAE,yCAAyC;6BACvD;yBACF,CAAC;wBAEF,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBAC5B,CAAC;yBAAM,CAAC;wBACN,mDAAmD;wBACnD,IAAI,IAAI,CAAC,kBAAkB,KAAK,eAAe,EAAE,CAAC;4BAChD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;4BAElB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;gCAChD,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;4BAC9D,CAAC;4BACD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;gCAC/C,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;4BAC9D,CAAC;4BAED,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;4BACtE,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC;4BACxF,MAAM,OAAO,GAA4B;gCACvC,OAAO,EAAE;oCACP,QAAQ,EAAE,IAAI,CAAC,aAAa;oCAC5B,WAAW,EAAE,yCAAyC;iCACvD;6BACF,CAAC;4BAEF,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;wBAC5B,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAC;YACP,CAAC;QACH,CAAC;QAED,gDAAgD;QAChD,IAAI,CAAC,aAAa,CAAC,qCAAqC,CAAC,CAAC;IAC5D,CAAC;IAED,8BAA8B;IAC9B,qBAAqB;IACrB,8BAA8B;IACtB,WAAW,CAAC,OAAgC;QAClD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,GAAG,EAAE;YACrC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,OAAgC;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAC9B,qCAAqC,EACrC,iCAAiC,CAClC,CAAC;QAEF,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YACpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAoCI;YAEJ,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;oBAC5B,OAAO;oBACP,IAAI,EAAE,iBAAiB;oBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,iBAAiB,EAAE,qCAAqC;oBACxD,WAAW,EAAE,qCAAqC;oBAClD,UAAU,EAAE,iCAAiC;iBAC9C,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YACjE,CAAC;QACH,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,8BAA8B;IAC9B,6BAA6B;IAC7B,8BAA8B;IACtB,YAAY,CAAC,OAAuB;QAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,IAAI,OAAO,CAAC,UAAU,KAAK,iCAAiC,EAAE,CAAC;YAC7D,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,EAAa,CAAC;gBAChC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC;gBACjC,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxF,CAAC;YAED,IAAI,KAAK,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;gBAC7C,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,oBAA8B,CAAC;gBAC9D,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,2BAA2B,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAClH,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC7B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,IAAc,CAAC;YAC7C,CAAC;YAED,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,QAAkB,CAAC;YACrD,CAAC;YAED,gEAAgE;YAChE,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI;gBACzB,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC;YAE/F,yBAAyB;YACzB,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;gBACzD,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC;YAClG,CAAC;YACD,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC5D,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,kBAAkB,KAAK,QAAQ,CAAC,CAAC;YAC1G,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,CAAC,UAAU,KAAK,qCAAqC,EAAE,CAAC;YACxE,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBACzC,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,gBAA0B,CAAC;gBAC9D,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAC7G,CAAC;QACH,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,UAAU;IACV,8BAA8B;IACtB,WAAW,CAAC,WAAmB,EAAE,UAAkB;QACzD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAC7B,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,KAAK,WAAW,IAAI,OAAO,CAAC,UAAU,KAAK,UAAU,CACtF,CAAC;IACJ,CAAC;IAEO,2BAA2B,CAAC,GAAW,EAAE,SAAiB;QAChE,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjC,MAAM,WAAW,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAE5D,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACnB,CAAC;QAED,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACtD,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,iBAAiB,GAAG,SAAS,GAAG,YAAY,CAAC;QAEnD,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CACrB,iDAAiD,IAAI,CAAC,QAAQ,GAAG,EACjE,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAGH,8BAA8B;IAC9B,wBAAwB;IACxB,gIAAgI;IAChI,8BAA8B;IAEpB,aAAa,CAAC,WAAmB;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAChC,QAAQ,EACR,aAAa,EACb,GAAG,IAAI,CAAC,QAAQ,cAAc,CAC/B,CAAC;QAEF,UAAU;aACP,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;aACzC,KAAK,CAAC,GAAG,EAAE;YACV,OAAO,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,KAAgB,CAAC;QAC/E,CAAC,CAAC;aACD,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACrB,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,QAAQ,GAAG,MAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC7D,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;gBAC/C,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;oBACrC,IAAI,OAAO,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;wBACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;oBACtF,CAAC;gBACH,CAAC;gBAED,UAAU,CAAC,GAAG,EAAE;oBACd,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBACjE,CAAC,EAAE,IAAI,CAAC,CAAC;YACX,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEA,YAAY,CAAC,WAAmB,EAAE,WAAmB,EAAE,eAAuB;QAC/E,IAAI,OAAgB,CAAC;QAErB,QAAQ,WAAW,EAAE,CAAC;YACpB,KAAK,QAAQ;gBACX,OAAO;oBACL,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC;wBACtC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;gBAC/E,MAAM;YAER,KAAK,QAAQ;gBACX,OAAO;oBACL,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC;wBACtC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;gBAC/E,MAAM;YAER;gBACE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,GAAG,WAAW,GAAG,EAAE,CAAC,CAAC;gBAC/D,OAAO;oBACL,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC;wBACtC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;QAChF,CAAC;QAED,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACjE,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QACtE,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAE3E,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
|
package/dist/platform.js
CHANGED
|
@@ -90,7 +90,7 @@ export class SmartHqPlatform {
|
|
|
90
90
|
this.client.debug("No response from gettest command");
|
|
91
91
|
return false;
|
|
92
92
|
}
|
|
93
|
-
this.log.info(chalk.
|
|
93
|
+
this.log.info(chalk.yellow('Config = ' + JSON.stringify(response.config, null, 2)));
|
|
94
94
|
}
|
|
95
95
|
catch (error) {
|
|
96
96
|
this.client.debug("Error getting test: " + error);
|
package/dist/platform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -25,6 +25,24 @@ export class AirConditioner {
|
|
|
25
25
|
private coolCelsiusMin = 17.77;
|
|
26
26
|
private coolCelsiusMax = 30.0;
|
|
27
27
|
|
|
28
|
+
//======== Thermostat mode constants ========
|
|
29
|
+
private readonly MODE_COOL = "cloud.smarthq.type.thermostatmode.cool";
|
|
30
|
+
private readonly MODE_FANONLY = "cloud.smarthq.type.thermostatmode.fanonly";
|
|
31
|
+
private readonly MODE_DRY = "cloud.smarthq.type.thermostatmode.dry";
|
|
32
|
+
private readonly MODE_ENERGY_SAVER = "cloud.smarthq.type.thermostatmode.cool.energysaver";
|
|
33
|
+
private readonly MODE_COOL_QUIET = "cloud.smarthq.type.thermostatmode.cool.quiet";
|
|
34
|
+
private readonly MODE_COOL_TURBO = "cloud.smarthq.type.thermostatmode.cool.turbo";
|
|
35
|
+
private readonly MODE_HEAT = "cloud.smarthq.type.thermostatmode.heat";
|
|
36
|
+
private readonly MODE_OFF = "cloud.smarthq.type.thermostatmode.off";
|
|
37
|
+
private readonly MODE_ON = "cloud.smarthq.type.thermostatmode.on";
|
|
38
|
+
|
|
39
|
+
//======== Fan speed constants ========
|
|
40
|
+
private readonly FAN_SPEED_LOW = "cloud.smarthq.type.fanspeed.low";
|
|
41
|
+
private readonly FAN_SPEED_MEDIUM = "cloud.smarthq.type.fanspeed.medium";
|
|
42
|
+
private readonly FAN_SPEED_HIGH = "cloud.smarthq.type.fanspeed.high"
|
|
43
|
+
private readonly FAN_SPEED_AUTO = "cloud.smarthq.type.fanspeed.auto";
|
|
44
|
+
private readonly FAN_SPEED_OFF = "cloud.smarthq.type.fanspeed.off";
|
|
45
|
+
|
|
28
46
|
private client: SmartHQClient;
|
|
29
47
|
private api: API;
|
|
30
48
|
|
|
@@ -126,6 +144,7 @@ export class AirConditioner {
|
|
|
126
144
|
// ---------------------------
|
|
127
145
|
// ACCESSORIES SETUP
|
|
128
146
|
// ---------------------------
|
|
147
|
+
|
|
129
148
|
private setupAccessories(supportedModes: string[], supportedFanSpeeds: string[]) {
|
|
130
149
|
// Clean up old cached services on the parent accessory
|
|
131
150
|
const oldServiceUUIDs = [
|
|
@@ -167,7 +186,7 @@ export class AirConditioner {
|
|
|
167
186
|
this.isOn = (value as number) === 1;
|
|
168
187
|
|
|
169
188
|
if (this.isOn) {
|
|
170
|
-
const stateVal = this.lastActiveMode ===
|
|
189
|
+
const stateVal = this.lastActiveMode === this.MODE_FANONLY ? 1 : 3;
|
|
171
190
|
this.acThermostat.updateCharacteristic(this.Characteristic.CurrentHeaterCoolerState, stateVal);
|
|
172
191
|
for (const [mode, service] of this.modeOutlets.entries()) {
|
|
173
192
|
service.updateCharacteristic(this.Characteristic.On, this.lastActiveMode === mode);
|
|
@@ -184,15 +203,21 @@ export class AirConditioner {
|
|
|
184
203
|
service.updateCharacteristic(this.Characteristic.On, false);
|
|
185
204
|
}
|
|
186
205
|
}
|
|
206
|
+
const cmdBody = {
|
|
207
|
+
command: {
|
|
208
|
+
on: this.isOn,
|
|
209
|
+
commandType: 'cloud.smarthq.command.thermostat.v1.set',
|
|
210
|
+
}
|
|
211
|
+
};
|
|
187
212
|
|
|
188
|
-
this.sendCommand();
|
|
213
|
+
this.sendCommand(cmdBody);
|
|
189
214
|
});
|
|
190
215
|
|
|
191
216
|
this.acThermostat
|
|
192
217
|
.getCharacteristic(this.Characteristic.CurrentHeaterCoolerState)
|
|
193
|
-
.onGet(() => {
|
|
218
|
+
.onGet(() => {
|
|
194
219
|
if (!this.isOn) return 0;
|
|
195
|
-
return this.lastActiveMode ===
|
|
220
|
+
return this.lastActiveMode === this.MODE_FANONLY ? 1 : 3;
|
|
196
221
|
});
|
|
197
222
|
|
|
198
223
|
this.acThermostat
|
|
@@ -213,7 +238,21 @@ export class AirConditioner {
|
|
|
213
238
|
.onGet(() => this.lastActiveCelsius)
|
|
214
239
|
.onSet(async (value) => {
|
|
215
240
|
this.lastActiveCelsius = value as number;
|
|
216
|
-
|
|
241
|
+
|
|
242
|
+
// Clip celsius to hardware bounds to prevent API errors
|
|
243
|
+
const clippedCelsius = Math.max(
|
|
244
|
+
this.coolCelsiusMin,
|
|
245
|
+
Math.min(this.coolCelsiusMax, this.lastActiveCelsius),
|
|
246
|
+
);
|
|
247
|
+
const coolFahrenheit = Math.round(clippedCelsius * 1.8 + 32);
|
|
248
|
+
|
|
249
|
+
const cmdBody = {
|
|
250
|
+
command: {
|
|
251
|
+
coolFahrenheit: coolFahrenheit,
|
|
252
|
+
commandType: 'cloud.smarthq.command.thermostat.v1.set',
|
|
253
|
+
}
|
|
254
|
+
};
|
|
255
|
+
this.sendCommand(cmdBody);
|
|
217
256
|
});
|
|
218
257
|
|
|
219
258
|
this.acThermostat
|
|
@@ -284,14 +323,46 @@ export class AirConditioner {
|
|
|
284
323
|
}
|
|
285
324
|
|
|
286
325
|
this.acThermostat.updateCharacteristic(this.Characteristic.Active, 1);
|
|
287
|
-
const stateVal = mode ===
|
|
326
|
+
const stateVal = mode === this.MODE_FANONLY ? 1 : 3;
|
|
288
327
|
this.acThermostat.updateCharacteristic(this.Characteristic.CurrentHeaterCoolerState, stateVal);
|
|
289
328
|
|
|
290
329
|
for (const [fanSpeed, service] of this.fanOutlets.entries()) {
|
|
291
330
|
service.updateCharacteristic(this.Characteristic.On, this.lastActiveFanSpeed === fanSpeed);
|
|
292
331
|
}
|
|
293
332
|
|
|
294
|
-
|
|
333
|
+
// Handle behavior constraint: Fan Only mode does not support Auto Fan Speed - force Fan Speed to Low
|
|
334
|
+
// Dry mode sets fan speed to Auto, which is valid. Only Fan Only mode needs to be adjusted.
|
|
335
|
+
let cmdBody: Record<string, unknown>;
|
|
336
|
+
switch (mode) {
|
|
337
|
+
case this.MODE_FANONLY:
|
|
338
|
+
cmdBody = {
|
|
339
|
+
command: {
|
|
340
|
+
mode: this.MODE_FANONLY,
|
|
341
|
+
fanSpeed: this.FAN_SPEED_LOW,
|
|
342
|
+
commandType: 'cloud.smarthq.command.thermostat.v1.set',
|
|
343
|
+
}
|
|
344
|
+
};
|
|
345
|
+
break;
|
|
346
|
+
case this.MODE_DRY:
|
|
347
|
+
cmdBody = {
|
|
348
|
+
command: {
|
|
349
|
+
mode: this.MODE_DRY,
|
|
350
|
+
fanSpeed: this.FAN_SPEED_AUTO,
|
|
351
|
+
commandType: 'cloud.smarthq.command.thermostat.v1.set',
|
|
352
|
+
}
|
|
353
|
+
};
|
|
354
|
+
break;
|
|
355
|
+
// Default case handles Cool and Heat modes, which support all(?) fan speeds
|
|
356
|
+
default:
|
|
357
|
+
cmdBody = {
|
|
358
|
+
command: {
|
|
359
|
+
mode: mode,
|
|
360
|
+
commandType: 'cloud.smarthq.command.thermostat.v1.set',
|
|
361
|
+
}
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
this.sendCommand(cmdBody);
|
|
295
366
|
} else {
|
|
296
367
|
// Toggling active mode OFF powers down system
|
|
297
368
|
if (this.lastActiveMode === mode) {
|
|
@@ -300,14 +371,21 @@ export class AirConditioner {
|
|
|
300
371
|
for (const service of this.modeOutlets.values()) {
|
|
301
372
|
service.updateCharacteristic(this.Characteristic.On, false);
|
|
302
373
|
}
|
|
303
|
-
for (const service of this.fanOutlets.values()) {
|
|
374
|
+
for (const service of this.fanOutlets.values()) {
|
|
304
375
|
service.updateCharacteristic(this.Characteristic.On, false);
|
|
305
376
|
}
|
|
306
377
|
|
|
307
378
|
this.acThermostat.updateCharacteristic(this.Characteristic.Active, 0);
|
|
308
379
|
this.acThermostat.updateCharacteristic(this.Characteristic.CurrentHeaterCoolerState, 0);
|
|
309
380
|
|
|
310
|
-
|
|
381
|
+
const cmdBody: Record<string, unknown> = {
|
|
382
|
+
command: {
|
|
383
|
+
mode: this.MODE_OFF,
|
|
384
|
+
commandType: 'cloud.smarthq.command.thermostat.v1.set',
|
|
385
|
+
}
|
|
386
|
+
};
|
|
387
|
+
|
|
388
|
+
this.sendCommand(cmdBody);
|
|
311
389
|
}
|
|
312
390
|
}
|
|
313
391
|
});
|
|
@@ -330,11 +408,11 @@ export class AirConditioner {
|
|
|
330
408
|
|
|
331
409
|
// Clean up stale Fan Speed outlets from cache
|
|
332
410
|
const activeFanServiceUUIDs = new Set<string>();
|
|
333
|
-
for (const
|
|
334
|
-
const [displayName] = this.getLastElementAndCapitalize(
|
|
411
|
+
for (const fanSpeedSetting of supportedFanSpeeds) {
|
|
412
|
+
const [displayName] = this.getLastElementAndCapitalize(fanSpeedSetting, '.');
|
|
335
413
|
const service =
|
|
336
414
|
this.fanAccessory.getService(displayName) ||
|
|
337
|
-
this.fanAccessory.addService(this.Service.Outlet, displayName,
|
|
415
|
+
this.fanAccessory.addService(this.Service.Outlet, displayName, fanSpeedSetting);
|
|
338
416
|
|
|
339
417
|
if (!service.getCharacteristic(this.Characteristic.ConfiguredName)) {
|
|
340
418
|
service.addOptionalCharacteristic(this.Characteristic.ConfiguredName);
|
|
@@ -342,7 +420,7 @@ export class AirConditioner {
|
|
|
342
420
|
service.setCharacteristic(this.Characteristic.Name, displayName);
|
|
343
421
|
service.setCharacteristic(this.Characteristic.ConfiguredName, displayName);
|
|
344
422
|
|
|
345
|
-
activeFanServiceUUIDs.add(service.UUID + (
|
|
423
|
+
activeFanServiceUUIDs.add(service.UUID + (fanSpeedSetting || ''));
|
|
346
424
|
}
|
|
347
425
|
|
|
348
426
|
for (const service of [...this.fanAccessory.services]) {
|
|
@@ -357,21 +435,21 @@ export class AirConditioner {
|
|
|
357
435
|
}
|
|
358
436
|
|
|
359
437
|
// Bind Fan Speed Outlets characteristics
|
|
360
|
-
for (const
|
|
361
|
-
const [displayName] = this.getLastElementAndCapitalize(
|
|
438
|
+
for (const fanSpeedSetting of supportedFanSpeeds) {
|
|
439
|
+
const [displayName] = this.getLastElementAndCapitalize(fanSpeedSetting, '.');
|
|
362
440
|
const service = this.fanAccessory.getService(displayName)!;
|
|
363
441
|
|
|
364
|
-
this.fanOutlets.set(
|
|
442
|
+
this.fanOutlets.set(fanSpeedSetting, service);
|
|
365
443
|
|
|
366
444
|
service
|
|
367
445
|
.getCharacteristic(this.Characteristic.On)
|
|
368
|
-
.onGet(() => this.isOn && this.lastActiveFanSpeed ===
|
|
446
|
+
.onGet(() => this.isOn && this.lastActiveFanSpeed === fanSpeedSetting)
|
|
369
447
|
.onSet(async (value) => {
|
|
370
448
|
if (value) {
|
|
371
449
|
// Handle behavior constraint: Fan Only mode does not support Auto Fan Speed
|
|
372
450
|
if (
|
|
373
|
-
this.lastActiveMode ===
|
|
374
|
-
|
|
451
|
+
this.lastActiveMode === this.MODE_FANONLY &&
|
|
452
|
+
fanSpeedSetting === this.FAN_SPEED_AUTO
|
|
375
453
|
) {
|
|
376
454
|
setTimeout(() => {
|
|
377
455
|
service.updateCharacteristic(this.Characteristic.On, false);
|
|
@@ -384,26 +462,33 @@ export class AirConditioner {
|
|
|
384
462
|
}
|
|
385
463
|
|
|
386
464
|
this.isOn = true;
|
|
387
|
-
this.lastActiveFanSpeed =
|
|
465
|
+
this.lastActiveFanSpeed = fanSpeedSetting;
|
|
388
466
|
|
|
389
467
|
for (const [fanSpeed, service] of this.fanOutlets.entries()) {
|
|
390
|
-
if (fanSpeed !==
|
|
468
|
+
if (fanSpeed !== fanSpeedSetting) {
|
|
391
469
|
service.updateCharacteristic(this.Characteristic.On, false);
|
|
392
470
|
}
|
|
393
471
|
}
|
|
394
472
|
|
|
395
473
|
this.acThermostat.updateCharacteristic(this.Characteristic.Active, 1);
|
|
396
|
-
const stateVal = this.lastActiveMode ===
|
|
474
|
+
const stateVal = this.lastActiveMode === this.MODE_FANONLY ? 1 : 3;
|
|
397
475
|
this.acThermostat.updateCharacteristic(this.Characteristic.CurrentHeaterCoolerState, stateVal);
|
|
398
476
|
|
|
399
477
|
for (const [modeKey, service] of this.modeOutlets.entries()) {
|
|
400
478
|
service.updateCharacteristic(this.Characteristic.On, this.lastActiveMode === modeKey);
|
|
401
479
|
}
|
|
402
480
|
|
|
403
|
-
|
|
481
|
+
const cmdBody: Record<string, unknown> = {
|
|
482
|
+
command: {
|
|
483
|
+
fanspeed: this.lastActiveFanSpeed,
|
|
484
|
+
commandType: 'cloud.smarthq.command.thermostat.v1.set',
|
|
485
|
+
}
|
|
486
|
+
};
|
|
487
|
+
|
|
488
|
+
this.sendCommand(cmdBody);
|
|
404
489
|
} else {
|
|
405
490
|
// Toggling active fan speed OFF powers down system
|
|
406
|
-
if (this.lastActiveFanSpeed ===
|
|
491
|
+
if (this.lastActiveFanSpeed === fanSpeedSetting) {
|
|
407
492
|
this.isOn = false;
|
|
408
493
|
|
|
409
494
|
for (const service of this.modeOutlets.values()) {
|
|
@@ -415,30 +500,39 @@ export class AirConditioner {
|
|
|
415
500
|
|
|
416
501
|
this.acThermostat.updateCharacteristic(this.Characteristic.Active, 0);
|
|
417
502
|
this.acThermostat.updateCharacteristic(this.Characteristic.CurrentHeaterCoolerState, 0);
|
|
503
|
+
const cmdBody: Record<string, unknown> = {
|
|
504
|
+
command: {
|
|
505
|
+
fanspeed: this.FAN_SPEED_OFF,
|
|
506
|
+
commandType: 'cloud.smarthq.command.thermostat.v1.set',
|
|
507
|
+
}
|
|
508
|
+
};
|
|
418
509
|
|
|
419
|
-
this.sendCommand();
|
|
510
|
+
this.sendCommand(cmdBody);
|
|
420
511
|
}
|
|
421
512
|
}
|
|
422
513
|
});
|
|
423
514
|
}
|
|
424
515
|
}
|
|
516
|
+
|
|
517
|
+
// D. Add Debug State switch to parent accessory
|
|
518
|
+
this.addDebugState('cloud.smarthq.service.thermostat.v1');
|
|
425
519
|
}
|
|
426
520
|
|
|
427
521
|
// ---------------------------
|
|
428
522
|
// API COMMAND SENDER
|
|
429
523
|
// ---------------------------
|
|
430
|
-
private sendCommand() {
|
|
524
|
+
private sendCommand(cmdBody: Record<string, unknown>) {
|
|
431
525
|
if (this.debounceTimeout) {
|
|
432
526
|
clearTimeout(this.debounceTimeout);
|
|
433
527
|
}
|
|
434
528
|
|
|
435
529
|
this.debounceTimeout = setTimeout(() => {
|
|
436
530
|
this.debounceTimeout = null;
|
|
437
|
-
this.executeSendCommand();
|
|
531
|
+
this.executeSendCommand(cmdBody);
|
|
438
532
|
}, 150);
|
|
439
533
|
}
|
|
440
534
|
|
|
441
|
-
private async executeSendCommand() {
|
|
535
|
+
private async executeSendCommand(command: Record<string, unknown>) {
|
|
442
536
|
const service = this.findService(
|
|
443
537
|
'cloud.smarthq.service.thermostat.v1',
|
|
444
538
|
'cloud.smarthq.domain.thermostat',
|
|
@@ -447,9 +541,11 @@ export class AirConditioner {
|
|
|
447
541
|
if (!service) return;
|
|
448
542
|
|
|
449
543
|
this.commandQueue = this.commandQueue.then(async () => {
|
|
544
|
+
/*
|
|
450
545
|
const command: Record<string, unknown> = {
|
|
451
546
|
commandType: 'cloud.smarthq.command.thermostat.v1.set',
|
|
452
547
|
};
|
|
548
|
+
|
|
453
549
|
|
|
454
550
|
// Only send the 'on' parameter if it is transitioning (prevents GE firmware from resetting to ECO)
|
|
455
551
|
if (!this.isOn) {
|
|
@@ -463,16 +559,16 @@ export class AirConditioner {
|
|
|
463
559
|
|
|
464
560
|
// Handle behavior constraint: Fan Only mode does not support Auto Fan Speed
|
|
465
561
|
if (
|
|
466
|
-
this.lastActiveMode ===
|
|
467
|
-
this.lastActiveFanSpeed ===
|
|
562
|
+
this.lastActiveMode === this.MODE_FANONLY &&
|
|
563
|
+
this.lastActiveFanSpeed === this.FAN_SPEED_AUTO
|
|
468
564
|
) {
|
|
469
|
-
command.fanSpeed =
|
|
565
|
+
command.fanSpeed = this.FAN_SPEED_LOW;
|
|
470
566
|
} else {
|
|
471
567
|
command.fanSpeed = this.lastActiveFanSpeed;
|
|
472
568
|
}
|
|
473
569
|
|
|
474
570
|
// Omit coolFahrenheit in Fan Only mode (thermostat has no cooling setpoint)
|
|
475
|
-
if (this.lastActiveMode !==
|
|
571
|
+
if (this.lastActiveMode !== this.MODE_FANONLY) {
|
|
476
572
|
// Clip celsius to hardware bounds to prevent API errors
|
|
477
573
|
const clippedCelsius = Math.max(
|
|
478
574
|
this.coolCelsiusMin,
|
|
@@ -481,6 +577,7 @@ export class AirConditioner {
|
|
|
481
577
|
command.coolFahrenheit = Math.round(clippedCelsius * 1.8 + 32);
|
|
482
578
|
}
|
|
483
579
|
}
|
|
580
|
+
*/
|
|
484
581
|
|
|
485
582
|
try {
|
|
486
583
|
await this.client.sendCommand({
|
|
@@ -531,7 +628,7 @@ export class AirConditioner {
|
|
|
531
628
|
// Update HeaterCooler state dynamically based on power and mode
|
|
532
629
|
const stateVal = !this.isOn
|
|
533
630
|
? 0
|
|
534
|
-
: (this.lastActiveMode ===
|
|
631
|
+
: (this.lastActiveMode === this.MODE_FANONLY ? 1 : 3);
|
|
535
632
|
this.acThermostat.updateCharacteristic(this.Characteristic.CurrentHeaterCoolerState, stateVal);
|
|
536
633
|
|
|
537
634
|
// Update dynamic outlets
|
|
@@ -584,4 +681,69 @@ export class AirConditioner {
|
|
|
584
681
|
);
|
|
585
682
|
}
|
|
586
683
|
}
|
|
684
|
+
|
|
685
|
+
|
|
686
|
+
// ---------------------------
|
|
687
|
+
// HELPERS FOR DEBUGGING
|
|
688
|
+
// Adds a 'Debug State' switch to the parent accessory that logs the current state of the specified service type when toggled on
|
|
689
|
+
// ---------------------------
|
|
690
|
+
|
|
691
|
+
private addDebugState(serviceType: string): void {
|
|
692
|
+
const debugState = this.setupService(
|
|
693
|
+
'Switch',
|
|
694
|
+
'Debug State',
|
|
695
|
+
`${this.deviceId}-debug-state`,
|
|
696
|
+
);
|
|
697
|
+
|
|
698
|
+
debugState
|
|
699
|
+
.getCharacteristic(this.Characteristic.On)
|
|
700
|
+
.onGet(() => {
|
|
701
|
+
return debugState.getCharacteristic(this.Characteristic.On).value as boolean;
|
|
702
|
+
})
|
|
703
|
+
.onSet(async (value) => {
|
|
704
|
+
if (value) {
|
|
705
|
+
const response = await this.client.getDevice(this.deviceId);
|
|
706
|
+
const deviceServices = response.services ?? [];
|
|
707
|
+
for (const service of deviceServices) {
|
|
708
|
+
if (service.serviceType === serviceType) {
|
|
709
|
+
this.client.debug('Debug State - Device Info: ' + JSON.stringify(service, null, 2));
|
|
710
|
+
}
|
|
711
|
+
}
|
|
712
|
+
|
|
713
|
+
setTimeout(() => {
|
|
714
|
+
debugState.updateCharacteristic(this.Characteristic.On, false);
|
|
715
|
+
}, 1000);
|
|
716
|
+
}
|
|
717
|
+
});
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
setupService(serviceType: string, displayName: string, serviceIdSuffix: string) {
|
|
721
|
+
let service: Service;
|
|
722
|
+
|
|
723
|
+
switch (serviceType) {
|
|
724
|
+
case 'Outlet':
|
|
725
|
+
service =
|
|
726
|
+
this.accessory.getService(displayName) ||
|
|
727
|
+
this.accessory.addService(this.Service.Outlet, displayName, serviceIdSuffix);
|
|
728
|
+
break;
|
|
729
|
+
|
|
730
|
+
case 'Switch':
|
|
731
|
+
service =
|
|
732
|
+
this.accessory.getService(displayName) ||
|
|
733
|
+
this.accessory.addService(this.Service.Switch, displayName, serviceIdSuffix);
|
|
734
|
+
break;
|
|
735
|
+
|
|
736
|
+
default:
|
|
737
|
+
this.client.debug('Unknown service type: ' + serviceType + '');
|
|
738
|
+
service =
|
|
739
|
+
this.accessory.getService(displayName) ||
|
|
740
|
+
this.accessory.addService(this.Service.Fan, displayName, serviceIdSuffix);
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
service.setCharacteristic(this.Characteristic.Name, displayName);
|
|
744
|
+
service.addOptionalCharacteristic(this.Characteristic.ConfiguredName);
|
|
745
|
+
service.setCharacteristic(this.Characteristic.ConfiguredName, displayName);
|
|
746
|
+
|
|
747
|
+
return service;
|
|
748
|
+
}
|
|
587
749
|
}
|
package/src/platform.ts
CHANGED
|
@@ -128,7 +128,7 @@ export class SmartHqPlatform implements DynamicPlatformPlugin {
|
|
|
128
128
|
this.client.debug("No response from gettest command");
|
|
129
129
|
return false;
|
|
130
130
|
}
|
|
131
|
-
this.log.info(chalk.
|
|
131
|
+
this.log.info(chalk.yellow('Config = ' + JSON.stringify(response.config, null, 2)));
|
|
132
132
|
} catch (error) {
|
|
133
133
|
this.client.debug("Error getting test: " + error);
|
|
134
134
|
return false;
|