Skip to content

Home Assistant

odio-ha is a native Home Assistant integration, installable via HACS. Each odio node appears as a single HA device with the entire stack exposed as entities.

  1. Open HACS in Home Assistant.

  2. Search for odio or use the direct link:

    Add to HACS

  3. Install the integration and restart Home Assistant.

  4. Your odio nodes are auto-discovered via Zeroconf — no manual IP configuration needed.

  • Main player — the audio backend (PulseAudio or pipewire-pulse) with global volume, mute, and output selection.
  • MPRIS players — each active player (Spotify, VLC, Firefox, MPD, shairport-sync, any MPRIS source) appears as a child media player with transport controls, metadata, and live position. Players are discovered in real time — start Spotify, it shows up instantly.
  • Bluetooth — when a phone is connected via Bluetooth, the node appears as a media player with the connected device’s playback info.
  • Remote audio clients — connected TCP clients (PulseAudio/PipeWire desktops) appear as media players with per-client volume control.
  • Power switch
  • Pairing mode button
  • Connected device and status

Whitelisted systemd user services exposed as start/stop switches. System units are read-only.

  • Reboot and power-off buttons

odio-ha doesn’t replace existing HA integrations. MPD, Snapcast, spotifyd, and upmpdcli all have their own dedicated HA integrations for rich playback control.

In the odio-ha configuration, any managed entity (service, MPRIS player, or remote audio client) can be mapped to an existing HA media player so Home Assistant treats them as one.

The integration uses SSE (Server-Sent Events) — all state changes push instantly to HA. No polling.