EcoEdge AI — Predictive Heating Control for Home Assistant

Hey everyone! :wave:

I wanted to share a project I’ve been building that uses Home Assistant as the foundation for AI-driven predictive heating control. It’s called EcoEdge AI, and the goal is simple: save energy without sacrificing comfort — automatically, for any heating source.

What it does

EcoEdge AI connects to your Home Assistant and silently learns how each room in your home heats up and cools down. It builds a unique thermal model per room (using Newton’s Law of Cooling — the same physics used in building energy simulations), and combines that with a live 8-day weather forecast to predict the optimal heating setpoint for the next 24 hours.

No manual tuning. No schedules to maintain. The system learns from your data and improves every night.

Our goal is to optimise energy regardless of the source — gas boiler, heat pump, electric radiators, underfloor heating, district heating. If it heats your home and Home Assistant controls it as a climate entity, EcoEdge AI can optimise it.

How it works:

Every room loses heat at a measurable rate. That rate depends on insulation, windows, wall thickness — and crucially, on weather conditions outside. EcoEdge AI measures this “heat loss coefficient” (we call it k/h) for each room individually, and uses it to answer one question:

Given the forecast for tonight, what’s the lowest setpoint that still keeps the room comfortable?

That recommended setpoint is shown in the dashboard. Right now the system is in shadow mode — it observes and advises, but does not change your thermostat. Automatic control will be opt-in per room in a future update.

Weather-aware decisions

The AI uses real-time and forecast weather data to adjust predictions continuously:

  • Outdoor temperature Primary driver of heat loss
  • Wind speed Wind increases heat loss through walls and gaps
  • Wind direction North winds hit exposed walls harder than south winds
  • Wind gusts Peak gusts cause momentary heat loss spikes
  • Humidity High humidity affects perceived temperature and condensation
  • Cloud cover Clouds reduce solar gain on sunny days
  • Solar radiation Sun heats rooms directly — reduces heating need
  • Precipitation Rain + wind = highest heat loss conditions

What you see in the dashboard:

  • Heat loss k/h per room — a real measurement of your insulation
  • AI Setpoint — what we’d recommend right now
  • ML Schedule (next 24h) — an hour-by-hour prediction of optimal setpoints based on the weather forecast
  • Estimated savings % — how much heating energy could be saved if AI setpoints were applied
  • HVAC state history — when your boiler actually ran, over the last 24 hours
  • Confidence score — how much data the model has seen for each room (builds up over days)

The HA integration

There’s a custom component that listens to EVENT_STATE_CHANGED for your climate entities and posts state data to the EcoEdge backend. It’s lightweight — no polling, just forwarding what HA already knows.

Custom component (open source):

:point_right: https://github.com/ecoedge-dev/ha_ecoedge_ai_thermostat

Dashboard sign-in:

:point_right: https://dashboard.ecoedge.io/

Current status:

  • Shadow mode only (no thermostat writes yet)
  • RC thermal model (physics-based, per entity)
  • KQ model variant for rooms with variable heating output
  • ML shadow model (LightGBM, trained on all past RC/KQ decisions across all homes)
  • Open-Meteo for weather (no API key needed for users)

Would love to hear from others who have experimented with thermal modelling or predictive heating in HA. Happy to answer questions about the approach!

Laughs at the term ‘predictive’ in an environment where there are teenagers that leave doors and windows open, change your heat temperature settings to ‘beach’, and don’t contribute to the energy bills. Will your AI be able to cope with this?

Hi @IOT7712 ,

Great point — thermal mass and inertia are exactly why simple reactive thermostats waste energy.

You’re right that aggressive 1-minute polling can cause rapid on/off cycling, which is inefficient and hard on the heating system. EcoEdge uses Home Assistant’s EVENT_STATE_CHANGED events rather than polling — so it only reacts to actual state changes reported by the thermostat itself, not at a fixed interval.

More importantly, the system works on a predictive horizon rather than a reactive one. The RC thermal model accounts for the heat capacity of the room — it estimates how long the space takes to reach setpoint and uses that alongside the weather forecast to plan ahead, rather than reacting to instantaneous temperature readings.

Thermal inertia is actually a feature here, not a problem to work around — a room with high thermal mass needs less heat input to stay stable overnight, and the model learns that from your data.