Skip to content

dr-prodigy/snapclient_dashboard

Repository files navigation

Snapclient dashboard

Open-source Home Assistant media speaker dashboard for Raspberry Pi.

Description

snapclient_dashboard is a python app providing control to a Home Assistant media player through physical controls (LCD screen, rotary encoder).

It is the perfect companion app for a snapcast-powered Raspberry Pi client to create synchronized satellite players, which will then be controlled locally.

Hardware

It is based on the same hardware designed for the Minidexed project (thanks for the inspiration!).

In the picture below, you can see an example of construction, enclosed (very professionally) into a 3d-printed custom case: Minidexed project

For further information and construction guide, please refer to this page

Features

  • Integrated with Home Assistant through REST API
  • Supporting LCD 16x2 screens, either "raw" or with i2c backpack
  • Controlling Play/Pause, volume up-down/mute and source selection using a rotary encoder only
  • Running on any Raspberry Pi model (40-pin GPIO required for audio DAC support)

Images

Here a couple of pics of my first prototype build:

Main view Main view (playing)

Volume control Volume control

Usage

  • clone repository
  • move into snapclient_dashboard directory, create and enable a virtualenv environment
cd snapclient_dashboard
virtualenv venv
./venv/bin/activate
  • install requirements
pip install -r requirements/requirements.txt
  • create config.py as a copy of config_sample.py and edit your parameters (LCD model, GPIO connections, Home Assistant URL, token, media player entity ID)
cp config_sample.py config.py
nano config.py
  • run app with
./snapdash

Test & development

Snapdash can be tested on any python-capable hardware (eg: PC), simulating LCD on screen, and using keyboard to control menu. To do so:

  • don't install / remove RPi.GPIO requirement (to allow internal stub lib)
pip uninstall RPi.GPIO
  • set TEST_MODE = True in config.py
  • keyboard commands will then be:
Left = A
Right = D
Button = Space

Warning

In order to be run in production (headless), it is mandatory to set TEST_MODE = False

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages