Building a Custom Dashboard with Home Assistant and a Raspberry Pi

Are you running Home Assistant and looking for a way to enhance your smart home experience? Setting up a dedicated smart home dashboard is a game-changer. With a small monitor and a Raspberry Pi, you can create a sleek, interactive interface to control and monitor your smart devices. Here’s why and how you should build your own smart home dashboard.

Why Create a Smart Home Dashboard?

  1. Centralized Control: Access all your smart home devices from one place. A dashboard can display information like the weather, energy usage, and security camera feeds, making it your smart home’s command center.
  2. User-Friendly Interface: Whether for your family or guests, a dashboard provides an intuitive way to interact with your smart home without needing a smartphone or additional apps.
  3. Always-On Convenience: Mounted on a wall or placed on a countertop, your dashboard is always available for quick adjustments or at-a-glance information.

The inspiration for this project came from Jeff Geerling. He has a great video and Github writeup on the whole project, but I’ve summarized it below.

What You Need

To create a custom smart home dashboard, you’ll need:

  • A Raspberry Pi (preferably Model 4 for better performance)
  • A small HDMI monitor or touchscreen display
  • Power supplies for both the Raspberry Pi and the monitor
  • A microSD card with at least 16GB capacity
  • Home Assistant installed and configured
  • A dashboard tool like Home Assistant’s Lovelace UI

For my dashboard, I used a pi-compatible touchscreen found on Amazon (there are cheaper ones out there, but for my use-case, this worked out). I had the Raspberry Pi already, and the supplied power cord powers both the monitor and the pi, but I’ve linked some options.

Step 1. Ensure you’re running Pi OS with a graphical interface (the ‘full install’), and Chromium is installed (it should be, by default).

Step 2. Open up Terminal and install a prerequisite:

sudo apt install unclutter

Step 3. Create a directory for the Kiosk Files.

mkdir -p /home/pi/kiosk
cd /home/pi/kiosk

Step 4. Download the script that will run the Kiosk and give it execute privileges:

wget https://raw.githubusercontent.com/geerlingguy/pi-kiosk/refs/heads/master/kiosk.sh
chmod +x kiosk.sh

NOTE: Modify the ‘KIOSK_URL’ variable to match your Home Assistant URL. (homeassistant.local:8123 should work for most Home Assistant installs unless you’ve modified DNS settings.)

Step 5. Download the Kiosk service file.

wget https://raw.githubusercontent.com/geerlingguy/pi-kiosk/refs/heads/master/kiosk.service

Step 6. Copy over the SystemD unit file to run the kiosk service:

sudo cp kiosk.service /lib/systemd/system/kiosk.service

Step 7. Enable the Systemd kiosk service so it will automatically run at system boot:

sudo systemctl enable kiosk.service

(Optional) Fire up the kiosk service immediately:

sudo systemctl start kiosk

And there you go. You should have your very own functional Home Assistant Dashboard that should automatically pull up your desired dashboard shortly after boot. (Be mindful of the 8 second delay in the script.)

A big thank you to the inspiration for this project and about a dozen before it, Jeff Geerling. He is a stellar creator on Youtube and is doing amazing things for not only the Raspberry Pi Community, but Linux and Open source as a whole.

Leave a comment