You can control a centralized boiler. As long as it's possible to trigger or stop the boiler from Home Assistant, Versatile Thermostat will be able to control it directly.
The principle implemented is globally the following:
- a new entity of type
binary_sensornamed by defaultbinary_sensor.central_configuration_central_boileris added, - in the VTherm configuration you indicate whether the VTherm should control the boiler. Indeed, in a heterogeneous installation, some VTherm must control the boiler and others not. You must therefore indicate in each VTherm configuration whether it controls the boiler or not. For each VTherm controlling the boiler you can associate a power,
- the
binary_sensor.central_configuration_central_boilerlistens to state changes of equipment from VTherm marked as controlling the boiler, - as soon as the number of equipment controlled by the VTherm requesting heating (i.e. its
hvac_actionchanges toHeating) or the total power exceeds a configurable threshold, then thebinary_sensor.central_configuration_central_boilerswitches toonand if an activation service has been configured, then this service is called, - if the number of equipment requiring heating falls below the threshold, then the
binary_sensor.central_configuration_central_boilerswitches tooffand if a deactivation service has been configured, then this service is called, - you have access to 4 entities:
- one of type
numbernamed by defaultnumber.boiler_activation_threshold, gives the activation threshold. This threshold is in number of equipment (radiators) requesting heating and not the number of VTherm requesting heating. - one of type
sensornamed by defaultsensor.nb_device_active_for_boiler, gives the number of equipment requesting heating. For example, a VTherm with 4 valves of which 3 are requesting heating will set this sensor to 3. Only equipment from VTherm that are marked to control the central boiler are counted. - one of type
numbernamednumber.boiler_power_activation_thresholdwhich gives the power activation threshold. If the total power activated by Vtherm controlling the boiler is exceeded then the boiler will be activated, - one of type
sensornamedsensor.total_power_active_for_boilerwhich gives the last calculated total power.
- one of type
You therefore have permanent access to the information that allows you to control and adjust the boiler activation.
All these entities are attached to the central configuration service:
In this example:
- the boiler is off,
- it activates if 3 equipment are active or if the total active power is 500,
- the number of active equipment is 1,
- the total activated power is 230.
The active power calculation depends on the VTherm type:
- for all VTherm based on TPI the active power is the power configured for the equipment x
on_percentfrom the TPI algorithm. For all these VTherm the power is therefore variable and evolves according to the heating power requested. Powers have no units, you can put whatever you want, the important thing is that all powers expressed in all VTherm have the same unit. - for
over_climateVTherm the calculated power is all or nothing. If the equipment is active (is_device_ative) then the power is that of the VTherm otherwise it is zero. There is no way in this configuration to modulate the requested power.
To configure this feature, you need a centralized configuration (see Configuration) and check the 'Add Central Boiler' box:
On the next page, you can provide the configuration for the actions (e.g., services) to be called when the boiler is turned on/off:
The first parameter specifies a delay in seconds before activating the boiler. The default value is 0, meaning the boiler is activated immediately as soon as a threshold is crossed. If you need to allow time for the valves to open (for example), set a positive value in seconds. Some valves for underfloor heating systems may take several minutes to open, and it could be harmful to activate the boiler pump before the valves are fully open.
The second parameter corresponds to the keep-alive delay in seconds. This parameter allows you to periodically resend the boiler activation command to ensure the boiler remains turned on. For example, if a boiler command is not properly received or if the boiler turns off on its own, the same command will be sent again at regular intervals. The default value is 0, which means keep-alive is disabled. If you want to enable this feature, set a positive value in seconds (for example, 60 to resend the command every minute). This parameter is optional and can be left at 0 if you don't need it.
The actions (e.g., services) are configured as described on the page:
- The general format is
entity_id/service_id[/attribute:value](where/attribute:valueis optional). entity_idis the name of the entity controlling the boiler in the formdomain.entity_name. For example:switch.chaudierefor a boiler controlled by a switch, orclimate.chaudièrefor a boiler controlled by a thermostat, or any other entity that allows boiler control (there is no limitation). You can also toggle inputs (helpers) such asinput_booleanorinput_number.service_idis the name of the service to be called in the formdomain.service_name. For example:switch.turn_on,switch.turn_off,climate.set_temperature,climate.set_hvac_modeare valid examples.- Some services require a parameter. This could be the 'HVAC Mode' for
climate.set_hvac_modeor the target temperature forclimate.set_temperature. This parameter should be configured in the formatattribute:valueat the end of the string.
Examples (to adjust to your case):
climate.chaudiere/climate.set_hvac_mode/hvac_mode:heat: to turn the boiler thermostat on in heating mode.climate.chaudiere/climate.set_hvac_mode/hvac_mode:off: to turn off the boiler thermostat.switch.pompe_chaudiere/switch.turn_on: to turn on the switch powering the boiler pump.switch.pompe_chaudiere/switch.turn_off: to turn off the switch powering the boiler pump.- ...
To find the correct action to use, it's best to go to "Developer Tools / Services", search for the action to call, the entity to control, and any required parameters. Click 'Call Service'. If your boiler turns on, you have the correct configuration. Then switch to YAML mode and copy the parameters.
Example:
In "Developer Tools / Actions":
In YAML mode:
The service to configure will then be: climate.sonoff/climate.set_hvac_mode/hvac_mode:heat (note the removal of spaces in hvac_mode:heat).
Do the same for the off service, and you’re ready to go.
Each successful boiler activation or deactivation sends an event from Versatile Thermostat. This can be captured by an automation, for example, to notify you of the change. The events look like this:
An activation event:
event_type: versatile_thermostat_central_boiler_event
data:
central_boiler: true
entity_id: binary_sensor.central_configuration_central_boiler
name: Central boiler
state_attributes: null
origin: LOCAL
time_fired: "2024-01-14T11:33:52.342026+00:00"
context:
id: 01HM3VZRJP3WYYWPNSDAFARW1T
parent_id: null
user_id: null
```yaml
event_type: versatile_thermostat_central_boiler_event
data:
central_boiler: true
entity_id: binary_sensor.central_configuration_central_boiler
name: Central boiler
state_attributes: null
origin: LOCAL
time_fired: "2024-01-14T11:33:52.342026+00:00"
context:
id: 01HM3VZRJP3WYYWPNSDAFARW1T
parent_id: null
user_id: nullUn évènement d'extinction :
event_type: versatile_thermostat_central_boiler_event
data:
central_boiler: false
entity_id: binary_sensor.central_configuration_central_boiler
name: Central boiler
state_attributes: null
origin: LOCAL
time_fired: "2024-01-14T11:43:52.342026+00:00"
context:
id: 01HM3VZRJP3WYYWPNSDAFBRW1T
parent_id: null
user_id: nullSoftware or home automation control of a central boiler may pose risks to its proper operation. Before using these functions, ensure that your boiler has proper safety features and that they are functioning correctly. For example, turning on a boiler with all valves closed can create excessive pressure.





