I've run a z-wave device network using HomeAssistant for about three
years. Thermostats, light switches, a few presence sensors. Mostly for
energy savings.
The z-wave master device is a USB dongle plugged into a Rpi 3 that is
centrally located for the z-wave network. The Pi3 runs Ubuntu Core with
the zwave-js-ui snap. The Pi used to run the same software in docker on
Raspbian, but remembering to update the system and re-learning each time
how to update the docker container simply became too annoying. With
Core, updates and CVE patches are 100% automatic. The z-wave network is
stored on the dongle, not the Pi's SD card, so the Pi and its SD card
are trivially replaceable.
I could run HA OS on the same Pi, but instead run HA Core in an LXD
container on an Ubuntu server located elsewhere. Better reliability: No
worries about the Pi's power supply or SD card. Network cable between Pi
and server -- I was opening up that wall anyway to place a
centrally-located wi-fi access point.
HomeAssistant communicates with zwave-js-ui automagically, so all the
zwave devices just show up in HA and I do all the control there.
Cheers,
Ian