À propos du projet

Priority Command Arbitration for Home Assistant est une intégration personnalisée qui introduit un système de priorité à cinq niveaux pour contrôler les entités. Elle résout le problème courant où une automatisation et une action manuelle se disputent le même appareil, la dernière commande l'emportant toujours. Au lieu de cela, chaque commande peut porter un niveau de priorité (de 1 à 5), et le niveau occupé au numéro le plus bas pilote l'appareil. Les niveaux comprennent Manual Emergency, Automatic Emergency, Manual, Automatic et Default. Les commandes au même niveau se remplacent mutuellement ; lorsqu'un niveau supérieur est libéré, le contrôle passe au niveau occupé suivant et cette commande est réémise telle qu'elle se présente à ce moment-là, et non comme un instantané obsolète. L'intégration encapsule les services de domaine pris en charge (light, switch, fan, cover, climate, water_heater, humidifier, lock, valve, media_player, input_boolean, input_number) et ajoute les champs optionnels `priority` et `priority_ttl` aux appels de service. Ces champs apparaissent comme de véritables champs de formulaire dans l'éditeur d'automatisation, l'éditeur de script, les Developer Tools et les actions de tap sur bouton. Elle fournit également quatre services dédiés : `priority.set`, `priority.relinquish`, `priority.relinquish_all` et `priority.get` (un service de réponse). Des dérogations temporaires peuvent être définies avec un bail (`priority_ttl`), qui survit aux redémarrages et expire proprement, en atterrissant sur ce que Default souhaite actuellement. Les changements d'interrupteur physique sont détectés et enregistrés au niveau Default sans réaffirmer la dérogation. Les interfaces utilisateur comprennent une ligne dans la boîte de dialogue more-info, une fonctionnalité de carte tuile (`custom:priority-feature`), une carte de dérogations (`custom:priority-overrides-card`) et une carte de contrôle (`custom:priority-control-card`). Un capteur `Active overrides` indique le nombre de niveaux détenus. Les options de configuration permettent de limiter l'arbitrage à des entités sélectionnées, d'exclure des entités et de définir les priorités par défaut pour les utilisateurs et les automatisations (les deux par défaut à 5, préservant le comportement existant). L'intégration s'installe via HACS ou par copie manuelle, nécessite Home Assistant 2026.8.1 ou plus récent et est sous licence Apache 2.0. Mises en garde : elle réécrit le registre des services à l'aide d'API internes, ce qui peut casser lors des mises à jour du cœur (atténué par des tests de contrat et une CI hebdomadaire). Les commandes supprimées signalent un succès même lorsqu'elles ne sont pas envoyées, ce qui est important pour les serrures et les vannes. Les dérogations aux niveaux 1 à 4 sont restaurées après les redémarrages, les niveaux 1 à 2 étant réémis une fois après le démarrage. Le projet est nouveau mais utilisé quotidiennement en production avec une suite de tests.