Field-tested operational guidance, autostart scripts for instant power-cut recovery, and comprehensive troubleshooting for digital signage hardware.
Self-Healing Workflow after a Power Loss
The synergy between system autostart and the Kiosk Hub makes your display infrastructure fully unattended:
-
1Hardware Boots Up
Following a power loss or reboot, the computer behind the display turns back on.
-
2Browser Launches in Kiosk Mode
An autostart entry opens the Hub URL in full screen without human intervention.
-
3Hub Restores Assigned Display
Thanks to “Set as default”, the device knows its hall and launches it after a 5-second countdown.
-
4Right Room is Back Live
No technician needs to run across the convention centre to reconfigure twenty door signs.
Always point autostart scripts to the Hub URL rather than directly to a specific room. This allows mobile displays to be reassigned on site without modifying system autostart files.
Setting up Autostart: Windows, Linux & Android
1. Windows (Mini-PCs & PC Sticks)
Save as monitor.bat. Press Windows key + R, enter shell:startup, and place the file in this folder:
@echo off
:: Launch Edge natively in fullscreen kiosk mode
start msedge --kiosk "https://my-event.com/displays" --edge-kiosk-type=fullscreen
Alternative VBScript wrapper for other default browsers:
@echo off
start "" "https://my-event.com/displays"
timeout /t 5 /nobreak >nul
echo Set s = CreateObject("WScript.Shell") > "%temp%\fs.vbs"
echo s.SendKeys "{F11}" >> "%temp%\fs.vbs"
wscript.exe "%temp%\fs.vbs"
del "%temp%\fs.vbs"
exit
2. Linux & Raspberry Pi OS
Create file ~/.config/autostart/monitor.desktop:
[Desktop Entry]
Type=Application
Name=Room Monitor
Exec=chromium-browser --kiosk --noerrdialogs --disable-infobars https://my-event.com/displays
X-GNOME-Autostart-enabled=true
To prevent display blanking, add to ~/.xprofile:
xset s off
xset -dpms
xset s noblank
3. Android Tablets with Fully Kiosk Browser
-
1Install Fully Kiosk Browser
The free edition from Google Play is completely sufficient for continuous operation.
-
2Set Start URL
Under Web Content Settings, enter your Hub URL under Start URL.
-
3Enable Stay Awake
Under Device Management, switch on Keep Screen On and Launch on Boot.
-
4Lock Kiosk Mode
Optionally protect with a PIN to prevent attendees from exiting. Keep tablets connected to a permanent power supply!
Why the REST Endpoint Operates Without Nonces
The add-on's REST route (GET /wp-json/ec-room-monitor/v1/view) is intentionally public and runs without nonces. For anonymous users, WordPress nonces expire after 12 to 24 hours. If signage depended on a nonce, displays would fail with 403 Forbidden on the second convention day. Nonceless polling ensures weeks of uninterrupted display uptime.
Pre-Flight Continuous Operation Checklist (8 Points)
| Check Item | Requirement | Details & Pitfall |
|---|---|---|
| Venue Photo | Mandatory | Every room exists under Venues with an attached background image. |
| Times | Mandatory | Every session has date, start time, and end time (missing end times default to 1 hour, cutting 2-hour sessions in half!). |
| Parent Event | Mandatory | Every session is assigned to a parent event. |
| Refresh Rate | Recommended | Set to 10–15 minutes for convention day in settings. |
| Preload Window | Review | Adequately covers conference hours (e.g. 24 hours, 20 sessions). |
| Rehearsal | Fullscreen | Every display tested once in full-screen mode on actual target hardware. |
| Power Saving | Disabled | Screen savers, sleep timers, and battery savers disabled on the OS. |
| Set Default | Completed | Executed “Set as default” on each on-site device. |
Troubleshooting Display Issues (All 12 Cases)
Red notice appears instead of room monitor.
Only logged-in WordPress editors see this notice: The add-on Room Monitor & Kiosk Hub is not active. Public visitors see nothing in this place.
Admin notice: "... requires Convention Schedule & Program Planner".
The core calendar plugin is missing or older than 2.0.0. Update the calendar first, then reactivate the add-on.
The monitor stays completely blank.
The venue name in the shortcode must match the name under Events → Venues character-for-character. Also check the Dashboard to verify sessions are scheduled in that room.
A programme item is missing from the screen.
Usually the date or start time is missing, or the item is not attached to a main event. The dashboard identifies both. Also check whether it falls outside the preload window.
Display freezes or shows outdated times.
Displays count locally and never freeze on their own. If they do, a caching plugin (WP Rocket, Autoptimize, etc.) is combining scripts. Exclude ecrm-monitor.js from JavaScript minification.
Split screen content overflows.
The tile height is too small relative to the number of rows. Reduce count (e.g. count="2") or reduce the number of rooms displayed.
Display turns off after some time.
Disable sleep timers and screen savers in OS power settings. The Screen Wake Lock only functions in full-screen mode and requires browser support.
Hub shows no tiles.
Every line in Hub Locations requires at least a location name and a ticker address separated by a vertical bar (|).
Countdown keeps restarting unexpectedly.
A default display is stored in this browser. Tap “Reset Default” during the countdown to clear the stored selection.
Default display resets after reboot.
The browser runs in private/incognito mode or clears site storage upon closing. Disable automatic data clearing in browser settings.
Hero displays "Cancelled" even though a replacement is scheduled.
An outdated child theme override of monitor-view.php is active, or the replacement belongs to a different room. Refresh your theme override from the add-on's latest template.
Monitor stops updating after 24 hours.
Occurs on older versions using expiring nonces. Version 1.0.0 of the add-on resolves this permanently.
Template Overrides for Theme Developers
Developers can customize room monitor presentation inside child themes:
wp-content/themes/your-theme/convention-schedule-room-monitor/monitor-view.php
The template receives $live_events (pre-sorted by hero priority!), $upcoming_events, and $atts. Use filter ecrm_template_path to dynamically alter template loading.