Skip to content

Why zones don't really have heat_demand

David Bonnes edited this page Feb 10, 2021 · 2 revisions

NOTE: Upon reflection, I have implemented the workaround mentioned below.

Question: Why can't zones have a head_demand like the devices have? I see it in the controller UI (System Summary page), so...

Another way of asking the same question is: Can you tell when a zone is calling for heat?

TL;DR: They can't. You can't. Specifically: not with complete certainty.

You can see the relay_demand of the device that receives the call for heat from the controller. This is equivalent to the heat demand for the entire system.

Long Answer: It depends upon how keen you are on the truth...

A zone's heat demand is known only to the controller - it does not reveal this information, although it does inform the boiler relay of the net heat_demand of the system (when it calls for heat).

The controller 'determines' each zone's heat_demand of a zone, from the heat demand of the devices in that zone; it also takes into account the measured temperature of that zone (from the zone sensor)... what then happens if a thermostat (say a round thermostat) says the room is above setpoint, but some of the TRVs in that room have a heat demand?

In addition, it 'modulates' that figure according to the three distinct levels of optimization (optimal start/stop & the relatively new weather compensation/advanced load scaling features).

Thus, it 'knows' the heat_demand for each zone and a corresponding figure in shown in the Controller UI (NB: the figure shown in the Controller's System Summary page is a non-linear function of the zone's 'actual' heat_demand).

However, the Controller keeps quiet about it, specifically:

  • it doesn't announce this information via RF, so there's nothing to eavesdrop, and
  • it wont respond to an appropriately-constructed RQ for this information

I am thinking about extrapolating a zone's heat_demand from the information that is available (see below), but - and this is the bit about 'truth' - it would be an educated guess at best; previous efforts to do something similar with the RESTful API (i.e. the evohome integration in Home Assistant) have failed to produce reliable results.

Work Around: If you're desperate, then you can reasonably calculate the zone's heat_demand as the highest of all it's actuators - there is some evidence that this a reasonable thing to do. Or the average value?

Specifically, if there is only one actuator in a zone and if all of the system's optimizations are off, then that zone's heat_demand must the same as that of its actuator (as long as the TRV's measured temperature is quite close to that of the zone sensor). However, do note that the demand shown in the Controller's System Summary page is a non-linear function of this value.