Motion events from Nx
Webhooks that genuinely arrived from the NVR. Manual injections from this dashboard are shown behind them in gray so a test can never be mistaken for a real hit.
Job outcomes
Every job ends in exactly one outcome. Discarded is not a failure — it usually means the camera had no footage for that moment, and no mobile data was spent.
Mobile data used
Bytes downloaded from the NVR. This is the figure that appears on the 5G bill.
Where the time goesmost recent successful job
Tuning guide: a long settle is deliberate — it is
XIBO_SETTLE_MS, waiting for the player to pull the file. If the TV ever shows the
previous clip, raise it. A slow download means the 5G link, not the service.
Event log
| Time | Type | Event |
|---|
Recent jobsnewest first · stage timings per job
| Time | Outcome | Data | Total | Stages |
|---|
Motion clips
Every clip downloaded from the NVR, newest first. Archived as soon as the download succeeds — before the Xibo upload — so footage is here to inspect even if something downstream failed. Oldest are removed once the count or size cap is reached.
Run a test
Both show a confirmation with every step and the exact clip window before anything runs. The real one spends mobile data.
Player actions
Fires the player action alone — no download, no upload, no media replace.
Use these to bisect a dead screen: if changeLayout moves it and
webhook does not, the problem is the Action, not XMR. If neither moves it,
XMR is not reaching the player.
These always call Xibo for real, even while DRY_RUN=true.
Configuration
Xibo CMS
The Xibo connection is configured here and only here — the server's environment variables are not used. Changes apply from the next clip, with no restart. Save tests the connection first. A field tagged default has not been saved and uses the built-in value.