Jump to content

Create a building safety alert overlay

From SpinetiX Wiki

Scenario

A company operates multiple buildings equipped with digital signage displays. The screens normally show standard information such as company communications, meeting room schedules, dashboards, or visitor information. When a safety event occurs, a designated system communicates to all the players to display the corresponding alert above whatever content is currently running at that time.

Potential trigger sources include:

  • Building management systems
  • Fire detection and alarm systems
  • AMX/Crestron/Q-SYS control systems

This allows safety information to be displayed without modifying, republishing, or even knowing anything about the main content on the players.

Overview

The tutorial on this page shows how to create a player-level overlay that displays building safety alerts above any content running on a player. The overlay remains transparent during normal operation and becomes visible only when activated by an external system through a Shared Variable update. Because the project is configured as a player-level overlay, the alert appears above all other content displayed by the player, including ARYA alerts.

This approach allows alerts to be managed independently of the main content, making it suitable for deployments with many players and diverse content sources.

This tutorial demonstrates a digital signage integration and is not intended to replace certified life-safety, evacuation, or emergency-notification systems.

Architecture

Architecture diagram
Architecture diagram

A central building-management or control system monitors safety events; this could be a system from Crestron, AMX, Q-SYS, or an evacuation and alarm platform. When the control system detects or receives a building safety event, it updates a Shared Variable over the IP network to a predefined value, such as: NORMAL, ADVISORY, EVACUATE, ALL_CLEAR.

Every player is configured once with the URL of the same player-level overlay project, hosted centrally on a web server. The overlay continuously monitors the same Shared Variable and remains completely transparent while no alert is active. When the Shared Variable is updated, the overlay immediately reacts and displays the corresponding alert above whatever content is currently running on the player.

External systems only update the variable value; the overlay project is responsible for displaying the appropriate content.

Benefits of this approach

This architecture offers several advantages:

  • One centrally managed overlay project can serve many players.
  • The main signage projects remain unchanged.
  • Alerts can be updated immediately through Shared Variable updates.
  • The same overlay can work with content from ARYA, Elementi, or other sources.
  • The overlay can be maintained independently of the content shown on the displays.
  • The player-level overlay remains available regardless of the content-management system being used.

Tutorial

Requirements

Create the overlay project

First, create the Elementi project that will be used as the player-level overlay. The project should contain several predefined alert layouts (e.g., ADVISORY, EVACUATE, ALL_CLEAR) and an Action to Switch widget to control which layout is displayed depending on the current state. The overlay must remain completely transparent while no alert is active (i.e., NORMAL state).

Version: 1 (revision history)
Release date: Aug 31, 2026
File type: Elementi project

You can download a sample project from the right; if you want to start from scratch, here are the guidelines to follow:

  1. Open Elementi and create a new project.
  2. When configuring the project's settings, make sure to select the SYSTEMS Feature Set.
  3. Double-click on the project's icon in the Browse panel to open it. Its root index file is automatically opened for editing and preview.
  4. Click the Document Properties icon from the toolbar and disable the background property to ensure the overlay's transparency while no alert is active.
  5. Create a new layout for ADVISORY state.
    • Design suggestion: use an amber banner (solid or nearly opaque background), occupying the upper or lower third of the screen, containing a short headline (e.g., “SAFETY NOTICE”), one concise instruction (e.g., “Please avoid the loading area until further notice.”), and optionally a warning note icon.
  6. Create a new layout for EVACUATE state.
    • Design suggestion: use a full-screen red background, containing a large white headline text (e.g., “EVACUATE THE BUILDING), one primary instruction (e.g., “Use the nearest safe exit.”), followed by one or two supporting instructions (e.g., “Do not use the lifts. Follow instructions from authorised personnel.”), and optionally a warning icon.
  7. Create a new layout for ALL_CLEAR state.
    • Design suggestion: use a green, blue, or neutral background, occupying the upper or lower third of the screen, containing a short headline (e.g., “ALL CLEAR”), a brief instruction regarding return to normal activity. (e.g., “Normal operation may resume.”), and optionally a matching icon.
  8. Add an Action to Switch” widget into your project. Click here for more details about this step.
  9. Click the “Fit Screen” button on the toolbar to make it full screen.
  10. Configure the widget:
    1. Double-click the widget's layer in the Edit panel to find its properties.
    2. Enter the name of Shared Variable (e.g., “safety.alert”) to monitor for updates.
    3. Disable the “Start with default page” option to retain recent updates upon opening/restart.
    4. Building safety alert overlay - Action to Switch
      Building safety alert overlay - Action to Switch
      Go to the “Mappings” tab, remove all the default entries, and define for each Shared Variable value (Action column) the appropriate content (Page column) to display: NORMAL → Empty text layer ADVISORY → Set the ADVISORY layout EVACUATE → Set the EVACUATE layout ALL_CLEAR → Set the ALL_CLEAR layout
  11. Save the changes.

Publish the overlay project

Elementi M or Elementi X is required to publish the project directly on a web server. Alternatively, you can manually copy the project's files on your web server.

To publish the overlay project from Elementi to the web server:

  1. Go to “Devices” and create a Publish Location for your web server (e.g., https://server.example.com/overlay)
  2. Go to your overlay project and publish it on the web server. Follow the same steps for publishing to players, just select the newly created Publish Location as target.
  3. Verify that the project's index file (e.g., https://server.example.com/overlay/index.svg) is accessible through HTTP. within the same network as the player(s).

For inspiration, you might want to check out these tutorials:

Configure the player

At this step, you need to:

  1. Configure the player-level overlay using the URL of the published project (e.g., https://server.example.com/overlay/index.svg).
  2. Enable the Shared Variables Network API to allow the interaction with the external system.
  3. Reboot the player to apply these changes.

Test the alert workflow

For testing, use your method of choice to update the Shared Variable defined in the project (e.g., “safety.alert”). To easily test on a player, you can download and use the Web Storage REST API Tool.

At the beginning, only the existing player content is visible, since the overlay remains transparent.

Next, update the Shared Variable as follows:

Update to Expected result
ADVISORY A safety advisory appears. The message is displayed above all content running on the player.
EVACUATE The advisory is replaced by a full-screen evacuation alert. The main content continues running underneath.
ALL_CLEAR The evacuation alert is replaced by an all-clear message.
NORMAL The overlay returns to a transparent state and only the normal content is shown.

Optional extension

In larger deployments, location-based alerts may be required, while still using a single centrally managed overlay project. This could be achieved by having the Shared Variable carry additional information beyond the alert state, such as:

EVACUATE|BUILDING_B
or
EVACUATE|BUILDING_B|Evacuate Building B|Use the nearest safe exit. Do not use the lifts.

The overlay can then determine:

  • The alert type.
  • The target building or area.
  • Further details or instructions to display.

Some JavaScript code would be needed to parse the incoming value and to map players to buildings or areas.

Troubleshooting

Alert does not appear

Verify that:

  • The player-level overlay is configured correctly.
  • The overlay project is accessible from the player.
  • The Shared Variable name matches the configuration of the Action to Switch widget.
  • The Shared Variable value matches one of the configured actions.
Overlay remains visible

Verify that the Shared Variable has been reset to: NORMAL.

Overlay does not update after publishing

The player may still be using cached content. Refer to the Player-level overlay article for recommendations regarding content updates, caching behaviour, and cache reset procedures.

See also

We use only essential cookies for site functionality.