Skip to content

Heating & Climate

Every climate question people actually want answered is the same two numbers about a room:

  • Start the heating so the bedroom is warm when we get up.
  • Is a window open, or is it just cold outside?
  • Will the pipes freeze by morning?
  • What would a 17 °C overnight setback actually cost?

Without those numbers each one is a threshold somebody guesses at — and a threshold that is right in one house is wrong in the next. A stone cottage and a new flat lose heat an order of magnitude apart, and so do two rooms of the same house.

The two numbers

They are Newton’s:

What it isWhat it means
kLoss coefficient, per hourHow fast the room falls towards outside. Its reciprocal is the time constant — “this room holds its heat for about eight hours”
hGain, in degrees per hourHow fast anything puts the heat back

Both are measured per room from a month of hourly history, against one outdoor reference — and the reference brAIn picked is recorded where you can see it, because every k in the house is measured against that one choice.

What you need

  • One outdoor temperature sensor. Named something obvious (“Outside temperature”) or simply not assigned to an area — that is what a weather integration’s own sensor usually looks like.
  • At least one indoor thermometer that is in an area, so a finding can name a room.
  • Both reporting in the same unit. k is unit-free only while both halves of the difference are in the same degrees; a Fahrenheit reference against a Celsius room is a loss rate wrong by 1.8, with nothing downstream able to tell.
  • About a month of history, and some variation in the weather.

With no outdoor sensor there is no model at all, and ⚙ → Diagnostics says so in words. Every number here is a difference from outside, so without one there is nothing to measure a room against — and “no climate findings” and “no room could be measured” look identical from every other surface.

The measurement is taken at night, on purpose

A south-facing room warms with the heating off. A fit that includes an afternoon reports a room that gains heat as it gets colder outside — confidently, and in every house with a window facing the sun.

So k is measured only in the deep-night hours: no sun, and in most houses no schedule either. Measured on a simulated sunny room, the all-day fit is refused outright while the night fit lands on the physics.

A freezer has a temperature device class too

So does a hot water tank and a barbecue probe, and each would fit beautifully. A room is a reading that spends the month inside a band people live in — anything else is a temperature that is not a room’s.

The five findings

CheckWhat it catches
climate.underheatedA room asked for a temperature it never reaches
climate.heat_lossA room that empties much faster than the rest of the house
climate.preheatThe heating starts too late — the room gets warm after everyone is up
climate.windowA room losing heat faster than its own insulation allows
climate.freezeWhen this room reaches the temperature pipes are at risk at

The heating never quite gets there

climate.underheated is the one nothing errors about. The thermostat calls, the valve opens, the boiler runs, and the room sits two degrees under its setpoint all winter.

It needs the arithmetic and the evidence: the room must never once have been seen at the temperature it is asked for, over a month of hours. That second half is load-bearing — a thermostat that switches off at its setpoint never lets a room show what it could have done, so a well-heated room’s measured ceiling understates it, and a check reading the ceiling alone would fire on the healthiest houses first.

It also says nothing at all if the month held no cold night. A January answer cannot be extrapolated out of an August.

The heating starts too late

climate.preheat is what the model was built for. Your schedule warms the bedroom to its setpoint at 07:40 in a house that is up at 07:00 — every weekday, with nothing recording a fault.

Three measurements have to agree before brAIn will say so:

  1. When this house actually gets up — from rhythm, not from an hour in a box.
  2. What the room reads at that hour of an ordinary week, from its baseline.
  3. How long the climb takes, from the model.

Then it names the time the call would have to come — “the heating would need to start at about 05:15.”

It reports weekday mornings only (that is where a schedule exists and where rhythm has the days behind it) and it says nothing until the wake time is measured. A preheat time pinned to a typed-in 07:00 is a guess wearing a number.

It requires proof the heating does arrive

A room still short two hours later is climate.underheated’s finding, not this one — and “start earlier” is advice that cannot work on a room that never gets there at all.

Something is open

climate.window fires on a room falling more than twice as fast as its own k allows — heat leaving by a route the walls do not have.

This check is only sayable because the model exists. The same half-degree in ten minutes is a draught in one room and an ordinary evening in another, and no fixed threshold can tell them apart.

The pipes

climate.freeze takes the current reading and the current outdoor temperature and asks when the room reaches 5 °C — where water in an outside wall starts to be at risk, well before the room’s own thermometer reads freezing.

It only reports a room that is already falling, rather than assuming nothing is heating it: no state in Home Assistant says the heating is off, so the fall is the evidence.

Live checks read five-minute history

climate.window and climate.freeze read five-minute statistics rather than hourly ones, because an hourly average cannot see a window opened forty minutes ago — it is still inside the hour that has not closed.

When you hear about them

FindingUrgencyWhy
climate.freeze, climate.windownow — breaks quiet hoursA freeze warning at 3am is exactly when it is wanted, and an open window costs money for as long as it stays open
The other threewhenever — quiet hours hold themA room two degrees short all winter is not two degrees shorter at 3am, and a schedule that starts late will start late again tomorrow

One room, one fix

Checks that would name the same room stand down for each other — underheated over heat_loss, freeze over window. A draughty room that also never reaches its setpoint is one card with one fix, not two cards with two. Two rows about one room is how a work list stops being read.