Integrations
Home Assistant
The persistent device channel sends only required states and capabilities. Widget actions are typed per domain and approved server-side. History, calendar and weather use bounded request/result operations. HA controls notifications, tabs, screensaver, configuration reload and config entities. An independent JSON heartbeat, terminal ACKs, session generations, deduplication, bounded queues and reconnect jitter stabilize communication. OkHttp transport pings stay disabled because some Grandstream devices produce false pong timeouts during longer voice streams; ACKs are never acknowledged again.
Voice
assist_satellite.* uses the HA pipeline for server wake word, STT, conversation and TTS. The app streams 16 kHz mono PCM over a separate authenticated channel. Push-to-talk, standard announce, pipeline/VAD/audio route and multi-turn conversations are supported. With system and speakerphone, TTS uses Android's media stream, so media volume determines speech volume. Local wake word is not included in 0.1.
Cameras
The app reports front/rear cameras and display/Android capabilities. HA configures camera, resolution, maximum width, FPS and JPEG quality. camera.* supplies snapshots through the authenticated HA proxy; device address and access remain internal. Because old devices often open only one camera at a time, RustyHAMA releases the previous one, warms up the next and serves both sequentially. Camera is optional and needs Android permission.
Providers
Named Immich and Music Assistant connections are stored in HA. Immich search, assets and screensaver images pass through the integration proxy; api_key never reaches the app. Music Assistant uses HA entities and actions; search, catalogue, covers and queue use the enclosed server adapter, while token remains in HA. Separate HTTP clients prevent providers from blocking the control channel. Multiple connections can be assigned to profiles or devices.
Media and sensors
The disabled-by-default Android media player supports URL/TTS, play/pause/stop, seek, volume/mute, position, metadata and cover. Enabled telemetry covers battery, charging, power source, Wi-Fi, network/IP, tab, online/last seen, versions, uptime, storage, display and module state. Available environmental and motion sensors are disabled by default; location is unused.