Selecting a smart home platform

Surveying open-source home automation

Posted by David Haley on June 05, 2020 · 10 mins read

#hardware  ·  #iot  ·  #smart-home

My home came with Z-Wave switches controlled by a Wink2 Hub. Z-Wave is radio for home automation devices. Wink is a smart home platform; the hub is the hardware “bridge” between apps and the physical radio signals.

On May 6 2020, Wink announced the free service would move to a $5/mo subscription model:

What the tweet doesn’t mention is that users were given one week to decide; not paying would mean losing access to Wink-controlled devices. I’d lose access to my kitchen pendants altogether: they don’t have a physical switch, as the master switch has a Wink Relay installed. Then, I’d lose voice control (via Google Assistant) over everything else. Believe it or not it’s really integrated into my life, but that’s another story.

They later announced an extension but the damage was done. I didn’t want my home depending on a company that either couldn’t plan, or thought it was ok to give just a week’s notice to pay up or lose devices. Would they do it again? I did a little research; the company had been plagued by issues, and in 2019 reviewers began dropping highly favorable recommendations. Interestingly, the original company had gone bankrupt in 2015 due to a certificate expiration disaster, then sold again in 2017 to i.am+.

I set off for alternatives. I didn’t know much about home automation; I’d used my Wink with Google, and that was that. After reviewing commercial options it wasn’t long before I thought to myself: what if I could build this?

Open source vs commercial

Generally speaking, commercial tends to “just work” and only work the way they wanted it to; open-source tends to be more customizable, with a sometimes bumpy ride.

Furthermore many open-source projects assume developer experience. Some more than others; I had no desire really to compile my own binaries. As a younger man I did enough of that, these days I care more about things just working. So I was skeptical of open source smart home software at first. I knew how frustrated I’d be if my smart home needed constant TLC to keep alive.

I was also feeling burned by Wink, and read mixed reviews of various commercial options. I was unimpressed with Samsung’s Smartthings based on my experiences with a smart fridge, oven, and dishwasher (RIP ). In fairness I have no idea how well their automation stuff works.

But honestly, I’d always wanted an excuse to play with a Raspberry Pi. On a whim I searched for “rapsberry pi z-wave”, found the Home Assistant open-source project’s Z-Wave page, and down the rabbit hole I went…

Hardware selection

First up: what are my options for running something? I needed some kind of Z-Wave USB radio and a computer to plug it into.

Computer requirements

  • Integration.
    The hardware platform needs to integrate with both the software and the USB radio.

  • Small.
    I don’t want something bulky, mostly for the aesthetic.

  • Cheap.
    I don’t need to play 3d video games off this thing or even output video. All it’s doing is providing a web server and some background services.

  • Ecosystem.
    In case I want to expand or customize the device at some point, I want a rich ecosystem of (easily) compatible devices, accesories like cases, etc.

Survey

I took a look at Home Assistant’s installation instructions and saw they provide ready-made images for several hardware platforms. That’s ✓ because like I said I don’t wanna build any images.

I was pretty sure I wanted a RaspberryPi (RasPi) because I’d heard so much about it. The ASUS Tinkerboard seemed a bit overkill at $90 vs an entire kit for ~$65. It’s also twice as bulky as the RasPi.

The Odroid was a bit big too, but more importantly Z-Wave support seemed sketchy. I searched for “odroid zwave” and found forum posts from years ago like this one. Meh.

The Intel-NUC seems like a super serious computer and clocks in at hundreds of dollars. Good to know the option is available if I need big kid hardware some day…

So I decided to stick with the RasPi. Unfortunately Home Assistant doesn’t recommend cheapest, tiniest models, so I went with the Raspberry Pi4. This kit is (almost) everything you need at $64:

but you also need a micro SD card; by the way how cheap have these things gotten?? Here’s 32GB for $7 and it comes with an SD card adapter:

You also need an SD card reader for your computer; maybe you have an older Mac that had one on it, maybe you have a USB reader; I already had a USB-C hub for my touchpad mac with an SD card slot ($23 on Amazon).

USB radio

As best I can tell the Aeotec Z-Stick series 5 is a popular and highly recommended Z-Wave/Zigbee radio. But as Home Assistant calls out, it doesn’t work with the Raspberry Pi 4. It’s actually a pretty interesting bug:

On initial connect, it pulls D+ to +5V through a strong pull-up. After 20ms, the pull strength drops which results in D+ dropping to about 4.1V. This is a gross violation of the USB electrical spec. […]

If I plug this device into either the Pi 4 or a USB3.0 hub with VIA chipset, the 20ms pull to 5V appears to trigger some sort of protection within the upstream port - both D+ and D- lines end up at >3.3V (SE1) and a device attach does not occur. Plugging a different device into the same port results in an attach event, so it appears the behaviour is temporary.

In other words, the Aeotec stick misbehaves on an electrical level. Fascinatingly the work-around is to plug it in via a powered USB2 hub that doesn’t have the same protective behavior as the RasPi4. 🤯

But I don’t have time for that … the Dresden Electronik also seemed popular but was Zigbee only (not Z-Wave). So I ended up with this:


Software selection

I was pretty sold on Home Assistant at this point given its purported support for all the above hardware. I searched for “open source home automation” and OpenHAB came up; I then searched for a comparison and got this breakdown of Home Assistant vs OpenHAB.

It’s pretty interesting if you want to learn the ins and outs of home automation software these days. Home Assistant wins based on better automation, more integrations, friendlier UI.Celebrating my confirmation bias, I stuck with Home Assistant.

First build

A little waiting and a little elbow grease later, I had a Rasbperry Pi 4 with home automation software installed. I connected it to a Zigbee smart plug, connected it to my controller, and was able to turn a small fan on and off with my phone.

Fully operational Home Assistant
on Rasberry Pi 4