TL;DR My house federates nine ecosystems that do not talk to each other: Zigbee, Matter, HomeKit, proprietary Wi-Fi, a vendor cloud, SSDP, infrared, MQTT, and an open API from the French education ministry. 87 devices, 929 entities, 75 automations. For over a year everything has gone through an agent that drives the server API, reads the logs and applies the fixes. Ideas that used to cost too much to start, I now start. And a diagnosis can now cross five systems in one evening. Two things still need a human: throwing a breaker, and deciding what the house should impose.
For two years, one chore sat on my list and never left it.
My morning routines wake my kids, open the shutters and open the gate. They must not run during school holidays. There was already a guard, a switch I flipped by hand, sixteen weeks a year. I forgot half the time.
The clean version was obvious. The official school calendar is an open dataset. All it takes is a REST sensor, a filter on the right region, a binary sensor testing whether today falls inside a holiday period, and a sync job. Half a day of work, maybe. I never did it.
It was built in one sitting, tested end to end, on 18 September.
Why heterogeneity changes the maths


The full inventory is in the previous episode: 87 devices, 929 entities, 43 integrations. One number matters here. Matter was supposed to be the standard that tidied this up, and in my house it drives nine devices out of eighty-seven. The rest is a long tail of exceptions that will never go away: a Somfy kit reachable only through HomeKit, a workshop door driven over infrared, eight Wi-Fi bulbs from a Chinese vendor, cameras on ONVIF.
On a single-protocol setup, an agent has little to add. Here, the smallest idea crosses three systems and two configuration formats.
Home Assistant is a federation layer. And you pay for a federation in context, the context you must hold in your head before each change.
The friction was never the syntax
I used to think the expensive part of home automation was writing the YAML. I barely write any now. The time goes into recovering context. Which automations touch this entity. Which of my three day-lists has to stay in sync with the other two. Which guard, written eight months ago, is about to overwrite the command I just sent.
A real example. My television cut-off routine "only worked for one second". It was neither the routine nor the plug. A guard automation with no conditions at all, written months earlier, switched the plug back on ten seconds after every cut.
The answer sat in the entity's logbook, one line under the cut, and finding the culprit meant cross-referencing it against seventy-five automations. I had never opened that logbook. The agent read it, found the conflict and added the missing condition in the same sitting, off a single sentence from me: "the cut only holds for a second".
The thirteen spoken announcements were rewritten in a single pass, by a script applying the same patch to every call site. By hand that is thirteen forms. Morning volumes were lowered across five automations at once. Wednesday was added to three day-lists that have to stay consistent, or the television cuts off and never comes back on.
None of these tasks is hard. They had been waiting for months because they are tedious, and for no other reason.
The ideas that finally clear the bar


The list of things I am willing to attempt got wider. That change shows up on no activity log.
The school calendar. The one from the opening, synced every six hours. It now governs the morning, evening and bedtime routines in one move. Sixteen weeks of annual chore removed by an integration that drives no device at all.
A per-facade solar model. Each shutter decides on its own, from its room temperature and the sun's position on its facade. The orientations come from the land registry, cross-checked against a month of temperature readings set beside the sun's path. The same work traced where the office heat came from, and a ceiling fan tuned to the room temperature came out of it. It then picked out the phase of the electrical panel that could still take a load. Both answers contradicted my first calculation. The details are in the last episode of the series.
These are hours of analysis that pay off once. Nobody spends a weekend correlating thirty days of temperature against solar azimuth to tune six shutters. They were not hard to finish. They were too expensive to start.
Before I start an idea, one question is left: is this worth being true?
What the house picked up along the way
Over the same period, the house gained these use cases:
- A floor plan in the dashboard, with twelve temperatures placed where the rooms actually are.
- An away mode that arms itself once both phones have been gone for ten minutes: water heater off, camera surveillance widened, a notification on return.
- A silent-shutter alert that warns if any of the six stops answering for thirty minutes, and warns again when it comes back.
- A ventilation alert for the office, firing when outside drops two degrees below the room.
- A per-phase consumption view on the three-phase meter, with the big loads identified one by one.
None of these five is remarkable, and none would have justified a Saturday on its own. They exist because none of them cost a Saturday.
The interaction I had not imagined
The house speaks. Thirteen announcements a day, from wake-up to bedtime, on living-room and bedroom speakers. The early versions went out at the right time, at the right volume, and nobody moved.
The wake-up is the clearest example. The first version announced, then started the music. Being woken by a voice did not go down well. The sequence was flipped the same day — music first, volume ramping up over eighty seconds, the instruction laid over the top at the end. Three iterations in one day, until the ceiling volume felt right.
When the cost of a change falls to almost nothing, you start tuning things you would never have opened.
A house becomes something you adjust by feel, same-day, in small strokes.
What still belongs to humans


The list is short and it is stable.
Cutting the power. The only cure for a wedged application stack is a power cycle. I learned that "I reset it" and "the module lost power" are two different claims. It took three attempts to find the right breaker.
Refereeing the agent. On that same shutter, it announced "the radio stage is dead, replace the hardware" four minutes before the module came back on its own. The reasoning held up. What it lacked was waiting another ten minutes. An agent moves fast, including toward a wrong answer, and nothing in its tone flags the difference.
Observing. I told it a bedroom faced south-south-east. The resulting maths left the shutter open all morning while the room sat in full sun. It took looking at the room to catch the error.
Deciding what the house imposes. An agent optimises what you hand it to optimise. It has no way of knowing that a fixed-time television cut is an end-of-day ritual rather than a school-night constraint, or that Friday does not deserve an exception. I twice proposed rationalising that calendar. Twice the right answer was no.
What I am taking away
- Count what did not exist. A before-and-after only shows the old tasks, done faster. It misses everything I would never have started.
- A heterogeneous fleet is where an agent pays off most. Nine ecosystems means nine sets of documentation and nine ways of lying about their own health.
- Go through the API, never the files. A service that manages its own configuration will rewrite it. Everything described here went through the server's public interface, which makes every change reversible.
- Prefer unavailable to wrong. My outdoor sensor declares itself unavailable as soon as it drifts more than 5 °C from the forecast. It freezes decisions instead of corrupting them.
- Write the alerts that are missing. A shutter sat offline for three days and nothing told me. The group calling it every morning skipped the absent member without raising an error.
- Half of this build was writing. An automation that changes nobody's behaviour does not exist.
The fleet will not converge. In five years there will still be a proprietary bridge, an infrared remote and a bulb refusing its own network. But the school-holiday sensor has been running for two days, and that switch is one I will never flip by hand again.
Read the series: Ten Years of Home Automation Alone. One Year With an Agent — the inventory, ten years of sediment, and a measurement of what changed. I Changed the Evening Schedule Three Times in One Week — the house that holds the shape of the day. I Took the Choices Out — thirteen spoken announcements, and why the audio was never the problem. My Office Sits at 29 °C at Night — six shutters deciding on their own, and what the model told me not to do.