I’m running this for the last couple of months. I have a couple of PI with read-only filesystem with zwave sticks (and other serial adapters) that are exposed on an internal network as a tcp server with ser2net
The home assistant docker runs socat to connect to the “slave” zwave and create a serial device inside the dock command. The configuration is stored in git, with a caching proxy. When a home assistant container starts it does a git pull, runs ser2net to have the zwave device locally then runs hass…
This has been running on a 3-node docker swarm without any issues. For example if i re-plug the zwave stick then ser2net is restarted, socat is restarted and home assistant is restarted, in this order…
For the zwave stick you can use something like a MR2030 ( very small ddwrt / openwrt router) with ser2net on it, or a pi or anything else…
I’m running now:
- 3 zwave sticks on read-only pi
- 1 heating container using homegear and a max cube device, writing to mqtt
- 1 mqtt container
- 3 home-assistant containers that translate the zwave data to mqtt
- 8 home-assistant containers with various stuff (tv, multimedia, presence detection); basically one purpose for each instance, and they write to mqtt
- 1 node-red for core data transformation from mqtt to mqtt
- 1 node-red for automations
- 1 “main” home assistant that reads and write to mqtt