The module controls CueTime Stage Display devices over the JSON control protocol,
over WebSocket only (ws://<device>:8081).
HTTP_JSON_CONTROL_PROTOCOL.md documents the messages.
The authoritative machine-readable schema is
schemas/protocol-schema.json, vendored
verbatim from the sibling Android-Display-App/ repo. Both the spec and the schema
are generated far-side from the Kotlin @Serializable data classes; the vendored
copies are committed so this repo builds standalone. See
docs/CONFORMANCE.md for the exact far-side commit, content
hash, and regeneration instructions.
src/protocol/generated.ts is generated from the vendored schema by
scripts/generate-protocol.mjs. After updating the vendored schema, run:
yarn generate-protocolDo not hand-edit src/protocol/generated.ts.
navigate_next_session— Navigate to next sessionnavigate_previous_session— Navigate to previous sessionshow_session— Jump to a session by idtoggle_playback— Toggle between play and pause based on the device's reported run statestart_session— Start or resume the current sessionpause_session— Pause the current sessionreset_current_session— Return the current session to its configured start value, pausedreset_program_elapsed_timer— Reset the program elapsed counteradd_session— Append a session (mode, duration or time-of-day offset, presenter, notes, flash timing), optionally starting itmove_session_up/move_session_down— Reorder a session by iddelete_all_sessions/delete_all_messages— Remove every session or message (requires confirmation)add_time— Add seconds to the timersubtract_time— Subtract seconds from the timerblackout— Enable, disable, or toggle blackoutset_glow/toggle_glow— Control the glow effectset_flash/toggle_flash— Control the message flashset_brightness— Set the backlight (whole number, 0–100)set_is_time_up_display/toggle_is_time_up_display— Control the time-is-up overlayshow_message— Show a message; pressing again while one is on screen hides ithide_message— Take the message off screen without deleting itshow_idle— Show the idle screen
timer_run_state— Timer engine state (idle,running,paused)elapsed_time— Session running time (ms)timer— Current on-screen reading (ms, unsigned)current_session_name— Current session namecurrent_presenter_name— Current presenter nameis_playing— Whether timer is running ("Yes"/"No")is_glowing— Whether glow effect is active ("Yes"/"No")is_blackout— Whether blackout mode is active ("Yes"/"No")message_text— Current message textcurrent_session_number— Current session number (1-based)total_sessions— Total number of sessions in the programelapsed_formatted— Formatted elapsed time (MM:SS or HH:MM:SS)remaining_formatted— Formatted remaining time (MM:SS or HH:MM:SS)previous_session_name— Name of the previous sessionnext_session_name— Name of the next sessionprevious_session_presenter_name/next_session_presenter_name— Presenter of the previous / next session
is_connected— Device Is Connectedis_playing/is_paused/is_idle— Whichtimer_run_statethe device reportsis_glowing— Glow Effect Activeis_blackout— Blackout Mode Activeis_flashing— Flash Effect Activehas_previous_session/no_previous_session— Whether navigating back is availablehas_next_session/no_next_session— Whether navigating forward is availablemessage_showing— Message Is Showingis_time_up_display— Time-is-Up Display Enabledis_time_up_flashing— Time-is-Up Flash Active
Below is an overview of the built-in presets. After applying a preset, you can customize its text, colors, and actions in the Companion button editor.
- Navigate to Next Session — Icon button, no feedback
- Navigate to Previous Session — Icon button, no feedback
- Previous Session — Displays
previous_session_nameon a frame. Tapping navigates to the previous session. Blue feedback when a previous session exists. - Next Session — Displays
next_session_nameon a frame. Tapping navigates to the next session. Blue feedback when a next session exists.
- Toggle Playback — Icon button. Toggles between start and pause based on the device's current playing state. Top bar shows green when playing.
- Pause Timer — Icon button. Always pauses.
- Add Time — Icon button. Adds 60 seconds.
- Subtract Time — Icon button. Subtracts 30 seconds.
- Elapsed Time — Large formatted elapsed time. Top bar shows green when timer is running.
- Remaining Time — Large formatted remaining time. Top bar shows green when timer is running.
- Time Info — Shows elapsed time on top line and remaining time on bottom line, on a frame. Top bar shows green when timer is running.
- Session Counter — Shows
current_session_number/total_sessionson the first line andcurrent_session_nameon the second line, on a frame. Green feedback when timer is running.
- Show Message — Icon with "M?" text on it. The default message text is "Fill in message" — edit the button's action to change the text. Tapping the button again hides the message.
- Toggle Flash — Flash icon. Orange feedback when flash is active.
- Toggle Glow — Glow icon. Yellow feedback when glow is active.
All presets can be customized after applying them to a button:
- Text: Change the
textfield in the button's style to use different variable references or static text. - Colors: Adjust
color(text color) andbgcolor(background color) in the button's style. - Actions: Modify the action options (e.g., change the message text, seconds to add/subtract).
- Icons: The presets using
icon_framecan be swapped for any icon in the button's style settings.