Skip to content

v1.1.0

Choose a tag to compare

@posch-dev posch-dev released this 18 Jun 14:34
· 70 commits to main since this release

New features

  • Background processes (Last.fm/Libre.fm poller, weather fetcher, now playing watcher) now fully pause when the display is turned off or falls outside active hours. They resume automatically when the display comes back on.
  • Changing active hours in the web UI now takes effect immediately. Previously the main loop slept in 15-minute cycles, so a config change could take up to 15 minutes to register. The loop now uses an asyncio.Event that fires on every
    config write, waking it up instantly.
  • You can now toggle whether a POST /calendar request automatically triggers the dashboard. Previously this was always on.
  • New option to auto-trigger the dashboard 'X' hours before an upcoming event. Uses the departure time (start minus travel time if set, otherwise start time). Example: event "Saufen" at 23:00 with 1.5h travel, configured to 2 hours
    before, triggers at 19:30 because departure is 21:30. Configurable in the web UI with a toggle and hours input.
  • Long song titles, artist names, and album names on the now playing panel are now truncated at the character boundary where they'd overflow the 60px text area.
  • Parenthetical and bracketed content is stripped from now playing text automatically. "ALL THE LOVE (feat. Andre Troutman)" becomes "ALL THE LOVE", "So Close To What (Deluxe Edition)" becomes "So Close To What".
  • The Panels tab in the web UI now has sub-tabs for Clock, Verse, NowPlaying, and Dashboard. Only one panel's settings are visible at a time instead of all four stacked.
  • The main tab bar and the panel sub-tabs are now sticky, so they stay visible when scrolling.
  • Settings that depend on a toggle only show up when the toggle is in the right state. Disabling a panel hides all its settings. Enabling "Global Brightness" hides the local slider. Disabling "Always On" reveals the hour range inputs.
    The local brightness slider now sits in its own row with a label ("Clock Brightness", "NowPlaying Brightness", etc.).
  • Browser tab icon added.
  • Browser tab title changed

Bug fixes

  • Fixed a bug where resetting all triggers and then playing music would not auto-switch to now playing. The POST /calendar endpoint was triggering the dashboard with source "user" instead of "auto", so has_user_trigger() returned true
    and blocked the now playing watcher from auto-triggering. Calendar triggers now use source "auto".
  • untrigger() now cleans up both _triggered and _trigger_source. Previously it left stale entries in _trigger_source, which could interfere with the scheduler.
  • The reset endpoint no longer redundantly re-triggers clock. It just untriggers everything except clock and lets _evaluate() fall back to the lowest priority enabled mode on its own.
  • MAC address (upsi haha ^^) , brightness, blink interval, and reconnect delay were hardcoded in dashboard/display.py.

Cleanup

  • Removed 10 unused unused fonts
  • Removed dead font variable from dashboard/display.py.

README

  • Simplified the panels table to two columns (Panel, What it shows) with preview GIFs inline above the description.
  • Panels that need API keys are marked with an asterisk, linking to each panel's .md for setup instructions.
  • Added 5 new songs to the now playing preview GIF:
  • Created three merged preview GIFs: verse_preview.gif, dashboard_preview.gif, nowplaying_preview.gif.
  • API keys section now says "(optional)" and mentions Last.fm/Libre.fm as scrobbler choices with direct links to the panel docs.
  • Removed the Previews section (content moved into the table).
  • Removed the Project Structure section.
  • Removed the weather provider note from Configuration (already covered in the API keys section).