@mp-consulting/homebridge-daikin-cloud 1.3.19 → 1.3.23
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/README.md +5 -0
- package/dist/src/accessories/base-accessory.d.ts.map +1 -1
- package/dist/src/accessories/base-accessory.js +7 -2
- package/dist/src/accessories/base-accessory.js.map +1 -1
- package/dist/src/api/daikin-device.d.ts +7 -0
- package/dist/src/api/daikin-device.d.ts.map +1 -1
- package/dist/src/api/daikin-device.js +27 -1
- package/dist/src/api/daikin-device.js.map +1 -1
- package/dist/src/api/daikin-schemas.d.ts +83 -5738
- package/dist/src/api/daikin-schemas.d.ts.map +1 -1
- package/dist/src/api/daikin-schemas.js +54 -35
- package/dist/src/api/daikin-schemas.js.map +1 -1
- package/dist/src/features/base-feature.d.ts +7 -0
- package/dist/src/features/base-feature.d.ts.map +1 -1
- package/dist/src/features/base-feature.js +17 -0
- package/dist/src/features/base-feature.js.map +1 -1
- package/dist/src/features/feature-manager.d.ts +6 -0
- package/dist/src/features/feature-manager.d.ts.map +1 -1
- package/dist/src/features/feature-manager.js +10 -0
- package/dist/src/features/feature-manager.js.map +1 -1
- package/dist/src/features/modes/econo-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/econo-mode.feature.js +5 -2
- package/dist/src/features/modes/econo-mode.feature.js.map +1 -1
- package/dist/src/features/modes/outdoor-silent-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/outdoor-silent-mode.feature.js +5 -2
- package/dist/src/features/modes/outdoor-silent-mode.feature.js.map +1 -1
- package/dist/src/features/modes/powerful-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/powerful-mode.feature.js +5 -2
- package/dist/src/features/modes/powerful-mode.feature.js.map +1 -1
- package/dist/src/features/modes/streamer-mode.feature.d.ts.map +1 -1
- package/dist/src/features/modes/streamer-mode.feature.js +5 -2
- package/dist/src/features/modes/streamer-mode.feature.js.map +1 -1
- package/dist/src/platform.d.ts.map +1 -1
- package/dist/src/platform.js +7 -6
- package/dist/src/platform.js.map +1 -1
- package/dist/src/services/climate-control.service.d.ts +13 -0
- package/dist/src/services/climate-control.service.d.ts.map +1 -1
- package/dist/src/services/climate-control.service.js +134 -23
- package/dist/src/services/climate-control.service.js.map +1 -1
- package/dist/src/services/hot-water-tank.service.d.ts.map +1 -1
- package/dist/src/services/hot-water-tank.service.js +3 -2
- package/dist/src/services/hot-water-tank.service.js.map +1 -1
- package/dist/src/utils/update-mapper.d.ts.map +1 -1
- package/dist/src/utils/update-mapper.js +4 -1
- package/dist/src/utils/update-mapper.js.map +1 -1
- package/homebridge-ui/server.js +3 -3
- package/package.json +16 -14
package/README.md
CHANGED
|
@@ -216,6 +216,11 @@ npm run watch
|
|
|
216
216
|
|
|
217
217
|
# Run tests
|
|
218
218
|
npm test
|
|
219
|
+
|
|
220
|
+
# Check for Daikin API schema drift (fetches live devices, diffs raw vs Zod-parsed,
|
|
221
|
+
# reports any silently-stripped fields). Add --dump-fixtures to also write per-device
|
|
222
|
+
# fixtures to test/fixtures/live/ for offline debugging.
|
|
223
|
+
npm run schema:check
|
|
219
224
|
```
|
|
220
225
|
|
|
221
226
|
### Code Quality
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-accessory.d.ts","sourceRoot":"","sources":["../../../src/accessories/base-accessory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,KAAK,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGpF,qBAAa,aAAa;IACxB,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC,2BAA2B,CAAC,CAAC;IACnE,SAAgB,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;gBAEtD,QAAQ,EAAE,mBAAmB,EAC7B,SAAS,EAAE,iBAAiB,CAAC,2BAA2B,CAAC;IAkC3D;;;;OAIG;IACH,SAAS,CAAC,aAAa,IAAI,IAAI;IAI/B,OAAO,CAAC,eAAe;
|
|
1
|
+
{"version":3,"file":"base-accessory.d.ts","sourceRoot":"","sources":["../../../src/accessories/base-accessory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,KAAK,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGpF,qBAAa,aAAa;IACxB,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC,2BAA2B,CAAC,CAAC;IACnE,SAAgB,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;gBAEtD,QAAQ,EAAE,mBAAmB,EAC7B,SAAS,EAAE,iBAAiB,CAAC,2BAA2B,CAAC;IAkC3D;;;;OAIG;IACH,SAAS,CAAC,aAAa,IAAI,IAAI;IAI/B,OAAO,CAAC,eAAe;IAcvB;;;SAGK;IACL,SAAS,CAAC,eAAe,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI;IAY1D,kCAAkC,CAAC,mBAAmB,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAgB/E"}
|
|
@@ -41,12 +41,17 @@ class BaseAccessory {
|
|
|
41
41
|
// Default no-op; subclasses override.
|
|
42
42
|
}
|
|
43
43
|
printDeviceInfo(modelInfo) {
|
|
44
|
-
this
|
|
45
|
-
|
|
44
|
+
// Log the raw Daikin device ID — this is the value the custom UI saves into
|
|
45
|
+
// excludedDevicesByDeviceId, so users picking IDs out of the log get a match.
|
|
46
|
+
// The HAP UUID is logged too for diagnostic purposes only.
|
|
47
|
+
const deviceId = this.accessory.context.device.getId();
|
|
48
|
+
this.platform.log.info('[Platform] Device found with id: ' + deviceId);
|
|
49
|
+
this.platform.log.info('[Platform] id: ' + deviceId);
|
|
46
50
|
this.platform.log.info('[Platform] name: ' + this.accessory.displayName);
|
|
47
51
|
this.platform.log.info('[Platform] last updated: ' + this.accessory.context.device.getLastUpdated());
|
|
48
52
|
this.platform.log.info('[Platform] modelInfo: ' + modelInfo);
|
|
49
53
|
this.platform.log.info('[Platform] deviceModel: ' + this.accessory.context.device.getDescription().deviceModel);
|
|
54
|
+
this.platform.log.debug('[Platform] HAP UUID: ' + this.accessory.UUID);
|
|
50
55
|
}
|
|
51
56
|
/**
|
|
52
57
|
* Log device capabilities for the given management point.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-accessory.js","sourceRoot":"","sources":["../../../src/accessories/base-accessory.ts"],"names":[],"mappings":";;;AAEA,sCAA2E;AAE3E,MAAa,aAAa;IACf,QAAQ,CAAsB;IAC9B,SAAS,CAAiD;IACnD,wBAAwB,CAAgB;IACxD,YACE,QAA6B,EAC7B,SAAyD;QAEzD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,kCAAkC,CAAC,SAAS,CAAC,CAAC;QAEnF,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB;YAC7C,CAAC,CAAE,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,KAAgB,IAAI,SAAS;YACxH,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB;YAC9C,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,cAAc,EAAE,SAAS,CAAC;YAC5F,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAE,UAAU,CAAC,KAAgB,IAAI,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC;QAEpG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAE5B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAE;aACnE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,QAAQ,CAAC;aACtE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC;aAChE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAE9E,MAAM,cAAc,GAAG,GAAG,EAAE;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;YACxC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YACjC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YACnE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CACrB,yBAAyB,IAAI,KAAK,IAAI,mBAAmB,WAAW,EAAE,CACvE,CAAC;YACF,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAC3E,CAAC;IAED;;;;OAIG;IACO,aAAa;QACrB,sCAAsC;IACxC,CAAC;IAEO,eAAe,CAAC,SAAiB;QACvC,
|
|
1
|
+
{"version":3,"file":"base-accessory.js","sourceRoot":"","sources":["../../../src/accessories/base-accessory.ts"],"names":[],"mappings":"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"}
|
|
@@ -69,6 +69,13 @@ export declare class DaikinCloudDevice extends EventEmitter {
|
|
|
69
69
|
/**
|
|
70
70
|
* Apply a WebSocket update to the device's raw data
|
|
71
71
|
* This updates the in-memory data without making an API call
|
|
72
|
+
*
|
|
73
|
+
* Daikin sends PARTIAL sub-trees on WebSocket — e.g. a fanControl push for a
|
|
74
|
+
* single operationMode/fanDirection/vertical path. A naive
|
|
75
|
+
* `characteristic.value = data.value` assignment would wipe out every other
|
|
76
|
+
* operation mode and sibling path, leaving GET handlers reading undefined
|
|
77
|
+
* until the next full poll. Deep-merge object values so partial pushes
|
|
78
|
+
* augment instead of replace; primitives and arrays still replace.
|
|
72
79
|
*/
|
|
73
80
|
applyWebSocketUpdate(update: WebSocketDeviceUpdate): void;
|
|
74
81
|
private getManagementPoint;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daikin-device.d.ts","sourceRoot":"","sources":["../../../src/api/daikin-device.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAmB,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,QAAQ,EAAE,MAAM;CAI7B;AAED,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,qBAAa,iBAAkB,SAAQ,YAAY;IAI3C,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ,CAAC,GAAG;IAJ1B,OAAO,CAAC,WAAW,CAAoB;gBAGzB,OAAO,EAAE,aAAa,EACb,GAAG,EAAE,SAAS;IAKrC;;SAEK;IACL,IAAI,IAAI,IAAI,aAAa,CAExB;IAED;;SAEK;IACL,KAAK,IAAI,MAAM;IAIf;;SAEK;IACL,cAAc,IAAI;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE;IAMzC;;SAEK;IACL,cAAc,IAAI,IAAI;IAItB;;SAEK;IACL,eAAe,IAAI,IAAI;IAIvB;;;;;;SAMK;IACL,OAAO,CACL,iBAAiB,EAAE,MAAM,EACzB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GAAG,SAAS,GACvB,eAAe;IAoBlB;;;;;;;SAOK;IACC,OAAO,CACX,iBAAiB,EAAE,MAAM,EACzB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAAG,OAAO,EAC7B,gBAAgB,EAAE,OAAO,GACxB,OAAO,CAAC,IAAI,CAAC;IAyBhB;;SAEK;IACL,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAM3C
|
|
1
|
+
{"version":3,"file":"daikin-device.d.ts","sourceRoot":"","sources":["../../../src/api/daikin-device.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAmB,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,QAAQ,EAAE,MAAM;CAI7B;AAED,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,qBAAa,iBAAkB,SAAQ,YAAY;IAI3C,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ,CAAC,GAAG;IAJ1B,OAAO,CAAC,WAAW,CAAoB;gBAGzB,OAAO,EAAE,aAAa,EACb,GAAG,EAAE,SAAS;IAKrC;;SAEK;IACL,IAAI,IAAI,IAAI,aAAa,CAExB;IAED;;SAEK;IACL,KAAK,IAAI,MAAM;IAIf;;SAEK;IACL,cAAc,IAAI;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE;IAMzC;;SAEK;IACL,cAAc,IAAI,IAAI;IAItB;;SAEK;IACL,eAAe,IAAI,IAAI;IAIvB;;;;;;SAMK;IACL,OAAO,CACL,iBAAiB,EAAE,MAAM,EACzB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GAAG,SAAS,GACvB,eAAe;IAoBlB;;;;;;;SAOK;IACC,OAAO,CACX,iBAAiB,EAAE,MAAM,EACzB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAAG,OAAO,EAC7B,gBAAgB,EAAE,OAAO,GACxB,OAAO,CAAC,IAAI,CAAC;IAyBhB;;SAEK;IACL,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAM3C;;;;;;;;;;SAUK;IACL,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI;IA8CzD,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,YAAY;CAiCrB"}
|
|
@@ -120,6 +120,13 @@ class DaikinCloudDevice extends node_events_1.EventEmitter {
|
|
|
120
120
|
/**
|
|
121
121
|
* Apply a WebSocket update to the device's raw data
|
|
122
122
|
* This updates the in-memory data without making an API call
|
|
123
|
+
*
|
|
124
|
+
* Daikin sends PARTIAL sub-trees on WebSocket — e.g. a fanControl push for a
|
|
125
|
+
* single operationMode/fanDirection/vertical path. A naive
|
|
126
|
+
* `characteristic.value = data.value` assignment would wipe out every other
|
|
127
|
+
* operation mode and sibling path, leaving GET handlers reading undefined
|
|
128
|
+
* until the next full poll. Deep-merge object values so partial pushes
|
|
129
|
+
* augment instead of replace; primitives and arrays still replace.
|
|
123
130
|
*/
|
|
124
131
|
applyWebSocketUpdate(update) {
|
|
125
132
|
const managementPoint = this.getManagementPoint(update.embeddedId);
|
|
@@ -136,7 +143,7 @@ class DaikinCloudDevice extends node_events_1.EventEmitter {
|
|
|
136
143
|
}
|
|
137
144
|
// Update the characteristic with new data
|
|
138
145
|
if (data.value !== undefined) {
|
|
139
|
-
characteristic.value = data.value;
|
|
146
|
+
characteristic.value = mergeValue(characteristic.value, data.value);
|
|
140
147
|
}
|
|
141
148
|
if (data.values !== undefined) {
|
|
142
149
|
characteristic.values = data.values;
|
|
@@ -194,4 +201,23 @@ class DaikinCloudDevice extends node_events_1.EventEmitter {
|
|
|
194
201
|
}
|
|
195
202
|
}
|
|
196
203
|
exports.DaikinCloudDevice = DaikinCloudDevice;
|
|
204
|
+
/**
|
|
205
|
+
* Deep-merge a partial WebSocket value into the existing in-memory value.
|
|
206
|
+
* Plain objects merge key-by-key; arrays and primitives replace. Without this,
|
|
207
|
+
* a partial fanControl push for cooling/vertical wipes heating/auto/dry/fanOnly
|
|
208
|
+
* out of memory until the next full poll. See applyWebSocketUpdate.
|
|
209
|
+
*/
|
|
210
|
+
function mergeValue(existing, incoming) {
|
|
211
|
+
if (!isPlainObject(existing) || !isPlainObject(incoming)) {
|
|
212
|
+
return incoming;
|
|
213
|
+
}
|
|
214
|
+
const merged = { ...existing };
|
|
215
|
+
for (const key of Object.keys(incoming)) {
|
|
216
|
+
merged[key] = mergeValue(merged[key], incoming[key]);
|
|
217
|
+
}
|
|
218
|
+
return merged;
|
|
219
|
+
}
|
|
220
|
+
function isPlainObject(v) {
|
|
221
|
+
return typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
222
|
+
}
|
|
197
223
|
//# sourceMappingURL=daikin-device.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daikin-device.js","sourceRoot":"","sources":["../../../src/api/daikin-device.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,6CAA2C;AAI3C,MAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,QAAgB;QAC1B,KAAK,CAAC,UAAU,QAAQ,qCAAqC,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AALD,gDAKC;AAWD,MAAa,iBAAkB,SAAQ,0BAAY;IAInC;IACS;IAJf,WAAW,GAAS,IAAI,IAAI,EAAE,CAAC;IAEvC,YACc,OAAsB,EACb,GAAc;QAEnC,KAAK,EAAE,CAAC;QAHI,YAAO,GAAP,OAAO,CAAe;QACb,QAAG,GAAH,GAAG,CAAW;IAGrC,CAAC;IAED;;SAEK;IACL,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;SAEK;IACL,KAAK;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IACzB,CAAC;IAED;;SAEK;IACL,cAAc;QACZ,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,SAAS;SACnD,CAAC;IACJ,CAAC;IAED;;SAEK;IACL,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;SAEK;IACL,eAAe;QACb,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;IAChC,CAAC;IAED;;;;;;SAMK;IACL,OAAO,CACL,iBAAyB,EACzB,SAAiB,EACjB,IAAwB;QAExB,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;QACnE,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAC9B,CAAC;QAED,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAC9B,CAAC;QAED,uCAAuC;QACvC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,IAAuB,CAAC;QACjC,CAAC;QAED,oBAAoB;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;SAOK;IACL,KAAK,CAAC,OAAO,CACX,iBAAyB,EACzB,SAAiB,EACjB,WAA6B,EAC7B,gBAAyB;QAEzB,IAAI,IAAwB,CAAC;QAC7B,IAAI,KAAc,CAAC;QAEnB,iEAAiE;QACjE,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,KAAK,KAAK,KAAK,EAAE,CAAC;YACtD,MAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,oCAAoC;QACpC,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACnC,qDAAqD;YACrD,IAAI,GAAG,WAAqB,CAAC;YAC7B,KAAK,GAAG,gBAAgB,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,0DAA0D;YAC1D,IAAI,GAAG,SAAS,CAAC;YACjB,KAAK,GAAG,WAAW,CAAC;QACtB,CAAC;QAED,2EAA2E;QAC3E,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACxF,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;IAChC,CAAC;IAED;;SAEK;IACL,aAAa,CAAC,OAAsB;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"daikin-device.js","sourceRoot":"","sources":["../../../src/api/daikin-device.ts"],"names":[],"mappings":"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"}
|