Home-Assistant-Integration
Geräte und Entities
Jede Kopplung erzeugt eine Config-Subentry und ein eigenes HA-Gerät. Dessen Area liefert den Raumkontext. Plattformen sind assist_satellite, camera, optional media_player, sensor, binary_sensor, switch, number, select und button. Laufzeiteinstellungen tragen EntityCategory.CONFIG, Diagnosewerte EntityCategory.DIAGNOSTIC.

Kontrollkanal
/api/rustyhama/v1/device/ws ist ein authentifizierter, versionierter WebSocket. Nachrichten enthalten Version, ID, Gerät, Typ, Zeitstempel, Revision und Payload. Anwendungs-Heartbeats, Session-Generationen, ACK/Timeout, Deduplizierung, begrenzte Queues und Reconnect mit Jitter verhindern Zombie-Sessions und Doppelaktionen. Voice-, Kamera- und Medienströme laufen getrennt unter /api/rustyhama/v1/device/streams/{session_id}.
HA-Actions
| Action | Wesentliche Felder |
|---|---|
rustyhama.send_notification |
device_id, title, message, duration_ms, icon |
rustyhama.set_active_tab |
device_id, tab_id oder index |
rustyhama.set_screensaver |
device_id, state (on, off, toggle) |
rustyhama.reload_configuration |
device_id |
Voice-Ansagen verwenden standardisierte assist_satellite.announce-Actions, Medien die üblichen media_player-Actions. Benachrichtigungen erscheinen bei sichtbarer App als Overlay und im Hintergrund als Android-Systembenachrichtigung. Offline werden Aktionen nicht verspätet abgespielt; nur gewünschter Zustand und neueste Konfiguration konvergieren.
Historie und Server-Compilation
History, Kalender und Wetter sind begrenzte Request/Result-Abfragen. Die Dashboard-Compilation löst Auto-Entities-Registryfilter, Sortierung und statische Auswahl in HA auf und erstellt eine schmale Liste benötigter Entity-States. Änderungen relevanter States stoßen eine erneute Compilation an. Provider-Secrets und ein allgemeines HA-Benutzertoken erreichen das Gerät nie.