350 m², 7 climate zones — heating, cooling and humidity held from one setpoint each
- Floor area
- 350 m²Floor area
- Climate zones
- 7Climate zones
- Group addresses
- 237Group addresses
- Dead band per zone
- ±0,5 °CDead band per zone

Overview
A 350 m² private house where the automation scope is climate: air conditioning, underfloor heating, humidification and blinds. Two implemented floors are published here. We wrote the control logic ourselves rather than wiring thermostats to actuators and hoping.
Challenge
Every zone here has three ways to change the temperature: an air conditioner, an underfloor heating loop and — indirectly — a humidifier. Point all three at the same room without a shared rule and they will work against each other. The classic failure is a floor loop that keeps heating right up to the point where the air conditioner starts cooling, and the two then run against one another all evening.
The second problem is the measurement itself. A control loop is only as good as the number it is given, and one sensor reports the temperature at one point on one wall. In a room with a glazed facade, a warm floor and a draught path, other points in that same room differ by several degrees. A single reading makes the loop chase a number that describes almost nothing.
A stuck sensor is worse than a missing one. A missing sensor is obvious; a sensor frozen at a plausible 22 °C looks healthy and quietly holds the whole zone at the wrong temperature.
Solution
Each zone runs one rule with a dead band of ±0.5 °C around the setpoint. Below the band it heats, above it cools, and inside the band both outputs are released. That last part is the one people get wrong: holding the previous state inside the band is what lets a heating loop run all the way to the cooling threshold. The band exists to protect compressors and valve drives from short cycling, not to keep equipment running.
A season flag locks cooling out in winter, so a warm afternoon cannot start an air conditioner in a house that is in heating mode.
The temperature a zone acts on is not one sensor but an aggregate of several, published to the zone as a single value. Outliers are rejected against the median of the group rather than averaged in — averaging alone does not protect against a sensor stuck at a plausible but wrong value, it just spreads the error across the zone. With fewer than three readings there is no majority to compare against, so the check stands down instead of guessing.
If no valid reading is left, the outputs hold their last state and the rule logs a warning. Acting on a bad number is worse than not acting.
Systems & Technologies
Built in-house
In numbers
- Climate zones
- 7Climate zones
- Humidifier zones
- 6Humidifier zones
- Blind drives
- 15Blind drives
- Group addresses published
- 237Group addresses published
- Floors implemented
- 2Floors implemented
- Devices per zone under one rule
- 3Devices per zone under one rule
Project Details
- Object type
- Private house
- Area
- 350 m²
- Technologies
- KNXClimate
Discuss a Project
Explore the actual project
350 m² house · 7 climate zones · 237 published group addresses
Loading group addresses…
Result
Seven zones run on the same rule, so the behaviour is identical everywhere and there is one place to change it. Adding a zone is a config block, not a new program.
The published export covers the two implemented floors — 237 addresses, searchable below and downloadable as CSV.
Related reading
One setpoint, three devices: what a climate zone has to get right
Underfloor heating, an air conditioner and a humidifier pointed at the same room will fight each other unless one rule owns all three. The dead band, the season lock and the sensor problem — with the code.
Read articleWhy one temperature sensor per room is not enough
A thermostat controls the point where its sensor hangs, not the room. What the error costs, why averaging alone does not fix it, and the module we run — published in full.
Read article