Problem
AetherSDR now supports local antenna display names for canonical radio antenna tokens such as ANT1, ANT2, RX_A, and XVTA. In real shacks, those local names can change dynamically when an external coax switch or automation system changes the routing. Examples include 4O3A Antenna Genius 8x2 setups and other station controllers that decide which physical antenna is currently connected to each radio port.
Without an automation input, the operator has to manually keep AetherSDR's local labels synchronized with external routing state.
Proposal
Let the MQTT station automation integration update AetherSDR's local antenna display aliases while preserving canonical radio protocol tokens.
Suggested default topic contract:
- Per-port update:
aethersdr/antenna/name/ANT1 with payload 80m Dipole
- Bulk update:
aethersdr/antenna/names with payload {"ANT1":"80m Dipole","ANT2":"Hexbeam","RX_A":"Beverage NE"}
- Empty per-port payload clears that local name
- In bulk JSON,
"" or null clears that local name
These updates should call the existing local alias APIs only. Radio commands must continue using canonical tokens like ANT1, ANT2, and RX_A.
Topic design note
The initial implementation can use fixed AetherSDR-owned default topics as a stable integration contract. A configurable topic prefix may be useful later for multi-station or site-specific MQTT namespaces, but fixed defaults keep the first version small and predictable.
Acceptance criteria
- MQTT messages can set and clear antenna aliases without a live broker in unit tests.
- Bulk JSON and per-port topics are both supported.
- Invalid token keys are ignored.
- MQTT aliases do not apply while no radio is connected, and queued aliases cannot leak to a later radio.
- Existing antenna commands continue to send canonical tokens.
Problem
AetherSDR now supports local antenna display names for canonical radio antenna tokens such as
ANT1,ANT2,RX_A, andXVTA. In real shacks, those local names can change dynamically when an external coax switch or automation system changes the routing. Examples include 4O3A Antenna Genius 8x2 setups and other station controllers that decide which physical antenna is currently connected to each radio port.Without an automation input, the operator has to manually keep AetherSDR's local labels synchronized with external routing state.
Proposal
Let the MQTT station automation integration update AetherSDR's local antenna display aliases while preserving canonical radio protocol tokens.
Suggested default topic contract:
aethersdr/antenna/name/ANT1with payload80m Dipoleaethersdr/antenna/nameswith payload{"ANT1":"80m Dipole","ANT2":"Hexbeam","RX_A":"Beverage NE"}""ornullclears that local nameThese updates should call the existing local alias APIs only. Radio commands must continue using canonical tokens like
ANT1,ANT2, andRX_A.Topic design note
The initial implementation can use fixed AetherSDR-owned default topics as a stable integration contract. A configurable topic prefix may be useful later for multi-station or site-specific MQTT namespaces, but fixed defaults keep the first version small and predictable.
Acceptance criteria