You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When switching the thermostat from 'off' to 'heat' the switch isn't immediately being turned on despite a high enough PID output.
According to the log the cycle time is too short, but with an output of 70.9 it should be well above the 'min_cycle_duration' of 6 min. What am I misunderstanding?
Log message:
2024-10-24 18:21:04.880 DEBUG (MainThread) [custom_components.smart_thermostat.climate] climate.smart_thermostat: New PID control output: 70.9 (error = 1.56, dt = 0.00, p=19.40, i=51.50, d=-0.00, e=0.00)
2024-10-24 18:21:04.880 INFO (MainThread) [custom_components.smart_thermostat.climate] climate.smart_thermostat: OFF time passed. Request turning ON switch.daikin_toggle_heating
2024-10-24 18:21:04.880 INFO (MainThread) [custom_components.smart_thermostat.climate] climate.smart_thermostat: Reject request turning ON switch.daikin_toggle_heating: Cycle is too short
I've added a device_active check before the last_heat_cycle_time is updated by the heater_turn_off function, and it seems to have fixed the issue. However, I don't know if this broke something.
heater_turn_off
async def _async_heater_turn_off(self, force=False):
"""Turn heater toggleable device off."""
if time.time() - self._last_heat_cycle_time >= self._min_on_cycle_duration.seconds or force:
if self._is_device_active:
self._last_heat_cycle_time = time.time()
for entity in [self._heater_entity_id, self._cooler_entity_id]:
if entity is None:
continue
_LOGGER.info("%s: Turning OFF %s", self.entity_id,
", ".join([entity for entity in self.heater_or_cooler_entity]))
for heater_or_cooler_entity in self.heater_or_cooler_entity:
data = {ATTR_ENTITY_ID: heater_or_cooler_entity}
if self._heater_polarity_invert:
service = SERVICE_TURN_ON
else:
service = SERVICE_TURN_OFF
await self.hass.services.async_call(HA_DOMAIN, service, data)
else:
_LOGGER.info("%s: Reject request turning OFF %s: Cycle is too short",
self.entity_id, ", ".join([entity for entity in self.heater_or_cooler_entity]))
Edit: The change hasn't fixed the issue. The unit turns now immediately on, but shuts off again after a few seconds.
I added more debug logs and restarted Home Assistant, after which I was not able to replicate these short duration cycles again. The unit is now turning on for at least the min duration.
When switching the thermostat from 'off' to 'heat' the switch isn't immediately being turned on despite a high enough PID output.
According to the log the cycle time is too short, but with an output of 70.9 it should be well above the 'min_cycle_duration' of 6 min. What am I misunderstanding?
Log message:
Smart Thermostat config
Switch config
The text was updated successfully, but these errors were encountered: