Had an old iPad in a drawer that can’t install anything from the App Store anymore, so it became a photo frame. It loads a fullscreen page from a Home Assistant add-on I wrote and cycles through family photos straight off the SMB share on my NAS. No cloud, no account.
In the morning the hallway motion sensor switches it into weather mode for a couple of hours, so every 8th photo becomes a weather screen with the next 12 hours. The latest version also has a small weather badge in the corner that can stay up all day, or only show up when rain, snow, frost or heat is coming. HA just pushes to it with two rest_commands - the frame itself has no token for HA.
The part I’m happiest with is the bin reminder. The frame tells you the day before which bin goes out, and you don’t type the dates in: you upload the PDF leaflet from your municipality and it reads the dates out of it, locally, no OCR. It works off the coloured cells in the calendar grid (row = ISO week, column = weekday) and checks each one against the printed day number.
It does ingress now too, so it opens from the HA sidebar, and with Mosquitto running it creates MQTT entities for the next collection, photo count and weather mode on its own.
Most of the work honestly went into old Safari. iOS 9 silently ignores half of modern CSS, so everything has px fallbacks and the weather screen is laid out with tables.
Install: Settings > Add-ons > Add-on Store > three dots > Repositories > add https://github.com/emo546/ha-snapframe
If you have an ancient iPad and something looks broken on it, tell me the iOS version.



Correcting myself here: I actually have it running on an iPad 1, so it’s worth a try after all.
My baseline when building the layouts is Safari 9, so I can’t promise every screen looks exactly right that far back. If something does render oddly on yours, tell me what it looks like and I’ll have a go at fixing it.
Thanks so much and very exciting!
I’m not looking for much in the way of controls, just displaying some Now Playing info and a static but refreshing image from my security cameras.
I’ll try it today!