My Smart Home (Almost) Maintains Itself
openHAB with Kiro Crew, a private repo and a pipeline that checks itself.
I describe in a chat what my home automation should do. An AI agent with read access to the openHAB logs and REST API turns it into a pull request; after my merge, a GitHub Actions runner deploys it, checks the log and rolls back on errors. 34 pull requests in just over two months, from a dew-point check for drying laundry to Alexa scenes.
Where I started
I've been running openHAB at home for years: KNX, a PV system with a battery, a wallbox, ventilation and a dozen other systems. The installation works, but every change costs me evenings. Writing rules, adjusting the view in the app, digging through the log for the one error that matters.
For a few weeks now I've been doing it differently. I write in a chat what I want. An AI agent (Kiro Crew) implements it as a proposed change in my Git repo. I read it, click "Merge", and a small pipeline deploys the change and checks on its own that everything runs cleanly.
The setup
1. An agent with access to the right things. Kiro Crew runs on my home server. It can do three things: read the openHAB logs, query the current state of every device through the REST API, and prepare changes in a copy of my configuration repo. I also gave it a few rules, for example: never change the live system directly and when asked about something, read the log first and only answer with evidence. When I correct it, it remembers that for next time.
2. A private GitHub repo. My whole openHAB configuration lives in a private repo. Every change is a pull request (PR) with a description: what the problem was, what was changed, how it was tested. Passwords stay out.
3. A pipeline that checks itself. A GitHub Actions runner runs on the openHAB server. It is a small service that starts automatically on every merge:
Me (chat) → Kiro Crew → Pull request → me: Merge
│
Pipeline on the openHAB server:
fetch config → wait for reload → check log
│ │
✅ message "Deploy OK" ⚠ automatic rollback
to the previous version
If an error shows up in the log after the deploy, the change is rolled back automatically. A broken rule is live for a minute at most.
A typical evening
Me: The garden lights should have been on long ago. Why are they off?
The agent reads the log. The dusk rule fired on time, but the command never arrived. The KNX gateway had been unreachable since noon, and every KNX value had been frozen since then. I restart the gateway, the agent checks the connection, and the lights come on by themselves.
Me: Build me a notification for when KNX goes down.
Ten minutes later a PR is ready, tested offline. I merge, the pipeline deploys it, and the agent confirms in the log that the new rule is running.
That's how practically every change goes: wish → diagnosis with evidence → PR → merge → check.
What came out of it
In just over two months, 34 pull requests have come together, from automatic irrigation to a TV simulator. Four of them show well what's possible:
Drying laundry in the office. openHAB compares the humidity in the office with readings from the nearest MeteoSwiss weather station and computes the dew point. The app says "air out" or "don't air out", a push notification comes when it's worth it, and a second one later says the window can be closed again.
"Alexa, have a nice day." When I leave, the ground-floor lights and the ventilation switch off, and Alexa tells me whether a door or window is still open. "Alexa, is anything open?" answers exactly that question.
A bug I would never have found. An existing rule was supposed to stop the car from charging from the grid as soon as it's plugged in. It never worked, because it waited for a status my wallbox never reports. The agent found this in the source code of the wallbox integration.
A clear home screen. The app now shows what matters at a glance:
PV system ☀510W 🏠722W 🔋37%
Shutters 2/9 CLOSED
Temp/Weather 10.5 °C · don't air out
Washer 42 min left
Wallbox CHARGING · 3.7 KW
Small wishes like "make that upper case" or "use a house icon" now take two minutes. Before, I would never have found the time.
What convinces me
- Diagnosis instead of guessing. The agent shows me what happened, with log lines as evidence.
- I stay in control. Nothing goes live without my merge, and every change can be traced.
- It learns along the way. A mistake I point out once, it doesn't make again.
Good to know
- The limits are intentional. For anything that needs admin rights or passwords, the agent gives me the command and I run it myself.
- The real-world test is mine. Whether Alexa actually speaks or a row fits in the app, only I can see. Once, my "she says nothing" was what led to the actual bug.
- Passwords don't belong in the repo.
Conclusion
An agent with access to logs, configuration and API, plus a private repo and a pipeline that checks itself: with that, my home automation went from "never touch a running system" to something I enjoy extending all the time.
To build it yourself: install Kiro Crew under its own user and paste the setup prompt into the first chat. The agent guides you through the rest.
AGENTIC AI SMART HOME OPENHAB
← BACK TO GO AGENTIC