For every over_climate VTherm exposing fan_modes, the plugin creates a set of configuration entities and, at each control cycle:
- Computes the temperature gap dtemp = target − current.
2; Selects the underlying fan_mode whose activation threshold is the greatest one that is > 0 and ≤ |dtemp|, provided it is coherent with the current HVAC mode (heating/cooling/off).
- Otherwise it applies the configured rest fan_mode.
- The chosen fan_mode is only sent to the underlying when it actually changes.
Each fan_mode gets its own user-configurable threshold (a threshold of 0 means the fan_mode never participates), so non-normalized fan_modes (e.g. on_low / on_high / auto_low / off) are supported out of the box.