03 Home Automation

Home automation that runs itself most days. An agent for when it doesn't.

My home automation runs on Home Assistant, an open-source platform that lives on a Raspberry Pi the size of a wallet sitting in a closet. The hardware footprint is tiny. The software side is where the interesting work happens.

The main Home Assistant dashboard with tab strips for media, blinds, scenes, and rooms; cards showing live weather, alarm state, door status, and thermostat readings.
Main dashboard

Home Assistant is the integration layer. Ring cameras come in over Amazon's cloud APIs. ESP32 microcontrollers run ESPHome firmware I flash myself, talking to HA over the native local TLS API. Zigbee devices form a self-healing mesh, each router relaying for its neighbors; Zigbee2MQTT translates that mesh into MQTT topics on a local Mosquitto broker, and HA subscribes to the topics it cares about. WiFi appliances come in over vendor APIs or local REST polling. The MQTT broker is the catch-all for anything without a first-party integration: custom sensors, scripts, IoT devices that need to publish state from outside the box. Different protocols, different transports, same state machine.

Zigbee mesh visualization: a single coordinator node at the center, surrounded by dozens of router nodes connected by signal lines into a dense self-healing mesh, with two offline nodes at the edges.
Zigbee mesh

Day-to-day it does the usual mix of work. Presence-based lighting. Climate that adjusts on schedule and on who's in the room. Scenes for different times of day. Conditional automations that respond to sensor state. Each one is just a fancier light switch on its own; together they handle most of the home-running work I'd otherwise be doing by hand.

All of it lives in source control. Every configuration change goes through git so I can see what changed, when, and roll back if a deploy breaks something. The full system backs up automatically to local plus remote storage, so a wiped Pi means a fresh install and a restore, not a weekend rebuilding scenes from memory.

One of my agents has the home in its scope. It watches integrations for failures, helps me debug configuration when something breaks, and surfaces patterns it notices in the data (the kind of suggestion that feels obvious in hindsight but you'd never write down yourself). The home runs itself most days. The agent is for the days when it doesn't.

It's a passion project. The kind of problem that lets me practice consumer-AI patterns at home: orchestration, observability, agent-assisted operations with a human in the loop. The things I'd want a small team to handle if this were a real product. Building it in my own house is the cheapest way to find out what works.