Documentation
OnAirScreen
Bitfocus Companion module for OnAirScreen studio displays. Works with Companion 4.3 and 5.
Commands use the HTTP REST API (default port 8010):
- Status poll (fallback):
GET http://host:8010/api/status - Commands:
GET http://host:8010/api/command?cmd=LED1:ON - Live status (preferred): WebSocket
ws://host:8011(HTTP port + 1)
OSC is not required. Enable HTTP in OnAirScreen (Settings → Network). Allow both the HTTP port and HTTP+1 through the firewall. If the WebSocket is blocked, the module keeps polling /api/status (default every 500 ms).
Install (until this module is in the Companion Store)
- Download
astrastudio-onairscreen-<version>.tgzfrom the GitHub Releases page. Do not extract it. - Companion Modules → Import module package → choose the
.tgz. - Connections → add astrastudio / OnAirScreen.
- Set the connection Label to
oasso variable examples below match.
Local development: corepack enable && yarn install && yarn build, then symlink this folder into Companion's module-local-dev directory as companion-module-astrastudio-onairscreen.
Connection
| Field | Default | Notes |
|---|---|---|
| OnAirScreen IP / Hostname | 127.0.0.1 | Studio PC running OnAirScreen |
| HTTP Port | 8010 | Must match OnAirScreen HTTP port |
| Use WebSocket for live status | on | ws://host:(HTTP+1). Off = HTTP poll only |
| WebSocket Port | (empty) | Empty = HTTP port + 1. Set only if OnAirScreen uses another port |
| Poll interval (ms) | 500 | Used when WebSocket is off or disconnected |
The connection status shows instance name and version when connected, for example Studio-1 · 1.0.0beta1.
Actions
| Action | Sends |
|---|---|
| LED | LED{n}:ON / OFF / TOGGLE |
| AIR timer | AIR{n}:ON / OFF / TOGGLE (AIR1 = microphone) |
| Reset AIR timer | AIR3:RESET or AIR4:RESET |
| AIR3 top-of-hour | AIR3TOH:ON / OFF / TOGGLE |
| Loudness I+LRA | LUFSI:START / STOP / TOGGLE / RESET (start and running reset restart; stopped reset hides I+LRA) |
| Set AIR3 time | AIR3TIME:seconds from m:ss (e.g. 2:05) or a raw second count |
| Set text field | NOW: / NEXT: / WARN: plus text |
| WARN | WARN:text, WARN:1:text, WARN:2:text; empty text clears that priority |
| Raw command | Any COMMAND:VALUE (e.g. CONF:…) |
A failed command is marked as a failed Companion action. After a successful command the module re-reads /api/status immediately.
Feedbacks
LED on, LED autoflash, LED timedflash, AIR running, AIR3 TOTH, Silence, Loudness I+LRA, WARN not empty.
Variables
Use the connection label (example assumes oas): $(oas:air1_time), $(oas:led1_status), …
| Variable | Meaning |
|---|---|
led{1-4}_status | true / false |
led{1-4}_text | LED label |
led{1-4}_autoflash | Autoflash enabled |
led{1-4}_timedflash | Timedflash enabled |
air{1-4}_status | Timer running |
air{1-4}_seconds | Integer seconds |
air{1-4}_time | m:SS like OnAirScreen (125 → 2:05) |
air{1-4}_text | Timer label |
air3_toth | Top-of-hour active |
now / next / warn | Text lines |
silence | Silence alarm latched |
lufs_integrated | Programme I+LRA session running |
lufs_i | Integrated loudness I (LUFS, one decimal) |
lra | Loudness range LRA (LU, one decimal) |
instance | Instance name |
version | OnAirScreen version |
Presets
LED1–4 toggle with live caption and colour, AIR1–4 with live caption and time (AIR1 = microphone), TOTH, Reset AIR3 / AIR4, NOW / NEXT / WARN display, Clear WARN, Silence alarm, Loudness I+LRA (live I and LRA), Reset I+LRA.