The Different Algorithms Used
The TPI Algorithm
TPI is applicable only for VTherm which does the regulation itself. This kind of VTherm is concerned:
over_switch,over_valve,over_climatewith direct valve control.
over_climate with self-regulation that doesn't control the valve directly don't have any TPI algorithm embedded and thus this chapter is not applicable for them.
Configuring the TPI Algorithm Coefficients
If you have selected a thermostat with a TPI algorithm and choose the "TPI" option in the menu, you will land on this page:

You must provide:
| Parameter | Description | Attribute Name |
|---|---|---|
| Internal Coefficient | The coef_int coefficient of the TPI algorithm. | tpi_coef_int |
| External Coefficient | The coef_ext coefficient of the TPI algorithm. | tpi_coef_ext |
| Activation Delay | Minimum activation time in seconds. | minimal_activation_delay |
| Deactivation Delay | Minimum deactivation time in seconds. | minimal_deactivation_delay |
| High Threshold | Temperature deviation (°C or K) above which the algorithm will be disabled. | tpi_threshold_high |
| Low Threshold | Temperature deviation (°C or K) below which the algorithm will be enabled again. | tpi_threshold_low |
Principle
The TPI algorithm calculates the On vs Off percentage for the radiator at each cycle, using the target temperature, the current room temperature, and the current outdoor temperature.
The percentage is calculated using this formula:
on_percent = coef_int * (target_temperature - current_temperature) + coef_ext * (target_temperature - outdoor_temperature)
Then, the algorithm ensures that 0 <= on_percent <= 1.
The default values for coef_int and coef_ext are 0.6 and 0.01, respectively. These default values are suitable for a standard well-insulated room.
When adjusting these coefficients, keep the following in mind:
- If the target temperature is not reached after stabilization, increase
coef_ext(theon_percentis too low), - If the target temperature is exceeded after stabilization, decrease
coef_ext(theon_percentis too high), - If reaching the target temperature is too slow, increase
coef_intto provide more power to the heater, - If reaching the target temperature is too fast and oscillations occur around the target, decrease
coef_intto provide less power to the radiator.
The on_percent value is converted to a percentage (0 to 100%) and directly controls the valve's opening level.
Minimum Activation or Deactivation Delay
The first delay (minimal_activation_delay_sec), in seconds, is the minimum acceptable delay to turn on the heater.
When the calculation results in a power-on delay shorter than this value, the heater remains off.
If the activation time is too short, rapid switching will not allow the equipment to reach operating temperature.
Similarly, the second delay (minimal_deactivation_delay_sec), also in seconds, defines the minimum acceptable off-time.
If the off-time is shorter than this value, the heater will not be turned off.
This prevents rapid flickering that provides little benefit for temperature regulation.
Upper and Lower Activation Thresholds of the Algorithm
Since version 7.4, two additional thresholds are available. They allow you to disable (or re-enable) the TPI algorithm itself, based on the difference between the target setpoint and the current temperature.
- If the temperature rises and the difference is greater than the upper threshold, the heater is switched off (i.e.,
on_percentis forced to 0). - If the temperature drops and the difference is smaller than the lower threshold, the heater is turned back on (i.e.,
on_percentis calculated by the algorithm as described above).
These two thresholds stop the on/off cycling when the temperature overshoots the target. A hysteresis prevents rapid toggling.
Examples:
- Suppose the target setpoint is 20°C, the upper threshold is 2°C, and the lower threshold is 1°C.
- When the temperature rises above 22°C (setpoint + upper threshold),
on_percentis forced to 0. - When the temperature drops below 21°C (setpoint + lower threshold),
on_percentis recalculated.
Notes
- Leave both values at 0 if you do not want to use thresholds. This restores the behavior from before version 7.4.
- Both values are required. If you leave one at 0, no threshold will be applied. Indeed, both are necessary for correct operation.
- In cooling mode, the tests are reversed, but the principle remains the same.
- The upper threshold should always be greater than the lower threshold, even in cooling mode.
The Self-Regulation Algorithm (Without Valve Control)
The self-regulation algorithm can be summarized as follows:
- Initialize the target temperature as the VTherm setpoint,
- If self-regulation is enabled:
- Calculate the regulated temperature (valid for a VTherm),
- Use this temperature as the target,
- For each underlying device of the VTherm:
- If "Use Internal Temperature" is checked:
- Calculate the compensation (
trv_internal_temp - room_temp),
- Calculate the compensation (
- Add the offset to the target temperature,
- Send the target temperature (= regulated_temp + (internal_temp - room_temp)) to the underlying device.
- If "Use Internal Temperature" is checked:
The Auto-Start/Stop Function Algorithm
The algorithm used in the auto-start/stop function operates as follows:
- If "Enable Auto-Start/Stop" is off, stop here.
- If VTherm is on and in Heating mode, when
error_accumulated<-error_threshold-> turn off and save HVAC mode. - If VTherm is on and in Cooling mode, when
error_accumulated>error_threshold-> turn off and save HVAC mode. - If VTherm is off and the saved HVAC mode is Heating, and
current_temperature + slope * dt <= target_temperature, turn on and set the HVAC mode to the saved mode. - If VTherm is off and the saved HVAC mode is Cooling, and
current_temperature + slope * dt >= target_temperature, turn on and set the HVAC mode to the saved mode. error_thresholdis set to10 (° * min)for slow detection,5for medium, and2for fast.
dt is set to 30 min for slow, 15 min for medium, and 7 min for fast detection levels.
The function is detailed here.
Notes