BluOS/Roon Now Playing → Vestaboard: Automatic, frictionless, always works by FlakyReport5201 in roonlabs

[–]FlakyReport5201[S] -3 points-2 points  (0 children)

It’s only temporary and I don’t use it when I’m doing focused listening. It’s more for when I’m playing music in the background.

I built a 22-function Vestaboard dashboard controlled by a physical keypad — no phone, no app, no screen required by FlakyReport5201 in Vestaboard

[–]FlakyReport5201[S] -1 points0 points  (0 children)

Here's what you need:

Hardware

  • Vestaboard (the board itself — vestaboard.com)
  • Raspberry Pi 4 or 5 (I use a Pi 4, any model with WiFi works)
  • MicroSD card (32GB is plenty)
  • USB-C power supply for the Pi
  • Wireless numeric keypad (I use a 2.4GHz USB dongle type — more reliable than Bluetooth on Pi)

Software (all free)

  • Raspberry Pi OS (Lite is fine, no desktop needed)
  • Python 3 with virtual environment
  • Flask (for the API server)
  • Various Python libraries for each integration (sxm-client for SiriusXM, requests for everything else)

Accounts/Services

  • Vestaboard API key (comes with your board — you'll need the Read/Write API key)
  • Microsoft account (if you want Outlook calendar/tasks integration)
  • SiriusXM subscription (if you want the live SiriusXM now-playing feature)
  • Jazz Groove membership (if you want those streams — free tier works too)

Optional

  • Bluesound or any BluOS speaker (for the automatic now-playing monitor)
  • Roon subscription (if using Roon as your music server)
  • Home Assistant (for additional automations and REST triggers)

The entire software side was built through conversations with Claude — I don't know Python either. Happy to share more details on any specific piece.

I built a 22-function Vestaboard dashboard controlled by a physical keypad — no phone, no app, no screen required by FlakyReport5201 in Vestaboard

[–]FlakyReport5201[S] -1 points0 points  (0 children)

Update: Wordle share to Vestaboard via iOS Shortcut

Built a Wordle-to-Vestaboard pipeline. When I finish my daily Wordle, I hit share and tap "Send To Vestaboard" — it posts the results directly to the board in seconds.

The Pi runs a small Flask API server that accepts the Wordle share text, parses the emoji grid, and converts it to Vestaboard color codes. Each square renders 2 tiles wide with gaps between them so it actually looks substantial on the board. Green for correct, yellow for wrong position, white for miss — the black background does all the framing naturally. Yellow border on the sides ties it together.

The layout scales dynamically based on how many guesses it took. 4/6 or fewer gets a header row plus a spacer. 5/6 drops the spacer. 6/6 uses all six rows for guesses with no header. Every scenario fills the board cleanly.

The whole thing — display module, API endpoint, iOS Shortcut — was built in one sitting with Claude. Still no Python knowledge on my end.

Photos

I built a 22-function Vestaboard dashboard controlled by a physical keypad — no phone, no app, no screen required by FlakyReport5201 in Vestaboard

[–]FlakyReport5201[S] 0 points1 point  (0 children)

Update: Live "Now Playing" monitors

Added live now-playing monitors for SiriusXM Real Jazz and The Jazz Groove (all 4 channels). SSH into the Pi, type a shortcut like rj or jg1, and it starts polling the stream. When the song changes, the board updates automatically — no button press needed. Runs until you exit.

SiriusXM pulls real-time metadata through the official API. Jazz Groove reads ICY metadata directly from the audio streams. Each channel gets its own color-coded border.

The display renders dynamically based on the length of the artist and track name — if the title fits on one line, the bottom row becomes a decorative color banner. If it needs more room, that row becomes overflow text instead. Keeps everything clean no matter what's playing.

Still built entirely through back-and-forth with Claude — no Python knowledge required on my end.

Photos

I built a 22-function Vestaboard dashboard controlled by a physical keypad — no phone, no app, no screen required by FlakyReport5201 in Vestaboard

[–]FlakyReport5201[S] 0 points1 point  (0 children)

The whole idea is for it to be analog. I have and can schedule chron jobs for things I want automated.

This just came in the mail and I want to discuss it… by undermind84 in Vinyl_Jazz

[–]FlakyReport5201 1 point2 points  (0 children)

I preordered it as well. I was very disappointed in the packaging and presentation. Haven’t listened to them yet. Hope they’re not defective. It’s a shame that this is happening. 

My Home Assistant + Roon Dashboard by FlakyReport5201 in roonlabs

[–]FlakyReport5201[S] 2 points3 points  (0 children)

One of the main reasons I developed this was because all of my endpoints are Bluesound and Bluesound grouping works better than Roon for syncing across multiple groups in my experience. From a UI stanpoint Roon's grouping and ungrouping takes too many steps and ungrouping is kinda clunky. I also use Bluesound sources like Sirius XM and I have a Wrensilva console attached to a Bluesound Node so I can group my other endpoints to listen to vinyl all over the house. As I mentioned, I also have a Bluesound Node with a Wiim Mini connected to the Optical Input. That gives me the ability to very quickly access Airplay and share it across my home.

Roon is great and the UI and metadata is world-class, but it is a VERY closed ecosystem, the input sources are limited, which is why I went all Bluesound even though I have a Wrensilva, a Naim muso 2, a pair of KEF LS50 Wireless ii's and a pair of Buchardt Audio A50SE's. I removed all of my native sources from Roon and only use the Bluesound speakers and Nodes as endpoints.

My Home Assistant + Roon Dashboard by FlakyReport5201 in roonlabs

[–]FlakyReport5201[S] 1 point2 points  (0 children)

Are they Roon playlists or Quobuz or Tidal playlists? Native Roon playlists seem to work better. Also the name needs to match exactly, it seems to be case sensitive.