• v2.0.0 203f918dd5

    v2.0.0 Stable

    zaph0d released this 2026-03-28 18:55:09 +01:00 | 26 commits to main since this release

    📅 Originally published on GitHub: Sat, 28 Mar 2026 17:55:38 GMT
    🏷️ Git tag created: Sat, 28 Mar 2026 17:55:09 GMT

    New widgets

    • Air quality — European AQI, PM2.5/PM10/NO₂/O₃, 4-day pollen forecast (birch, grass, alder, mugwort, ragweed) via open-meteo CAMS — no API key
    • Market — crypto Fear & Greed gauge, four stock indices (S&P 500, Dow Jones, AEX, FTSE 100), five stock tickers, top 10 crypto coins — no API key
    • P2000 emergency alerts — Dutch emergency services paging feed, filtered by region and discipline; auto-skips in rotator when quiet; optional news ticker injection

    Notifications: ntfy + Matrix

    • Matrix channel — assistant notifications dispatched in parallel to ntfy and Matrix; bot setup via create-account, room invite, and one-time join; MATRIX_TOKEN in .env only
    • Config restructurednotify.ntfy.{enabled,url} and notify.matrix.{enabled,homeserver,room_id}; auto-migrated from old ntfy_url/ntfy_topic format on startup
    • Per-person Matrix room — each person can configure matrix_room_id alongside ntfy_topic
    • ntfy/Matrix reachability probes — landing page STATUS section shows live ok/offline/not-configured for both notification servers

    Assistant improvements

    • 10 new rule variables — weather (temperature, wind speed), rain (mm_now, minutes_until_rain), polestar (battery_pct, range_km, is_plugged_in), air quality (AQI, pollen_birch, pollen_grass)
    • Rules system rewrite — structured Rule list replaces flat dict; condition builder modal in admin panel; per-family and per-person rules; auto-migrated from old format
    • Per-person ntfy topics — each person has their own topic; global rules fan out to all personal topics
    • Personalised RSS feeds — per-person feeds appear only on screens they're assigned to

    Casting & device management

    • Apple TV pairing — full AirPlay pairing flow from the admin panel
    • Android TV Remote — wake and standby screens from the landing page power button
    • Auto-recover from IP changes — caster finds devices by name after a DHCP change
    • Post-cast verification — silently failed casts (e.g. rejected by Google Home after a voice command) are detected and retried
    • Per-screen power toggle — landing page has a power button per screen
    • Screen diagnostics — per-screen status, last log entries, and manual re-cast button in admin panel

    Landing page & admin panel

    • System STATUS section — services (backend/caster/scanner/assistant/ntfy/matrix) + all 13 API data sources with last-fetched age; replaces the old two binary pills
    • Cache health registry — all 13 API routers report per-fetch health; status endpoint aggregates
    • Rotator fade speed — configurable via admin panel (Slow → Fast); applies globally
    • Info widget editor — admin panel can configure info widget slots in the rotator

    Fixes

    • Caster recast loop — cooldown guard + reachability-based trust
    • Warnings expiry — cleared immediately on cache hits
    • Bus 500 errors — asyncio.CancelledError handling + 20s timeout
    • Rain source — switched from buienalarm.nl (blocked) to open-meteo minutely_15
    • Market quotes — switched from Yahoo Finance (blocked) to Stooq CSV
    • Weather icons — Meteocons SVGs replace broken emoji on Chromecast
    • On-route traffic filter — corridor proximity instead of road name only
    • Calendar — finished events hidden; colours resolved; 403 warnings suppressed
    • nginx — index.html never cached

    Upgrading

    git pull && docker compose up --build -d
    

    Config auto-migrates on startup — no manual changes needed. If you had notify.ntfy_url / notify.ntfy_topic in your YAML, the migration converts them to notify.ntfy.{enabled,url} automatically.

    If you're adding Matrix: set MATRIX_TOKEN=syt_... in .env, see docs/assistant.md for the full bot setup walkthrough.

    Downloads