Aurora started as a reasonable idea: one control plane for the TV channels, the devices, the scenes, the lists — a proper entity model instead of six vendor apps having six opinions. Channels, devices, scenes and schedules as first-class records with state machines. The data modeling is, if I say so myself, lovely. Integration layer over rip-and-replace, as always.
And yet. At some point every home automation project crosses a line where the house stops being automated and starts being opinionated.
Field observations
A scene named "cozy" is a hypothesis about human intent, and hypotheses fail. Motion sensors are honest but stupid: they report that something moved, and the cat is something. State drift is real — the platform believes the living room lamp is off, the lamp believes otherwise, and reconciling belief with reality is the actual job. If that sentence sounds like every ERP integration I've ever done, congratulations, you've spotted the pattern: a smart home is just a tiny enterprise with worse stakeholders. Sources of truth, event ordering, retries, idempotency. The lamp is a microservice. The cat is chaos engineering.
What made it actually good
The same thing that fixes enterprises: fewer, better abstractions. Scenes became small and composable instead of grand and psychic. Every automation got a manual override that always wins — after the 2 a.m. movie-night incident, the household review gate is a physical switch. Adoption, it turns out, applies at home too: the system that wins is the one your family actually uses, and my family uses the wall switch. I've made peace with that. Mostly.
Entity modeling: impeccable. Scene inference: humbling. Cat: unconvinced. Ship it.