Skip to content

v1.3.0 — Status cards & live preview

Choose a tag to compare

@jeremiaa jeremiaa released this 22 Jul 13:30

Two big ones this time: status cards and a live preview in every widget inspector.

⚠️ After updating: reload your displays once

This release changed how the app talks to Home Assistant (the notification stream and the state pipeline). Views that are already open on a screen may keep the old code until they are reloaded — open each display once and do a hard refresh, or restart the browser/kiosk app. New page loads are fine. If a view has "auto refresh" set in its view settings, it sorts itself out on the next cycle.

How to update

First go to the folder you installed Magic Frame into. The installer creates magic-frame inside whatever directory you ran it from, so for most people that is ~/magic-frame:

Pre-built images (default):

cd ~/magic-frame
git pull
docker compose pull
docker compose up -d

If you build from source:

cd ~/magic-frame
git pull
docker compose up -d --build

Not sure where it lives? find / -name docker-compose.yml -path '*magic*' 2>/dev/null will tell you.

Or run the installer again from the same directory you used the first time (usually your home directory) — it updates the existing checkout instead of cloning a new one:

curl -fsSL https://raw.githubusercontent.com/jeremiaa/magic-frame/main/deploy/install.sh | bash

Your database, .env, wallpapers and uploaded modules live outside the repo and are untouched.

Status cards

A card that shows up while something is actually happening: the car is charging, the printer is printing, the toniebox is playing. Each card takes the device's own picture entity (or your own image), shows live detail values next to it — charge level, time remaining, layer number — and disappears again when the event is over. Or stays permanently, if you prefer.

  • Available as its own Status widget and as cards inside the notification stack
  • Cut-out PNGs are auto-trimmed, so a transparent border doesn't push the text away
  • Progress as a bar or a ring, with or without a percentage
  • Layouts: row, stacked, centred — image size, blur and rounding adjustable
  • Local paths from Home Assistant (/local/…) work directly, or upload your own image right here — no more juggling files in HA's www folder

Live preview in every widget inspector (#42)

Every widget now renders live while you configure it — the real component with real data, not a mock-up. Wide screens get it as a second column next to the settings, so it stays visible across all tabs; tablets and narrow screens keep it as a collapsible section on top.

  • Live / sample data toggle — widgets that only appear when something happens (notifications, calendar, media) fabricate example content from your own configuration: your rules with your icons and colours, appointments in your date format
  • Real display sizes — displays report their resolution, and the preview can compute 1:1 from an actual screen instead of a guess. The editor canvas can adopt a real display's aspect ratio too
  • Purely optional: without connected displays nothing changes, and the preview is click-through so a media card never really pauses your music

Light and dark, centrally

One setting per view instead of per widget: always dark (default), always light, by sun position (follows sun.sun — no configuration needed), by time of day, or by any HA entity — a scene, for example. If the entity is missing, the time window takes over so a frame never sits in the wrong look.

Widgets gain an "automatic (follows view)" choice, and there's a button to switch them all at once. The default stays dark, so nothing changes until you touch the switch.

Fixes

  • HA persistent notifications never worked (#62) — Home Assistant removed the persistent_notification entities back in 2023, and the app was still looking for them. It now reads them over the websocket API. Markdown in the text is cleaned up too, and an embedded image no longer bloats every poll
  • Immich memories showed random photos (#61) — the date filter was missing, so "on this day" returned every memory there is
  • Only 200 wallpapers, ever — the playlist was capped at 200 images and the shuffle was biased, so a 1000-photo album never showed more than a fifth of itself. Now the whole library is fetched and shuffled properly
  • Multiple Immich albums (#40) — pick several, they merge into one slideshow, duplicates dropped
  • A websocket race in the HA bridge took the process down with an uncaught exception on every start
  • Notification cards: media style ignored the "icon in box" setting, HA-persistent cards ignored the design settings entirely, and the dismiss ✕ was hover-only — unfindable on a touch panel. It is now configurable, and by default the device decides
  • The notification inspector was reorganised: everything in the stack — alerts, timers, media, RSS, status — is now one consistent list of collapsible cards

Kubernetes

Helm chart, manifests and a full installation manual, contributed by @RudiKlein (#49). Thanks!


Closes #42, #62, #61, #40. Moves #24 and #25 forward.