Show alerts over a screen
Let a doorbell, a leak sensor or a timer put a short alert over whatever your screens are showing, and see how Denframe decides which one to show and when it goes away.
A Critical alert reading “Someone is at the door” over the living-room dashboard for five minutes, then the dashboard back where it was in its playlist.
- Denframe with owner access: install on macOS, on Windows or in Home Assistant.
- At least one screen showing a dashboard: Cast to a Chromecast, a TV’s browser or an Android wall panel.
- For the webhook: an automation or service that can send an HTTP request with a bearer token.
Follow these steps in your own Denframe. This website never connects to your household, your accounts or your devices, and never asks for your credentials.
Open the Alerts page
In Studio, open Sources, then Alerts. There is nothing to connect: alerts arrive on their own and are shown over whatever is on screen.
The page shows a picture of an alert over a dashboard, the Webhook address, and Recent alerts, each with its severity and status: Queued, Active, Acknowledged or Expired.
Send a test alert
Choose Send a test alert. Enter a Source such as
doorbelland, optionally, a Dedupe key (optional) such asfront-door.Pick a Severity and set Duration in minutes, from 1 to 1440. Write a Title (up to 160 characters) and a Detail (up to 500), both plain text.
Under Screens, leave All screens to send it everywhere, or tick the screens it should appear on. Choose Send alert; the page says where it went.
Send a test alert from here rather than setting off a real doorbell, leak sensor or alarm to see one.
Know which alert wins
A screen shows at most one alert at a time, over its dashboard.
Severity Use it for Advisory Something worth knowing, such as a delivery or a timer Warning Something to act on soon Critical Something urgent, such as a leak or someone at the door Critical wins over Warning, and Warning over Advisory. Between alerts of the same severity, the one that started first wins.
Sending the same source and dedupe key again while an alert is active or queued adds an occurrence to it instead of making a second alert, and it keeps the highest severity sent. The page shows the count.
Let it clear or acknowledge it
An alert goes away when its time runs out, or when you choose Acknowledge beside it under Recent alerts. By default a screen can’t dismiss an alert itself; an alert sent through the webhook with
allow_receiver_dismiss: trueshows Dismiss on a touch screen that supports it, and Escape dismisses it too.When it goes, the screen returns to the same place in its playlist with the time that was left, unless that dashboard’s schedule ended meanwhile. While an alert is up, the screen’s playback controls are unavailable.
Remove deletes a record from the list. Denframe keeps at most 500 finished alerts and removes those older than 30 days.
Send alerts from an automation
Choose Copy address beside Webhook for the full address. A doorbell, weather service, leak sensor or timer posts JSON to it, with Denframe’s management bearer token in the
Authorizationheader: never in the address.For an automation, set
DENFRAME_API_TOKEN(at least 20 characters) on the Denframe server before starting it, and keep the token in the automation’s protected settings.alert.json { "source": "doorbell", "dedupe_key": "front-door", "severity": "critical", "title": "Someone is at the door", "detail": "Front doorbell rang", "target_device_ids": [], "starts_at": "2026-09-03T12:00:00Z", "expires_at": "2026-09-03T12:05:00Z" }Send it curl -X POST "$DENFRAME_ALERT_URL" \ -H "Authorization: Bearer $DENFRAME_API_TOKEN" \ -H "Content-Type: application/json" \ --data @alert.json- On the webhook,
source,dedupe_key,severity,title,detailandexpires_atare required (only the test sheet makes the dedupe key optional), andstarts_atdefaults to the moment it arrives.sourcetakes letters, numbers, dots, colons, underscores and hyphens. Each source may send at most 20 alerts a minute. - An empty
target_device_idslist means every screen. Once any repeat of an alert is for every screen, the alert stays on every screen. starts_atandexpires_atneed a time zone, and the window must be between one second and 24 hours. Set them to the time you send it.
Images are off by default. To allow a picture in the optional
image_urlfield, such as from a camera, setDENFRAME_ALERT_IMAGE_HOSTSto its exact host names, comma-separated with no scheme, port or path, such ascamera.local, before starting Denframe. Only HTTP(S) image addresses on those hosts are accepted.- On the webhook,
Check the alert
Look at a screen you sent the test alert to: the alert’s title and detail are over its dashboard. Under Recent alerts, it reads Active with when it expires.
Choose Acknowledge, or wait for the duration to pass: the screen goes back to its dashboard, and the alert reads Acknowledged or Expired.
If it doesn’t work
The sheet refuses to send
It names the field at fault: fill in Source, Title and Detail, and keep Duration in minutes between 1 and 1440. Source takes only letters, numbers, dots, colons, underscores and hyphens.
The alert is listed but no screen shows it
Check that the screen is showing a dashboard and is among the screens you ticked. An alert whose start time is still ahead reads Queued until then.
A second alert doesn’t replace the first
Only one alert is shown at a time: a higher severity wins, and with the same severity the earlier one stays until it ends.
The webhook answers that it isn’t authorized
Send the management bearer token in the Authorization header, not in the address.
The webhook refuses the alert
Give starts_at and expires_at a time zone and keep the window no longer than 24 hours, use plain text in title and detail, and send at most 20 alerts a minute from one source.
An alert’s image is missing
Add the camera’s exact host name to DENFRAME_ALERT_IMAGE_HOSTS and restart Denframe.