I Haven’t Used a Light Switch in over a Year

Or “This Millennial is Trying to Kill the Light Switch Industry”

TL;DR: I automated the lights in my apartment. There’s a video at the end if you don’t feel like readin.

For the longest time I’ve had a big interest in home automation, it’s been a dream of mine to have a smart home that reacts to my needs with minimum input from my part.

In 2012 I saw the LIFX Kickstarter campaign and backed it for eight smart light bulbs. Their premise was simple, light bulbs that connect to your WiFi and you control them with your phone. Six years ago I was still living at my mom’s house, which is rather big, so we distributed the light bulbs around the house and used them scarcely.

I moved out of my mom’s shortly after but it wasn’t until the end of 2016 that I moved into an apartment all by myself, and this gave me the perfect opportunity to start developing the system I have had in mind for a while.

The main goal I set for my automated home system was simple: never to have to touch a light switch again.

A little over a year ago I pretty much reached that goal. I can’t say I haven’t touched a light switch in my apartment since, because sometimes the bulbs get disconnected from the network and the only way to reconnect them is to turn the switch off and back on, but I haven’t used them to control the lights, which was the essence of my goal.

For the past year I’ve slowly improved the functionality based on my experience with the system, there’s been a lot of trial and error, and some instances where I was left with a system with a few awkward behaviors that I had to work around for a couple of days, but it works really well now.

It also looks pretty cool.

Lately I’ve read a lot about integrating smart devices — light bulbs, garage doors, thermostats, cameras, etc — with HomeKit or Google Home, but usually what they achieve is to change the input device from a physical switch to a digital one, and in many cases it’s slower to use the digital switch, even if you use Siri, Google Home or Alexa.

Another thing to note is that not everything can be fully automated, for example, if you set the garage door to open whenever you enter the garage, it might open in the middle of the night when you go find a tool, which is undesirable and could be even dangerous.

Lights are special in the sense that the way we use them is pretty straight forward. When we enter a room, we turn the lights on, when we leave a room or go to sleep, we turn them off.

That’s one of the main reasons I chose to make my lights smart, the desired behavior is predictable, the other main reason is that I had the LIFX bulbs to play around with, and finding motion sensors was easy enough.


Hopefully by now you’re curious about all the things the light system in my apartment can do, so here’s a list of it’s main features. You will also find a video below where you can see them in action.

Automatic Light Switching

This is the main feature. I have a motion sensor in each of the areas of my apartment, and whenever I move to a different area, the sensor is triggered and the light is turned on and other areas are turned off.

One neat thing I implemented is something I call “pre-heating”. In my apartment, four rooms — the living room, bedroom, bathroom and TV room — are connected to the same hallway, so it’s a given that whenever I’m in that hallway, I’m going to enter one of those four rooms (there isn’t a lot to do in the hallway).

Whenever the hallway motion sensor is triggered, all those rooms enter “pre-heat” mode, where their lights are turned on at 50% brightness, and once the motion sensor in one of the rooms is triggered, the room is fully turned on.

This is pretty useful because it takes around two seconds from the time the motion sensor detects motion to the command being executed by the lights, so this helps you avoid entering a dark room at night.

Smart Color

Another one of the main features is the smart color. The system keeps track of the time of the day. I have 5 “times of day” setup: Morning, Work, Day, Evening and Night. Each time of the day has a set of rules for each room, which dictate the temperature/color and brightness of the light.

For example, during work hours the lights in my living room/office are bright and white, which is better for working, but late at night, the lights are dim and warm, so if you get up in the middle of the night for a glass of water, you won’t be blinded by bright lights.

This set up is not system-wide, each house has it’s own setup configure to the owner’s needs, though currently my apartment is the only one in the system.

Companion iOS App

I’ve been an iOS developer for a long time, so obviously I built an app for my phone to control the lights in the few situations that require manual input.

It’s a rather simple app that allows me to see if the lights are on/off, which rooms are active, and toggle any of the rooms and light scenes.

This app works remotely, so I can control my lights from far away, if required.

Location Triggers

The iOS app also tracks my location in the background and manages the lights whenever I leave or arrive to my apartment. When I get within 50 meters of my apartment, the lights are turned on, and when I get farther than 50 meters away, the lights are turned off.

The result is that lights are on by the time I open the door and I don’t have to worry about turning them off when I leave.

Scenes

If you looked closely at the screenshot you might have guessed what scenes are, they are basically presets that change the lights in a single room, overriding the current rules.

The one I use the most is the “Movie” scene, which dims the lights in my TV room to make it more comfortable to watch a movie, a TV show or play video games. The name “Movie, TV Show or Video Games” was too long and I couldn’t find a good icon for it.

Siri and HomeKit

HomeKit is designed to control individual devices, you can group them and add some automation rules, but it wasn’t enough for me, so I configured HomeKit (and thereby Siri) to work in a very similar way to the iOS app I built.

Each “light” in HomeKit is actually a room or a scene, so if I tell Siri to turn on the living room, it will relay that information to my system and my system will handle it by enabling that room and setting the correct lighting.

The system works really well with minimal input, but there’s currently no way for my system to figure out when I’m going to bed (yet), so I set up a “Good Night” scene in HomeKit, so at night I can say “Hey Siri… Good night”, and Siri will turn off the lights.

If you’re more technically inclined and you are wondering how this works, I set up Homebridge in a Raspberry Pi and I used the HTTP plugin to communicate with my server.

IFTTT Notifications

Another neat thing I added is an alert endpoint. I connected this with IFTTT to receive different notifications on my apartment.

I currently have two notifications setup, whenever the International Space Station flies above my apartment all the lights flash blue three times, and whenever an Uber is arriving to pick me up they flash orange.


There are a more things I’ve implemented over this past year, and I have a few more in my to do list, but this should give you a good idea of how the whole thing works.

In the video below you can see most of the features in action, and if you want to know more you can contact me with the links at the bottom.

Sorry for the shaky scenes, I didn’t have a lot of equipment to work with so I had to improvise.

Want to learn more?

I can talk about this for hours so if you want to know more details, feel free to contact me on twitter. You can also find my email and other social media profiles on my website.