My House is 250 m2 with an extra building on the side containing Workshop and Garage, so that means my setup needs to cover a lot of distance but with enough devices and pairing in the right order, I have managed to span this big area with Z-Wave devices.
In the center of every setup, is always a Controller. You can purchase complete Controllers integrating HW and proprietary Software, or you can build your own, with HW spanning from Raspberry Pi to a Mac or PC, and with Software that is either commercial or Open Source.. You can purchase complete Controllers integrating HW and proprietary Software, or you can build your own, with HW spanning from Raspberry Pi to a Mac or PC, and with Software that is either commercial or Open Source.
I have testet many of the Commercial controllers available (Vera Plus, Fibaro HC2, Zipato, Homey, Indigo) and they are all good controllers, but none of them completely satisfied my expectations of how the a system like that should work. So I set out to test some of the many Open Source projects out there, and also here I have been through many, including OpenHAB and Domoticz. But I finally found the product Home Assistant which in my view is the most complete system out there. There is a very nice user interface on both Web and Phone, and the flexibility and extensibility is the best of all the Controllers I have testet.
It does require some technical skills to run it day to day, as making automations and getting all modules integrated is not as easy as on some of the other commercial Controllers, but it is way outweighed by the flexibility in the Controller. As this is Open Source there is a lot of people contributing to the continued development of the product. This goes for both the Core System as for all the Add-Ons that are already included. In Part 2 of this article you will se I have a lot of different devices in my setup, and they are ALL supported by Home Assistant. No other Controller can do this.
Hardware & Software Setup
Home Assistant requires Python 3 to run, and as such it will run on most Operating Systems out there, even Windows. (The Windows version might have some limitations as some of the Add-Ons will not run properly on Windows) Personally I have had it running on Raspberry PI3, Ubuntu and MacOS and it ran fine on all these platforms. There is a complete image for Raspberry PI called Hass.io, which brings Home Assistant up and running with everything configured in minutes. I really liked that approach but due to my many devices I found that the Raspberry PI, was to limited in its computing power to give me the speed I wanted.
Installing on the other platforms is well described in the documentation on the website, and there is a lot of help in the Community Forum, but I still found that keeping all the dependencies up to date, was a big tasks, so I decided to run my installation using Docker. This has the advantage that everything preloaded, and you can run the installation on almost all Operating Systems that support Docker, including NAS Servers like Synology and QNAP.
My Current Controller Setup
- Intel NUC Core I7 with 16GB Memory and 1TB SSD Disk (This is way to much, but I had the PC already)
- Ubuntu 16.04 Community Edition
- Docker Community Edition
If you want to use all the great Z-Waves devices on the market (as I do) you also need a Z-Wave controller, that is supported by your HW and the Operating system you are using. In my setup I use a AEOTEC Z-Stick Gen5 USB Controller. The great thing about this is, that it stores the setup on the actual device, and that gives me the freedom to change my setup to a different HW Box, without reenrolling all my devices – which has been very useful during my long test period.
Installation of the Home Assistant Software
On the Home Assistant website there is a lot of great information about installing Home Assistant in different environments, but below you can find how I installed my specific setup.
- Install a fresh copy of Ubuntu Desktop 16.04.03 LTS. Get the software from the Ubuntu Download site and follow the instructions in the Ubuntu Installation Tutorial. I knew nothing about Ubuntu or Linux before I started this, so this should be doable for most people.
- Once the setup is completed, install Samba to enable Windows File Sharing. This makes editing the configuration files easier, when you are doing it from a remote machine. Look at this post from LinuxBabe.Com if you need help.
- Install Docker using the instructions in this post.
- Finally, if you want to use Z-Wave insert your Z-Wave device in the machine, and find the device name by listing the tty devices. On my configuration the device name is /dev/ttyACM0
With that you are ready to pull the Home Assistant Docker image and start Home Assistant. These are the commands I use in a Terminal window on the system (Or you could SSH in to your computer):
# Create a Directory to store the configuration files $ mkdir ~/homeassistant # Pull the latest Home Assistant Docker Image $ sudo docker pull home assistant/home-assistant # Start the Container. Use the directory you created above # if Z-Wave use the device name you found # Change the TZ value to your own Timezone $ sudo docker run --name=homeassistant --restart=always --net=host --privileged --device /dev/ttyACM0 -itd -v ~/homeassistant:/config -e TZ=Europe/Copenhagen homeassistant/home-assistant
You should now have a running version of Home Assistant and you can now start adding devices and automations. Access it using: http://MACHINE_IP_ADDRESS:8123
Below you will find a couple of useful Docker commands to stop, start, restart and update the Docker Image. Open a Terminal windows on your computer first and then you can run these commands.
Start Home assistant:
$ sudo docker start home-assistant
Stop Home assistant:
$ sudo docker stop home-assistant
Restart Home assistant:
$ sudo docker restart home-assistant
Update Home assistant:
$ sudo docker stop home-assistant $ sudo docker pull homeassistant/home-assistant $ sudo docker rm home-assistant $ sudo docker run --name=homeassistant --restart=always --net=host --privileged --device /dev/ttyACM0 -itd -v ~/homeassistant:/config -e TZ=Europe/Copenhagen homeassistant/home-assistant