Drive the OnAirScreen ON AIR LED from mAirList

mAirList can turn OnAirScreen LED1 (factory label ON AIR) when the mixer reports channel on / GPI / fader start — or, separately, when mAirList itself goes on air.

This is not the current-title howto. Titles: Show the current mAirList title on OnAirScreen.

API reference: OnAirScreen API / UDP / HTTP / MQTT
Mixer GPI on a Raspberry Pi (no playout in between): User Manual (GPIO)
mAirList: SAS GPI, Axia GPIO, DHD, remote commands (RUNSCRIPT)

Signal What it is Use for LED1?
Mixer GPI / fader / channel ON Mic or channel live on the desk Yes — this is the studio lamp
mAirList ON AIR / OnOnAir Playout is in on-air mode (this machine is live) Only if you want the lamp to follow software on-air, not the fader

Do not wire OnOnAir if you need the lamp to follow the mic fader.

Channel Target (default) Example
HTTP Port 8010 http://OAS-IP:8010/?cmd=LED1:ON
UDP Port 3310 LED1:ON

Same pattern for off: LED1:OFF. Other lamps: LED2:ON (PHONE), and so on. Factory GPIO mapping on the Pi is GPI1 to LED1.

On Windows test with oas_send.exe from the OnAirScreen license:

oas_send.exe --ip 192.168.23.5 "LED1:ON"
oas_send.exe --ip 192.168.23.5 "LED1:OFF"

If OnAirScreen runs on the same PC, use 127.0.0.1. Firewall: TCP 8010 (HTTP) or UDP 3310.

mAirList can assign a remote control command to a console GPI going on and off (SAS GPI tab, Axia GPO Events, DHD logic / fader-start as documented for your remote). Those commands are mAirList verbs, not URLs — so the GPI runs a tiny script that HTTP-GETs OnAirScreen.

1. Save two scripts (.mls), e.g. C:\Scripts\oas_led1_on.mls:

begin
  HTTPGetAsync('http://192.168.23.5:8010/?cmd=LED1:ON');
end.

and oas_led1_off.mls with LED1:OFF. Use HTTPGetAsync so the playout thread does not wait on the network. Script HTTPGet / HTTPGetAsync

2. On the mixer remote, GPI on to command:

RUNSCRIPT C:\Scripts\oas_led1_on.mls

GPI off to oas_led1_off.mls. RUNSCRIPT

Replace the GPI index / pin with the desk mic or on-air tally (SAS GPOs labelled GPO.OAC, Axia ON/OFF pins, DHD fader-start / channel logic). You can keep the existing “start player” command and add RUNSCRIPT with a semicolon: PLAYER 1-1 START; RUNSCRIPT C:\Scripts\oas_led1_on.mls.

With the SAS remote, a background script can hook the GPI without RUNSCRIPT on each pin:

procedure OnSASGPIOn(Remote: ISASRemote; GPI: byte);
begin
  if GPI = 1 then
    HTTPGetAsync('http://192.168.23.5:8010/?cmd=LED1:ON');
end;

procedure OnSASGPIOff(Remote: ISASRemote; GPI: byte);
begin
  if GPI = 1 then
    HTTPGetAsync('http://192.168.23.5:8010/?cmd=LED1:OFF');
end;

Register the file under Configuration → Background Scripts. GPI = 1 is an example — match the console pin you use for mic live. OnSASGPIOn / OnSASGPIOff

Only if the lamp should follow mAirList on-air, not the fader:

procedure OnOnAir;
begin
  HTTPGetAsync('http://192.168.23.5:8010/?cmd=LED1:ON');
end;

procedure OnOffAir;
begin
  HTTPGetAsync('http://192.168.23.5:8010/?cmd=LED1:OFF');
end;

Background script, same as above. Community (LEDs via UDP/scripts): Ansteuerung des OnAirScreen

  • OnAirScreen does not poll mAirList REST /status/onair. That URL is for other software to read mAirList, not to drive the lamp.
  • Raspberry Pi with a desk contact: GPIO in the User Manual is shorter than going through mAirList.
  • Questions: Contact
  • onairscreen/mairlist-led-en.txt
  • Last modified: 27.09.2026 01:36
  • by 127.0.0.1