Home Automation Manifesto
Principles and philosophy for building an independent home automation system under your control.
This manifesto defines the principles that guide how I build and maintain my home automation system. It's not a tutorial or a step-by-step guide. It's a statement of intent about what matters when you automate your home.
These principles emerge from years of experimenting, failing, and learning. They're not theories: they're decisions I made that worked. Or that didn't work, and that's why I avoid them.
The Three Fundamental Principles
My strategy is based on three non-negotiable principles:
- Don't depend on third-party services or clouds. If a device or service needs the internet to work, it will eventually stop working. When the manufacturer decides it's no longer worth maintaining the service, your system breaks. It's not your fault, but it's your problem.
- Be able to operate things manually and not depend on home-assistant. The automation system should be an additional layer, not a requirement. If Home Assistant fails, the lights must keep working. Physical switches aren't decoration: they're your safety net.
- Have control over everything I use. Control means you can run it locally, modify it if you need to, and understand how it works. If you can't run it on your hardware, it's not really yours.
The Central Brain: The Key Choice
You can choose any system as the central brain of your home automation. This choice will strongly influence the rest of the decisions and investments you make. I've chosen Home Assistant because it's open source, well-maintained, and has a large community.
As the brain of the system, it's very hard to go wrong with Home Assistant. Great compatibility, very active development, many integrations and add-ons available.
I run it on a Raspberry Pi. It runs locally, under my control. There are no cloud servers that can disappear. No forced updates that break everything. No third-party dependencies that change the rules of the game.
Home Assistant's architecture took me a while to adopt, but once you understand it, you get much more out of it. It's not for dummies. It's not that easy to learn about this, because almost the entire community is focused on "making it work in my house", not on understanding the principles.
If you can't run it locally, it's not really yours. The cloud is convenient until it isn't.
MQTT: The Common Language
Underneath it all, MQTT (messaging for IoT) is what most enables everything to talk to each other. For a while I tried to ignore it, but knowing a bit about it helped me a lot to continue.
MQTT is the protocol that allows devices from different manufacturers, different protocols, and different technologies to communicate with each other. It's the glue that holds the entire system together.
You don't need to be an MQTT expert, but understanding the basic concepts, topics, messages, brokers, gives you control over how your devices communicate. And when something doesn't work, you can debug directly at the protocol level.
Dumb Bulbs, Smart Switches
I follow the philosophy of "dumb bulbs, smart switches". I use normal devices and automate them later. This gives me considerable independence from brands, styles, and models.
Instead of buying smart bulbs that depend on proprietary apps and cloud services, I use normal bulbs and automate the switches. If the bulb burns out, I replace it with any standard bulb. If the automation system fails, the physical switches keep working.
This philosophy extends to everything: I use normal devices and automate them later. I don't depend on the device manufacturer maintaining their app or service. The device works as a device, and the intelligence is in the automation system, not in the device itself.
Physical switches aren't decoration: they're your safety net.
Vendor Independence
"Integrated" solutions are usually quite closed, and beware that the vendor doesn't abandon you in a few years (or months). I prefer to be independent of vendors.
There are many standards so you can choose the one you like best. Zigbee when I can. Tasmota when they support open source firmware. Simple and cheap devices from AliExpress that work with open standards.
I don't commit to any brand. I don't commit to any protocol. I choose based on what I need at each moment, and I always prioritize open standards over proprietary solutions.
If a device needs the manufacturer's app to work, it will eventually stop working.
Local Control, Remote Access
I have the software running on my home's local network, and I can access it from the internet via HTTPS through a reverse proxy that also runs on Home Assistant.
Everything works locally. Control is local. Communication between devices is local. But if I need remote access, I do it through my own infrastructure, not depending on third-party services.
This gives me the best of both worlds: the control and independence of a local system, with the convenience of remote access when I need it. But remote access is optional: the system works perfectly without the internet.
Conclusion
These principles aren't absolute rules. They're guides that help me make decisions when building my home automation system. Every decision, what device to buy, what protocol to use, how to configure access, is evaluated against these principles.
The result is a system that works for me, under my control, independent of vendors and external services. A system that improves my life without complicating it. A system that, if it fails, remains usable.
If these principles resonate with you, you can apply them to your system. If not, that's fine. Not everyone needs the same level of control. But if you decide to build an independent system, these principles will help you avoid the most common pitfalls.