Home Assistant
Surface Airwave viewers and what's on as Home Assistant sensors.
Home Assistant's built-in RESTful sensor can poll the public API directly — no custom integration needed. Use an API key from Settings → API Keys.
Viewer count
A simple numeric sensor for "how many people are watching," great for automations (dim the lights when someone starts watching, etc.):
# configuration.yaml
sensor:
- platform: rest
name: Airwave Viewers
resource: http://192.168.1.10:36020/api/public/v1/sessions/count
headers:
X-API-Key: !secret airwave_api_key
value_template: "{{ value_json.count }}"
scan_interval: 30What's playing
Pull /now-playing and expose the first viewer's title, with the rest as attributes:
sensor:
- platform: rest
name: Airwave Now Playing
resource: http://192.168.1.10:36020/api/public/v1/now-playing
headers:
Authorization: !secret airwave_api_bearer # "Bearer airwave_your_key"
value_template: >
{{ value_json.nowPlaying[0].title if value_json.nowPlaying else 'Nothing playing' }}
json_attributes_path: "$.nowPlaying[0]"
json_attributes:
- user
- channelName
- showTitle
- progress
- artworkUrl
- device # { model, platform } — e.g. which TV is playing
scan_interval: 30Poster artwork
Each session and program carries an artworkUrl: a tokenless, host-relative poster path you can drop straight
into a picture-entity or a Lovelace card. Prepend your server's base URL (the artworkUrl above is captured as
an attribute):
# a template sensor that builds a full entity_picture from the attribute
template:
- sensor:
- name: Airwave Now Playing Art
state: "{{ states('sensor.airwave_now_playing') }}"
picture: >
{% set path = state_attr('sensor.airwave_now_playing', 'artworkUrl') %}
{{ 'http://192.168.1.10:36020' ~ path if path else none }}The image needs no API key, so it loads directly in the dashboard.
Store the key in secrets.yaml:
# secrets.yaml
airwave_api_key: airwave_your_key
airwave_api_bearer: Bearer airwave_your_keyPoint resource at your server's address. For everything available to build sensors from (the full guide,
channels, packages), see the API Reference.
