Migrating from SmartThings to Zigbee2MQTT with Home Assistant

Sadly, Samsung seem to be winding down their SmartThings Zigbee/ZWave home automation setup and it has always been quite painful using devices that weren’t officially supported. I’ve recently migrated my non-SmartThings native devices to Zigbee2MQTT, here’s how I did it:

  • Purchase a SBC, in my case an OrangePi 4 running Armbian/Ubuntu – but a Raspberry Pi 4 is more mainstream. Set it up on your home network (perhaps you already have this running Home Assistant).
  • Buy a supported zigbee adaptor. I strongly recommend the electrolama zzh adaptor (this requires firmware flashing post purchase, but this is straightforward).
  • Install the adaptor, ideally via a USB extension cable.
  • Install zigbee2mqtt.
    • The version of node installed wasn’t recent enough; I downloaded a newer version.
    • As the name suggests, you’ll have to set up an MQTT server, typically mosquitto to receive the status messages.
  • Configure zigbee2mqtt / Home Assistant integration.
  • Add your zigbee devices.
  • Reconfigure your Home Assistant Automations etc if necessary.

Alpine Linux default gateway on different subnet

As Alpine Linux uses busybox for a lot of its system tools it won’t set up the necessary routing if you have a default gateway on a non-local subnet to the IP. You want /etc/network/interfaces to look something like this:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
netmask   # or whatever is netmask
up route add DEFAULT.GW.IP dev eth0
up route add default gw DEFAULT.GW.IP

then run alpine-setup again