I decided to install some IoT equipment as an experiment, primarily to see if/how “home automation” would affect my behavior and decisions in daily life. I am basically using myself as a guinea pig, to study how technology will affect daily routine … and as a nice side effect, I get to dabble in electronics and embedded software!
Let me share with you how I designed and implemented a home automation solution in my house. The focus of these posts is not just on technology, on how I did it, but also on why I did it: what were my objectives? What were the expected vs the real benefits? Are there any lessons learned? This is about sharing my experience in defining and building something, not giving you my opinions on what you should want.
- Part 1 (this) is about my objectives and anticipated benefits
- Part 2 describes the implementation: design decisions, architecture, hardware, software
- Part 3 looks at the real benefits of the system, after several years of use, and shares some lessons learned
Technical Requirements and Constraints
- Low cost, no more than a few 100 € total cost of materials — after all, this is “just an experiment”. My own time doesn’t count (within limits), I enjoy tinkering and designing and building electronic circuits.
- Fall-back reliability: essential functions (like turning the lights on or off) must still work even when the IT infrastructure is down (sometimes called WAF, the wife acceptance factor … but it also matters for myself; after all, I have to live in this place!)
- Security: no potentially “hackable” access, from outside the home, to the home automation system, i.e.
- no open ports for remote access
- no reliance on cloud services
- Constraint: we live in a rented apartment, so I can’t make changes to the “hardware” of the house, such as the heating system itself, or the electrical wiring in the walls.
Here is what I hoped to get out of the system, when I started. In part 3 I will describe what I really got …
- Understand energy consumption: how much money do we spend on (gas) heating, on the washer & dryer, the freezer, our computers? Which behavioral changes would have a significant impact on our energy bill? What are the big ticket items? Is it worth worrying about how many times the washer runs in a week?
- State at a glance, of the entire apartment, e.g. before leaving the house: are all the lights off? Are all the windows closed? Are the washer and dryer off?
- Notification about events that may require a response from me. The washer has finished, I should go and put in the next load. Someone just called the landline phone, while I am out of the house, do I need to call them back immediately?
- Peace of mind: just after I start going on a trip, I wonder: did I forget to unplug the iron before leaving the apartment?
- Lighting control: automatically turn on/off hallway lights and accent lights in multiple rooms at night, when someone enters that room. Getting up in the middle of the night to get a glass of water from the kitchen, no need to fumble with the light switches anywhere, or navigate in the dark.
In addition to the specific features and benefits which I was able to describe at the start of the project, like “I want to know about the state of all windows”, I also decided that the architecture I choose should provide certain general capabilities, to enable future expansion in directions I couldn’t specify in detail when I started:
- Means for the home automation system to notify me of “events”, even though I couldn’t specify at the time what those “events” would be
- Means to add software applications for as-yet-unknown extended functionality, which might be off-the-shelf packages installed from a repository, or pieces of software I would write myself.
- The capability to integrate various pieces of equipment that communicate using different standards. I know at the start I would want to integrate some WiFi power switches, and MySensors low-power sensor nodes, but what else might I want to add in the future? Zigbee sensors or actuators? Homegrown sensors communicating via Ethernet?
- “Alexa, turn on the lights”: While voice control would be nice to have, I have no desire for integration with 3rd party, cloud-hosted home automation systems.
Part 2 describes the implementation: architecture, hardware, software.