This is part two of the Home Assistant Security System guide. In this part, I show how I configured a dashboard display to complete my HA security system, to give visual feedback and, optionally, be used to manually arm the system.
This alerts us if any door or window is opened while the family is not home and we can quickly glance at the display to see if anything is open before heading out the door.
This guide assumes you followed part one.
Overview
- Materials Used
- Display Setup
- Hassbian GUI (optional)
- Enable VNC
- Chromium Kiosk Configuration
- Configure Home Assistant
- Powering the Display
- Mounting the Display
- Conclusion
Materials Used
- Raspberry Pi LCD - 7” Touchscreen - 64.95
- Raspberry Pi 3 B+ - 39.90
- SanDisk 32GB microSD Card - 7.30
- TP-Link PoE Injector Adaptor - $15.71
- Micro USB PoE Splitter - $10
Total cost: ~ $140
Display Setup
Connecting the display to a RPi is very simple. Use the included documentation. There is also a video that can guide you through the process.
Hassbian GUI (optional)
I wanted to use the same Raspberry Pi for Home Assistant and the dashboard display. To do so, I decided to use Hassbian OS. Since Hassbian does not include a GUI, I had to add one.
sudo apt-get update && apt-get -y upgrade
sudo apt-get -y install --no-install-recommends xserver-xorg xinit raspberrypi-ui-mods lxterminal gvfs
sudo apt-get -y install lightdm lxsession
sudo reboot
Enable VNC
It’s helpful to be able to VNC into the dashboard when you need to, such as initial log in.
sudo raspi-config
- select
Interfacing Options > VNC
and enable
Enable Auto-login
sudo raspi-config
- select
Boot Options > Desktop > Desktop Autologin
Chromium Kiosk Configuration
Next, we want to have the dashboard load on boot.
Install Chromium Browser
sudo apt-get -y install chromium-browser
Install unclutter
sudo apt-get -y install unclutter
Unclutter hides the mouse cursor when idle.
Create the script
mkdir -p /home/pi/.bin/
vim /home/pi/.bin/hassdash.sh
xset s off
xset s noblank
xset -dpms
@unclutter -idle 0
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' /home/pi/.config/chromium/Default/Preferences
sed -i 's/"exit_type":"Crashed"/"exit_type":"Normal"/' /home/pi/.config/chromium/Default/Preferences
chromium-browser --disable-infobars --kiosk --force-device-scale-factor=0.90 https://www.home-assistant.io
Create the service
vim /etc/systemd/system/hassdash.service
Insert this and save:
[Unit]
Description=Hass Dash
Wants=graphical.target
After=graphical.target
[Service]
Type=simple
User=pi
Environment=DISPLAY=:0
Environment=XAUTHORITY=/home/pi/.Xauthority
ExecStart=/bin/bash /home/pi/.bin/hassdash.sh
Restart=on-failure
[Install]
WantedBy=graphical.target
Enable the service
systemctl enable hassdash
Start the service
systemctl start hassdash
You can check if the service started succesfully with
systemctl status hassdash
Configure Home Assistant
I configured Lovelace to display each Z-wave sensor status.
views:
- cards:
- type: entities
entities:
- entity: binary_sensor.ecolink_door_window_sensor_sensor
- entity: binary_sensor.ecolink_door_window_sensor_sensor_11
- entity: binary_sensor.ecolink_door_window_sensor_sensor_3
- entity: binary_sensor.ecolink_door_window_sensor_sensor_4
- entity: binary_sensor.ecolink_door_window_sensor_sensor_5
- entity: binary_sensor.ecolink_door_window_sensor_sensor_6
- entity: binary_sensor.ecolink_door_window_sensor_sensor_2
panel: false
title: Sensors
badges: []
- cards:
- type: alarm-panel
states:
- arm_home
- arm_away
entity: alarm_control_panel.home_alarm
title: Alarm
badges: []
You could also configure it to act as a manual alarm panel, but I could not get it to fit on a 7” display.
I plan on trying to use lovelace-card-modder and Kiosk mode to try to get that looking better.
Powering the Display
To power the display I wanted to make sure there were no visible wires. To do so, I ran an ethernet cable from my Ubiquiti PoE switch down to the display. In my case I already had supplies for making ethernet cables. You may not and instead choose to buy a pre-made one of the appropriate length.
Luckily our house had an existing security system that I used to run the ethernet cable. I tapped one end of the ethernet cable to the existing wire at the security panel, then pulled the existing wire upstairs, thus pulling the ethernet cable upstairs to the switch.
If you don’t have a PoE switch you can get an injector for much cheaper, like this one from TP-Link.
Mounting the Display
This part is tricky since each person’s situation is different. In my case, there was an existing alarm panel that was installed when the house was built (also the reason why the paint is mismatched in the picture above). I had to make the hole larger and I will share a couple takeaways from my experience.
Watch out for electrical lines. Use a stud finder with wire detection and consulting an electrician.
Using a level may not be the best way to go. If I had cut the hole perfectly level, it would have looked unlevel compared to the edge above it. This is hard to explain, but if you have another edge close by such as a shelf, make sure they line up evenly.
Making a hole slightly smaller than the display back will allow you to pop the display snuggly in place. It is almost difficult to remove, so I don’t have to worry about it falling out. However, drywall is not very durable around the edges, so time will tell if inserting and removing the display will wear the hole larger.
The seal on the back of the display is not perfect. Drywall dust got in behind the glass, but I was able to blow it out with compressed air. I may seal the display with silicone in the future.
Conclusion
Let me know if you have questions and also check out these wonderful sources for more information.