Versatile Thermostat
jmcollin78/versatile_thermostat · v10.6.2
A full featured Thermostat for Home Assistant: presets, window, motion, presence and overpowering management
In Apple Home through HomeKit Bridge
What HomeKit Bridge makes of each kind of entity this integration creates, read from its source code. A device only gets the ones that apply to it.
| Entity | Shows up as | Note |
|---|---|---|
switch | Switch or outlet | |
climate | Thermostat | |
binary_sensor | Sensor (motion, contact, leak, smoke…) | |
sensor | Sensor (temperature, humidity, air quality…) | |
select | Mode picker (as switches) |
What people report
Thermostat layer over existing climate, switch and valve entities; works with Sonoff TRVZB, pilot-wire switches and MELCloud, though unreliable cloud climates may need the state-retry feature.
- Works3
- Partly works2
| Device | In Home Assistant | In Apple Home | What they said | Source |
|---|---|---|---|---|
| MelCloud Home climate | Works Cloud | Auto fan mode fixed for worded fan speeds one/two/threeSaved copyProblem On devices like MelCloud Home, `fan_modes` are exposed as `[auto, one, two, three]`. `choose_auto_fan_mode()` detects speed values by searching for the exact keywords `"low"` or `"1"`, so with worded speeds the detection fails: the `#1419` warning is logged, `_auto_activated_fan_mode` stays `None`, and `_send_auto_fan_mode()` returns immediately, the auto fan feature never changes the fan speed even when configured (e.g. `auto_fan_high`). ## Fix - Add `"one"` to the speed-detection keywords in `determine_fan_mode_contains_speed()` - Handle `"one"` in `fix_order_speed_modes()` for the … Excerpt saved from GitHub on 2026-10-23. | PR #2019 · 2026-07 | |
| Sonoff TRV (Zigbee) | Works Local | Delayed temperature resend bug fixed so TRVs turn off properlySaved copyHi, Thank you for creating this awesome add-on for Home Assistant! I noticed that my Sonoff TRVs sometimes don't turn off when they're set to off right after another action. It's one of my automations that turns them off, not me. I made the change proposed in this PR in my local setup, and it fixed the problem with my TRVs. The proposed fix: The lazy-TRV temperature resend scheduled by set_hvac_mode(HEAT/COOL) was only cancelled when a new HEAT/COOL mode was set. A HEAT -> OFF sequence within resend_delay_sec left the timer armed, so a set_temperature was sent to an underlying VTherm … Excerpt saved from GitHub on 2026-10-23. | PR #2074 · 2026-09 | |
| Sonoff TRVZB thermostatic radiator valve | Works Local | Stable with direct valve control; firmware 1.4.4 adds internal PID switch laterSaved copy… this very helpful solution, which works very well (for me)! :-) I switched from “Better Thermostat” to VTherm because I was having major problems with my Sonoff TRVZB thermostats trying to turn my living room into a sauna by repeatedly opening the thermostats to 35°C. With VTherm, these problems have completely disappeared and I have a pretty good solution that works stably (apart from a slight overshoot of the target temperature after ventilation, but that's not a problem at all). I raised this issue to draw attention to a new firmware update for the Sonoff TRVZB thermostats, which has been … Excerpt saved from GitHub on 2026-10-23. | Issue #1735 · 2026-02 | |
| Midea Auto Cloud climate | Partly works Cloud | hvac_mode silently drifts; fix for repairing drift proposedSaved copyFixes #2020 ## Problem Some climate integrations (cloud-polled devices like Midea Auto Cloud) silently drift away from the hvac_mode VTherm asked for. Investigating on real hardware revealed two distinct issues: 1. Silent drift is never repaired: VTherm only resends hvac_mode when its own internal state changes, so an underlying that bounces back to a previous mode (or is changed externally by remote/app) stays out of sync indefinitely. 2. Back-to-back commands cause the bounce-back in the first place: sending `set_temperature` immediately after `set_hvac_mode` makes the Midea device accept … Excerpt saved from GitHub on 2026-10-23. | PR #2021 · 2026-07 | |
| Mitsubishi heat pump via MELCloud | Partly works Cloud | Sometimes fails to turn on; maintainer cites MELCloud unreliability, retry feature availableSaved copyI’m trying to: Use a MELCloud climate entity as the underlying climate entity of a Versatile Thermostat (over_climate) to control my Mitsubishi heat pump. And I expect: When Versatile Thermostat changes the heat pump from OFF to ON, I expect VTherm to send the corresponding command to the underlying MELCloud climate entity so that the heat pump starts. But I observe this: Sometimes when VTherm tries to turn the heat pump ON, the underlying MELCloud climate entity remains OFF and the heat pump does not start. When this happens, I can see in Home Assistant that the MELCloud climate entity has … Excerpt saved from GitHub on 2026-10-23. | Issue #2036 · 2026-08 |
Gathered from GitHub issues, pull requests, discussions and docs, and from r/homeassistant. These are individual reports, so check the linked thread and the date before you buy.
How it connects
Calculated
Works out its values from other data rather than talking to a device.
Details
| Installs (analytics) | 3,710 (0.52%) |
|---|---|
| GitHub stars | 1,217 |
| Latest version | 10.6.2 (2026-10-22) |
| Set up in the UI | Yes |
| Maintainers | @jmcollin78 |
| License | MIT |
Notable forks
Forks with stars, or with code pushed at least 90 days after the original’s last push. Useful when the original goes quiet.
| Fork | Stars | Last push | Description |
|---|---|---|---|
| KipK/versatile_thermostat | ★ 5 | 2026-10-19 | A full featured Thermostat for Home Assistant: presets, window, motion, presence and overpowering management |
In ReReHome
Whatever HomeKit Bridge shares reaches Apple Home as normal HomeKit accessories behind your Home Assistant bridge, so ReReHome shows and controls them like any other.
Bridges get their own settings page listing the accessories behind them.