six colors

by Jason Snell & Dan Moren

By Jason Snell

Adding HomeKit to incompatible devices with Homebridge


Apple’s HomeKit system for communicating with smart-home devices started out slow, but it’s picked up steam in the past year. The first few smart-home devices in my house, alas, date from the before time: I’ve got a Nest thermostat, a couple of first-generation LIFX light bulbs, and some Belkin WeMo smart outlet switches that offer integration with Amazon Echo but not HomeKit.

In recent months I’ve bought Philips Hue lights, Lutron Caseta smart light switches, and Koogeek smart outlet switches that are all HomeKit compatible, and that’s made me much more appreciative of HomeKit. I’m also now frustrated that half of my smart-home tech talks to HomeKit (and shows up in the Home widget in Control Center) and the other half doesn’t.

The smart move would be for me to replace my non-HomeKit equipment with HomeKit-compatible devices. I bought a few more Koogeek switches, in fact, so I could retire the WeMo models. But I don’t really want to swap out my Nest for an Ecobee.1 And, anyway, this is silly! I’ve got a server running 24/7 in my house.2 Surely there’s some sort of software out there that will bridge these devices and make them accessible to HomeKit.

Yes, surely there is. It’s called Homebridge, and yesterday I got it up and running in about half an hour. Now my Nest, and those LIFX bulbs, and even the WeMo switches show up in my Home app.


Homebridge is a server that runs on Node, which you can install from the Node website or install yourself via this excellent how-to guide by my pal Dave McFarland.3

Like the name says, Homebridge acts as a bridge between non-HomeKit devices and HomeKit. Individual devices are supported via plug-ins to Homebridge. I installed homebridge-nest and followed the instructions to sign up for a Nest developer account and paste the right codes in the right configuration files. After a couple of pauses to correct faulty JSON syntax in the config file, I was presented with a QR code I could scan to add Homebridge to my HomeKit network. And just like that, my Nest thermostat appeared in HomeKit.

I later added in the Homebridge-LIFX plug-in for my old smart lights and the Homebridge-WeMo plug-in for my older smart switches, restarted the server, and I was in business. All my smart home devices are now manageable in a single interface—Apple’s Home app.

Now the next trick. I don’t want to launch Terminal and type homebridge every time I reboot my server. So I followed these instructions to set Homebridge to start automatically in the background.

Is this all easy? No, it’s not. It requires you to download a bunch of stuff and get dirty with configuration files and the Terminal. But if you’ve got a Mac that’s running 24/7 and a bunch of HomeKit-incompatible devices, it might just be worth your time to get it all working. It took me less than a half an hour to do it all, start to finish, and so far I’m quite glad that I did!

  1. The Ecobee is good, and I might buy it now if I was starting from scratch, but I’m not spending $249 on a new thermostat just to get HomeKit. ↩

  2. I’ve heard from several people that they set up a Raspberry Pi to run Homebridge, so that would be another option if you don’t have a Mac server. ↩

  3. You’ll need to install Xcode from the App Store, too.)  ↩

[If you appreciate articles like this one, help us continue doing Six Colors (and get some fun benefits) by becoming a Six Colors subscriber.]