Most future proof HASS installation


Currently I am running HASS on a Docker container on synology.
Since my last update from 0.44 to 0.51 this week and difficulties to work with Zwave and with Docker in general (things like, use putty/telnet to launch the container, dificult for me to use a docker OZWCP, need to use domoticz to setup new devices, etc.) i am wondering what would be the best/future proof installation of HASS.
I would not want to rely on a RPI, as I think it is a nice toy, but i would not fell comfortable to leave my entire house hanging on it.
So i was thinking on a real server/virtual machine using Ubuntu, but that sounds like a cannon to kill a bird…, well might well worthy if it is future proof…

so in short, considering development road map, 99.99% availability of the HASS, reliance and upgrade process. if you could choose any platform, what would you use for HASS?

any ideas/suggestions?

Like you i run on a Synology inside docker i have tried multiple types of instances…

  • Ubuntu on Intel Nuc
  • Raspberry Pi
  • Windows

Always came back to the Synology, indeed you do need to launch the container using CLI but once launch it only really needs touching again when you update pulling a new Docker image.

Zwave although tricky at first has become a breeze i also use OZWCP in another container after stopping the HASS container (This must be done). I am however reading more often there should be no need for OZWCP as the built in functionality is more than adequate. My HASS and OZWCP run commands are below note i run OZWCP using Home Assistant directory Zwave config files.

Docker Run Home Assistant
docker run -d --name="home-assistant" --restart=always -v /volume1/docker/home-assistant/config:/config -v /volume1/docker/home-assistant/scripts:/scripts -v /etc/localtime:/etc/localtime:ro -v /etc/appcerts:/etc/appcerts:ro -v /volume1/docker/home-assistant/config/options.xml:/usr/local/share/python-openzwave/config/options.xml --device=/dev/ttyACM0 --device=/dev/ttyUSB0 --net=host -p 8123:8123 homeassistant/home-assistant:latest

docker run -d --name="ozw-cp" -u 0 -p 8008:8008 --device=/dev/ttyACM0 -v /volume1/docker/home-assistant/config/zwcfg_0xeee6b66e.xml:/home/ozwcp_user/open-zwave-control-panel/zwcfg_0xeee6b66e.xml -v /volume1/docker/home-assistant/config/options.xml:/home/ozwcp_user/open-zwave-control-panel/options.xml openzwave/openzwave-control-panel

I have never needed to use Domoticz to set up any new devices.

If you have an always on server that’s able to run HASS why get another always on server?

1 Like

that is indeed a good point Jamie.
one question from my side, which version of HASS are you running?
do you have many Zwave devices? how did you change the old_entity_id to the new_entity_id?

no matter what i do, it always roll back…

another question: when you stop the container, can you restart it from the GUI? how? for example, everytime i need to restart the HASS, I must do it on CLI

but back to the topic: why did you always come back to Synology? i was thinking on the NUC solution as well, any issue with it? or any big PRO you see on synology to always come back to it? or jsut basically, because it is 100% available already?



get something like this. i3, 4gb ram. no moving parts. low power. google industrial computer.

or run a hass VM in the cloud. I’ve done it both ways – both work well.


How would you run HASS in the cloud and interact with local zwave, hue and other things in your house?

At the moment I’m running 51.2 i try to keep on top of releases to keep breaking changes managable.

The majority of my network is made up of Zwave devices i currently have 50 devices made up of Window contacts (sensitive strips) and Aeotec multi sensors with plans to this week actually add 30+ Fabaro dimmers/switches.

Early on i had the same experiance with changing entity_ids with them sticking being totally random. I wasn’t aware of the need to “wake up” the device. My entity id rename work flow looks like this in OZWCP.

Select Node
Press physical learn button or follow manufacturer procedure for waking up the device
Wait for node to have Status awake in OZWCP
Select function dropdown then Name
Type new name click submit
Save the configuration

Some devices wake up for longer than others so the odd reawaken needs to be done sometimes. But other than that this method works great for me.

Again i had similar problems with restarting HASS from within the HASS GUI previously. I narrowed it down to Database size i ported my database over to mySQL also running on the Synology and since then I’ve been able to restart within the HASS GUI.

Previously it wasn’t too bad if i ran the container as root and right clicked from within the Synology GUI and clicked restart everything would still function. Once the container is stopped completely i still need to run from CLI as root. I believe having PUID and PGID set when running the container MIGHT solve this but I’m yet to try.

To be honest I’m unsure my very first experiences of HASS were with Synology so maybe I’m a sucker for habbit. But the fact the whole system is has fault tolerances built in, i can link my config dir to backup automatically to the cloud, its on all the time and I’m paying to power it anyway for numerous other household tasks.

I’m also keen to learn how you managed this.

Would a DS 114 be enough?

Can the DS 114 run docker I thought docker wasn’t possible one these models? As for it being good enough I guess it would depend what you intend to do with it.

well, run HASS with around 100 devices

Everything runs over IP and if it doesnt I just use an adapter. Serial over IP, bridged the networks so Sonos and airplay works. My TV remote is serial and IP.

Works like a charm.

Maybe I’m going overboard but this worked for other service I run at home and I’m in it for the long-run…

I use right now proxmox 5-something with a container for each service (db, hass, mqtt, , node red, influxdb, grafana, etc), I do a snapshot backup every 3 days and a full backup every month. All backups are saved remotely.

I don’t trust docker & other “new” stuff… yet. I plan on running home automation for a very long time in the future and I’d rather run older technologies that I understand and can easily manage (and already know all their weird edge cases).

I have a “main” mqtt broker for all raw data and create independent bridges to some devices.

For instance, for the Broadlink RM Mini, I have a separate hass instance that connects to mqtt, and exposes it the device list and waits for commands (and some feedback) from mqtt. Instead of doing send code on mqtt, i do through mqtt set switch bedroom_tv.power_on to 1.

For ubiquity I have a different container still with hass that does the same thing, drops values in the main mqtt instance.

For zwave, I plan to have 3-4 Pi’s with zstick (1 right now in testing), that expose all the devices to mqtt and also listen for mqtt commands). By having multiple PI’s i split my network in easy-to-manage smaller network and have faster response times to something like “turn on all X”. Here I’m still working on making a read-only image for home assistant to make sure sd card lasts longer.

For another example, for zanzito I created a new broker with custom firewall rules for remote/local connections. Some of the data here is mirrored to the “main” mqtt broker by a simple script.

I try to use “bridges” and devices that can report status, so far most of them have a /online/status = 0/1.

I “sacrifice” ~ 70-80 MB of ram per container, but I can work in small pieces to build up my home automation - if I break the broadlink integration I can just rollback to last version (the whole container or just the config from git/svn).

This is running on a J1900 board with a 500GB ssd, 16 GB of ram, and a pico psu - around 7W draw from the wall usually, around 12w max, and it makes no noise. I plan to add a mirror in the future.

Still haven’t figured out how to make complex devices in a “main” home assistant, but I’m not in a rush…

If you are looking for a docker gui take a look at Porttainer, I think its called that. A while ago I started looking at doing some sort of HASS integration for docker. I might try and dust it off and see if there are some useful options

I have just started to run HASS and nginx on Pi 3 on raspbian and so far has been very happy with its performance and wealth of information available, I think I should start to look for a way to backup it up regularly, actually I have a 4 bay QNAP NAS on x86 but I don’t like the idea of spinning hard disk for my home automation and control, as well as the energy required to run it
Since I am ST hub user I use HASS to control my broadlink rm3 mini as well as harmony API, dash button proxy servers, yeelight proxy etc, I have many ZigBee devices and using UK zwave so I don’t see I could move away from ST any time soon, I also prefer more control on my stuff and docker use would be limited to mqtt bridge for ST for now
My qnap should be able to run docker but I assume I can’t migrate from pi to x86 transparently

Everything? What if you want to control say zwave or homematic devices (which need an USB connected device)?