Carpe Diem:16 February, 2020

Z-Wave + Zigbee USB Stick on Home Assistant

This post may contain affiliate links. Please see our disclaimer for more info.


Last updated: Aug 18, 2019

This is the fourth post in my series of smart home/home automation posts. In this post we will dive into Z-Wave, Zigbee and how to install the GoControl Linear HUSBZB-1 USB stick with your Pi and HA.

For my Hub, I’m running Home Assistant with:

Z-Wave & Zigbee

Before diving into the install, let’s talk a little about Z-Wave and Zigbee. These are open communication protocols that define how these devices should talk with each other. Just like how WiFi is a protocol for computers/tablets/phones, Z-wave and Zigbee are designed for smart home devices. There are however WiFi smart switches as well that I’ll discuss briefly later. Also, being an open protocol means that it’s open for many manufacturers to use vs a closed/private protocol that only works on one manufacturers products (Lutron Caseta for example).

You will need a Z-Wave and/or Zigbee hub in order to use Z-Wave/Zigbee devices. So why use Z-Wave and/or Zigbee? For one, they are standards in the industry meaning that finding compatible devices is much easier. However note that Z-wave is very standardized across the industry whereas Zigbee is not as strict. This means that a Zigbee device from one manufacturer may not be completely compatible with a Zigbee product from another manufacturer even though they are speaking more or less the same language. This is more of an issue with trying to have devices control the a hub vs devices connect to the hub. If you are unsure, do some googling to find what others have found.

Z-Wave vs Zigbee. From what I’ve found, there are more general Z-wave devices whereas Zigbee products tend to be grouped by manufacturer creating their own ecosystems. For example, GE makes a handful of Z-Wave devices but doesn’t create their own hub as of the writing of this post at least. Whereas Philips has an ecosystem of smart devices called Phillips Hue. These are all actually just Zigbee devices. For me, I wanted both because I wanted to be able to use both products. I plan to use Z-Wave primarily, however I found that Zigbee smart bulbs are much cheaper than Z-Wave bulbs. I use these Sengled bulbs for my exterior lighting which can get as low as $5-10/bulb when on sale.

What about WiFi smart devices? While WiFi is great because you won’t need an additional Hub (it can use your current WiFi router), WiFi might not be as “easy going” as Z-Wave or Zigbee for a few reasons:


WiFi does not go as far unless you have a real beefy router. WiFi operates at 2.4 Ghz or 5 Ghz vs Z-wave at 900 Mhz. With radio signals, higher frequencies have greater bandwidth; higher frequencies also have lower range. With Z-Wave operating on 900 Mhz, you’ll have better range (not the mention the mesh network – see paragraph below). This also means that Z-Wave has lower date throughput, but this is a non-issue for low bandwidth smart devices. You’ll also have less interference in the 900 MHz band since many folks don’t use LAN cordless phones anymore; many devices already run on 2.4 Ghz in your house making a poorer signal to noise ratio. In addition, your router is the center point of contact so your outlet in the garage may not have enough range to reach your router. You can buy WiFi extenders but that’s extra $$.

Z-Wave creates a mesh network. This means that signals can bounce from one device to the other vs every device only being able to communicate with the hub. This means that you have have a Z-wave device be connected to your network even though is very far from the hub. You are relying on a z-wave device closer to the hub to repeat the signal to a device out of range from the hub. Just about every plugged in (vs battery powered) Z-wave device will act as a repeater.

Zigbee operates on the 2.4 GHz band – same as WiFi unfortunately. I’ve had connectivity issues with Zigbee before, but it does still benefit from the mesh network.

Device Availability

While WiFi switches and outlets are becoming quite common, there are many other devices that do not work on WiFi (or there are only a limited few) but will work on Z-Wave. Thermometers, hygrometers, motion sensors, door/window open/close sensors are a few items to consider for example.


While WiFi switches are becoming as cheap as Z-Wave switches now, the other non-switch devices are still a bit more expensive. For example thermometers, hygrometers, motion sensors, door/window open/close sensors are much cheaper in Z-wave form.

Limiting WiFi Traffic

Wireless connectivity in your home is just like an airport. The more planes going in and out of an airport can mean more delays for each plane trying to take off and land. If the airport control tower (metaphor for your WiFi router) isn’t big enough to handle the additional planes, the control tower will need to be upgraded. In your home, the more wireless signals running around can create interference which in turn causes delays (slower speeds). In addition, your router may become a bottleneck slowing everything down. While smart devices use very little bandwidth, I like the idea of having a bunch of smart devices in my house running on a different frequency than my WiFi to take some of the burden off my router and reduce signals operating in the 2.4 Ghz range. If you live nearby to your neighbors, you have to deal with their WiFi interference as well. This may be a moot point for many given that WiFi is a much better protocol than it was years ago, but still something to consider.

Which Z-Wave and/or Zigbee Hub Should I get?

The good news is that Home Assistant is compatible with many hubs. If you have one already, do some searching to see if it’s compatible. If you’re in the market, you have a couple choices to make. You can go with a hub like Samsung SmartThings Hub or Wink Hub, but I decided that a USB stick would fit my needs best. It’s easy plug and play and can be used on a different device if I ever decide not to use my Pi anymore. Before you purchase anything, do some searching to make sure it’s compatible with Home Assistant. I use a GoControl Linear HUSBZB-1 USB stick for my Z-Wave and Zigbee connectivity (both in a single stick). So far this device has worked flawlessly with my Pi and Home Assistant. Many others use the Aeotec Z-Wave Gen5 but this is Z-Wave only.

Setting up the GoControl Linear HUSBZB-1 USB stick with your Pi

To set up the GoControl Linear HUSBZB-1 USB stick for Home Assistant on your Pi, you’ll need to 1) plug it in 2) configure for easy access on your Pi and 3) tell HA to turn on Z-wave/Zigbee. Luckily this can be done pretty easily – see below. I found much of everything I needed in this amazon review. I’ve broken out the steps below and also included a script that can be copy/pasted into an SSH terminal (or run as a bash file).

UPDATE Dec 12, 2018 – HASSIO Configuration

I was originally running the Hassbian setup of Home Assistant on my raspberry pi, but I recently changed to the HASSIO setup utilizatin docker containers. The setup for the HUSBZB-1 is a little different – you can’t run the bash scripts to have the USB stick come through with a nice name. It’s actually a slightly simpler setup, but just less intuitive. The below needs to be added to your configuration file.

# configuration.yaml:

 usb_path: /dev/ttyUSB0

 usb_path: /dev/ttyUSB1
 database_path: /config/zigbee.db

Hassbian Configuration: Update Linux to easily distinguish Z-Wave and Zigbee:

Update /etc/udev/rules.d/99-usb-serial.rules to include these 2 lines:

SUBSYSTEM=="tty", ATTRS{interface}=="HubZ Z-Wave Com Port", SYMLINK+="zwave"
SUBSYSTEM=="tty", ATTRS{interface}=="HubZ ZigBee Com Port", SYMLINK+="zigbee"

This will make zwave and zigbee easily accessible.

Update HA config

HA Config needs to be updated to load in the proper zwave and zigbee components to communicate with the USB Stick.
edit /home/homeassistant/.homeassistant/configuration.yaml to include:
# configuration.yaml

    usb_path: /dev/zwave

    usb_path: /dev/zigbee
    database_path: /home/homeassistant/.homeassistant/zigbee.db

Once complete, reboot by entering sudo reboot. You should be all set!

Note that the zha database_path is where zigbee device details will be stored. If you ever run into issues, you can download a database app to dive into zigbee.db to troubleshoot. However I haven’t needed to do this myself.


The below can be copy/pasted into the bash command line or run as a bash script to accomplish the above all at once:
echo 'SUBSYSTEM=="tty", ATTRS{interface}=="HubZ Z-Wave Com Port", SYMLINK+="zwave"' | sudo tee --append /etc/udev/rules.d/99-usb-serial.rules
echo 'SUBSYSTEM=="tty", ATTRS{interface}=="HubZ ZigBee Com Port", SYMLINK+="zigbee"' | sudo tee --append /etc/udev/rules.d/99-usb-serial.rules
echo '' | sudo tee --append /home/homeassistant/.homeassistant/configuration.yaml
echo 'zwave:' | sudo tee --append /home/homeassistant/.homeassistant/configuration.yaml
echo ' usb_path: /dev/zwave' | sudo tee --append /home/homeassistant/.homeassistant/configuration.yaml
echo '' | sudo tee --append /home/homeassistant/.homeassistant/configuration.yaml
echo 'zha:' | sudo tee --append /home/homeassistant/.homeassistant/configuration.yaml
echo ' usb_path: /dev/zigbee' | sudo tee --append /home/homeassistant/.homeassistant/configuration.yaml
echo ' database_path: /home/homeassistant/.homeassistant/zigbee.db' | sudo tee --append /home/homeassistant/.homeassistant/configuration.yaml
sudo reboot
Again, thanks goes to our fellow HA users who wrote this amazon review.

Leave a Reply

Your email address will not be published. Required fields are marked *