From 2a52f24f196ed130657b9a3c9fcc9503076956f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Seux?= Date: Fri, 20 Sep 2024 16:51:52 +0200 Subject: [PATCH] Correct #250 This issue comes from a simple cause but a bug in HA made it look very weird. Cause: accessing attributes before having them defined. Fix: simply define the attribute in constructor Fix #250 --- custom_components/aquarea/climate.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/custom_components/aquarea/climate.py b/custom_components/aquarea/climate.py index f9e22da..dd70bbc 100644 --- a/custom_components/aquarea/climate.py +++ b/custom_components/aquarea/climate.py @@ -165,6 +165,12 @@ def __init__( # we only display heater by default self._attr_entity_registry_enabled_default = self.heater + # set default values so that attribute is always defined + self._attr_min_temp = self.UNDEFINED_VALUE + self._attr_max_temp = self.UNDEFINED_VALUE + + UNDEFINED_VALUE = -42 + async def async_turn_off(self) -> None: await self.async_set_hvac_mode(HVACMode.OFF) @@ -359,7 +365,7 @@ def target_temperature_message_received(message): f"{self._climate_type()} Received target temperature for {self.zone_id}: {self._attr_target_temperature}" ) if not self._mode_guessed: - if self._attr_min_temp != None and self._attr_max_temp != None: + if self._attr_min_temp != self.UNDEFINED_VALUE and self._attr_max_temp != self.UNDEFINED_VALUE: if self._attr_target_temperature < self._attr_min_temp or self._attr_target_temperature > self._attr_max_temp: # when reaching that point, maybe we should set a wider range to avoid blocking user? _LOGGER.warn(f"{self._climate_type()} Target temperature is not within expected range, this is suspicious. {self._attr_target_temperature} should be within [{self._attr_min_temp},{self._attr_max_temp}]")