Versatile Thermostat: a full feature thermostat (energy, door/window, presence, motion, preset, ... management)

Heello @fir3drag0n ,

This could be:

  1. motion feature is not activated (checkbox on page 1 of the configuration),
  2. motion sensor is not configured in the motion feature configuration (page 3 or 4),
  3. your motion sensor is not changing state. You can check in Development Tools / States that the attributes of your VTherm. You should have a motion_state: "on" attributes.

To avoid misunderstanding, motion and presence are two different functions which are totally different.

Hello. I have opened this question about the security mode. what kind of temperature sensor do you use with versatile thermostat? I have mine that switch into security mode too often when the temperature does not change for long time (i suspect the sensor or HA not to refresh when the temperature keeps being the same). Any advice for kind of sensor (wifi, zigbee or zwave?)

Hello @gaetan,

I have this issue with TuYa temperature sensor powered by battery. Those sensors don’t send the temperature if there is no change causing the safe mode in VTherm.

To avoid that, I have put the safe mode delay (named security) to 1,5 hours.

Then I switch to Zigbee and I change the TuYa wifi on battery with SONOFF Zigbee on battery too.
Then I don’t have any security mode now. In Zigbee and Z2M you can specify the max time between two measure:

I just recently started using VTherm and I love it.

I’d like to do one more thing: whenever the temperature is manually adjusted on one of the underlying TRVs, I would like to set the Temperature of the VTherm to that value.

I assumed using the context.parent_id within an automation would be a good starting point, since it should be null if the TRV state changes from a physical control adjustment.

But then, I never get an empty this.context.parent_id, so I cannot distinguish between manual and automatic changes.

Anybody maybe already achieved such a setup?

Hello @petwri ,

This is already the case. When you change something on the TRV directly, the VTherm will adjust to this new target.

Even if it is not recommended to change directly on TRV, this is possible. But remember that having two way to control the same TRV (through VTherm with Scheduler and directly on TRV) can leave to inconsistency.

I saw that changing on the TRV switches to manual mode, and the TRV stays on that mode.

But I want VTherm to take that TRV temperature setpoint as its new target and correspondingly adjust all underlying TRVs.

Use-Case: I have a room with multiple radiators, when I adjust one of them, that TRV-setpoint should be the target temperature for the whole room.

Edit: I just checked, because such a functionality seems to be offered by Advanced Heating Control, so it should work:

value_template: "{{ == 'comfort_change' and input_temperature_comfort != none and != none and trigger.to_state.context.parent_id == none and trigger.to_state.context.user_id == none }}"

But in my case, this.context, trigger.to_state.context as well as trigger.from_state.context are always the same, regardless if the change of the TRV comes from VTherm, or from an adjustment of the thermostat itself.

Hello, is it possible to display the humidity in the versatile-thermostat-ui-card as shown in the picture (red circle)?


I understand but I will not do that. Preset are done be not modified. If you change the target temperature, that means you don’t want presets.
This is totally at the opposite of the VTherm philosophy.

Hello, yes this is already a request: Feature Request: Humidity Data Integration for Better Thermostat Card Display and Calculation · Issue #167 · jmcollin78/versatile_thermostat · GitHub

I suggest to vote for it if you think it is important.

1 Like

Understood. Thanks for clarifying.

I struggle to get this configured correctly.

I just need to replace Betterthermostat addon and want this addon to do the exactly same thing.

Anyone achieved this?

why is it off?

Ok, I am now somewhat confused about VTherm’s behavior when a TRV is manually adjusted: is VTherm supposed to just ignore the change on the TRV, and readjust it during its next control cycle, or would VTherm change to Manual mode?

Because when I first tried VTherm, I was pretty sure it did the latter, and now it just stays where it was and doesn’t react to any external changes.

Have you tried enabling a preset? Is the underlying TRV maybe off?

The device itself is a bit wonky.

This is the Off state it takes when reaching target temp.

This is the heating stage:

where a sonoff devices has completly different state handling.

With VTherm you decide to turn the thermostat on or off and after it regulates the temperature.
VTherm never starts alone. I think it is a difference with BetterThermostat.

When you change the TRV of a VTherm over_climate (I suppose this is your case), the VTherm will follow the target temp set on the TRV. And because, you set manually a target temp, the VTherm switch in manual mode and turns off a preset if any was selected.

But it is not recommande cause it could be confusing to have many ways of controlling the VTherm (by one TRV it controls or directly via Scheduler on VTherm).

Hello everyone,
I’m currently migrating from jeedom toward HA and I’m very pleased with the flexibility of integration of third parties and the design possibilities.
I’m integrating my thermostat into versatile thermostat at the moment which are zigbee2mqtt based and I need to issue the same command twice when it comes to “modes” (like comfort to eco for example). If I choose a specific temperature I do not need to issue the command twice.
Anyone had this issue before ?

Hello @hargathor,

I don’t here about that kind of issue. What kind of VTherm do you have ? over_climate I guess. If yes, check that the underlying climate is receiving the temperature change event when you change preset on the VTherm.

If that don’t work, you should have an error in the log of something like that.

Hello @jmcollin ,

Sorry I wasn’t very specific indeed.

I use 4 VTherm configured as over_climate. I tried to check if the underlying thermostat received and applied the event but it seems that it doesn’t. The underlying thermostat change for 0,5s when I try to change from a manual setting to a “mode”. I need to apply the preset several times (two times in a row, if I wait I still need to apply it two times in a row).

I do not have anything in the log. Only these warning which seemed kinda weird since the temperature is available for each room. Also is it possible to specify which thermostat output the log, in my case all 4 of them are in error but it could be helpful in some cases.

2024-01-08 14:54:53.767 WARNING (MainThread) [custom_components.versatile_thermostat.pi_algorithm] Temporarily skipping the self-regulation algorithm while the configured sensor for room temperature is unavailable
2024-01-08 14:54:53.781 WARNING (MainThread) [custom_components.versatile_thermostat.pi_algorithm] Temporarily skipping the self-regulation algorithm while the configured sensor for room temperature is unavailable
2024-01-08 14:54:53.789 WARNING (MainThread) [custom_components.versatile_thermostat.pi_algorithm] Temporarily skipping the self-regulation algorithm while the configured sensor for room temperature is unavailable
2024-01-08 14:54:53.804 WARNING (MainThread) [custom_components.versatile_thermostat.pi_algorithm] Temporarily skipping the self-regulation algorithm while the configured sensor for room temperature is unavailable

thanks :slight_smile:

Hi, Since one week I am a user of the Versatile Thermostat. May I ask you to provide me some feedback regarding my settings? It helps me to tune my installation. If you have feedback or question, it is really appreciated.

Questions what I have:

  • What are the perfect settings (direction) for a gas fired heat floor system (is low temp system)?
  • I am now running on a 30 min cycles system; is this ok? Should I increase the time?

Results after 7 day’s:

I am quite positive, in the beginning the target temperature was not met. After this I increased the external Coefficient and I applied the auto_regulation_expert paramters. Since then the system meets the target temp. Since two day’s we have outside temp. below 0. So it is really nice to see the performance. I think my gas consumption increased slidly + have some temp fluctuations. And the internal temp meter ‘hangs’ sometimes. So I will switch back to a shelly + DS temperature meter


  • I live in a well isolated modern house of 10 years old
  • I have a heatfloor system @ all floors ( iam only using the Versatile Thermostat for the living room (woonkamer)
  • My heater is gas fired (via on/off system), the temperature of the water in the system is 35 degrees @ inflow
  • Since i have a heat floor system I heat 24 hrs a day @ 19 degrees
  • I have a Electo ws 5500 weather station; I use the external and internal temperature measurements

Versatile Thermostat (latested version) settings:

  • Central configuration
  • Thermostat living room (no open window or other configuration, just plain vanilla) no other rooms added
  • Thermostat over switch
  • Cycle duration: 30 min (is this ok?)
  • Coefficient to use for external temperature delta: 0.003
        kp: 0.2
        ki: 0.8
        k_ext: 0.1
        offset_max: 2
        stabilization_threshold: 0.0
        accumulated_error_threshold: 2.0

first picture: Target vs Current temp vs Power percent
2nd: Tagert vs realised temp vs on/off
3rd: outside temp
4rd: EMA temperature
5th: slope