System: HAOS installed onto VM from image, all updates installed.
Background: I’m using the generic thermostat from the helpers to consolidate the control of a heat pump. Target temperature is fed via an automation from a function dependent on the outside, thus the target temperature does change quite often. Heat pump is controlled via change of automatic mode. As heat pumps don’t like short turn-on too much, I set the minimum run time to 30 minutes. Hysteresis is set to approx +/-2 K.
Observed behavior: The running time is sometimes shorter than 30 minutes (See pic). Guess from my side: Either a Change of the target-temp or crossing the upper threshold have precedence over the minimum running time. As from the pic the turn-off coincidences pretty good with the target change (yellow curve), first seems to be more likely.
What I would expect: Minimum runtime will be followed when target-temp changes and threshold-crossing but shall be canceled if the thermostat is restarted or the mode is changed.
here is configuration.yaml as requested. Not sure whether it helps, as the thermostat was created & operated only through GUI in Settings/Devices & Entities / Helpers
# Loads default set of integrations. Do not remove.
default_config:
# Load frontend themes from the themes folder
frontend:
themes: !include_dir_merge_named themes
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
homeassistant:
packages:
pack1: !include thebrain.yaml
recorder:
purge_keep_days: 999
db_url: postgresql://xxx
keba:
host: 192.168.x.xxx
failsafe: true
failsafe_timeout: 30
failsafe_fallback: 10
failsafe_persist: 0
The quick & dirty way to get around this until you figure out what is wrong is to set a delay of 30 minutes at the end of your automation.
Given it’s in single mode, it won’t retrigger until the 30 minutes are over. Set max_exceeded to silent to avoid warnings in the logs.
Note that this is just a stopgap solution to avoid short cycling your heat pump. It fixes the symptom instead of the cause, but it’ll work as a short term fix.
It’s been accepted, but just needs to make its way into a release. This is likely exactly what you’re looking for. Hopefully it makes its way to a release soon (I started the work over a year ago).