Browse documentation
All documentation
Getting started
Screens & scenes
Widgets
Integrations
The assistant
Household & presence
Reception & visitors
Menus, art & broadcast
Account, plans & data
API & self-hosting
Troubleshooting

Emergency broadcast

How to take every screen on the account at once with one message, using a template and a two-step confirmation — and how to wire a physical button to a screen to do the same thing.

Broadcast is not gated by plan. Charging for the thing that tells people a building is on fire is not a business model. Any account with full access can send one — a menus-only staff account cannot, because it cannot reach the page or the API behind it.

What a broadcast does

A broadcast takes every paired screen on the account at once, replaces whatever was scheduled, and holds until somebody clears it. There is no dismiss control on the screen: it ends when whoever started it says so, which is the entire point of the feature.

On the wall it is one message rather than a layout — a full-panel severity colour, a drawn glyph, a title sized to be read from the far side of a room, and up to six short instructions. It sits above every widget, the assistant and any scene change already in flight.

It is written down before it is sent. A broadcast that reaches only half the screens still appears on the other half as soon as they next fetch their configuration, including after a reboot — so a screen that was unplugged during an evacuation comes back showing the notice rather than the weather.

Pick the wordsA template, editedif you likeStart broadcastArms theconfirmationConfirmArmed for 8 secondsEvery pairedscreenHolds untilcleared
Two clicks, differently worded, in different places

Sending one

The page opens on the Send tab with the first template already chosen, so the common case is: open the page, press the button, confirm. Templates and history live behind their own tabs where they cannot add a decision to the path that matters.

Emergency broadcastSend · Templates · History · ButtonsChoose what to saytemplate chipsWhat the screens will showscaled-down previewSeverity · Icon · Title · Message · InstructionsSend to 6 screensStart broadcast → confirm4 of 6 screens took itreached, not merely sent
The Send tab: words on the left, what the wall will look like on the right
  1. Open Broadcast and pick a template

    The chips across the top are your templates, colour-swatched by severity. Picking one fills in the fields below it.

  2. Change anything you need to

    Editing here never changes the template itself; the page says so, and marks the send as using your wording. Typing also disarms the confirmation, because changing the words after arming means you are not finished.

  3. Check the preview

    The panel on the right renders the same layout, colours and type sizes as the real thing, scaled down. If it overflows there it overflows on the wall.

  4. Press Start broadcast

    The button is refused without a title — that is what people read first, and a broadcast with nothing to say takes every screen in the building and shows a blank.

  5. Confirm

    The confirmation names the message and the number of screens. It is inert for the first half-second so a double-click cannot carry through it, it expires after eight seconds so an abandoned attempt fails safe, and Escape cancels it.

“Sent” is not “arrived”. After a send, Mirra reports how many screens actually took the message and how many did not, because in an evacuation the difference matters. Those that missed it pick it up when they next reach the server — and a screen that is switched off shows nothing at all, whatever the count says.

Which screens are actually showing it

The count after a send is a snapshot of the moment you pressed the button. It does not say which screens those were, and it does not tell you what happened in the minute afterwards.

A floor plan does. Under Plans, while a broadcast is running, a screen turns bright red once that screen has confirmed the message is on its glass — the screen itself reports back, from the code that draws the message, and repeats it every minute for as long as it is up. Anything not red has not confirmed: it may be off, it may be offline, or it may simply not have checked in yet. A screen that goes dark part-way through an incident stops being red within a few minutes rather than staying red on a drawing nobody is watching closely. The read-only view of a plan shows the same thing, so it can be left up on a desk or a spare monitor without the drawing being editable, and so does a Floor plan tile on a wall.

It is still not a promise that anybody read it — nothing can promise that. It is the difference between “we sent it” and “it is on the glass”, which in an evacuation is worth having.

This needs a plan to exist first, with the walls drawn and the screens placed on it. Without one the send count is all you have — which is a reason to draw the building before the day you need it.

What goes into a message

Severity
Emergency — evacuate, lockdown, act now. Warning — something is wrong and people should know. Notice — a planned closure, a drill, a disruption. It decides the colour of the whole panel, which is what registers before a single word has been read.Default: Emergency
Icon
Warning triangle, Fire, Padlock, Weather, First aid, Exit or Information. Drawn by the screen rather than loaded, so an evacuation notice never waits on a font or a network.Default: Warning triangle
Title
The biggest thing on the wall. Up to 120 characters, with a live count under the field. A broadcast without one is refused.Default: Empty
Message
The paragraph under the title. Up to 400 characters.Default: Empty
Instructions
One per line, up to six lines of 120 characters — assembly points, exits, who to call. Anything past that is dropped rather than shrunk to fit, because a wall of text is unreadable from the far side of a room.Default: Empty

Templates

A template is not the broadcast. It is the wording somebody agreed to when they had time to think, so that the person who finds the fire is choosing from a list rather than composing prose under pressure.

  1. Open the Templates tab

    Existing templates are listed with Edit and Delete beside each.

  2. Fill in the editor

    A template name — what it is called in the picker, never shown on a screen — and then the same severity, icon, title, message and instructions a live send uses.

  3. Write to the preview, not to the form

    The panel beside the editor is exactly what a screen renders, scaled down.

  4. Press Create template

    Or Save changes when editing an existing one. Deleting a template does not affect broadcasts already sent.

  • A new account starts with four written-out templates rather than placeholders: Fire — evacuate, Lockdown, Severe weather, and Building closed. They are meant to survive unedited apart from the assembly point and the phone number.
  • An account can keep 24 templates. A picker you have to scroll costs seconds at the worst possible moment.
  • A template is bounded by the same limits the screen renders to, so nothing can be saved that the wall could not display.
  • Delete every template and reload, and the starter set comes back — which is the safer of the two failures.

Ending one, and replacing one

While a broadcast is live, a coloured bar follows you around the portal — it is drawn from the navigation that every signed-in page already carries. The failure that prevents is somebody starting an evacuation from their phone, wandering off to another page, and losing track of the fact that the building is still being told to leave.

Ending is guarded too, though more lightly than sending: End broadcast, then “Confirm: clear every screen”, with “Keep it up” beside it. Stopping an evacuation notice by catching the wrong button is its own kind of accident, and the cost of asking is one click on a control nobody presses in a rush.

  • Clearing is pushed to every screen even when nothing was live, because a screen that missed the end of an earlier broadcast is a screen still showing an evacuation notice.
  • Sending a second broadcast while one is running ends the first and takes its place. Screens show the newest.
  • The History tab keeps the last fifty, with who started each one, when it started, whether it is still live, and when and by whom it ended.

How hard the screen works to be noticed

The border, never the panel. Flashing a whole screen is both a seizure risk and a way of making text unreadable at the moment somebody most needs to read it.

Mirra stores an attention style per household and the screen honours it. There is no control for it in the portal at present, so in practice a household gets the gentle pulse.

Steady
No movement at all.Default: Not the stored default
Gentle pulse
The border fades in and out over a couple of seconds.Default: What every household gets unless the stored value says otherwise
Flashing border
A hard on-off at about 1.25 flashes a second, on the border only. WCAG 2.3.1 puts the photosensitive-seizure threshold at three a second and the risk climbs with the flashing area, so this is a deliberate distance from the line. There is no faster option and no whole-panel flash.Default: Not the stored default

A screen whose browser has been asked to reduce motion stops the animation entirely. The message still shows; it simply stops moving.

Who can send one, and what is recorded

Any account with full access can start a broadcast. It is not restricted to the owner: the person who notices the fire is not necessarily the person who pays the bill, and a permission check is not worth a delay here. A menus-only staff account is the exception — it cannot reach the page, and the request behind it is refused.

Every send, and every clear that actually stopped something, is written to the audit log with the title, who did it and how many screens of how many took it. Clearing when nothing was running still puts the screens right, but there is nothing to name and no entry is made. That is the trade being made: fewer gates in front of the button, and a complete record behind it.

  • The confirmation names the message and the number of paired screens before anything happens.
  • With no screens paired, a broadcast is still recorded and Mirra says plainly that nothing displayed it.
  • History is read on its own tab rather than by the banner, which polls in the background and stays as small as it can.

A real button on the wall

A screen in a corridor, a school or a care home often wants a real button next to it rather than a phone somebody has to find and unlock. A Raspberry Pi screen can have two buttons wired to its GPIO header — one that starts a broadcast, one that reboots that screen — and both are optional. A screen with nothing wired behaves exactly as it does now.

Each button is a normally-open momentary push button and two jumper wires, between the chosen pin and a ground pin. No resistor: the Pi's internal pull-up does that job, which also means a broken or disconnected wire is silent rather than firing constantly.

  1. Write the message first

    On the Templates tab. A button with nothing to say will not arm, and Mirra refuses to save it that way rather than pretending.

  2. Open the Buttons tab and choose the screen

    Buttons belong to a particular screen, because they are wired to that screen's header.

  3. Tick Emergency button and set the pin, the hold time and the template

    Once it is armed, the page states what will happen in words — holding the button for one second will show a named message on every screen — so you can check it says what you meant before anybody presses it.

  4. Press Save buttons

    It takes effect on that screen straight away rather than at the next poll. Discard puts the form back if you change your mind.

  5. Test it

    Press and hold for the configured time. Every screen on the account should show the broadcast, and you clear it from the Broadcast page like any other.

Which screen
The paired screen these settings belong to.Default: The first screen in the list
Emergency button
Whether the panic button is watched at all. Off means the header is ignored entirely.Default: Off
GPIO pin (BCM), emergency
Which pin the button is wired to. Pins 0, 1, 2, 3, 14 and 15 are never offered: two are the ID EEPROM, two carry permanent pull-ups for I²C, and two are the serial console that rescues a Pi that will not boot.Default: GPIO 17 — physical pin 11, with ground on physical pin 14
Hold for, emergency
Half a second, one, one and a half, two or three seconds. It exists so that a knock, a static discharge or a wire brushing a case cannot fire it. If a long cable run gives the occasional unwanted press, raise this before reaching for hardware — interference does not last two seconds and a finger does.Default: 1 second
Wiring, emergency
Button to ground, or button to 3V3. Ground is the right choice where you have one: a disconnected pin then reads as not pressed.Default: Button to ground
Which message it sends
One of your templates. The message is chosen here rather than on the device, so it can be changed from the portal without anybody visiting the screen. Without one, the button does not arm.Default: None chosen
Reboot button
Restarts this screen only. Handled entirely on the device, so it works when the network does not — which is the point of it.Default: Off
GPIO pin (BCM), reboot
Which pin the reboot button is wired to, from the same list of usable pins.Default: GPIO 27 — physical pin 13, with ground on physical pin 9
Hold for, reboot
Two, three, five or ten seconds. Longer than the panic button, because rebooting a wall display by accident is its own outage.Default: 3 seconds
Wiring, reboot
Button to ground, or button to 3V3.Default: Button to ground

The broadcast is sent by the server, so the panic button needs the screen to be online. If the network is down the button does nothing — there is no local fallback, and it would be wrong to imply otherwise on a life-safety control. This is a way to get a message onto every screen quickly. It is not a fire alarm system and it is not certified as one.

From an alarm panel or another system

The same broadcast is available over Mirra's REST API with an API key, which is what an alarm panel with an IP module, a building management system or a lockdown control should use. It is also the answer for a button too far from the screen for running GPIO to it to be sensible.

Starting one takes over every screen; clearing gives them back. Anything sent alongside a template overrides that template, so one stored “Fire — evacuate” covers every zone in a building without a template per zone — the title can name the zone at the moment it is sent.

  • Starting one and clearing one both answer with how many screens the push reached at that moment and how many exist, so an integration can raise an alarm of its own rather than trusting a bare acknowledgement. Reading the current broadcast back does not carry those numbers — it says what is running, not who took it.
  • There are no ids to look up and no ordering to get right.
  • The current broadcast can be read back at any time, and that call is safe to poll.

Related

  • Screen settingsEvery setting on a screen's own page that belongs to the screen rather than to a scene — its shape, which way up it is, its camera and gestures, the commands you can send it, and unpairing.
  • Floor plansDraw the building once and everything has a place in it: rooms, doors, screens and lights, a standing-up cutaway view, a read-only view to leave open, and a Floor plan tile that shows a wall display where it is.
  • The schedulerSchedule rules say which scene a screen shows from a given time on given days, and the Scheduler draws every screen's day as a timeline you can drag scenes onto.
  • Sign-ins and rolesHow to give somebody their own password for your Mirra account, and exactly what each of the two roles — full access and menus only — can reach.
  • The REST API and your keysHow to create an API key, what a single key is allowed to reach, and every endpoint the public v1 API exposes.
  • Menu boardsHow to build a menu in Mirra — sections, dishes, prices and photographs — put it on a screen through the menu board widget, and give kitchen staff a sign-in that reaches nothing else.
  • A screen is blank or showing old informationHow to tell a screen that has lost its connection from one that is doing exactly what its schedule and scenes tell it to, and what to check in which order.
  • Getting help and raising a ticketHow to raise a support ticket inside Mirra, what to put in it so it can be answered on the first read, where the support documents live, and how to suggest something for the roadmap.