An Accidental Hobby
After haphazardly buying cheap wireless outlets online, I realized that my plugs worked with rfoutlet, an open-source project that let me control the system over the Internet. (Talk about luck.)
With that initial open-source project, I was able to get the baseline functionality working. It was up to me, though, to extend it into a simple, robust solution that would let me have comprehensive control over my house.
First, I needed to have a way to tell which outlets were on and which were off, especially since most of my ideas required it. To do that, I wrote a simple state saver that was directly tied to the central mechanism so nothing would get out of sync. I also wanted the ability to control outlets for an entire room, so I added in a routine to flexibly call one or more outlets with a basic URL. Those two things then allowed me to design a touch interface that would show me which rooms were on and let me turn on a bunch of lights all at once.
Taking some inspiration from a very old system and combining it with my affinity for ultra-functional designs, I have my interface partitioned into three main parts:
- Time info, useful for the “permanent” device in my kitchen that’s always on
- Room controls, to turn on and off all outlets in a room
- Scene controls, turning on various combinations of outlets depending on the mood or setting
Additionally, I reflected my actual floor plan in the design of room controls. It makes the most sense to a visual, spatial sort of person like me, and it definitely proves its worthiness when I can zip through my place, tapping a room on as I pass by.
All of this is contained in a lightweight, responsive webpage that includes plenty of old browser support so that I can access it from any device at home—from old iPhones to menubar apps.
Once I had that system in place, I wanted to see how much I could embellish it. That’s where I included homebridge and homebridge-http, two additional open-source projects that connect with my state saver system. By integrating those into my project, I can politely ask Siri to “turn on the kitchen,” and my request will turn on the lights just as if I had tapped that button.
My next challenge with this system will be to figure out dimmable switches and the usefulness of non-light switches. More tinkering awaits.