Intégration Home Assistant
Appareils et entités
Chaque association crée une sous-entrée de configuration et un appareil HA séparé. Sa zone fournit le contexte de pièce. Plateformes : assist_satellite, camera, media_player facultatif, sensor, binary_sensor, switch, number, select, button. Les réglages utilisent EntityCategory.CONFIG, les diagnostics EntityCategory.DIAGNOSTIC.

Canal de contrôle
/api/rustyhama/v1/device/ws est un WebSocket authentifié et versionné. Les messages contiennent version, ID, appareil, type, horodatage, révision et charge utile. Heartbeats applicatifs, générations de session, ACK/délai, déduplication, files bornées et reconnexion avec jitter évitent sessions fantômes et doubles actions. Voix, caméra et média passent séparément sous /api/rustyhama/v1/device/streams/{session_id}.
Actions HA
| Action | Champs importants |
|---|---|
rustyhama.send_notification |
device_id, title, message, duration_ms, icon |
rustyhama.set_active_tab |
device_id, tab_id ou index |
rustyhama.set_screensaver |
device_id, state (on, off, toggle) |
rustyhama.reload_configuration |
device_id |
Les annonces utilisent les actions standard assist_satellite.announce, les médias les actions media_player. Les notifications s’affichent en surimpression si l’app est visible, sinon comme notification Android. Les actions hors ligne ne sont pas rejouées tardivement ; seuls l’état souhaité et la dernière configuration convergent.
Historique et compilation serveur
Historique, calendrier et météo sont des requêtes/résultats bornés. La compilation résout dans HA filtres de registre Auto Entities, tri et sélection statique, puis crée une liste étroite d’états nécessaires. Les changements pertinents déclenchent une recompilation. Secrets fournisseur et jeton utilisateur HA général n’atteignent jamais l’appareil.