I have a ducted air conditioning system made by iZone. It works fine. There’s an app. The app does what apps do. You tap buttons, things happen. It’s perfectly adequate.
But I’m a developer, and perfectly adequate is never enough. I wanted to control my AC from the terminal. I wanted to type a command and have my house cool down. I wanted to ask an AI assistant to set up my bedtime routine and have it actually do it. Not some hypothetical future integration. Right now, on my local network, with no cloud dependency.
So I built it.
The iZone system has a bridge device on your local network that speaks a simple HTTP API. You send JSON commands, it controls your AC. The bridge also announces itself via UDP broadcast, so you can discover it automatically without knowing its IP address. The protocol isn’t officially documented for end users, but it’s straightforward once you poke around. Query the system state, send commands to change settings, query individual zones. That’s basically it.
The CLI is a single Python file with zero external dependencies. No pip install, no virtual environment, no package management. Just Python’s standard library. I wanted something I could drop onto any machine and run immediately. It uses http.client directly because the iZone bridge can’t handle chunked transfer encoding, which urllib.request sometimes produces. A small quirk that took longer to debug than I’d like to admit.
The basic commands are what you’d expect. izone status shows everything. izone on and izone off do the obvious. izone mode cool, izone fan auto, izone temp 23. You can control individual zones too, which is where ducted AC gets interesting. Cool just the bedroom at night. Open the study and kitchen during work hours. Close everything else to save energy. izone zone 2 --mode auto --temp 22 and you’re done.
But the real fun started when I added MCP support.
MCP is the Model Context Protocol. It’s an open standard that lets AI assistants call external tools. You write a server that exposes functions, and any MCP-compatible assistant can call those functions through natural language. Claude, Codex, OpenClaw, whatever supports MCP. You ask your AI to do something, it figures out which tool to call, and it calls it.
So now I can open my terminal and say “it’s bedtime, cool the master bedroom to 23, close everything else, set the fan to low, and turn it off in two hours.” The AI calls the comfort setup tool, which turns on the AC, sets the mode and fan speed, opens the right zones, closes the others, saves my current defaults, sets a sleep timer, and schedules a background process to restore my normal settings when the timer expires. One sentence. Done.
That last part took some thought. If you set your fan to low for bedtime and then fall asleep, your fan stays on low forever unless something resets it. So the CLI has a defaults system. Before making temporary changes, it snapshots your current settings. When the sleep timer expires, a background process restores everything to how it was. You wake up and your AC is back to normal without you touching anything.
I also added schedule support. The iZone system has nine schedule slots that can be configured as timed schedules or run on demand as scenes. Movie night. Morning pre-cool. Weekend sleep mode. You configure them once and trigger them whenever you want, either from the CLI or through the AI assistant.
The whole thing is about 600 lines of Python for the CLI and another 400 for the MCP server. It’s not complicated. The iZone API is simple, the CLI is simple, the MCP server is simple. That’s the point. Home automation doesn’t need to be a sprawling ecosystem of cloud services and subscription fees and vendor lock-in. Sometimes it’s just a Python script that talks to a box on your network.
What I like most about this project is the workflow it enables. I don’t open an app. I don’t unlock my phone. I don’t navigate menus. I type a sentence in my terminal and my house responds. It sounds trivial but the friction reduction is real. When something is easy enough, you actually use it. When it requires opening an app and tapping through three screens, you just live with being slightly too warm.
The whole project is open source on GitHub if you have an iZone system and want to try it. No dependencies beyond Python 3 for the CLI, and just the mcp package for the AI integration. It discovers your bridge automatically, caches the IP, and works out of the box. If you don’t have an iZone system, the approach still applies. Most smart home devices have local APIs. Most of them are simpler than you think. And MCP means any tool you build can be controlled by any AI assistant that supports the protocol.
I’ve been using it for a few weeks now and I can’t go back to the app. The terminal is faster. The AI integration is genuinely useful, not a gimmick. And there’s something deeply satisfying about telling your computer to cool your house and having it just work.