Remote Control: Broadcast Schedulers
How to drive a broadcast scheduler from outside Backstage — arm or disarm the week plan, force a specific entry, and read what is playing now and next.
This page covers controlling a broadcast scheduler. Building the week plan is Use the Broadcast Scheduler.
Before you start
- A broadcast scheduler exists, with entries in its week plan
- Its name is settled — every route addresses it by name
- You know the exact entry names if you intend to force one
- For the protocol: Settings > Remote Control > Enable Show-Control Protocol is on (off by default)
JSON protocol — domain bcast
Send newline-delimited JSON to TCP 7400 (or UDP 7401 if enabled), with target set to the scheduler's exact name, case-sensitive.
Actions
|
Action |
Args |
Effect |
|---|---|---|
|
|
— |
Every broadcast scheduler in the project, each as a status object |
|
|
— |
The status object for one scheduler |
|
|
|
Arm or disarm the scheduler. Disarmed, the week plan is still there but nothing fires from it |
|
|
|
Run a specific entry now, regardless of what the plan says should be playing |
|
|
— |
Drop a forced entry and hand control back to the plan |
{"domain":"bcast","action":"list"}
{"domain":"bcast","action":"enable","target":"Foyer Plan","args":{"enabled":true}}
{"domain":"bcast","action":"force","target":"Foyer Plan","args":{"entry":"Closing Notice"}}
{"domain":"bcast","action":"clear","target":"Foyer Plan"}
force and clear are a pair. Forcing an entry overrides the schedule until you clear it — so a forced entry left in place will quietly keep overriding the plan the next day. Clear it as part of whatever ends the override.
Status
|
Field |
Meaning |
|---|---|
|
|
The scheduler's name — the sole identifier |
|
|
Whether the scheduler is armed |
|
|
What the scheduler is currently doing |
|
|
The entry playing now |
|
|
The entry due next |
|
|
The scheduler's own clock reading, which is what it evaluates the plan against |
Live status
{"domain":"sys","action":"subscribe","args":{"domains":["bcast"]}}
Backstage pushes an immediate snapshot, an event on every change, and a heartbeat roughly every 3 seconds. activeEntry and nextEntry together make a "now and next" readout on a control surface with no polling.
Web Console — the Broadcast Scheduler block
Drop a Broadcast Scheduler block onto a Web Console page and an operator gets the week plan with its legend, the current time, and an enable toggle in a browser.
The week plan in this block is read-only — it shows the schedule rather than letting an operator edit it. The enable toggle is the control it offers. Editing the plan stays in the Broadcast Scheduler window.
Broadcast Scheduler (Node) binds by node label instead, so the block follows whichever scheduler that node currently drives.
Node editor
A broadcast scheduler is a show-control entity in the same shape as a stepper: the node in the graph is a thin reference to an entity created and programmed in the Broadcast Scheduler window, not a place to build the plan. Use it to bring the scheduler into show logic, or to let a graph re-point which scheduler a Web Console block follows.
For a command vocabulary of your own, build a patch that drives those inputs — the same approach as the StepperCommander patch, and equally your own convention rather than a standard.
Common Mistakes
-
404 scheduler not found —
targetmust match the name exactly, including case. Runbcast.listto read back the real names. -
forcesilently does nothing — theentryname must match an entry in the plan exactly. Read the status, or the plan in the window, to confirm the spelling. -
The plan stopped following the schedule — an entry is still forced. Send
clearto hand control back. -
Nothing fires even though entries exist — the scheduler is disarmed. Check
enabledin the status rather than assuming. -
Entries fire at the wrong time — compare
currentTimein the status against the wall clock you expect. The scheduler evaluates the plan against its own clock reading.
Related
Remote Control — the three routes, and every other controllable element
Use the Broadcast Scheduler — building and programming a broadcast scheduler
Enable and Configure the Show-Control Protocol — the protocol in full: transports, auth, allowlist, the reference client
Remote Control: Sequencers — the sequences a scheduler entry ultimately plays
