Skip to content

Releases: rusty4444/now-showing-ha

v2.3.7

Choose a tag to compare

@rusty4444 rusty4444 released this 22 Jul 16:10
31e5ab4

What's Changed

  • chore(deps): bump body-parser from 2.2.2 to 2.3.0 in /server by @dependabot[bot] in #116

Full Changelog: addon-v2.3.6...addon-v2.3.7

v2.3.6

Choose a tag to compare

@rusty4444 rusty4444 released this 20 Jul 16:11
c05c381

What's Changed

  • chore(deps): bump ws from 8.21.0 to 8.21.1 in /server by @dependabot[bot] in #115

Full Changelog: addon-v2.3.5...addon-v2.3.6

v2.3.5 — SSE Broadcast Fix

Choose a tag to compare

@rusty4444 rusty4444 released this 05 Jul 16:12

v2.3.5 — SSE Broadcast Fix

Bug Fix

  • Fix SSE null broadcasts during active playback (#108, #112). The add-on's Server-Sent Events (/api/events) endpoint previously broadcast null (blanking the kiosk overlay) when an unrelated media player in the house changed state during active playback. The state-change handler now recomputes the Now Showing payload from all Home Assistant media_player states after a 300ms debounce window, matching the same computation /api/state serves. A new stateBroadcaster module with full test coverage handles debouncing, error resilience, and graceful shutdown.

Maintenance

  • Extracted state broadcast logic from server.js into dedicated stateBroadcaster.js module with 3 tests: full-state recompute, debounce coalescing, and transient error resilience.

Now Showing Add-on v2.3.4

Choose a tag to compare

@rusty4444 rusty4444 released this 09 Jun 03:42
7b8bfd0

Now Showing Add-on v2.3.4

Added

  • Setup save/reset now broadcasts sanitized config_changed events over SSE, so open kiosks apply display mode, backend, Coming Soon, and visual config changes without a browser refresh.
  • Coming Soon mode now auto-cycles on coming_soon_cycle_interval, rotating Radarr/Sonarr artwork without full page reloads.
  • Poster updates now use a double-buffered crossfade with stale-image guards to avoid black flashes and slow-load regressions.

Fixed

  • Ken Burns animation is scoped to the active poster layer so it does not interfere with the crossfade buffer.
  • Coming Soon route test now uses a date relative to the test run instead of a fixed past date.

Release info

  • Add-on manifest version: 2.3.4
  • Node server package version: 2.3.4
  • README "What's Changed Since The Last Release" table updated to the v2.3.4 changes.

Validation

  • node --check /tmp/now_showing_inline.js
  • git diff --check
  • cd server && npm test — 201/201 passing
  • PR #107 CI passed: add-on lint + all multi-arch builds (amd64, aarch64, armhf, armv7, i386).

Release addon-v2.3.3

Choose a tag to compare

@rusty4444 rusty4444 released this 06 Jun 03:29
1496f0f

What's Changed

  • chore(deps): bump ws from 8.20.1 to 8.21.0 in /server by @dependabot[bot] in #106
  • chore(deps): bump express from 4.22.1 to 5.2.1 in /server by @dependabot[bot] in #105

New Contributors

Full Changelog: addon-v2.3.2...addon-v2.3.3

Now Showing v2.3.2

Choose a tag to compare

@rusty4444 rusty4444 released this 19 May 00:00

Fixed

  • All requests returning :ok — the SSE /api/events handler was registered with
    app.use(eventBus.eventsRoute) which caught every incoming request on the server.
    The function wrote :ok and never called next(), so Express never reached the
    static middleware. No static files were served: not now_showing.html, not the
    font files, not now_showing.config.js. Changed to
    app.get('/api/events', eventBus.eventsRoute) so it only matches GET /api/events.

Now Showing v2.3.1

Choose a tag to compare

@rusty4444 rusty4444 released this 18 May 23:39

What's new in 2.3.1

Fixed

  • SSE endpoint crashReferenceError: req is not defined on every /api/events
    connection. The parameter _req was referenced as req in the close handler,
    causing Express to return a 500 error after writing the initial :ok heartbeat.
    This caused the kiosk to show :ok on a black screen. (closes #104)
  • Server version mismatchpackage.json was stuck at 2.1.6 since the pre-v2.2.0
    era. The add-on store reported 2.3.0 but the server claimed v2.1.6 in boot logs,
    /api, and /healthz. Both now correctly report 2.3.1.

v2.3.0 - self-hosted fonts, per-section info toggles, overlay sync fix

Choose a tag to compare

@rusty4444 rusty4444 released this 18 May 11:21

v2.3.0

Added

  • Self-hosted Google Fonts (closes #40) — Bebas Neue, Playfair Display, Inter, Anton, Monoton, and Oswald shipped as bundled woff2 files. Survives internet outages with zero CDN dependency.
  • Per-section info panel toggles (closes #64) — independent visibility switches for title, subtitle, meta, summary, tech box, and player info. All default ON.
  • HA WebSocket subscription + SSE push (closes #10) — server connects to HA's WebSocket API for real-time state changes. Browser falls back to 30s poll instead of 5s polling.
  • Poster framing modes (closes #67), film-grain overlay (closes #27), Ken Burns pan (closes #22) — visual polish features.

Fixed

  • Film-grain overlay always visible — CSS was missing display: none gate, now gated on body.visual-film-grain
  • haWs.stop() never called on graceful shutdown — WebSocket connection leak on restart
  • Cross-device config sync: posterFraming, filmGrain, kenBurns were never registered in the overlay store, causing setup UI saves to silently drop them. All 27 visual settings now persist server-side.
  • Setup form now has controls for posterFraming, filmGrain, and kenBurns (were env-var only)

Changed

  • No more Google Fonts external dependency at runtime — fonts shipped in add-on image

v2.1.6 - cinema/theatrical inclusion toggle for Coming Soon

Choose a tag to compare

@rusty4444 rusty4444 released this 10 May 01:15

Highlights

  • Cinema / theatrical inclusion toggle for Coming Soon (PR #101, closes #100). New coming_soon_include_cinema_releases add-on option / COMING_SOON_INCLUDE_CINEMA_RELEASES Docker env var, plus an "Include cinema / theatrical releases" checkbox in the in-app setup overlay (Coming Soon sources), control whether Radarr inCinemas and TMDB theatrical release types contribute to Coming Soon entries.
  • Default is on so the pre-#100 fallback behaviour is preserved exactly: Radarr inCinemas and TMDB theatrical types still act as eligibility/display fallbacks, and cinema-only entries appear with the existing In cinemas: <date> label.
  • Turning the toggle off suppresses cinema-only entries entirely — Radarr inCinemas is ignored and TMDB theatrical types are skipped — while digital and physical home releases keep showing.
  • Persists server-side across devices. The toggle is stored in the v2.1.5 overlay file (/data/overlay.json) via POST /api/setup, so a single save on Master Panel propagates to every browser, kiosk, and phone on the next page load.
  • Existing filters unchanged. Monitored, hasFile, and the configurable look-ahead window keep applying as before.

Configuration

  • Add-on Configuration tab: coming_soon_include_cinema_releases: true|false (default true).
  • Docker env var: COMING_SOON_INCLUDE_CINEMA_RELEASES=true|false.
  • In-app setup overlay → Coming Soon sources → "Include cinema / theatrical releases" checkbox.
  • Schema, translations, and add-on options are all wired up; flipping any of the three sources updates the others through the existing overlay/precedence rules.

Upgrade

No action required. Existing installs default to on, which matches the pre-#100 behaviour. Operators who only want home releases on the Coming Soon carousel can untick the new checkbox once on any device — the change is saved server-side and applied everywhere.

Artifacts

  • Multi-arch HA add-on images on GHCR — pushed by the addon-v2.1.6 tag: ghcr.io/rusty4444/plex-now-showing-{amd64,aarch64,armv7,armhf,i386}:2.1.6 plus :latest.
  • Server changelog: see addons/plex-now-showing/CHANGELOG.md.

v2.1.5 - persistent server-side setup overlay

Choose a tag to compare

@rusty4444 rusty4444 released this 09 May 04:33

Highlights

  • Persistent server-side setup overlay (PR #99, closes #98). The in-app setup overlay (gear icon / #setup) is now a real persistent configuration editor: every relevant field — TMDB API key + region, HA token, Plex/Radarr/Sonarr URLs and keys, Coming Soon counts, and visual settings — is editable in the overlay and saves server-side. One save on any device propagates to every browser, kiosk, and phone on the next page load.
  • Settings are saved to /data/overlay.json on the add-on disk via POST /api/setup, so values persist across phone, Master Panel, Fully Kiosk, the HA mobile app via Ingress, and direct URL access without per-device re-entry.
  • Add-on / Docker config (Configuration tab / env vars) remains the defaults; the persistent overlay file overrides them where set. Clearing a non-secret overlay field falls back to the env default.
  • TMDB API key and region are now enterable in the setup overlay itself (closes #97); existing add-on options / Docker env values remain supported as defaults.

Security

  • Secrets are never returned by the serverGET /api/setup only emits *Set booleans, so the overlay can show "(key set)" / "(token set)" markers without ever leaking the value to the browser.
  • Saving a blank secret preserves the existing value so non-secret fields can be edited without re-typing tokens. Only an explicit replacement string overwrites a secret.
  • POST /api/setup/reset deletes the overlay file entirely and reverts every device to the add-on/Docker defaults.

API surface

  • GET /api/setup — non-secret summary plus *Set booleans for the overlay editor.
  • POST /api/setup — persist overlay values; blank secrets preserve existing.
  • POST /api/setup/reset — delete the overlay file (defaults restored).
  • GET /api/config now also surfaces haUrl, haUrlSet, haTokenSet, and landscape so the overlay can prefill non-secret fields consistently across clients.

Changed

  • Setup overlay now POSTs to the server in add-on / Docker mode instead of writing to localStorage only. localStorage is still written as a per-device cache so HACS-only installs (no server) keep working unchanged.

Upgrade

No action required. Existing add-on Configuration / Docker env values continue to work as defaults; saving any field from the overlay on any device now persists server-side and shows up everywhere.

Artifacts

  • Multi-arch HA add-on images on GHCR — pushed by the addon-v2.1.5 tag: ghcr.io/rusty4444/plex-now-showing-{amd64,aarch64,armv7,armhf,i386}:2.1.5 plus :latest.
  • Server changelog: see addons/plex-now-showing/CHANGELOG.md.