Raspberry Pi All-In-One Installer


The Raspberry Pi All-In-One Installer deploys a complete Home Assistant server including support for MQTT with websockets, Z-Wave, and the OpenZWave Control Panel.

The only requirement is that you have a Raspberry Pi with a fresh installation of Raspbian connected to your network.

Note that as of 2016-11-30 SSH is disabled by default in the official Raspbian images. Adding an empty file called ssh to /boot/ or the FAT32 partition will enable it. More information is on the Raspberry Pi Foundation Blog.

Irrespective of whether you use SSH to connect to the Pi from another computer or not, you need SSH to install Home Assistant. So go ahead and enable SSH.

  • Login to Raspberry Pi. For example with ssh pi@your_raspberry_pi_ip
  • Run the following command:

This command is a one-liner and not run as sudo.

$ curl -O https://raw.githubusercontent.com/home-assistant/fabric-home-assistant/master/hass_rpi_installer.sh && sudo chown pi:pi hass_rpi_installer.sh && bash hass_rpi_installer.sh

Installation will take approx. 1-2 hours depending on the Raspberry Pi model the installer is being run against. The installer will identitfy what Raspberry Pi hardware revision you are using and adjust commands accordingly. A complete log of the install is located at: /home/pi/fabric-home-assistant/installation_report.txt The installer has been updated to simply log any errors encountered, but resume installing. Please consult the “installation report” if your install encountered issues.

BRUH automation has created a tutorial video explaining how to install Raspbian on your Raspberry Pi and install Home Assistant using the All-In-One Installer.

Once rebooted, your Raspberry Pi will be up and running with Home Assistant. You can access it at http://your_raspberry_pi_ip:8123.

The Home Assistant configuration is located at /home/homeassistant/.homeassistant (or /home/hass/.homeassistant if installed prior to December 2016). The virtualenv with the Home Assistant installation is located at /srv/homeassistant/homeassistant_venv. As part of the secure installation, a new user (homeassistant) is added to your Raspberry Pi to run Home Assistant. This is a system account and does not have login or other abilities by design. When editing your configuration.yaml files, you will need to run the commands with sudo or by switching user.

Windows users: Setting up WinSCP to allow this seemlessly is at the end of this page.

By default, installation makes use of a Python Virtualenv. If you wish to not follow this recommendation, you may add the flag -n to the end of the install command specified above.

The All-In-One Installer script will do the following automatically:

  • Create all needed directories
  • Create needed service accounts
  • Install OS and Python dependencies
  • Setup a python virtualenv to run Home Assistant and components inside.
  • Run as homeassistant service account
  • Install Home Assistant in a virtualenv
  • Install Mosquitto with websocket support running on ports 1883 and 9001
  • Build and Install Python-openzwave in the Home Assistant virtualenv
  • Build OpenZWave Control Panel in /srv/homeassistant/src/open-zwave-control-panel
  • Add Home Assistant to systemd services to start at boot

Upgrading

To upgrade the All-In-One setup manually:

  • Login to Raspberry Pi ssh pi@your_raspberry_pi_ip
  • Change to homeassistant user sudo su -s /bin/bash homeassistant
  • Change to virtual enviroment source /srv/homeassistant/homeassistant_venv/bin/activate
  • Update Home Assistant pip3 install --upgrade homeassistant
  • Type exit to logout the hass user and return to the pi user.

If you deployed Home Assistant via the AiO installer prior to December 2016

  • Login to Raspberry Pi ssh pi@your_raspberry_pi_ip
  • Change to homeassistant user sudo su -s /bin/bash hass
  • Change to virtual enviroment source /srv/hass/hass_venv/bin/activate
  • Update Home Assistant pip3 install --upgrade homeassistant
  • Type exit to logout the hass user and return to the pi user.

After upgrading, you can restart Home Assistant a few different ways:

  • Restarting the Raspberry Pi sudo reboot
  • Restarting the Home-Assistant Service sudo systemctl restart home-assistant.service

To change the MQTT default password

  • Login to Raspberry Pi ssh pi@your_raspberry_pi_ip
  • Change password sudo mosquitto_passwd /etc/mosquitto/pwfile pi
  • Restart mosquitto sudo systemctl restart mosquitto.service
  • Be sure to update your configuration.yaml to reflect the new password.

Using the OZWCP web application

To launch the OpenZWave Control Panel (OZWCP) web application:

  • Make sure Home Assistant is not running! So stop that first
  • Login to Raspberry Pi ssh pi@your_raspberry_pi_ip
  • Change to the OZWCP directory cd /srv/homeassistant/src/open-zwave-control-panel/
  • Launch the control panel sudo ./ozwcp -p 8888
  • Open a web browser to http://your_pi_ip:8888
  • Specify your Z-Wave controller, for example /dev/ttyACM0 and hit initialize

If OZWCP is running really slow verify that your not running Home Assistant or have another page running OZWCP open or strange errors might occur.

If you deployed Home Assistant via the AiO installer prior to December 2016

  • Make sure Home Assistant is not running! So stop that first
  • Login to Raspberry Pi ssh pi@your_raspberry_pi_ip
  • Change to the OZWCP directory cd /srv/hass/src/open-zwave-control-panel/
  • Launch the control panel sudo ./ozwcp -p 8888
  • Open a web browser to http://your_pi_ip:8888
  • Specify your Z-Wave controller, for example /dev/ttyACM0 and hit initialize

Don’t check the USB box regardless of using a USB based device.

Using the GPIOs

The (homeassistant) user is added to the GPIO group as part of the install now.

WinSCP

If you are Windows users who is using WinSCP, please note that after running the installer, you will need to modify settings allowing you to “switch users” to edit your configuration files.

First create a new session on WinSCP using Protocol SCP pointing to your Pi IP address and port 22 and then modify the needed setting by click on Advanced… -> Environment -> SCP/Shell -> Shell and selecting sudo su -.