homebridge-easy-mqtt 1.4.0-beta.13 → 1.4.0-beta.15

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 CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  All notable changes to homebridge-dummy will be documented in this file.
4
4
 
5
- ## 1.4.0-beta.13 (2025-09-24)
5
+ ## 1.4.0-beta.15 (2025-09-25)
6
6
 
7
7
  ### Added
8
- - Support for Air Purifier, GarageDoorOpener, HeaterCooler, LightSensor, and Valve
9
- - FilterMaintenance to climate control accessories
8
+ - Support for Air Purifier, Fan (v2) GarageDoorOpener, HeaterCooler, LightSensor, and Valve
9
+ - MQTT options JSON can now also include publish options, such as `retain`
10
10
  - Broker, username, and password can be set via environment variables ([documentation](https://github.com/mpatfield/homebridge-easy-mqtt#environment-variables))
11
11
  - Publish arbitrary MQTT messages on connect ([documentation] (https://github.com/mpatfield/homebridge-easy-mqtt#mqtt-onconnect))
12
12
  - Traduceri în limba română. Mulțumesc, [@rursache](https://github.com/sponsors/rursache)!
package/README.md CHANGED
@@ -29,6 +29,7 @@ This plugin is designed to be a simple replacement for the fantastic [homebridge
29
29
  - `CarbonDioxideSensor`
30
30
  - `CarbonMonoxideSensor`
31
31
  - `ContactSensor`
32
+ - `Fanv2`
32
33
  - `GarageDoorOpener`
33
34
  - `HeaterCooler`
34
35
  - `HumiditySensor`
@@ -311,6 +312,34 @@ These values are used for both determining current state and, where appropriate,
311
312
  - `valueSwingDisabled` - Accessory is not oscillating
312
313
  - `valueFilterChange` - Indicates that the filter needs to be changed. *Required if `topicGetFilterChangeIndication` is defined.
313
314
 
315
+ #### Fanv2
316
+ - `topicGetActive*` - Get whether or not the accessory is currently active
317
+ - `topicSetActive*` - Set whether or not the accessory is currently active
318
+ - `topicGetCurrentFanState` - Get current fan mode (blowing, idle, inactive)
319
+ - `topicGetTargetFanState` - Get target fan mode (auto, manual)
320
+ - `topicSetTargetFanState` - Set target fan mode (auto, manual)
321
+ - `topicGetLockPhysicalControls` - Get whether or not the physical controls are locked
322
+ - `topicSetLockPhysicalControls` - Set whether or not the physical controls are locked
323
+ - `topicGetRotationDirection` - Get the fan rotation direction (clockwise, counter clockwise)
324
+ - `topicSetRotationDirection` - Set the fan rotation direction (clockwise, counter clockwise)
325
+ - `topicGetRotationSpeed` - Get the rotation speed as a percentage
326
+ - `topicSetRotationSpeed` - Set the rotation speed as a percentage
327
+ - `topicGetSwingMode` - Get whether or not accessory is oscillating
328
+ - `topicSetSwingMode` - Set whether or not accessory is oscillating
329
+ - `valueStateActive*` - Accessory is currently active
330
+ - `valueStateInactive*` - Accessory is currently inactive
331
+ - `valueModeBlowing` - Air blowing mode
332
+ - `valueModeIdle` - Idle mode
333
+ - `valueModeInactive` - Inactive mode
334
+ - `valueModeAuto` - Auto target mode
335
+ - `valueModeManual` - Manual target mode
336
+ - `valueDirectionClockwise` - Rotating clockwise
337
+ - `valueDirectionCounterClockwise` - Rotating counter clockwise
338
+ - `valueControlLock` - Physical controls are locked
339
+ - `valueControlUnlock` - Physical controls are unlocked
340
+ - `valueSwingEnabled` - Accessory is oscillating
341
+ - `valueSwingDisabled` - Accessory is not oscillating
342
+
314
343
  #### HeaterCooler
315
344
  - `temperatureUnits` - The temperature units of the incoming value supplied by the thermostat, `C` for Celsius (default) `F` for Fahrenheit
316
345
  - `topicGetActive*` - Get whether or not the accessory is currently active
@@ -419,10 +448,10 @@ You may also turn on additional logging if you'd like to see the MQTT messages p
419
448
 
420
449
  ## MQTT Options
421
450
 
422
- You are able to pass in any arbitrary MQTT options via `mqtt.options` in the config. This can include, for example, such as clientId, protocolVersion, etc. Just make sure the value provided is valid JSON. For example:
451
+ You are able to pass in any arbitrary MQTT options via `mqtt.options` in the config. This can be a combination of [client options](https://github.com/mqttjs/MQTT.js?tab=readme-ov-file#mqttclientstreambuilder-options) and [publish options](https://github.com/mqttjs/MQTT.js?tab=readme-ov-file#mqttclientpublishtopic-message-options-callback). Just make sure the value provided is valid JSON. For example:
423
452
 
424
453
  ```
425
- "options": "{ \"protocolVersion\": \"4\", \"clientId\": \"my-client-id\", \"rejectUnauthorized\": true }"
454
+ "options": "{ \"protocolVersion\": \"4\", \"clientId\": \"my-client-id\", \"retain\": true }"
426
455
  ```
427
456
 
428
457
  ## MQTT OnConnect
@@ -21,8 +21,8 @@
21
21
  "type": {
22
22
  "type": "string",
23
23
  "title": "${config.title.type}",
24
- "enum": [ "AirPurifier", "CarbonMonoxideSensor", "CarbonDioxideSensor", "ContactSensor", "GarageDoorOpener", "HeaterCooler", "HumiditySensor", "LeakSensor", "Lightbulb", "LightSensor", "LockMechanism", "MotionSensor", "OccupancySensor", "Outlet", "SecuritySystem", "SmokeSensor", "Switch", "TemperatureSensor", "Thermostat", "Valve"],
25
- "enumNames": ["${config.enumNames.airPurifier}", "${config.enumNames.carbonMonoxideSensor}", "${config.enumNames.carbonDioxideSensor}", "${config.enumNames.contactSensor}", "${config.enumNames.garageDoorOpener}", "${config.enumNames.heaterCooler}", "${config.enumNames.humiditySensor}", "${config.enumNames.leakSensor}", "${config.enumNames.lightbulb}", "${config.enumNames.lightSensor}", "${config.enumNames.lockMechanism}", "${config.enumNames.motionSensor}", "${config.enumNames.occupancySensor}", "${config.enumNames.outlet}", "${config.enumNames.securitySystem}", "${config.enumNames.smokeSensor}", "${config.enumNames.switch}", "${config.enumNames.temperatureSensor}", "${config.enumNames.thermostat}", "${config.enumNames.valve}"],
24
+ "enum": [ "AirPurifier", "CarbonMonoxideSensor", "CarbonDioxideSensor", "ContactSensor", "Fanv2", "GarageDoorOpener", "HeaterCooler", "HumiditySensor", "LeakSensor", "Lightbulb", "LightSensor", "LockMechanism", "MotionSensor", "OccupancySensor", "Outlet", "SecuritySystem", "SmokeSensor", "Switch", "TemperatureSensor", "Thermostat", "Valve"],
25
+ "enumNames": ["${config.enumNames.airPurifier}", "${config.enumNames.carbonMonoxideSensor}", "${config.enumNames.carbonDioxideSensor}", "${config.enumNames.contactSensor}", "${config.enumNames.fan}", "${config.enumNames.garageDoorOpener}", "${config.enumNames.heaterCooler}", "${config.enumNames.humiditySensor}", "${config.enumNames.leakSensor}", "${config.enumNames.lightbulb}", "${config.enumNames.lightSensor}", "${config.enumNames.lockMechanism}", "${config.enumNames.motionSensor}", "${config.enumNames.occupancySensor}", "${config.enumNames.outlet}", "${config.enumNames.securitySystem}", "${config.enumNames.smokeSensor}", "${config.enumNames.switch}", "${config.enumNames.temperatureSensor}", "${config.enumNames.thermostat}", "${config.enumNames.valve}"],
26
26
  "required": true
27
27
  },
28
28
  "group": {
@@ -438,6 +438,26 @@
438
438
  "type": "string",
439
439
  "title": "${config.title.topicSetTargetDoorState}"
440
440
  },
441
+ "topicGetCurrentFanState": {
442
+ "type": "string",
443
+ "title": "${config.title.topicGetCurrentFanState}"
444
+ },
445
+ "topicGetRotationDirection": {
446
+ "type": "string",
447
+ "title": "${config.title.topicGetRotationDirection}"
448
+ },
449
+ "topicGetTargetFanState": {
450
+ "type": "string",
451
+ "title": "${config.title.topicGetTargetFanState}"
452
+ },
453
+ "topicSetRotationDirection": {
454
+ "type": "string",
455
+ "title": "${config.title.topicSetRotationDirection}"
456
+ },
457
+ "topicSetTargetFanState": {
458
+ "type": "string",
459
+ "title": "${config.title.topicSetTargetFanState}"
460
+ },
441
461
  "valueBatteryLow": {
442
462
  "type": "string",
443
463
  "title": "${config.title.valueBatteryLow}"
@@ -634,6 +654,18 @@
634
654
  "type": "string",
635
655
  "title": "${config.title.valueDoorStateStopped}"
636
656
  },
657
+ "valueDirectionClockwise": {
658
+ "type": "string",
659
+ "title": "${config.title.valueDirectionClockwise}"
660
+ },
661
+ "valueDirectionCounterClockwise": {
662
+ "type": "string",
663
+ "title": "${config.title.valueDirectionCounterClockwise}"
664
+ },
665
+ "valueModeBlowing": {
666
+ "type": "string",
667
+ "title": "${config.title.valueModeBlowing}"
668
+ },
637
669
  "resetOnRestart": {
638
670
  "type": "boolean",
639
671
  "title": "${config.title.resetOnRestart}"
@@ -860,6 +892,22 @@
860
892
  ]
861
893
  }
862
894
  },
895
+ {
896
+ "if": {
897
+ "properties": {
898
+ "info": {
899
+ "properties": {
900
+ "type" : {
901
+ "const": "Fanv2"
902
+ }
903
+ }
904
+ }
905
+ }
906
+ },
907
+ "then": {
908
+ "required": ["topicGetActive", "topicSetActive", "valueStateActive", "valueStateInactive"]
909
+ }
910
+ },
863
911
  {
864
912
  "if": {
865
913
  "properties": {
@@ -1217,6 +1265,79 @@
1217
1265
  "then": {
1218
1266
  "required": ["topicGetTargetLockState"]
1219
1267
  }
1268
+ },
1269
+ {
1270
+ "if": {
1271
+ "properties": {
1272
+ "topicGetCurrentFanState": {
1273
+ "minLength": 1
1274
+ }
1275
+ },
1276
+ "required": ["topicGetCurrentFanState"]
1277
+ },
1278
+ "then": {
1279
+ "anyOf": [
1280
+ { "required": ["valueModeInactive"] },
1281
+ { "required": ["valueModeIdle"] },
1282
+ { "required": ["valueModeBlowing"] }
1283
+ ]
1284
+ }
1285
+ },
1286
+ {
1287
+ "if": {
1288
+ "properties": {
1289
+ "topicGetTargetFanState": {
1290
+ "minLength": 1
1291
+ }
1292
+ },
1293
+ "required": ["topicGetTargetFanState"]
1294
+ },
1295
+ "then": {
1296
+ "required": ["topicSetTargetFanState"],
1297
+ "anyOf": [
1298
+ { "required": ["valueModeAuto"] },
1299
+ { "required": ["valueModeManual"] }
1300
+ ]
1301
+ }
1302
+ },
1303
+ {
1304
+ "if": {
1305
+ "properties": {
1306
+ "topicSetTargetFanState": {
1307
+ "minLength": 1
1308
+ }
1309
+ },
1310
+ "required": ["topicSetTargetFanState"]
1311
+ },
1312
+ "then": {
1313
+ "required": ["topicGetTargetFanState"]
1314
+ }
1315
+ },
1316
+ {
1317
+ "if": {
1318
+ "properties": {
1319
+ "topicGetRotationDirection": {
1320
+ "minLength": 1
1321
+ }
1322
+ },
1323
+ "required": ["topicGetRotationDirection"]
1324
+ },
1325
+ "then": {
1326
+ "required": ["topicSetRotationDirection", "valueDirectionClockwise", "valueDirectionCounterClockwise"]
1327
+ }
1328
+ },
1329
+ {
1330
+ "if": {
1331
+ "properties": {
1332
+ "topicSetRotationDirection": {
1333
+ "minLength": 1
1334
+ }
1335
+ },
1336
+ "required": ["topicSetRotationDirection"]
1337
+ },
1338
+ "then": {
1339
+ "required": ["topicGetRotationDirection"]
1340
+ }
1220
1341
  }
1221
1342
  ]
1222
1343
  },
@@ -1844,7 +1965,7 @@
1844
1965
  "type": "fieldset",
1845
1966
  "notitle": true,
1846
1967
  "condition": {
1847
- "functionBody": "return ['AirPurifier', 'HeaterCooler'].includes(model.accessories?.[arguments[1]]?.info?.type);"
1968
+ "functionBody": "return ['AirPurifier', 'Fanv2', 'HeaterCooler'].includes(model.accessories?.[arguments[1]]?.info?.type);"
1848
1969
  },
1849
1970
  "items": [
1850
1971
  {
@@ -1868,7 +1989,57 @@
1868
1989
  "type": "fieldset",
1869
1990
  "notitle": true,
1870
1991
  "condition": {
1871
- "functionBody": "return ['AirPurifier', 'HeaterCooler'].includes(model.accessories?.[arguments[1]]?.info?.type);"
1992
+ "functionBody": "return model.accessories?.[arguments[1]]?.info?.type === 'Fanv2';"
1993
+ },
1994
+ "items": [
1995
+ {
1996
+ "type": "div",
1997
+ "displayFlex": true,
1998
+ "flex-direction": "row",
1999
+ "items": [
2000
+ {
2001
+ "key": "accessories[].topicGetCurrentFanState",
2002
+ "flex": "0 0 50%"
2003
+ }
2004
+ ]
2005
+ },
2006
+ {
2007
+ "type": "div",
2008
+ "displayFlex": true,
2009
+ "flex-direction": "row",
2010
+ "items": [
2011
+ {
2012
+ "key": "accessories[].topicGetTargetFanState",
2013
+ "flex": "0 0 50%"
2014
+ },
2015
+ {
2016
+ "key": "accessories[].topicSetTargetFanState",
2017
+ "flex": "0 0 50%"
2018
+ }
2019
+ ]
2020
+ },
2021
+ {
2022
+ "type": "div",
2023
+ "displayFlex": true,
2024
+ "flex-direction": "row",
2025
+ "items": [
2026
+ {
2027
+ "key": "accessories[].topicGetRotationDirection",
2028
+ "flex": "0 0 50%"
2029
+ },
2030
+ {
2031
+ "key": "accessories[].topicSetRotationDirection",
2032
+ "flex": "0 0 50%"
2033
+ }
2034
+ ]
2035
+ }
2036
+ ]
2037
+ },
2038
+ {
2039
+ "type": "fieldset",
2040
+ "notitle": true,
2041
+ "condition": {
2042
+ "functionBody": "return ['AirPurifier', 'Fanv2', 'HeaterCooler'].includes(model.accessories?.[arguments[1]]?.info?.type);"
1872
2043
  },
1873
2044
  "items": [
1874
2045
  {
@@ -2155,7 +2326,7 @@
2155
2326
  "type": "fieldset",
2156
2327
  "notitle": true,
2157
2328
  "condition": {
2158
- "functionBody": "return ['AirPurifier', 'HeaterCooler', 'Thermostat'].includes(model.accessories?.[arguments[1]]?.info?.type);"
2329
+ "functionBody": "return ['AirPurifier', 'HeaterCooler'].includes(model.accessories?.[arguments[1]]?.info?.type);"
2159
2330
  },
2160
2331
  "items": [
2161
2332
  {
@@ -2244,7 +2415,7 @@
2244
2415
  "type": "fieldset",
2245
2416
  "notitle": true,
2246
2417
  "condition": {
2247
- "functionBody": "return ['AirPurifier', 'HeaterCooler'].includes(model.accessories?.[arguments[1]]?.info?.type);"
2418
+ "functionBody": "return ['AirPurifier', 'Fanv2, 'HeaterCooler'].includes(model.accessories?.[arguments[1]]?.info?.type);"
2248
2419
  },
2249
2420
  "items": [
2250
2421
  {
@@ -2264,6 +2435,57 @@
2264
2435
  }
2265
2436
  ]
2266
2437
  },
2438
+ {
2439
+ "type": "fieldset",
2440
+ "notitle": true,
2441
+ "condition": {
2442
+ "functionBody": "return model.accessories?.[arguments[1]]?.info?.type === 'Fanv2';"
2443
+ },
2444
+ "items": [
2445
+ {
2446
+ "type": "div",
2447
+ "displayFlex": true,
2448
+ "flex-direction": "row",
2449
+ "items": [
2450
+ {
2451
+ "key": "accessories[].valueModeAuto",
2452
+ "flex": "0 0 20%"
2453
+ },
2454
+ {
2455
+ "key": "accessories[].valueModeManual",
2456
+ "flex": "0 0 20%"
2457
+ },
2458
+ {
2459
+ "key": "accessories[].valueModeBlowing",
2460
+ "flex": "0 0 20%"
2461
+ },
2462
+ {
2463
+ "key": "accessories[].valueModeIdle",
2464
+ "flex": "0 0 20%"
2465
+ },
2466
+ {
2467
+ "key": "accessories[].valueModeInactive",
2468
+ "flex": "0 0 20%"
2469
+ }
2470
+ ]
2471
+ },
2472
+ {
2473
+ "type": "div",
2474
+ "displayFlex": true,
2475
+ "flex-direction": "row",
2476
+ "items": [
2477
+ {
2478
+ "key": "accessories[].valueDirectionClockwise",
2479
+ "flex": "0 0 20%"
2480
+ },
2481
+ {
2482
+ "key": "accessories[].valueDirectionCounterClockwise",
2483
+ "flex": "0 0 20%"
2484
+ }
2485
+ ]
2486
+ }
2487
+ ]
2488
+ },
2267
2489
  {
2268
2490
  "type": "fieldset",
2269
2491
  "notitle": true,
@@ -2340,7 +2562,7 @@
2340
2562
  "type": "fieldset",
2341
2563
  "notitle": true,
2342
2564
  "condition": {
2343
- "functionBody": "return ['AirPurifier', 'HeaterCooler'].includes(model.accessories?.[arguments[1]]?.info?.type);"
2565
+ "functionBody": "return ['AirPurifier', 'Fanv2, 'HeaterCooler'].includes(model.accessories?.[arguments[1]]?.info?.type);"
2344
2566
  },
2345
2567
  "items": [
2346
2568
  {
@@ -2372,7 +2594,7 @@
2372
2594
  "type": "fieldset",
2373
2595
  "notitle": true,
2374
2596
  "condition": {
2375
- "functionBody": "return ['AirPurifier', 'HeaterCooler', 'Thermostat'].includes(model.accessories?.[arguments[1]]?.info?.type);"
2597
+ "functionBody": "return ['AirPurifier', 'HeaterCooler'].includes(model.accessories?.[arguments[1]]?.info?.type);"
2376
2598
  },
2377
2599
  "items": [
2378
2600
  {
@@ -21,6 +21,7 @@ import { SmokeSensorAccessory } from '../sensor/smoke.js';
21
21
  import { TemperatureSensorAccessory } from '../sensor/temperature.js';
22
22
  import { ValveAccessory } from '../valve.js';
23
23
  import { PLUGIN_NAME } from '../../homebridge/settings.js';
24
+ import { FanAccessory } from '../climate/fan.js';
24
25
  export function createIdentifier(info) {
25
26
  return info.id ?? `${PLUGIN_NAME}:${info.type}:${info.name}`;
26
27
  }
@@ -34,6 +35,8 @@ export function createAccessory(Service, Characteristic, platformAccessory, acce
34
35
  return new COSensorAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped);
35
36
  case AccessoryType.ContactSensor:
36
37
  return new ContactSensorAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped);
38
+ case AccessoryType.Fanv2:
39
+ return new FanAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped);
37
40
  case AccessoryType.GarageDoorOpener:
38
41
  return new GarageDoorAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped);
39
42
  case AccessoryType.HeaterCooler:
@@ -1 +1 @@
1
- {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../../src/accessory/abstract/helper.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAI3D,MAAM,UAAU,gBAAgB,CAAC,IAAwB;IACvD,OAAO,IAAI,CAAC,EAAE,IAAI,GAAG,WAAW,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,OAA4B,EAC5B,cAA0C,EAC1C,iBAAoC,EACpC,eAA4C,EAC5C,GAAQ,EACR,YAAqB,KAAK;IAG1B,QAAO,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACnC,KAAK,aAAa,CAAC,WAAW;YAC5B,OAAO,IAAI,iBAAiB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAyC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACtI,KAAK,aAAa,CAAC,mBAAmB;YACpC,OAAO,IAAI,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAA0C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACxI,KAAK,aAAa,CAAC,oBAAoB;YACrC,OAAO,IAAI,iBAAiB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAyC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACtI,KAAK,aAAa,CAAC,aAAa;YAC9B,OAAO,IAAI,sBAAsB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAA8C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAChJ,KAAK,aAAa,CAAC,gBAAgB;YACjC,OAAO,IAAI,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAA2C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC1I,KAAK,aAAa,CAAC,YAAY;YAC7B,OAAO,IAAI,qBAAqB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAA6C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC9I,KAAK,aAAa,CAAC,cAAc;YAC/B,OAAO,IAAI,uBAAuB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAA+C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAClJ,KAAK,aAAa,CAAC,UAAU;YAC3B,OAAO,IAAI,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAA2C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC1I,KAAK,aAAa,CAAC,SAAS;YAC1B,OAAO,IAAI,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAA0C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACxI,KAAK,aAAa,CAAC,WAAW;YAC5B,OAAO,IAAI,oBAAoB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAA4C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5I,KAAK,aAAa,CAAC,aAAa;YAC9B,OAAO,IAAI,sBAAsB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAqC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACvI,KAAK,aAAa,CAAC,YAAY;YAC7B,OAAO,IAAI,qBAAqB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAA6C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC9I,KAAK,aAAa,CAAC,eAAe;YAChC,OAAO,IAAI,wBAAwB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAgD,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACpJ,KAAK,aAAa,CAAC,MAAM;YACvB,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAuC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAClI,KAAK,aAAa,CAAC,cAAc;YAC/B,OAAO,IAAI,uBAAuB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAyC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5I,KAAK,aAAa,CAAC,WAAW;YAC5B,OAAO,IAAI,oBAAoB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAA4C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5I,KAAK,aAAa,CAAC,MAAM;YACvB,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAuC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAClI,KAAK,aAAa,CAAC,iBAAiB;YAClC,OAAO,IAAI,0BAA0B,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAkD,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACxJ,KAAK,aAAa,CAAC,UAAU;YAC3B,OAAO,IAAI,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAA2C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC1I,KAAK,aAAa,CAAC,KAAK;YACtB,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAsC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IAChI,CAAC;IAED,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxE,CAAC"}
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../../src/accessory/abstract/helper.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAG3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,UAAU,gBAAgB,CAAC,IAAwB;IACvD,OAAO,IAAI,CAAC,EAAE,IAAI,GAAG,WAAW,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,OAA4B,EAC5B,cAA0C,EAC1C,iBAAoC,EACpC,eAA4C,EAC5C,GAAQ,EACR,YAAqB,KAAK;IAG1B,QAAO,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACnC,KAAK,aAAa,CAAC,WAAW;YAC5B,OAAO,IAAI,iBAAiB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAyC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACtI,KAAK,aAAa,CAAC,mBAAmB;YACpC,OAAO,IAAI,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAA0C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACxI,KAAK,aAAa,CAAC,oBAAoB;YACrC,OAAO,IAAI,iBAAiB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAyC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACtI,KAAK,aAAa,CAAC,aAAa;YAC9B,OAAO,IAAI,sBAAsB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAA8C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAChJ,KAAK,aAAa,CAAC,KAAK;YACtB,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAoC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5H,KAAK,aAAa,CAAC,gBAAgB;YACjC,OAAO,IAAI,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAA2C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC1I,KAAK,aAAa,CAAC,YAAY;YAC7B,OAAO,IAAI,qBAAqB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAA6C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC9I,KAAK,aAAa,CAAC,cAAc;YAC/B,OAAO,IAAI,uBAAuB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAA+C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAClJ,KAAK,aAAa,CAAC,UAAU;YAC3B,OAAO,IAAI,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAA2C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC1I,KAAK,aAAa,CAAC,SAAS;YAC1B,OAAO,IAAI,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAA0C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACxI,KAAK,aAAa,CAAC,WAAW;YAC5B,OAAO,IAAI,oBAAoB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAA4C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5I,KAAK,aAAa,CAAC,aAAa;YAC9B,OAAO,IAAI,sBAAsB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAqC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACvI,KAAK,aAAa,CAAC,YAAY;YAC7B,OAAO,IAAI,qBAAqB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAA6C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC9I,KAAK,aAAa,CAAC,eAAe;YAChC,OAAO,IAAI,wBAAwB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAgD,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACpJ,KAAK,aAAa,CAAC,MAAM;YACvB,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAuC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAClI,KAAK,aAAa,CAAC,cAAc;YAC/B,OAAO,IAAI,uBAAuB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAyC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5I,KAAK,aAAa,CAAC,WAAW;YAC5B,OAAO,IAAI,oBAAoB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAA4C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5I,KAAK,aAAa,CAAC,MAAM;YACvB,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAuC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAClI,KAAK,aAAa,CAAC,iBAAiB;YAClC,OAAO,IAAI,0BAA0B,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAkD,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACxJ,KAAK,aAAa,CAAC,UAAU;YAC3B,OAAO,IAAI,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAA2C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC1I,KAAK,aAAa,CAAC,KAAK;YACtB,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAsC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IAChI,CAAC;IAED,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxE,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { PlatformAccessory } from 'homebridge';
2
+ import { ActiveClimateAccessory } from './active.js';
3
+ import { AccessoryType } from '../../model/enums.js';
4
+ import { CharacteristicType, ServiceType, FanConfig } from '../../model/types.js';
5
+ import { Log } from '../../tools/log.js';
6
+ export declare class FanAccessory extends ActiveClimateAccessory<FanConfig> {
7
+ private readonly CURRENT_STATE_MAP;
8
+ private readonly TARGET_STATE_MAP;
9
+ constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: FanConfig, log: Log, isGrouped: boolean);
10
+ protected getAccessoryType(): AccessoryType;
11
+ private onCurrentStateUpdate;
12
+ private onTargetStateUpdate;
13
+ private onSetTargetState;
14
+ private onSetDirection;
15
+ private fromCVState;
16
+ private toCurrentCVState;
17
+ private toTargetCVState;
18
+ private stateStringForCurrentCV;
19
+ private stateStringForTargetCV;
20
+ }
@@ -0,0 +1,122 @@
1
+ import { ActiveClimateAccessory } from './active.js';
2
+ import { strings } from '../../i18n/i18n.js';
3
+ import { AccessoryType, CharacteristicKey } from '../../model/enums.js';
4
+ export class FanAccessory extends ActiveClimateAccessory {
5
+ CURRENT_STATE_MAP;
6
+ TARGET_STATE_MAP;
7
+ constructor(Service, Characteristic, accessory, config, log, isGrouped) {
8
+ super(Service, Characteristic, accessory, config, log, isGrouped);
9
+ this.CURRENT_STATE_MAP = new Map([
10
+ ['valueModeInactive', Characteristic.CurrentFanState.INACTIVE],
11
+ ['valueModeIdle', Characteristic.CurrentFanState.IDLE],
12
+ ['valueModeBlowing', Characteristic.CurrentFanState.BLOWING_AIR],
13
+ ]);
14
+ this.TARGET_STATE_MAP = new Map([
15
+ ['valueModeAuto', Characteristic.TargetFanState.AUTO],
16
+ ['valueModeManual', Characteristic.TargetFanState.MANUAL],
17
+ ]);
18
+ const validCurrentStates = Array.from(this.CURRENT_STATE_MAP.keys()).filter((key) => this.getRawValue(key, false) !== undefined);
19
+ if (validCurrentStates.length === 0) {
20
+ this.log.error(strings.fan.noCurrentStateValues, this.name);
21
+ return;
22
+ }
23
+ this.setupCharacteristic(CharacteristicKey.CurrentFanState, this.CURRENT_STATE_MAP.get(validCurrentStates[0]), 'topicGetCurrentFanState', this.onCurrentStateUpdate.bind(this), false)
24
+ ?.setProps({ validValues: validCurrentStates.map((key) => this.CURRENT_STATE_MAP.get(key)) });
25
+ const validTargetStates = Array.from(this.TARGET_STATE_MAP.keys()).filter((key) => this.getRawValue(key, false) !== undefined);
26
+ if (validTargetStates.length === 0) {
27
+ this.log.error(strings.fan.noTargetStateValues, this.name);
28
+ return;
29
+ }
30
+ this.setupCharacteristic(CharacteristicKey.TargetFanState, this.TARGET_STATE_MAP.get(validTargetStates[0]), 'topicGetTargetFanState', this.onTargetStateUpdate.bind(this), false, 'topicSetTargetFanState', this.onSetTargetState.bind(this))
31
+ ?.setProps({ validValues: validTargetStates.map((key) => this.TARGET_STATE_MAP.get(key)) });
32
+ this.setupCharacteristic(CharacteristicKey.RotationDirection, Characteristic.RotationDirection.CLOCKWISE, 'topicGetRotationDirection', this.bindOnUpdateNumericBoolean(CharacteristicKey.RotationDirection, 'valueDirectionCounterClockwise', strings.fan.clockwise, strings.fan.counterClockwise), false, 'topicSetRotationDirection', this.onSetDirection.bind(this));
33
+ }
34
+ getAccessoryType() {
35
+ return AccessoryType.Fanv2;
36
+ }
37
+ async onCurrentStateUpdate(_topic, value) {
38
+ const state = this.toCurrentCVState(value);
39
+ if (state === undefined) {
40
+ return;
41
+ }
42
+ this.onUpdate(CharacteristicKey.CurrentFanState, state, this.stateStringForCurrentCV(state));
43
+ }
44
+ async onTargetStateUpdate(_topic, value) {
45
+ const state = this.toTargetCVState(value);
46
+ if (state === undefined) {
47
+ return;
48
+ }
49
+ this.onUpdate(CharacteristicKey.TargetFanState, state, this.stateStringForTargetCV(state));
50
+ }
51
+ async onSetTargetState(value) {
52
+ const target = this.fromCVState(value);
53
+ if (target === undefined) {
54
+ return;
55
+ }
56
+ this.onSet(CharacteristicKey.TargetFanState, value, target, 'topicSetTargetFanState', this.stateStringForTargetCV(value));
57
+ }
58
+ async onSetDirection(value) {
59
+ if (!this.assert('valueDirectionClockwise', 'valueDirectionCounterClockwise')) {
60
+ return;
61
+ }
62
+ const clockwise = value === this.Characteristic.RotationDirection.CLOCKWISE;
63
+ const logString = clockwise ? strings.fan.setDirectionClockwise : strings.fan.setDirectionCounterClockwise;
64
+ const publish = clockwise ? this.config.valueDirectionClockwise : this.config.valueDirectionCounterClockwise;
65
+ this.onSet(CharacteristicKey.RotationDirection, value, publish, 'topicSetRotationDirection', logString);
66
+ }
67
+ fromCVState(value) {
68
+ let primative = undefined;
69
+ this.TARGET_STATE_MAP.forEach((test, key) => {
70
+ if (value === test) {
71
+ primative = this.getPrimitiveValue(key);
72
+ }
73
+ });
74
+ if (primative === undefined) {
75
+ this.log.error(strings.fan.badValue, this.name, `'${value}'`);
76
+ }
77
+ return primative;
78
+ }
79
+ toCurrentCVState(value) {
80
+ switch (value) {
81
+ case this.getPrimitiveValue('valueModeInactive', false):
82
+ return this.CURRENT_STATE_MAP.get('valueModeInactive');
83
+ case this.getPrimitiveValue('valueModeIdle', false):
84
+ return this.CURRENT_STATE_MAP.get('valueModeIdle');
85
+ case this.getPrimitiveValue('valueModeBlowing', false):
86
+ return this.CURRENT_STATE_MAP.get('valueModeBlowing');
87
+ }
88
+ this.logIfDesired(strings.fan.unknownValue, `'${value}'`);
89
+ }
90
+ toTargetCVState(value) {
91
+ switch (value) {
92
+ case this.getPrimitiveValue('valueModeAuto', false):
93
+ return this.TARGET_STATE_MAP.get('valueModeAuto');
94
+ case this.getPrimitiveValue('valueModeManual', false):
95
+ return this.TARGET_STATE_MAP.get('valueModeManual');
96
+ }
97
+ this.logIfDesired(strings.fan.unknownValue, `'${value}'`);
98
+ }
99
+ stateStringForCurrentCV(state) {
100
+ switch (state) {
101
+ case this.Characteristic.CurrentFanState.INACTIVE:
102
+ return strings.fan.stateInactive;
103
+ case this.Characteristic.CurrentFanState.IDLE:
104
+ return strings.fan.stateIdle;
105
+ case this.Characteristic.CurrentFanState.BLOWING_AIR:
106
+ return strings.fan.stateBlowing;
107
+ default:
108
+ return strings.fan.stateUnknown;
109
+ }
110
+ }
111
+ stateStringForTargetCV(state) {
112
+ switch (state) {
113
+ case this.Characteristic.TargetFanState.AUTO:
114
+ return strings.fan.stateAuto;
115
+ case this.Characteristic.TargetFanState.MANUAL:
116
+ return strings.fan.stateManual;
117
+ default:
118
+ return strings.fan.stateUnknown;
119
+ }
120
+ }
121
+ }
122
+ //# sourceMappingURL=fan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fan.js","sourceRoot":"","sources":["../../../src/accessory/climate/fan.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { TemperatureControlAccessory, DEFAULT_TEMPERATURE } from './temperatureControl.js';
2
- import { FilterMaintenance } from '../addons/filter.js';
3
2
  import { strings } from '../../i18n/i18n.js';
4
3
  import { AccessoryType, CharacteristicKey } from '../../model/enums.js';
5
4
  export class ThermostatAccessory extends TemperatureControlAccessory {
@@ -26,7 +25,6 @@ export class ThermostatAccessory extends TemperatureControlAccessory {
26
25
  this.setupCharacteristic(CharacteristicKey.TargetTemperature, DEFAULT_TEMPERATURE, 'topicGetTargetTemperature', this.bindTemperatureUpdate(config, CharacteristicKey.TargetTemperature, strings.thermostat.temperatureTarget), true, 'topicSetTargetTemperature', this.onSetTemperature.bind(this));
27
26
  this.setupCharacteristic(CharacteristicKey.CurrentRelativeHumidity, 0, 'topicGetCurrentRelativeHumidity', this.bindOnUpdateNumeric(CharacteristicKey.CurrentRelativeHumidity, strings.climate.humidityUpdate), false);
28
27
  this.setupCharacteristic(CharacteristicKey.TargetRelativeHumidity, 0, 'topicGetTargetRelativeHumidity', this.bindOnUpdateNumeric(CharacteristicKey.TargetRelativeHumidity, strings.thermostat.humidityFuture), false, 'topicSetTargetRelativeHumidity', this.onSetHumidity.bind(this));
29
- this.addTopicHandlers(FilterMaintenance.topicHandlers(Service, this, config));
30
28
  }
31
29
  getAccessoryType() {
32
30
  return AccessoryType.Thermostat;
@@ -1 +1 @@
1
- {"version":3,"file":"thermostat.js","sourceRoot":"","sources":["../../../src/accessory/climate/thermostat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thermostat.js","sourceRoot":"","sources":["../../../src/accessory/climate/thermostat.ts"],"names":[],"mappings":"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"}
@@ -24,4 +24,4 @@
24
24
 
25
25
  <footer id="footer" class="text-center" style="display: none; font-style: italic; font-size: 0.9em;" i18n="required"></footer>
26
26
 
27
- <script src="ui.js?v=1.4.0-beta.13"></script>
27
+ <script src="ui.js?v=1.4.0-beta.15"></script>