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 thepi
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 thepi
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 -
.