mirror of
https://github.com/home-assistant/core.git
synced 2025-07-27 07:07:28 +00:00
Fix lookin set temperature when device is off (#61411)
This commit is contained in:
parent
9a46d238f7
commit
fe17c9ffb6
@ -10,6 +10,7 @@ from aiolookin import Climate, MeteoSensor, SensorID
|
|||||||
|
|
||||||
from homeassistant.components.climate import ClimateEntity
|
from homeassistant.components.climate import ClimateEntity
|
||||||
from homeassistant.components.climate.const import (
|
from homeassistant.components.climate.const import (
|
||||||
|
ATTR_HVAC_MODE,
|
||||||
FAN_AUTO,
|
FAN_AUTO,
|
||||||
FAN_HIGH,
|
FAN_HIGH,
|
||||||
FAN_LOW,
|
FAN_LOW,
|
||||||
@ -151,6 +152,28 @@ class ConditionerEntity(LookinCoordinatorEntity, ClimateEntity):
|
|||||||
if (temperature := kwargs.get(ATTR_TEMPERATURE)) is None:
|
if (temperature := kwargs.get(ATTR_TEMPERATURE)) is None:
|
||||||
return
|
return
|
||||||
self._climate.temp_celsius = int(temperature)
|
self._climate.temp_celsius = int(temperature)
|
||||||
|
lookin_index = LOOKIN_HVAC_MODE_IDX_TO_HASS
|
||||||
|
if hvac_mode := kwargs.get(ATTR_HVAC_MODE):
|
||||||
|
self._climate.hvac_mode = HASS_TO_LOOKIN_HVAC_MODE[hvac_mode]
|
||||||
|
elif self._climate.hvac_mode == lookin_index.index(HVAC_MODE_OFF):
|
||||||
|
#
|
||||||
|
# If the device is off, and the user didn't specify an HVAC mode
|
||||||
|
# (which is the default when using the HA UI), the device won't turn
|
||||||
|
# on without having an HVAC mode passed.
|
||||||
|
#
|
||||||
|
# We picked the hvac mode based on the current temp if its available
|
||||||
|
# since only some units support auto, but most support either heat
|
||||||
|
# or cool otherwise we set auto since we don't have a way to make
|
||||||
|
# an educated guess.
|
||||||
|
#
|
||||||
|
meteo_data: MeteoSensor = self._meteo_coordinator.data
|
||||||
|
current_temp = meteo_data.temperature
|
||||||
|
if not current_temp:
|
||||||
|
self._climate.hvac_mode = lookin_index.index(HVAC_MODE_AUTO)
|
||||||
|
elif current_temp >= self._climate.temp_celsius:
|
||||||
|
self._climate.hvac_mode = lookin_index.index(HVAC_MODE_COOL)
|
||||||
|
else:
|
||||||
|
self._climate.hvac_mode = lookin_index.index(HVAC_MODE_HEAT)
|
||||||
await self._async_update_conditioner()
|
await self._async_update_conditioner()
|
||||||
|
|
||||||
async def async_set_fan_mode(self, fan_mode: str) -> None:
|
async def async_set_fan_mode(self, fan_mode: str) -> None:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user