The OpenTherm Gateway integration in Home Assistant 2026.11 gets two number entities, "Control setpoint 1 override" and "Control setpoint 2 override". Pull request #182856 by mvn23, the integration's code owner and author of the pyotgw library it uses, was merged on 16 October 2026 at 12:03 UTC by joostlek.
What the entities change
The OpenTherm Gateway (OTGW) sits between an OpenTherm thermostat and the boiler and can rewrite the messages between them. The control setpoint is the temperature of the water the boiler should send into the heating circuit, not a room temperature. Normally the thermostat works it out. With the new entities, Home Assistant replaces that value for circuit 1 or circuit 2, anywhere from 0 to 90 °C in 0.1 °C steps. Setting 0 hands control back to the thermostat.
Circuit 1 could already be overridden with the opentherm_gw.set_control_setpoint action, which has no field for a second circuit. Circuit 2 is new, and both overrides now exist as entities that can sit on a dashboard or be set with number.set_value.
Both entities appear on the OpenTherm Gateway device and are disabled by default, so you have to enable them first. They use assumed state: Home Assistant shows the value the gateway accepted and goes back to unknown once the override is 0. When Home Assistant stops or the integration is unloaded, it now resets the second circuit's override to 0 as well. Circuit 1 and the maximum modulation override were already reset there.
Read the warning first
The documentation pull request (#48282, still open on 18 October) puts a warning above the new entities and links to a page by the gateway's designer about running it without a thermostat. That page explains why controlling a boiler from outside is harder than it looks:
- heating reacts with a long delay, so switching on below the target room temperature and off above it gives large swings;
- modern boilers are generally most efficient at low water temperatures, so short burns with a high setpoint can waste energy;
- if the controlling program crashes, or the computer reboots to install patches right after setting 80 degrees, the house may get quite warm.
Against that last risk, the designer writes, the gateway requires a setpoint of 8 degrees or more to be repeated once a minute. Otherwise it goes back to the setpoint from the thermostat, or 0 when no thermostat is connected. The new entity sends one command each time you change it, and neither the pull request nor the set_control_setpoint function in pyotgw repeats it on a timer. If you drive the override from an automation, for example your own weather-compensation curve, check how your gateway firmware behaves before you rely on it.
Who it is for
People who already write their own heating logic in Home Assistant, mainly, and anyone with a boiler that serves two heating circuits. Everyone else can leave the entities disabled; the thermostat keeps working as before.