homebridge-plugin-klares4 2.0.0-beta.2 → 2.0.0-beta.4

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 (49) hide show
  1. package/README.md +2 -0
  2. package/config.schema.json +87 -0
  3. package/dist/platform/index.d.ts.map +1 -1
  4. package/dist/platform/index.js +1 -0
  5. package/dist/platform/index.js.map +1 -1
  6. package/dist/platform/types.d.ts +2 -1
  7. package/dist/platform/types.d.ts.map +1 -1
  8. package/dist/types/websocket.types.d.ts +10 -0
  9. package/dist/types/websocket.types.d.ts.map +1 -1
  10. package/dist/websocket-client/command-service.d.ts +3 -1
  11. package/dist/websocket-client/command-service.d.ts.map +1 -1
  12. package/dist/websocket-client/command-service.js +82 -35
  13. package/dist/websocket-client/command-service.js.map +1 -1
  14. package/dist/websocket-client/domus-thermostat-mapper.d.ts +22 -0
  15. package/dist/websocket-client/domus-thermostat-mapper.d.ts.map +1 -0
  16. package/dist/websocket-client/domus-thermostat-mapper.js +114 -0
  17. package/dist/websocket-client/domus-thermostat-mapper.js.map +1 -0
  18. package/dist/websocket-client/domus-thermostat-mapping-runtime.d.ts +4 -0
  19. package/dist/websocket-client/domus-thermostat-mapping-runtime.d.ts.map +1 -0
  20. package/dist/websocket-client/domus-thermostat-mapping-runtime.js +45 -0
  21. package/dist/websocket-client/domus-thermostat-mapping-runtime.js.map +1 -0
  22. package/dist/websocket-client/index.d.ts.map +1 -1
  23. package/dist/websocket-client/index.js +1 -1
  24. package/dist/websocket-client/index.js.map +1 -1
  25. package/dist/websocket-client/message-service.d.ts +1 -0
  26. package/dist/websocket-client/message-service.d.ts.map +1 -1
  27. package/dist/websocket-client/message-service.js +24 -0
  28. package/dist/websocket-client/message-service.js.map +1 -1
  29. package/dist/websocket-client/state.d.ts +2 -1
  30. package/dist/websocket-client/state.d.ts.map +1 -1
  31. package/dist/websocket-client/state.js +13 -1
  32. package/dist/websocket-client/state.js.map +1 -1
  33. package/dist/websocket-client/status-updater.d.ts.map +1 -1
  34. package/dist/websocket-client/status-updater.js +34 -9
  35. package/dist/websocket-client/status-updater.js.map +1 -1
  36. package/dist/websocket-client/system-temperature-updater.d.ts.map +1 -1
  37. package/dist/websocket-client/system-temperature-updater.js +18 -0
  38. package/dist/websocket-client/system-temperature-updater.js.map +1 -1
  39. package/dist/websocket-client/thermostat-command-payload.d.ts +11 -0
  40. package/dist/websocket-client/thermostat-command-payload.d.ts.map +1 -0
  41. package/dist/websocket-client/thermostat-command-payload.js +55 -0
  42. package/dist/websocket-client/thermostat-command-payload.js.map +1 -0
  43. package/dist/websocket-client/thermostat-write-payload.d.ts +5 -0
  44. package/dist/websocket-client/thermostat-write-payload.d.ts.map +1 -0
  45. package/dist/websocket-client/thermostat-write-payload.js +42 -0
  46. package/dist/websocket-client/thermostat-write-payload.js.map +1 -0
  47. package/dist/websocket-client/types.d.ts +14 -1
  48. package/dist/websocket-client/types.d.ts.map +1 -1
  49. package/package.json +1 -1
package/README.md CHANGED
@@ -107,6 +107,7 @@ The plugin can be fully configured via the Homebridge UI graphical interface. Re
107
107
  | `heartbeatInterval` | number | 30000 | Heartbeat interval (ms) |
108
108
  | `commandTimeoutMs` | number | 8000 | API command response timeout (ms) |
109
109
  | `allowInsecureTls` | boolean | false | Disable TLS certificate validation (trusted LAN only) |
110
+ | `domusThermostat` | object | enabled/freshness defaults | DOMUS thermostat mapping, manual overrides, freshness fallback |
110
111
  | `debug` | boolean | false | Detailed logging |
111
112
  | `excludeZones` | string[] | [] | Zones to exclude |
112
113
  | `excludeOutputs` | string[] | [] | Outputs to exclude |
@@ -397,6 +398,7 @@ Il plugin puo essere configurato completamente tramite l'interfaccia grafica di
397
398
  | `maxSeconds` | number | 30 | Tempo max tapparelle (secondi) |
398
399
  | `reconnectInterval` | number | 5000 | Intervallo riconnessione (ms) |
399
400
  | `heartbeatInterval` | number | 30000 | Intervallo heartbeat (ms) |
401
+ | `domusThermostat` | object | default attivi | Mapping termostati DOMUS, override manuali e fallback freshness |
400
402
  | `debug` | boolean | false | Logging dettagliato |
401
403
  | `excludeZones` | string[] | [] | Zone da escludere |
402
404
  | `excludeOutputs` | string[] | [] | Output da escludere |
@@ -251,6 +251,55 @@
251
251
  }
252
252
  }
253
253
  },
254
+ "domusThermostat": {
255
+ "type": "object",
256
+ "default": {
257
+ "enabled": true,
258
+ "sensorFreshnessMs": 300000,
259
+ "manualPairs": []
260
+ },
261
+ "properties": {
262
+ "enabled": {
263
+ "title": "Abilita Mapping DOMUS Termostati",
264
+ "type": "boolean",
265
+ "default": true,
266
+ "description": "Usa i sensori DOMUS per la temperatura corrente dei termostati"
267
+ },
268
+ "sensorFreshnessMs": {
269
+ "title": "Freshness Sensore DOMUS (ms)",
270
+ "type": "integer",
271
+ "default": 300000,
272
+ "minimum": 30000,
273
+ "maximum": 3600000,
274
+ "description": "Dopo questo tempo senza update DOMUS, fallback su STATUS_SYSTEM.TEMP.IN"
275
+ },
276
+ "manualPairs": {
277
+ "title": "Override Manuale Mapping",
278
+ "type": "array",
279
+ "items": {
280
+ "type": "object",
281
+ "properties": {
282
+ "thermostatOutputId": {
283
+ "title": "Thermostat Output ID",
284
+ "type": "string",
285
+ "pattern": "^(thermostat_)?[0-9]+$",
286
+ "placeholder": "18 o thermostat_18"
287
+ },
288
+ "domusSensorId": {
289
+ "title": "DOMUS Sensor ID",
290
+ "type": "string",
291
+ "pattern": "^((sensor_(temp|hum|light)_)?[0-9]+)$",
292
+ "placeholder": "1 o sensor_temp_1"
293
+ }
294
+ },
295
+ "required": [
296
+ "thermostatOutputId",
297
+ "domusSensorId"
298
+ ]
299
+ }
300
+ }
301
+ }
302
+ },
254
303
  "mqtt": {
255
304
  "type": "object",
256
305
  "properties": {
@@ -502,6 +551,44 @@
502
551
  "flex": "1 1 100px"
503
552
  }
504
553
  ]
554
+ },
555
+ {
556
+ "key": "domusThermostat.enabled",
557
+ "title": "Mapping DOMUS Attivo"
558
+ },
559
+ {
560
+ "key": "domusThermostat.sensorFreshnessMs",
561
+ "title": "Freshness DOMUS (ms)",
562
+ "condition": {
563
+ "functionBody": "return !model.domusThermostat || model.domusThermostat.enabled !== false;"
564
+ }
565
+ },
566
+ {
567
+ "key": "domusThermostat.manualPairs",
568
+ "type": "array",
569
+ "title": "Override Manuale",
570
+ "orderable": true,
571
+ "buttonText": "+ Aggiungi Pair",
572
+ "condition": {
573
+ "functionBody": "return !model.domusThermostat || model.domusThermostat.enabled !== false;"
574
+ },
575
+ "items": [
576
+ {
577
+ "type": "fieldset",
578
+ "items": [
579
+ {
580
+ "key": "domusThermostat.manualPairs[].thermostatOutputId",
581
+ "title": "Thermostat Output ID",
582
+ "placeholder": "18 o thermostat_18"
583
+ },
584
+ {
585
+ "key": "domusThermostat.manualPairs[].domusSensorId",
586
+ "title": "DOMUS Sensor ID",
587
+ "placeholder": "1 o sensor_temp_1"
588
+ }
589
+ ]
590
+ }
591
+ ]
505
592
  }
506
593
  ]
507
594
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/platform/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,GAAG,EACH,cAAc,EACd,qBAAqB,EACrB,MAAM,EACN,iBAAiB,EACjB,OAAO,EACV,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAQ5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE9D,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3F,qBAAa,cAAe,YAAW,qBAAqB;aAmBpC,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,YAAY;aACpB,GAAG,EAAE,GAAG;IApB5B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAC;IACxC,SAAgB,cAAc,EAAE,OAAO,cAAc,CAAC;IACtD,SAAgB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAa;IACxE,SAAgB,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAa;IAEtE,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,UAAU,CAAC,EAAE,UAAU,CAAC;IAE/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwC;IAC1E,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA0B;IAChE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA2B;IAC5D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4B;gBAG1C,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,GAAG;YA0Dd,gBAAgB;IAmE9B,OAAO,CAAC,yBAAyB;IAKjC,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,wBAAwB;IAMzB,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAItD,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAIxC,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAI3C,eAAe,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;CAG7D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/platform/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,GAAG,EACH,cAAc,EACd,qBAAqB,EACrB,MAAM,EACN,iBAAiB,EACjB,OAAO,EACV,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAQ5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE9D,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3F,qBAAa,cAAe,YAAW,qBAAqB;aAmBpC,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,YAAY;aACpB,GAAG,EAAE,GAAG;IApB5B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAC;IACxC,SAAgB,cAAc,EAAE,OAAO,cAAc,CAAC;IACtD,SAAgB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAa;IACxE,SAAgB,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAa;IAEtE,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,UAAU,CAAC,EAAE,UAAU,CAAC;IAE/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwC;IAC1E,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA0B;IAChE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA2B;IAC5D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4B;gBAG1C,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,GAAG;YA0Dd,gBAAgB;IAoE9B,OAAO,CAAC,yBAAyB;IAKjC,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,wBAAwB;IAMzB,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAItD,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAIxC,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAI3C,eAAe,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;CAG7D"}
@@ -85,6 +85,7 @@ class Lares4Platform {
85
85
  heartbeatInterval: this.config.heartbeatInterval ?? 30000,
86
86
  commandTimeoutMs: this.config.commandTimeoutMs ?? 8000,
87
87
  allowInsecureTls: this.config.allowInsecureTls ?? false,
88
+ domusThermostat: this.config.domusThermostat,
88
89
  });
89
90
  if (this.config.allowInsecureTls) {
90
91
  this.log.warn('TLS certificate verification is disabled (allowInsecureTls=true). Use only on trusted local networks.');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/platform/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/platform/index.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import type { ScenarioAccessory } from '../accessories/scenario-accessory';
6
6
  import type { SensorAccessory } from '../accessories/sensor-accessory';
7
7
  import type { ThermostatAccessory } from '../accessories/thermostat-accessory';
8
8
  import type { ZoneAccessory } from '../accessories/zone-accessory';
9
- import type { MqttConfig, RoomMappingConfig } from '../types';
9
+ import type { DomusThermostatConfig, MqttConfig, RoomMappingConfig } from '../types';
10
10
  export type AccessoryHandler = LightAccessory | CoverAccessory | GateAccessory | SensorAccessory | ZoneAccessory | ThermostatAccessory | ScenarioAccessory;
11
11
  export interface Lares4Config extends PlatformConfig {
12
12
  ip?: string;
@@ -42,6 +42,7 @@ export interface Lares4Config extends PlatformConfig {
42
42
  devicesSummaryDelay?: number;
43
43
  mqtt?: MqttConfig;
44
44
  roomMapping?: RoomMappingConfig;
45
+ domusThermostat?: DomusThermostatConfig;
45
46
  generateDebugFile?: boolean;
46
47
  }
47
48
  export interface DeviceListItem {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/platform/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/platform/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAErF,MAAM,MAAM,gBAAgB,GACtB,cAAc,GACd,cAAc,GACd,aAAa,GACb,eAAe,GACf,aAAa,GACb,mBAAmB,GACnB,iBAAiB,CAAC;AAExB,MAAM,WAAW,YAAa,SAAQ,cAAc;IAChD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE;QACV,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACtC,CAAC;IACF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;CACvB"}
@@ -71,6 +71,15 @@ export interface KseniaOutputCommand {
71
71
  ID: string;
72
72
  STA: string;
73
73
  }
74
+ export interface DomusThermostatManualPair {
75
+ thermostatOutputId: string;
76
+ domusSensorId: string;
77
+ }
78
+ export interface DomusThermostatConfig {
79
+ enabled?: boolean;
80
+ manualPairs?: DomusThermostatManualPair[];
81
+ sensorFreshnessMs?: number;
82
+ }
74
83
  export interface KseniaMessagePayload {
75
84
  PIN?: string;
76
85
  ID_LOGIN?: string;
@@ -107,5 +116,6 @@ export interface KseniaWebSocketOptions {
107
116
  commandTimeoutMs?: number;
108
117
  allowInsecureTls?: boolean;
109
118
  loginTimeoutMs?: number;
119
+ domusThermostat?: DomusThermostatConfig;
110
120
  }
111
121
  //# sourceMappingURL=websocket.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.types.d.ts","sourceRoot":"","sources":["../../src/types/websocket.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket.types.d.ts","sourceRoot":"","sources":["../../src/types/websocket.types.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,8 @@ interface CommandServiceDeps {
19
19
  export declare class CommandService {
20
20
  private readonly deps;
21
21
  constructor(deps: CommandServiceDeps);
22
+ private readonly thermostatWriteSeasonById;
23
+ private static readonly THERMOSTAT_ACK_TIMEOUT_MS;
22
24
  sendLoginCommand(): Promise<void>;
23
25
  requestSystemData(): Promise<void>;
24
26
  switchLight(lightId: string, on: boolean): Promise<void>;
@@ -27,10 +29,10 @@ export declare class CommandService {
27
29
  toggleGate(gateId: string): Promise<void>;
28
30
  setThermostatMode(thermostatId: string, mode: ThermostatMode): Promise<void>;
29
31
  setThermostatTemperature(thermostatId: string, temperature: number): Promise<void>;
32
+ private primeThermostatConfigCache;
30
33
  triggerScenario(scenarioId: string): Promise<void>;
31
34
  private sendKseniaCommand;
32
35
  private buildPayload;
33
- private sendMessage;
34
36
  private sendRawMessage;
35
37
  }
36
38
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"command-service.d.ts","sourceRoot":"","sources":["../../src/websocket-client/command-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAqB,MAAM,eAAe,CAAC;AAE5D,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAGR,sBAAsB,EACzB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAER,mBAAmB,EAEnB,oBAAoB,EACvB,MAAM,SAAS,CAAC;AAEjB,UAAU,kBAAkB;IACxB,KAAK,EAAE,oBAAoB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,sBAAsB,CAAC;IAChC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,CAAC,SAAS,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;CAChF;AACD,qBAAa,cAAc;IACX,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,kBAAkB;IACxC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBjC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiClC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAexD,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB5D,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB3D,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAezC,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAc5E,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAclF,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAcjD,iBAAiB;IA+C/B,OAAO,CAAC,YAAY;YAON,WAAW;YAKX,cAAc;CAI/B"}
1
+ {"version":3,"file":"command-service.d.ts","sourceRoot":"","sources":["../../src/websocket-client/command-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAqB,MAAM,eAAe,CAAC;AAE5D,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,OAAO,KAAK,EAAuC,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAC5F,OAAO,KAAK,EAAwB,mBAAmB,EAAsB,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEnH,UAAU,kBAAkB;IACxB,KAAK,EAAE,oBAAoB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,sBAAsB,CAAC;IAChC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,CAAC,SAAS,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;CAChF;AACD,qBAAa,cAAc;IACX,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,kBAAkB;IACrD,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAyC;IACnF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAQ;IAC5C,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBjC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IA2BlC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAexD,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB5D,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB3D,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAezC,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC5E,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAkCjF,0BAA0B;IAsB3B,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAcjD,iBAAiB;IA0C/B,OAAO,CAAC,YAAY;YAON,cAAc;CAI/B"}
@@ -9,10 +9,13 @@ const log_levels_1 = require("../log-levels");
9
9
  const device_id_1 = require("../device-id");
10
10
  const thermostat_mode_1 = require("../thermostat-mode");
11
11
  const device_state_projector_1 = require("../websocket/device-state-projector");
12
+ const thermostat_write_payload_1 = require("./thermostat-write-payload");
13
+ const thermostat_command_payload_1 = require("./thermostat-command-payload");
12
14
  const crc16_1 = require("./crc16");
13
15
  class CommandService {
14
16
  constructor(deps) {
15
17
  this.deps = deps;
18
+ this.thermostatWriteSeasonById = new Map();
16
19
  }
17
20
  async sendLoginCommand() {
18
21
  const loginMessage = {
@@ -29,7 +32,9 @@ class CommandService {
29
32
  };
30
33
  loginMessage.CRC_16 = (0, crc16_1.calculateCRC16)(JSON.stringify(loginMessage));
31
34
  this.deps.log.info('Executing login...');
32
- await this.sendMessage(loginMessage);
35
+ const messageStr = JSON.stringify(loginMessage);
36
+ this.deps.log.info(`Sending: ${(0, log_levels_1.maskSensitiveData)(messageStr)}`);
37
+ await this.sendRawMessage(messageStr);
33
38
  }
34
39
  async requestSystemData() {
35
40
  if (!this.deps.state.idLogin) {
@@ -55,13 +60,7 @@ class CommandService {
55
60
  });
56
61
  await this.sendKseniaCommand('REALTIME', 'REGISTER', {
57
62
  ID_LOGIN: this.deps.state.idLogin,
58
- TYPES: [
59
- 'STATUS_ZONES',
60
- 'STATUS_OUTPUTS',
61
- 'STATUS_BUS_HA_SENSORS',
62
- 'STATUS_SYSTEM',
63
- 'SCENARIOS',
64
- ],
63
+ TYPES: ['STATUS_ZONES', 'STATUS_OUTPUTS', 'STATUS_BUS_HA_SENSORS', 'STATUS_SYSTEM', 'SCENARIOS'],
65
64
  });
66
65
  }
67
66
  async switchLight(lightId, on) {
@@ -134,32 +133,89 @@ class CommandService {
134
133
  async setThermostatMode(thermostatId, mode) {
135
134
  if (!this.deps.state.idLogin)
136
135
  throw new Error('Not connected');
137
- const modeValue = (0, thermostat_mode_1.domainModeToKsenia)(mode);
136
+ const systemThermostatId = (0, device_id_1.stripDevicePrefix)(thermostatId);
137
+ (0, thermostat_write_payload_1.updateThermostatSeasonHint)(this.thermostatWriteSeasonById, systemThermostatId, mode);
138
138
  await this.deps.commandDispatcher.enqueueDeviceCommand(thermostatId, async () => {
139
- await this.sendKseniaCommand('WRITE', 'THERMOSTAT', {
140
- ID_LOGIN: this.deps.state.idLogin,
141
- ID_THERMOSTAT: (0, device_id_1.stripDevicePrefix)(thermostatId),
142
- MODE: modeValue,
143
- }, {
144
- awaitResponse: true,
145
- responseCmds: ['WRITE_RES'],
146
- });
139
+ try {
140
+ const cfgEntry = (0, thermostat_command_payload_1.buildThermostatModeCommandPayload)(systemThermostatId, mode, this.deps.state.thermostatCfgById.get(systemThermostatId));
141
+ await this.sendKseniaCommand('WRITE_CFG', 'CFG_ALL', {
142
+ ID_LOGIN: 'true',
143
+ CFG_THERMOSTATS: [cfgEntry],
144
+ }, {
145
+ awaitResponse: true,
146
+ responseCmds: ['WRITE_CFG_RES'],
147
+ timeoutMs: CommandService.THERMOSTAT_ACK_TIMEOUT_MS,
148
+ });
149
+ this.deps.state.thermostatCfgById.set(systemThermostatId, cfgEntry);
150
+ }
151
+ catch (error) {
152
+ await this.sendKseniaCommand('WRITE', 'THERMOSTAT', {
153
+ ID_LOGIN: this.deps.state.idLogin,
154
+ ID_THERMOSTAT: systemThermostatId,
155
+ MODE: (0, thermostat_mode_1.domainModeToKsenia)(mode),
156
+ }, {
157
+ awaitResponse: false,
158
+ });
159
+ this.deps.log.warn(`Thermostat mode fallback to legacy WRITE/THERMOSTAT for ${systemThermostatId}: ${error instanceof Error ? error.message : String(error)}`);
160
+ }
147
161
  });
148
162
  }
149
163
  async setThermostatTemperature(thermostatId, temperature) {
150
164
  if (!this.deps.state.idLogin)
151
165
  throw new Error('Not connected');
152
166
  const safeTemperature = (0, device_state_projector_1.clampValue)(temperature, 5, 40);
167
+ const systemThermostatId = (0, device_id_1.stripDevicePrefix)(thermostatId);
153
168
  await this.deps.commandDispatcher.enqueueDeviceCommand(thermostatId, async () => {
154
- await this.sendKseniaCommand('WRITE', 'THERMOSTAT', {
155
- ID_LOGIN: this.deps.state.idLogin,
156
- ID_THERMOSTAT: (0, device_id_1.stripDevicePrefix)(thermostatId),
157
- TARGET_TEMP: safeTemperature.toString(),
169
+ try {
170
+ await this.primeThermostatConfigCache(systemThermostatId);
171
+ const cfgEntry = (0, thermostat_command_payload_1.buildThermostatSetpointCommandPayload)({
172
+ systemThermostatId,
173
+ temperature: safeTemperature,
174
+ seasonById: this.thermostatWriteSeasonById,
175
+ existingCfg: this.deps.state.thermostatCfgById.get(systemThermostatId),
176
+ });
177
+ await this.sendKseniaCommand('WRITE_CFG', 'CFG_ALL', {
178
+ ID_LOGIN: 'true',
179
+ CFG_THERMOSTATS: [cfgEntry],
180
+ }, {
181
+ awaitResponse: true,
182
+ responseCmds: ['WRITE_CFG_RES'],
183
+ timeoutMs: CommandService.THERMOSTAT_ACK_TIMEOUT_MS,
184
+ });
185
+ this.deps.state.thermostatCfgById.set(systemThermostatId, cfgEntry);
186
+ }
187
+ catch (error) {
188
+ await this.sendKseniaCommand('WRITE', 'THERMOSTAT', {
189
+ ID_LOGIN: this.deps.state.idLogin,
190
+ ID_THERMOSTAT: systemThermostatId,
191
+ TARGET_TEMP: safeTemperature.toString(),
192
+ }, {
193
+ awaitResponse: false,
194
+ });
195
+ this.deps.log.warn(`Thermostat temperature fallback to legacy WRITE/THERMOSTAT for ${systemThermostatId}: ${error instanceof Error ? error.message : String(error)}`);
196
+ }
197
+ });
198
+ }
199
+ async primeThermostatConfigCache(systemThermostatId) {
200
+ if (this.deps.state.thermostatCfgById.has(systemThermostatId)) {
201
+ return;
202
+ }
203
+ try {
204
+ await this.sendKseniaCommand('READ', 'CFG_THERMOSTATS', {
205
+ ID_LOGIN: 'true',
206
+ ID_READ: systemThermostatId,
207
+ ID_ITEMS_RANGE: [systemThermostatId, systemThermostatId],
158
208
  }, {
159
209
  awaitResponse: true,
160
- responseCmds: ['WRITE_RES'],
210
+ responseCmds: ['READ_RES'],
211
+ timeoutMs: CommandService.THERMOSTAT_ACK_TIMEOUT_MS,
161
212
  });
162
- });
213
+ }
214
+ catch (error) {
215
+ if (this.deps.logLevel >= log_levels_1.LogLevel.DEBUG) {
216
+ this.deps.log.debug(`Unable to read CFG_THERMOSTATS for thermostat ${systemThermostatId}: ${error instanceof Error ? error.message : String(error)}`);
217
+ }
218
+ }
163
219
  }
164
220
  async triggerScenario(scenarioId) {
165
221
  if (!this.deps.state.idLogin)
@@ -184,13 +240,8 @@ class CommandService {
184
240
  const id = Math.floor(Math.random() * 100000).toString();
185
241
  const message = {
186
242
  SENDER: this.deps.sender,
187
- RECEIVER: '',
188
- CMD: cmd,
189
- ID: id,
190
- PAYLOAD_TYPE: payloadType,
191
- PAYLOAD: processedPayload,
192
- TIMESTAMP: Math.floor(Date.now() / 1000).toString(),
193
- CRC_16: '0x0000',
243
+ RECEIVER: '', CMD: cmd, ID: id, PAYLOAD_TYPE: payloadType,
244
+ PAYLOAD: processedPayload, TIMESTAMP: Math.floor(Date.now() / 1000).toString(), CRC_16: '0x0000',
194
245
  };
195
246
  message.CRC_16 = (0, crc16_1.calculateCRC16)(JSON.stringify(message));
196
247
  const jsonMessage = JSON.stringify(message);
@@ -223,15 +274,11 @@ class CommandService {
223
274
  ...(payload?.PIN === 'true' && { PIN: this.deps.pin }),
224
275
  };
225
276
  }
226
- async sendMessage(message) {
227
- const messageStr = JSON.stringify(message);
228
- this.deps.log.info(`Sending: ${(0, log_levels_1.maskSensitiveData)(messageStr)}`);
229
- await this.sendRawMessage(messageStr);
230
- }
231
277
  async sendRawMessage(rawMessage) {
232
278
  this.deps.emitRawMessage('out', rawMessage);
233
279
  await this.deps.wsTransport.send(this.deps.state.ws, rawMessage);
234
280
  }
235
281
  }
236
282
  exports.CommandService = CommandService;
283
+ CommandService.THERMOSTAT_ACK_TIMEOUT_MS = 1200;
237
284
  //# sourceMappingURL=command-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"command-service.js","sourceRoot":"","sources":["../../src/websocket-client/command-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command-service.js","sourceRoot":"","sources":["../../src/websocket-client/command-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { DomusThermostatManualPair } from '../types';
2
+ export type DomusMappingSource = 'manual' | 'auto' | 'fallback';
3
+ export interface BuildDomusMappingInput {
4
+ thermostatOutputs: Map<string, {
5
+ id: string;
6
+ name: string;
7
+ }>;
8
+ domusSensors: Map<string, {
9
+ id: string;
10
+ name: string;
11
+ }>;
12
+ manualPairs: DomusThermostatManualPair[];
13
+ scoreThreshold?: number;
14
+ }
15
+ export interface BuildDomusMappingResult {
16
+ mapping: Map<string, string>;
17
+ sources: Map<string, DomusMappingSource>;
18
+ unmatched: string[];
19
+ }
20
+ export declare function buildDomusThermostatMapping(input: BuildDomusMappingInput): BuildDomusMappingResult;
21
+ export declare function normalizeDomusIdsForConfig(pairs: DomusThermostatManualPair[]): DomusThermostatManualPair[];
22
+ //# sourceMappingURL=domus-thermostat-mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domus-thermostat-mapper.d.ts","sourceRoot":"","sources":["../../src/websocket-client/domus-thermostat-mapper.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAE1D,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAEhE,MAAM,WAAW,sBAAsB;IACnC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7D,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxD,WAAW,EAAE,yBAAyB,EAAE,CAAC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACpC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACzC,SAAS,EAAE,MAAM,EAAE,CAAC;CACvB;AA0DD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,sBAAsB,GAAG,uBAAuB,CA6DlG;AAED,wBAAgB,0BAA0B,CACtC,KAAK,EAAE,yBAAyB,EAAE,GACnC,yBAAyB,EAAE,CAK7B"}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildDomusThermostatMapping = buildDomusThermostatMapping;
4
+ exports.normalizeDomusIdsForConfig = normalizeDomusIdsForConfig;
5
+ const device_id_1 = require("../device-id");
6
+ const STOP_WORDS = new Set([
7
+ 'riscaldamento',
8
+ 'raffrescamento',
9
+ 'term',
10
+ 'termostato',
11
+ 'termo',
12
+ 'clima',
13
+ 'temp',
14
+ 'temperatura',
15
+ ]);
16
+ function normalizeThermostatOutputId(id) {
17
+ return (0, device_id_1.stripDevicePrefix)(String(id)).trim();
18
+ }
19
+ function normalizeDomusSensorId(id) {
20
+ const raw = (0, device_id_1.stripDevicePrefix)(String(id)).trim();
21
+ const parts = raw.split('_');
22
+ const last = parts[parts.length - 1];
23
+ return /^[0-9]+$/.test(last) ? last : raw;
24
+ }
25
+ function normalizeName(value) {
26
+ return value
27
+ .toLowerCase()
28
+ .normalize('NFD')
29
+ .replace(/[\u0300-\u036f]/g, '')
30
+ .replace(/[^a-z0-9\s]/g, ' ')
31
+ .replace(/\s+/g, ' ')
32
+ .trim();
33
+ }
34
+ function tokenizeName(value) {
35
+ return normalizeName(value)
36
+ .split(' ')
37
+ .map((token) => token.trim())
38
+ .filter((token) => token.length > 0 && !STOP_WORDS.has(token));
39
+ }
40
+ function calculateTokenOverlapScore(left, right) {
41
+ if (left.length === 0 || right.length === 0) {
42
+ return 0;
43
+ }
44
+ const leftSet = new Set(left);
45
+ const rightSet = new Set(right);
46
+ let intersection = 0;
47
+ for (const token of leftSet) {
48
+ if (rightSet.has(token)) {
49
+ intersection += 1;
50
+ }
51
+ }
52
+ return intersection / Math.max(leftSet.size, rightSet.size);
53
+ }
54
+ function buildDomusThermostatMapping(input) {
55
+ const threshold = input.scoreThreshold ?? 0.45;
56
+ const mapping = new Map();
57
+ const sources = new Map();
58
+ const thermostatEntries = [...input.thermostatOutputs.values()];
59
+ const domusEntries = [...input.domusSensors.values()];
60
+ // Manual mappings always win and are validated against discovered entities.
61
+ for (const pair of input.manualPairs) {
62
+ const thermostatId = normalizeThermostatOutputId(pair.thermostatOutputId);
63
+ const domusId = normalizeDomusSensorId(pair.domusSensorId);
64
+ if (!input.thermostatOutputs.has(thermostatId) || !input.domusSensors.has(domusId)) {
65
+ continue;
66
+ }
67
+ mapping.set(thermostatId, domusId);
68
+ sources.set(thermostatId, 'manual');
69
+ }
70
+ for (const thermostat of thermostatEntries) {
71
+ const thermostatId = normalizeThermostatOutputId(thermostat.id);
72
+ if (mapping.has(thermostatId)) {
73
+ continue;
74
+ }
75
+ const thermostatTokens = tokenizeName(thermostat.name);
76
+ let bestSensorId;
77
+ let bestScore = -1;
78
+ let bestCount = 0;
79
+ for (const sensor of domusEntries) {
80
+ const sensorTokens = tokenizeName(sensor.name);
81
+ const score = calculateTokenOverlapScore(thermostatTokens, sensorTokens);
82
+ if (score > bestScore) {
83
+ bestScore = score;
84
+ bestSensorId = sensor.id;
85
+ bestCount = 1;
86
+ }
87
+ else if (score === bestScore && score > 0) {
88
+ bestCount += 1;
89
+ }
90
+ }
91
+ if (bestSensorId && bestScore >= threshold && bestCount === 1) {
92
+ mapping.set(thermostatId, bestSensorId);
93
+ sources.set(thermostatId, 'auto');
94
+ }
95
+ }
96
+ const unmatched = thermostatEntries
97
+ .map((entry) => normalizeThermostatOutputId(entry.id))
98
+ .filter((id) => !mapping.has(id));
99
+ for (const id of unmatched) {
100
+ sources.set(id, 'fallback');
101
+ }
102
+ return {
103
+ mapping,
104
+ sources,
105
+ unmatched,
106
+ };
107
+ }
108
+ function normalizeDomusIdsForConfig(pairs) {
109
+ return pairs.map((pair) => ({
110
+ thermostatOutputId: normalizeThermostatOutputId(pair.thermostatOutputId),
111
+ domusSensorId: normalizeDomusSensorId(pair.domusSensorId),
112
+ }));
113
+ }
114
+ //# sourceMappingURL=domus-thermostat-mapper.js.map