Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 668053b352 | |||
| 6ff9ff1ee5 | |||
| 3f95ed74f4 | |||
| 6e42904ddf |
@@ -13,7 +13,6 @@ from homeassistant.util import dt as dt_util
|
|||||||
from homeassistant.core import (
|
from homeassistant.core import (
|
||||||
HomeAssistant,
|
HomeAssistant,
|
||||||
callback,
|
callback,
|
||||||
CoreState,
|
|
||||||
Event,
|
Event,
|
||||||
State,
|
State,
|
||||||
)
|
)
|
||||||
@@ -57,7 +56,6 @@ from homeassistant.const import (
|
|||||||
STATE_UNKNOWN,
|
STATE_UNKNOWN,
|
||||||
STATE_OFF,
|
STATE_OFF,
|
||||||
STATE_ON,
|
STATE_ON,
|
||||||
EVENT_HOMEASSISTANT_START,
|
|
||||||
STATE_HOME,
|
STATE_HOME,
|
||||||
STATE_NOT_HOME,
|
STATE_NOT_HOME,
|
||||||
)
|
)
|
||||||
@@ -299,7 +297,7 @@ class BaseThermostat(ClimateEntity, RestoreEntity, Generic[T]):
|
|||||||
self._presets: dict[str, Any] = {} # presets
|
self._presets: dict[str, Any] = {} # presets
|
||||||
self._presets_away: dict[str, Any] = {} # presets_away
|
self._presets_away: dict[str, Any] = {} # presets_away
|
||||||
|
|
||||||
self._attr_preset_modes: list[str] | None
|
self._attr_preset_modes: list[str] = []
|
||||||
|
|
||||||
self._use_central_config_temperature = False
|
self._use_central_config_temperature = False
|
||||||
|
|
||||||
@@ -2183,7 +2181,7 @@ class BaseThermostat(ClimateEntity, RestoreEntity, Generic[T]):
|
|||||||
new_central_mode,
|
new_central_mode,
|
||||||
)
|
)
|
||||||
|
|
||||||
first_init = self._last_central_mode == None
|
first_init = self._last_central_mode is None
|
||||||
|
|
||||||
self._last_central_mode = new_central_mode
|
self._last_central_mode = new_central_mode
|
||||||
|
|
||||||
|
|||||||
@@ -142,7 +142,17 @@ class ThermostatOverClimate(BaseThermostat[UnderlyingClimate]):
|
|||||||
"""Sends the regulated temperature to all underlying"""
|
"""Sends the regulated temperature to all underlying"""
|
||||||
|
|
||||||
if self.hvac_mode == HVACMode.OFF:
|
if self.hvac_mode == HVACMode.OFF:
|
||||||
_LOGGER.debug("%s - don't send regulated temperature cause VTherm is off ")
|
_LOGGER.debug(
|
||||||
|
"%s - don't send regulated temperature cause VTherm is off ", self
|
||||||
|
)
|
||||||
|
return
|
||||||
|
|
||||||
|
if self.target_temperature is None:
|
||||||
|
_LOGGER.warning(
|
||||||
|
"%s - don't send regulated temperature cause VTherm target_temp (%s) is None. This should be a temporary warning message.",
|
||||||
|
self,
|
||||||
|
self.target_temperature,
|
||||||
|
)
|
||||||
return
|
return
|
||||||
|
|
||||||
_LOGGER.info(
|
_LOGGER.info(
|
||||||
@@ -169,16 +179,17 @@ class ThermostatOverClimate(BaseThermostat[UnderlyingClimate]):
|
|||||||
|
|
||||||
# use _attr_target_temperature_step to round value if _auto_regulation_dtemp is equal to 0
|
# use _attr_target_temperature_step to round value if _auto_regulation_dtemp is equal to 0
|
||||||
regulation_step = self._auto_regulation_dtemp if self._auto_regulation_dtemp else self._attr_target_temperature_step
|
regulation_step = self._auto_regulation_dtemp if self._auto_regulation_dtemp else self._attr_target_temperature_step
|
||||||
_LOGGER.debug("%s - usage of regulation_step: %.2f ",
|
_LOGGER.debug("%s - usage regulation_step: %.2f ", self, regulation_step)
|
||||||
self,
|
|
||||||
regulation_step)
|
if self.current_temperature is not None:
|
||||||
|
new_regulated_temp = round_to_nearest(
|
||||||
new_regulated_temp = round_to_nearest(
|
self._regulation_algo.calculate_regulated_temperature(
|
||||||
self._regulation_algo.calculate_regulated_temperature(
|
self.current_temperature, self._cur_ext_temp
|
||||||
self.current_temperature, self._cur_ext_temp
|
),
|
||||||
),
|
regulation_step,
|
||||||
regulation_step,
|
)
|
||||||
)
|
else:
|
||||||
|
new_regulated_temp = self.target_temperature
|
||||||
dtemp = new_regulated_temp - self._regulated_target_temp
|
dtemp = new_regulated_temp - self._regulated_target_temp
|
||||||
|
|
||||||
if not force and abs(dtemp) < self._auto_regulation_dtemp:
|
if not force and abs(dtemp) < self._auto_regulation_dtemp:
|
||||||
@@ -203,8 +214,10 @@ class ThermostatOverClimate(BaseThermostat[UnderlyingClimate]):
|
|||||||
offset_temp = 0
|
offset_temp = 0
|
||||||
device_temp = 0
|
device_temp = 0
|
||||||
if (
|
if (
|
||||||
|
# current_temperature is set
|
||||||
|
self.current_temperature is not None
|
||||||
# regulation can use the device_temp
|
# regulation can use the device_temp
|
||||||
self.auto_regulation_use_device_temp
|
and self.auto_regulation_use_device_temp
|
||||||
# and we have access to the device temp
|
# and we have access to the device temp
|
||||||
and (device_temp := under.underlying_current_temperature) is not None
|
and (device_temp := under.underlying_current_temperature) is not None
|
||||||
# and target is not reach (ie we need regulation)
|
# and target is not reach (ie we need regulation)
|
||||||
|
|||||||
+5
-3
@@ -12,12 +12,14 @@ from homeassistant.components.climate import (
|
|||||||
SERVICE_SET_TEMPERATURE,
|
SERVICE_SET_TEMPERATURE,
|
||||||
)
|
)
|
||||||
|
|
||||||
from homeassistant.config_entries import SOURCE_USER, ConfigEntry
|
|
||||||
from homeassistant.data_entry_flow import FlowResultType
|
|
||||||
|
|
||||||
from custom_components.versatile_thermostat.config_flow import (
|
from custom_components.versatile_thermostat.config_flow import (
|
||||||
VersatileThermostatBaseConfigFlow,
|
VersatileThermostatBaseConfigFlow,
|
||||||
)
|
)
|
||||||
|
from custom_components.versatile_thermostat.thermostat_valve import ThermostatOverValve
|
||||||
|
from custom_components.versatile_thermostat.thermostat_switch import (
|
||||||
|
ThermostatOverSwitch,
|
||||||
|
)
|
||||||
|
|
||||||
from .commons import *
|
from .commons import *
|
||||||
|
|
||||||
logging.getLogger().setLevel(logging.DEBUG)
|
logging.getLogger().setLevel(logging.DEBUG)
|
||||||
|
|||||||
Reference in New Issue
Block a user