|
12 | 12 | from geckolib import (GeckoSpaEvent, GeckoSpaState)
|
13 | 13 | from geckolib import GeckoAsyncSpaMan
|
14 | 14 |
|
15 |
| -from geckolib import (GeckoWaterCare, GeckoReminders, GeckoStructAccessor) |
| 15 | +from geckolib import (GeckoWaterCare, GeckoReminders, GeckoStructAccessor, GeckoWaterHeater) |
16 | 16 |
|
17 | 17 | from geckolib import GeckoConstants
|
18 | 18 |
|
@@ -47,11 +47,13 @@ async def handle_event(self, event: GeckoSpaEvent, **kwargs) -> None:
|
47 | 47 | if event == GeckoSpaEvent.CLIENT_FACADE_IS_READY:
|
48 | 48 |
|
49 | 49 | logger.info("SPA facade is ready.")
|
50 |
| - self._can_use_facade = True |
51 | 50 |
|
52 | 51 | # at least publish once all values once
|
53 | 52 | await self._refreshAll()
|
54 | 53 |
|
| 54 | + # now we can use the facade |
| 55 | + self._can_use_facade = True |
| 56 | + |
55 | 57 | # add the watcher to see all changes
|
56 | 58 | self._facade.watch(OnChange(self))
|
57 | 59 |
|
@@ -380,7 +382,13 @@ async def controls(self, client, userdata, message):
|
380 | 382 | except Exception as ex:
|
381 | 383 | logger.warning(f"Wrong temperature value received")
|
382 | 384 | return
|
383 |
| - if temp < 6 and temp > 40: |
| 385 | + check_failed = False |
| 386 | + if self._facade.water_heater.temperature_unit == GeckoWaterHeater.TEMP_CELCIUS: |
| 387 | + if temp < GeckoWaterHeater.MIN_TEMP_C or temp > GeckoWaterHeater.MAX_TEMP_C: |
| 388 | + check_failed = True |
| 389 | + elif temp < GeckoWaterHeater.MIN_TEMP_F or temp > GeckoWaterHeater.MAX_TEMP_F: |
| 390 | + check_failed = True |
| 391 | + if check_failed: |
384 | 392 | logger.warning(f"Temperature {temp} outside allowed values")
|
385 | 393 | return
|
386 | 394 | await self._facade.water_heater.set_target_temperature(temp)
|
@@ -445,6 +453,9 @@ def __call__(self, sender, old_value, new_value):
|
445 | 453 | elif sender.tag == "Clean" or sender.tag == "Purge":
|
446 | 454 | self._mySpa.refreshFilters()
|
447 | 455 |
|
| 456 | + elif sender.tag == "TempUnits": |
| 457 | + self._mySpa.refreshHeater() |
| 458 | + |
448 | 459 | else:
|
449 | 460 | logger.warning(f"Not handled GeckoStructAccessor sender tag received: {sender.tag}")
|
450 | 461 | logger.warning(f" --> {sender} changed from {old_value} to {new_value}")
|
|
0 commit comments