Skip to content

HA Integration

Dckiller edited this page Oct 15, 2026 · 1 revision

The Astrion Custom Dashboard integration adds each remote to Home Assistant as a device. You can see its battery, change its page, start and stop Activities, react to its buttons, and ring it when it's lost.

This is the other direction from Home Assistant. That page connects the remote to Home Assistant, to control your entities. This one brings the remote into Home Assistant. You can use either or both.

Install

HACS (recommended): HACS › ⋮ › Custom repositories › add https://github.com/dckiller51/ha-astrion-custom-dashboard (type Integration), install Astrion Custom Dashboard, restart Home Assistant.

Manual: copy custom_components/astrion into your Home Assistant custom_components/ folder, then restart.

Requires Home Assistant 2026.9 or newer.

Add a remote

Settings › Devices & services › Add integration › Astrion Custom Dashboard, then enter the remote's IP address (port 8080 by default).

Then turn on push (strongly recommended):

  1. On the integration, click Configure: it shows a webhook id. Tick the box to create one if none is shown.
  2. Paste that id into the remote's web page › Home Assistant › Connection settings › Webhook id.

With push on, the remote reports its page, Activities, battery and button presses as they happen, and the integration polls it only every 5 minutes instead of every 10 seconds. That means faster updates and a longer battery life.

What you get, per remote

Entity What it does
Page (select) The page on screen. Pick another one to switch the remote to it.
Current page (sensor) The page on screen, read-only.
Activity (room) (select) One per room: lists that room's Activities plus Off. Picking one starts it, Off stops it. A Harmony Activity powers off only its own hub.
Active activity (room) (sensor) The Activity running in that room, or unknown.
Battery level (sensor) In %.
Charging (binary_sensor) On its dock or not.
Connectivity (binary_sensor) Whether the remote answers.
Last seen (sensor) When the remote last answered or pushed something.
Find my remote (button) Rings the remote for a few seconds.
App update (update) Shows when a new Astrion version is available.

New rooms appear by themselves after you edit dashboard.json, at the next refresh.

Services

# Show a page
service: astrion.set_page
data:
  page: "Media"
  device_id: abc123          # optional: one remote (omit = every remote)

# Start an Activity by id
service: astrion.start_activity
data:
  activity_id: "watch_apple_tv"

# Stop the Activity of a room
service: astrion.stop_activity
data:
  room: "Living room"

# Find my remote, your way
service: astrion.ring
data:
  sound: alarm               # ringtone | alarm | notification
  volume: 90                 # 1-100 %
  duration: 20               # 1-60 s
  device_id: abc123          # optional: omit to ring every remote

Reacting to the remote's buttons

Set a hotkey's action to Home Assistant event in the builder (see Hotkeys), give it a name (e.g. movie_scene), and use it as a trigger. There are two events, so pick one:

astrion_event (via the integration, needs push): carries the Home Assistant device_id, so you can target a remote from the UI.

trigger:
  - platform: event
    event_type: astrion_event
    event_data:
      event: movie_scene
      device_id: abc123      # optional: only this remote

astrion_button (sent by the remote itself, needs an administrator token on the remote, no integration required).

trigger:
  - platform: event
    event_type: astrion_button
    event_data:
      event: movie_scene
      remote_name: Living room   # optional

Both carry: event, key (e.g. RED_BUTTON), long (true for a long press), page, remote_id, remote_name.

Remote's IP changed? New remote?

  • With push on, the integration follows the remote to its new IP by itself.
  • Without push, add the integration again with the new IP: the existing entry is updated, nothing is duplicated. Or use Reconfigure on the entry.
  • Replacing a remote: Reconfigure the old entry with the new remote's IP. The new remote takes over the old one's device, entities and automations.

Automation ideas

  • Low battery: notify when Battery level < 15 % and Charging is off.
  • Lost remote at night: a dashboard button calling astrion.ring with sound: alarm.
  • Doorbell: astrion.set_page to your camera page on every remote (or use the page's Auto-open setting, see Builder).
  • Movie time: on astrion_event movie_scene, dim the lights and close the blinds.
  • Good night: when everyone's in bed, astrion.stop_activity for each room.

See also: Several remotes · Home Assistant

Clone this wiki locally