Handles Heating Ventilation and Cooling Plant
Description
This event handler listens for and creates HVAC events, the events that are created are typically consumed by the configurations for:
- Zones This maps to a discreet area of the building that can be individually controlled. Typically a zone will have at least one sensor and one 'valve'.
- Zone Groups This may map to a physical or virtual grouping of zones. An example of physical grouping would be a pumped manifold, the pump needs to be running if any of the zone valves are in demand.
- Heat Sources This maps to a device that is capable of sourcing or sinking heat.
Overview Diagram

Configuration
Zones, ZoneGroups and HeatSources need to be defined
Zones
Zones are simply defined as a 'key' and a 'name' to be displayed for that zone, Example:
<zone key="zone1" name='Hot Water' />
Zone Groups
You need to define as many zone groups as you need. It does not harm to define more than you need. Again a ZoneGroup definition is simply a key and a name, Example:
<zonegroup key="1" name='ZoneGroup1' />
Note that ZoneGroups can be virtual, it that their sole function is to connect a group of zones to heat sources
Heat Sources
Managing heat sources is one of the key functions of the HVAC event handler, for this to work properly you need to define the heat sources you have and their types.
Heat Source Types
- Boiler type="boiler" : This is a simple type, a boiler is simply a single source that acts like a gas, oil or electric boiler
- MultipleBoiler type="multiboiler" : This is a complex type, it is used to set up a group of identical or near identical boilers that will be managed as a group. This means that as demand increases so more boilers in the group will be called upon. It also means that the order of boiler call-up is adjusted to level the wear across the group.
- Solar type="solar" : This is a simple type, it is used to set-up a single solar panel that will have varying degrees of availability depending on weather conditions
- MultiSolar type="multisolar" : This is a complex type, it is used to set-up a multiple solar panels that are face diffent directions and elevations. Each panel will have varying availability depending on weather conditions
- GroundSource type="ground" : This is a simple type, this heat source generally has very little interaction, zones and zonegroups create demand and it is expected to autonomously serve that demand.
HVAC whole file Example
<?xml version="1.0" encoding="utf-8"?>
<eventInterfaces>
<eventInterface module='EventHandlers.HVAC' name='HeatingVentilationAC'>
<zones>
<zone key="zone1" name='Hot Water' />
<zone key="zone2" name='Dining' />
<zone key="zone3" name='Office' />
<zone key="zone4" name='Hall' />
<zone key="zone5" name='Sitting Room' />
<zone key="zone6" name='Garden Room' />
<zone key="zone7" name='Up Bath' />
<zone key="zone8" name='Ensuite' />
<zone key="zone9" name='Gnd Bath' />
<zone key="zone10" name='Playroom' />
<zone key="zone11" name='Kitchen' />
<zone key="zone12" name='Master Bed' />
<zone key="zone13" name='Landing' />
<zone key="zone14" name='Guest Bed' />
<zone key="zone15" name='Notused' />
<zone key="zone16" name='Kids Rooms' />
</zones>
<zonegroups>
<zonegroup key="1" name='ZoneGroup1' />
<zonegroup key="2" name='ZoneGroup2' />
<zonegroup key="3" name='ZoneGroup3' />
<zonegroup key="4" name='ZoneGroup4' />
<zonegroup key="5" name='ZoneGroup5' />
</zonegroups>
<heatsources>
<heatsource key="1" type="boiler" name="Boiler" />
<heatsource key="2" type="ground" name="Heat Pump" />
<heatsource key="3" type="multisolar" name="Multi Solar">
<elevations>
<elevation key="east" type="elevation" name="East"/>
<elevation key="south" type="elevation" name="South"/>
<elevation key="west" type="elevation" name="West"/>
</elevations>
</heatsource>
<heatsource key="4" type="solar" name="Solar" />
<heatsource key="5" type="multiboiler" name="Multi Boiler" >
<boilers>
<boiler key="1" name="Boiler 1" />
<boiler key="2" name="Boiler 2" />
</boilers>
</heatsource>
</heatsources>
<zonemaster active="1" />
</eventInterface>
</eventInterfaces>
