Creating a Home Assistant Smart Display
I'm a big Home Assistant fan and have been using it for a very long time. I've had my own smart display for a few years, running on balena-dash, but have been slowly reducing my dependencies on 3rd party clouds- replacing garage door controls with ratgdo, removing "smart assistants", etc. Replacing my smart display with something local seemed like a good next step.
To get started, I reused/used a couple of Raspberry Pis and bought a couple of 7 inch displays off of Amazon. Here's the exact model https://www.amazon.com/dp/B09XKC53NH.
For this project, I'm using FullPageOS. This is a fantastic distribution for doing exactly what I want. I also recommend setting up a new user in Home Assistant for a smart display. Big thank you to Guy Sheffer! If you find FullPageOS useful, I encourage you to send him a donation!
To flash FullPageOS, I used the Raspberry Pi Imager. FullPageOS is already available under Other specific-purpose OS -> FullPageOS. I chose the latest FullpageOS (Nightly) image from 2024-03-31.
When flashing, it's best to set up the username and password, wireless LAN, and enable SSH in the OS Customization settings.
Once FullPageOS is flashed, the url displayed can be changed in the fullpageos.txt file. I changed this to the various Home Assistant dashboards I had setup to control my home.
On the first boot, it can take a while with the screen flashing several times. Once fully booted, I logged into Home Assistant using my smart display user account and changed the user preferences to always hide the sidebar. I then connected to the OS using ssh and ran:
raspi-configto configure some localization options.- Hid the mouse cursor, following https://github.com/guysoft/FullPageOS/wiki/Hide-mouse-cursor#hide-mouse-completelyand updating
/usr/share/lightdm/lightdm.conf.d/01_debian.confwithxserver-command=X -nocursor - Configured Chromium to not show scrollbars, following https://github.com/guysoft/FullPageOS/wiki/Chromium-configuration and updating
/etc/chromium.d/00-rpi-varswith--enable-features=OverlayScrollbar
After that I rebooted and a new smart display was ready to go.