Advanced Presence-Based Heating Engine & Custom Thermal Control Dashboard

Hi everyone,

After months of refinement, I’ve finally finished my fully automated heating system and a dedicated dashboard extension for my Home Assistant setup. My goal was to move away from rigid schedules and create a system that treats the house as a “living entity” that responds to occupancy and intent.

The “Brain” (The Logic Engine)

The backbone is a complex automation engine (YAML-based) that manages house modes (Home/Away/Night) using people as the primary truth for occupancy.

Key Features:

  • Intelligent House Mode: Uses person entities and binary_sensor presence signals to determine state, with logic to prevent “mode flapping” during the night.
  • Pre-heating on Approach: Using iOS shortcuts and webhooks to calculate ETA and warm the house dynamically before we arrive.
  • Timed Manual Holds: If a user manually adjusts a TRV, the system respects that intent for a set duration before returning to the “Heating Policy” automation.
  • Wet Room Boosts: Automated logic to handle bathroom/towel radiator demand independently.

The “Beauty” (The Dashboard)

I’ve extended the glassmorphic aesthetic of my main dashboard into a specialized Thermal Control view.

  • Adaptive Central Dial: Changes context based on the selected room.
  • Live Snapshots: Real-time temperature/humidity traces across the house.
  • Efficiency Insights: Local AI-generated insights based on boiler runtime and history.
  • Heating Policy Settings: Rather than having to change the figures within scripts/automations, an inbuilt section to the dashboard that controls all figures pertinent to the Heating Policy.

Video Walkthrough: I’ve put together a detailed video showing the dashboard animations in action and a look at the thought process behind the project:

Hardware:

  • Gateway: HA on RPi 4
  • Valves: Aqara Smart TRVs
  • Boiler Control: Tado X (Understated/Invisible integration)
  • Presence: Aqara mmWave sensors (FP2, FP300)

I’d love to hear your thoughts on the logic, especially how you guys are handling weighted average temperatures or complex multi-zone priority!

In case you are interested, below is the video I created to showcase the main dashboard last year.