Add native direct TRV valve control, instead of only setpoint-based climate control #253
zimivanende
started this conversation in
Feature Requests
Replies: 3 comments
|
This is the one feature that still keeps me on Versetile thermostat even tho the better feature set here. So very interested if this could be implemented as it also saves on cost from heating for me. |
0 replies
|
So I went ahead and done this myself |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Description
I’d like to propose native support for direct TRV valve control, especially for devices like the Sonoff TRVZB.
Today, the control model is mainly based on adjusting setpoints. That works, but for some TRVs there is a better and more deterministic approach: directly controlling the valve opening range instead of indirectly influencing behavior through target temperature.
The Sonoff TRVZB exposes separate numeric controls for valve opening and valve closing behavior. In practice, this makes it possible to constrain the valve to a precise operating band and therefore control the effective valve position much more directly.
The behavior is roughly this:
• Opening degree / max opening percentage
• 100% means the valve is allowed to fully open
• 0% means the valve is not allowed to open at all
• Closing degree / max closing percentage
• 100% means the valve is allowed to fully close
• 0% means the valve is not allowed to close, effectively remaining fully open
By adjusting those two values, the controller can force the TRV to operate within a narrow valve range and use that as the actual control output, rather than only pushing temperature targets.
A similar approach already exists in Versatile Thermostat. Its documentation describes “Direct valve control” for TRVs whose valves are controllable through Home Assistant number entities, and it explicitly mentions Sonoff TRVZB support. 
Why this matters
Setpoint-based control on TRVs is often indirect and noisy:
• TRV internal logic remains partly in charge
• external temperature compensation can still feel sluggish
• the room controller loses low-level authority over actual heat delivery
• fine modulation is harder when the TRV itself still interprets the request
Direct valve control would let this integration become the real control layer.
A possible design could be:
• add an optional “direct valve control” mode for supported TRVs
• allow mapping of:
• opening control entity
• optional closing control entity
• let the algorithm compute desired valve authority directly
• convert that to opening/closing constraints or a target opening percentage
• optionally expose safeguards for devices with firmware quirks
Versatile Thermostat documentation and discussion mention that Sonoff TRVZB direct valve support exists, but also note a Sonoff-specific caveat: configuring the closing degree can lead to incorrect hvac_action behavior on that device. 
So this request is not “copy blindly”, but rather “add a native version with device-aware guardrails”.
https://github.com/jmcollin78/versatile_thermostat/blob/main/documentation/en/quick-start.md
https://github.com/jmcollin78/versatile_thermostat/blob/main/documentation/en/self-regulation.md
Use case
I want the controller to decide something like:
• room only needs a little heat, keep valve in a narrow low-open band
• room is far below target, allow a wider opening band
• room is near target, keep the valve just barely open to avoid overshoot
This is especially useful with external room sensors and slow hydronic systems where setpoint chasing is less elegant than direct valve modulation.
Alternatives considered
No response
All reactions