diff --git a/homeassistant/components/overkiz/climate_entities/atlantic_electrical_heater_with_adjustable_temperature_setpoint.py b/homeassistant/components/overkiz/climate_entities/atlantic_electrical_heater_with_adjustable_temperature_setpoint.py index 47dc75710ec..64a7dc1e645 100644 --- a/homeassistant/components/overkiz/climate_entities/atlantic_electrical_heater_with_adjustable_temperature_setpoint.py +++ b/homeassistant/components/overkiz/climate_entities/atlantic_electrical_heater_with_adjustable_temperature_setpoint.py @@ -143,7 +143,9 @@ class AtlanticElectricalHeaterWithAdjustableTemperatureSetpoint( @property def current_temperature(self) -> float | None: """Return the current temperature.""" - if temperature := self.temperature_device.states[OverkizState.CORE_TEMPERATURE]: + if self.temperature_device is not None and ( + temperature := self.temperature_device.states[OverkizState.CORE_TEMPERATURE] + ): return temperature.value_as_float return None diff --git a/homeassistant/components/overkiz/climate_entities/atlantic_electrical_towel_dryer.py b/homeassistant/components/overkiz/climate_entities/atlantic_electrical_towel_dryer.py index 16568c0b1b7..e49fc4358e9 100644 --- a/homeassistant/components/overkiz/climate_entities/atlantic_electrical_towel_dryer.py +++ b/homeassistant/components/overkiz/climate_entities/atlantic_electrical_towel_dryer.py @@ -95,7 +95,9 @@ class AtlanticElectricalTowelDryer(OverkizEntity, ClimateEntity): @property def current_temperature(self) -> float | None: """Return the current temperature.""" - if temperature := self.temperature_device.states[OverkizState.CORE_TEMPERATURE]: + if self.temperature_device is not None and ( + temperature := self.temperature_device.states[OverkizState.CORE_TEMPERATURE] + ): return cast(float, temperature.value) return None diff --git a/homeassistant/components/overkiz/climate_entities/atlantic_heat_recovery_ventilation.py b/homeassistant/components/overkiz/climate_entities/atlantic_heat_recovery_ventilation.py index 698979672ea..f1d96b5687b 100644 --- a/homeassistant/components/overkiz/climate_entities/atlantic_heat_recovery_ventilation.py +++ b/homeassistant/components/overkiz/climate_entities/atlantic_heat_recovery_ventilation.py @@ -69,7 +69,9 @@ class AtlanticHeatRecoveryVentilation(OverkizEntity, ClimateEntity): @property def current_temperature(self) -> float | None: """Return the current temperature.""" - if temperature := self.temperature_device.states[OverkizState.CORE_TEMPERATURE]: + if self.temperature_device is not None and ( + temperature := self.temperature_device.states[OverkizState.CORE_TEMPERATURE] + ): return cast(float, temperature.value) return None diff --git a/homeassistant/components/overkiz/climate_entities/atlantic_pass_apc_heating_zone.py b/homeassistant/components/overkiz/climate_entities/atlantic_pass_apc_heating_zone.py index 72a9182974f..bf6aa43644e 100644 --- a/homeassistant/components/overkiz/climate_entities/atlantic_pass_apc_heating_zone.py +++ b/homeassistant/components/overkiz/climate_entities/atlantic_pass_apc_heating_zone.py @@ -108,7 +108,9 @@ class AtlanticPassAPCHeatingZone(OverkizEntity, ClimateEntity): @property def current_temperature(self) -> float | None: """Return the current temperature.""" - if temperature := self.temperature_device.states[OverkizState.CORE_TEMPERATURE]: + if self.temperature_device is not None and ( + temperature := self.temperature_device.states[OverkizState.CORE_TEMPERATURE] + ): return cast(float, temperature.value) return None diff --git a/homeassistant/components/overkiz/climate_entities/atlantic_pass_apc_zone_control_zone.py b/homeassistant/components/overkiz/climate_entities/atlantic_pass_apc_zone_control_zone.py index c61c92a3c44..261acc2838c 100644 --- a/homeassistant/components/overkiz/climate_entities/atlantic_pass_apc_zone_control_zone.py +++ b/homeassistant/components/overkiz/climate_entities/atlantic_pass_apc_zone_control_zone.py @@ -24,7 +24,7 @@ OVERKIZ_MODE_TO_PRESET_MODES: dict[str, str] = { PRESET_MODES_TO_OVERKIZ = {v: k for k, v in OVERKIZ_MODE_TO_PRESET_MODES.items()} -TEMPERATURE_ZONECONTROL_DEVICE_INDEX = 1 +TEMPERATURE_ZONECONTROL_DEVICE_INDEX = 20 # Those device depends on a main probe that choose the operating mode (heating, cooling, ...) @@ -65,10 +65,15 @@ class AtlanticPassAPCZoneControlZone(AtlanticPassAPCHeatingZone): """Return hvac operation ie. heat, cool, dry, off mode.""" if ( - state := self.zone_control_device.states[ - OverkizState.IO_PASS_APC_OPERATING_MODE - ] - ) is not None and (value := state.value_as_str) is not None: + self.zone_control_device is not None + and ( + state := self.zone_control_device.states[ + OverkizState.IO_PASS_APC_OPERATING_MODE + ] + ) + is not None + and (value := state.value_as_str) is not None + ): return OVERKIZ_TO_HVAC_MODE[value] return HVACMode.OFF diff --git a/homeassistant/components/overkiz/climate_entities/somfy_heating_temperature_interface.py b/homeassistant/components/overkiz/climate_entities/somfy_heating_temperature_interface.py index becb807d41a..85ce7ae57e3 100644 --- a/homeassistant/components/overkiz/climate_entities/somfy_heating_temperature_interface.py +++ b/homeassistant/components/overkiz/climate_entities/somfy_heating_temperature_interface.py @@ -166,7 +166,9 @@ class SomfyHeatingTemperatureInterface(OverkizEntity, ClimateEntity): @property def current_temperature(self) -> float | None: """Return the current temperature.""" - if temperature := self.temperature_device.states[OverkizState.CORE_TEMPERATURE]: + if self.temperature_device is not None and ( + temperature := self.temperature_device.states[OverkizState.CORE_TEMPERATURE] + ): return temperature.value_as_float return None diff --git a/homeassistant/components/overkiz/climate_entities/somfy_thermostat.py b/homeassistant/components/overkiz/climate_entities/somfy_thermostat.py index 615c618dd40..829a3bad03b 100644 --- a/homeassistant/components/overkiz/climate_entities/somfy_thermostat.py +++ b/homeassistant/components/overkiz/climate_entities/somfy_thermostat.py @@ -104,7 +104,9 @@ class SomfyThermostat(OverkizEntity, ClimateEntity): @property def current_temperature(self) -> float | None: """Return the current temperature.""" - if temperature := self.temperature_device.states[OverkizState.CORE_TEMPERATURE]: + if self.temperature_device is not None and ( + temperature := self.temperature_device.states[OverkizState.CORE_TEMPERATURE] + ): return cast(float, temperature.value) return None diff --git a/homeassistant/components/overkiz/climate_entities/valve_heating_temperature_interface.py b/homeassistant/components/overkiz/climate_entities/valve_heating_temperature_interface.py index 893e4ca3d8e..e2165e8b6c6 100644 --- a/homeassistant/components/overkiz/climate_entities/valve_heating_temperature_interface.py +++ b/homeassistant/components/overkiz/climate_entities/valve_heating_temperature_interface.py @@ -91,7 +91,9 @@ class ValveHeatingTemperatureInterface(OverkizEntity, ClimateEntity): @property def current_temperature(self) -> float | None: """Return the current temperature.""" - if temperature := self.temperature_device.states[OverkizState.CORE_TEMPERATURE]: + if self.temperature_device is not None and ( + temperature := self.temperature_device.states[OverkizState.CORE_TEMPERATURE] + ): return temperature.value_as_float return None diff --git a/homeassistant/components/overkiz/executor.py b/homeassistant/components/overkiz/executor.py index e11dc59cc27..94b2c1b25fa 100644 --- a/homeassistant/components/overkiz/executor.py +++ b/homeassistant/components/overkiz/executor.py @@ -41,9 +41,9 @@ class OverkizExecutor: """Return Overkiz device linked to this entity.""" return self.coordinator.data[self.device_url] - def linked_device(self, index: int) -> Device: + def linked_device(self, index: int) -> Device | None: """Return Overkiz device sharing the same base url.""" - return self.coordinator.data[f"{self.base_device_url}#{index}"] + return self.coordinator.data.get(f"{self.base_device_url}#{index}") def select_command(self, *commands: str) -> str | None: """Select first existing command in a list of commands."""