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

Hi and thank you for your work on versatile thermostat! There is one question, I was not able to answer myself from the documentation:

I have some SONOFF TRVZB devices on my radiators and some external temperature and window sensors in place (mainly sonoff and aqara) managed by Z2M. Currently I am using the TRVs as “Thermostat over a valve”, which works fine (most rooms have 1 or two radiators). I have set the TRVs temperature offset to -7°C to ensure, that their automatic doesn’t interfere with the one from versatile thermostat.

Now I noticed, that TRVs can also be used as “Thermostat over a climate” with self-regulation and valve control. Are there any advantages of this mode compared to “Thermostat over a valve”?

Thanks in advance, Jan

  • Edit to add the information about the temperature offset

Hi, I recently configured VTherm as “Thermostat over a climate” with Tuya HY368. What settings should be made to smooth out the valve that opens and closes periodically.

What Auto-Regulation do you use?

I tried using Light, Medium, Strong, Slow, the picture does not change.

Do your underlying temperature sensors provide updates often enough? Have you set the “use internal temperature of the underlying”, because this can result in massive over-regulation.

Edit: I just saw this was the opening of the valve. What matters is the temp curve.

“use internal temperature of the underlying” is not set

What is your temp reading?

Hello @SilverLeaf

To investigate on regulation issue, we should have the attributes of your vtherm and some regulation curves.
This is explain here: versatile_thermostat/documentation/en/additions.md at f8050e2ed7e7da333a77ab5c9e466272f87d4c15 · jmcollin78/versatile_thermostat · GitHub

and here: versatile_thermostat/documentation/en/reference.md at f8050e2ed7e7da333a77ab5c9e466272f87d4c15 · jmcollin78/versatile_thermostat · GitHub

You can also install the Versatile Thermostat UI Card (GitHub - jmcollin78/versatile-thermostat-ui-card: A custom card for a Versatile thermostat in home assistant based on versatile_thermostat integration) which gives more informations on the current self-regulation settings.

Hi,
I’m doing some research in hardware to control the room temperature in my house (underfloor heating). In my research I encountered Versatile Thermostat as a good option to control everything from a software perspective.

But back to the hardware. I noticed that Versatile Thermostat allows direct controle of the valve (“VTherm over a valve”), but which thermoelectric actuators allow this kind of control? Or is this only for TRV’s?

I prefer thermoelectric actuators, since they are silent, my rooms already have temperature sensors and since my house has underfloor heating, my valves are hidden away somewhere centrally (per floor).

Hello @DriesA ,

This have been designed for TRV with a direct control of the valve through a number entity.
But any “system” in which a valve is controllable may fit.

1 Like

Is it possible to open the valve only in steps of like 20%?
Cause I believe there is not much difference between 3%, 8% and 12% for example, you just cannot achieve such small granularity. Even my original TRV has only 4 levels to set. Also you would reduce the frequency of opening/closing the valve with this…
I’m using Sonoff TRVZB for what it’s worth…

Hi, I starte using Sonoff TRVZB and i found following statement in docs:

Note: for Sonoff TRVZB you should not configure the “closing degree” parameter. This leads to a bug in the TRV and the hvac_action is no more working.

Is this still a case? How the bug manifest? I had it running with this for couple of days and didnt spot any issues (latest version of VTherm and trv firmware version 1.1.5

Would anyone be able to share working settings / config for setting up VTherm with the Sonoff TRVZB as I’m having issues?

I have read the docs in full. I’ve set them up as over_climate entities with direct valve control and only specified a valve opening entity as per the note in the docs referenced in the above post.

What I’m seeing is the VTherm hvac state conflict with the underlying state. So the VTherm states it is heating when the underlying is actually not. I suspect this is a common issue with Sonoff TRVZBs as their internal temp sensor isn’t very good, and they also have 1C of hysteresis.

I am using external temp sensors to combat this, specified in VTherm but I still see significant disparities between the current temps of the VTherm climate entity (which look correct) and the underlying entity (which are often too high or low).

If the underlying entity (i.e. he TRVZB) does not have a target above it’s current it appears the it won’t allow the valve to be opened and vice versa. The effect being that sometimes the VTherm initiates heating, but the radiators are still cold as the valves didn’t open so my target would never be reached.

I was using Better Thermostat before and saw similar but slightly different issues. I had hoped that VTherm with direct valve control would ‘just work’ if setup correctly as from reading the docs and this thread it appears many people are successfully using it.

I might try an idea I read elsewhere which is to setup an automation that sets the underlyings target to 30C when VTherm hvac_action is heating and 10C when it is not. However this feels both inelligent and like it may have unintended consequences. Surely if it were truly necessary every Sonoff TRVZB user would be talking about it!

Thanks in advance.

It is possible to do that with the following parameter regulation threshold:
Capture d’écran 2025-01-28 à 14.43.52

Set it to a percent level like 20 (maybe too much)

Yes this is the case as far I know. The hvac_action which is used to control the central boiler is not working if you use it.

hello @danieljclark

You need the opening degree AND the calibration offset to have the best experience.

You should not use the “use internal temp” of device as explained in the documentation now. This information was missing.

This is not working for me. If I don’t set closing degree entity, then VT is controlling only opening degree entity, so I end up with something like this:
image
Current temp is 24.7c, set temp is 22.5c. VT changed opening degree to 0 long time ago, but it is not really 0 due to the closing degree entity not changing. I can feel my radiator is hot when I touch it, so heating is on definitely.
When I set closing degree entity as well in VT, then everything works fine as it will set opening degree to 0 and closing degree to 100 for example.

I have SONOFF TRVZB by the way.

1 Like

Thanks for a great integration. Really excellent work and thank you for taking the time to reply.

Yes I have been using opening degree AND had set the calibration offset. I have not using the internal temp of the device (unless by accident setup error or bug), I’m using sensors elsewhere in the room (mixture of Awair, Sonoff and Aqara). These are the ones I have specified under Room Temperature in the “Main” VTherm config page for each. I have never had “use underlying internal temperature of the underlying” ticked for any of my TRVs.

I think there may be a fundamental logic issue the Sonoff TRVZBs firmware which prevents them from responding to certain valve set requests when the underlying hvac_action state conflicts with the command. They have to be in “heating” state to accept an increase in the valve percentage value and not heating state to accept a set request to a decreased percentage value.

It was this post in another thread that made me aware of this ‘feature’ of TRVZBs, and I’ve confirmed that I am seeing the same behaviour with latest firmware:

I have implemented a similar workaround to the above user. I have automations that set the target of the underlying to 30C whenever hvac_action of the VTherm changes to heating. Similarly I have automations that set the target of the underlying to 10C whenever hvac_action of the VTherm changes from heating to anything else.

This way when the VTherm attempts to adjust the valve opening % this actually gets applied and I hear the valve motor change. This seems to work well with sensible fine adjustments made by the VTherm to the opening percentage to hit and maintain the temperature around the set point. As only the VTherm is shown on my dashboard, it doesn’t matter to me what the target temperature of the underlying is set to as it’s not seen anywhere.

However if anyone has Sonoff TRVZB valve control working reliably without requiring a workaround similar to the above I’d appreciate seeing their specific settings. If the underlying internal temp perfectly mirrored the external temp (i.e. instant replication tracked to within 0.1C) this workaround wouldn’t necessary as there’d never be a conflict. I’ve never been able to get this to happen satisfactorily, either with my own automations via Z2m commands, Better Thermostat or Versatile Thermostat.

1 Like

Mine seems to be working and I have only specified opening degree as per the docs.

VT sends 0% open via the opening degree entity and the valve responds accordingly. I hear the change and feel the radiator start to cool down.

If I look at the states of each in Z2M, opening degree is updated correctly and closing degree is always 100. Never updates. I’ve never even tried to change it as I read in the docs not to.

As per my last post, it seems to me like you have to check the hvac action state of the underlying TRVZB at the time the new “valve open” command is sent. If it is “heating” then I don’t think the TRVZB accepts a new position that is less open than it’s present position (or 0 for closed). Hence the workaround to force the state of the underlying.

If you are able to confirm that the issue occurs only when the underlying hvac action state is conflicting with VT hvac action state, then it becomes a case of how best to ensure this doesn’t happen.