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.
Installation
Section titled “Installation”-
Open HACS in Home Assistant.
-
Search for odio or use the direct link:
-
Install the integration and restart Home Assistant.
-
Your odio nodes are auto-discovered via Zeroconf — no manual IP configuration needed.
Entities
Section titled “Entities”Media players
Section titled “Media players”- 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.
Bluetooth entities
Section titled “Bluetooth entities”- Power switch
- Pairing mode button
- Connected device and status
Service switches
Section titled “Service switches”Whitelisted systemd user services exposed as start/stop switches. System units are read-only.
System controls
Section titled “System controls”- Reboot and power-off buttons
Entity mapping
Section titled “Entity mapping”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.
Real-time updates
Section titled “Real-time updates”The integration uses SSE (Server-Sent Events) — all state changes push instantly to HA. No polling.