Home Assistant quitte le cœur : ce qui arrive à votre installation

Vous demandez à Hermes de baisser la luminosité du salon et vous recevez unknown platform: homeassistant en retour. Vous n’avez rien changé ni rien supprimé — vous avez juste lancé hermes update hier soir.
Voilà à quoi ressemble l’« allègement du cœur » vu du côté utilisateur : un adaptateur de plateforme qui était livré dans Hermes a migré vers le catalogue de plugins. La bonne nouvelle, c’est que ce déménagement s’accompagne d’une migration automatique et que, pour la plupart des gens, rien dans leur configuration n’a besoin de changer. Voici ce qui est parti, comment la migration s’exécute, et quoi faire si elle ne se déclenche pas.
Ce qui a réellement quitté le cœur
Home Assistant faisait autrefois partie du noyau : plugins/platforms/homeassistant/ (l’adaptateur de plateforme de la passerelle) plus tools/homeassistant_tool.py (l’outil de l’agent), sans compter les ensembles d’outils homeassistant / hermes-homeassistant, l’énumération Platform.HOMEASSISTANT, la ligne d’activation par variable d’environnement HASS_TOKEN, l’extra pip homeassistant, et une pile d’entrées codées en dur dispersées dans la sortie de dump, le résumé de configuration, la carte de plateforme du tableau de bord et les listes d’outils ACP.
#132469 a tout retiré. La fonctionnalité vit désormais dans le plugin de catalogue homeassistant (dépôt NousResearch/hermes-homeassistant, épinglé en 2.0.1 lors de la revue). Dans votre arborescence mise à jour, plugins/platforms/ n’a plus de répertoire homeassistant.
Votre configuration reste inchangée
C’est le meilleur aspect : le plugin a été conçu pour offrir mêmes noms, mêmes clés de configuration, mêmes variables d’environnement.
HASS_TOKENetHASS_URLsont inchangés ;platforms.homeassistantdans votre configuration de passerelle est inchangé ;- les noms d’outils
ha_*sont inchangés.
Autrement dit, il n’y a aucune nouvelle clé à apprendre. La seule chose à confirmer, c’est que le plugin est bien installé.
Comment fonctionne la migration automatique
La version ajoute une migration générique « sorti du cœur » dans hermes_cli/left_core_migration.py, et sa conception mérite d’être lue car elle résout la partie la plus difficile de toute scission de plugin : déplacer les utilisateurs existants sans fil de support.
La table s’appelle LEFT_CORE, et chaque ligne indique quel plugin de catalogue installer plus un prédicat en lecture seule pour répondre à « ce home utilisait-il la fonctionnalité ». Pour l’instant, il y a exactement une ligne :
LEFT_CORE: tuple[LeftCoreFeature, ...] = (
LeftCoreFeature(
plugin="homeassistant", label="Home Assistant", in_use=homeassistant_in_use,
unchanged="HASS_TOKEN/HASS_URL, platforms.homeassistant and the ha_* tool names are unchanged",
secret_env=("HASS_TOKEN",), private_env=("HASS_URL",),
toolsets=("homeassistant",), off_platforms=("acp", "webhook"), platform="homeassistant",
enable_env=("HASS_TOKEN",), channel_env_prefixes=("HASS_",),
),
)
Le test « ce home l’utilisait-il » est en lecture seule : HASS_TOKEN dans le .env du home (cette seule variable activait à la fois l’adaptateur et les outils), la plateforme activée dans sa configuration de passerelle (héritée gateway.json ou les blocs gateway.platforms / platforms / gateway.homeassistant, où le dernier enabled explicite l’emporte), ou homeassistant sélectionné dans les ensembles d’outils du home. Un HASS_TOKEN provenant de l’environnement du processus (systemd, Docker) compte aussi.
Les installations se produisent à trois moments :
hermes update— installe pour chaque home de profil qui partage le venv et utilisait la fonctionnalité ;- démarrage de l’agent — réessaie une fois par processus pour le home actif (les utilisateurs de l’application desktop mettent à jour via l’application et ne lancent jamais
hermes update, c’est donc ainsi qu’ils l’obtiennent), en respectantsecurity.allow_lazy_installs; - démarrage de la passerelle — réessaie aussi une fois, et met le résultat en file pour le premier tour d’agent de ce home.
Les installations passent par le chemin de catalogue habituel à l’épinglage révisé, de sorte que la kill list, les contraintes de dépendances et l’étape d’activation s’appliquent toutes. Un détail réfléchi : le consentement aux dépendances est non supervisé pour ces lignes, car la fonctionnalité était livrée dans le cœur et ses utilisateurs avaient déjà accepté ces dépendances à l’époque.
Deux règles anti-tracas supplémentaires :
- après une tentative échouée (absent du catalogue, injoignable, erreur d’installation), les nouvelles tentatives au démarrage ignorent la ligne pendant
STARTUP_RETRY_SECONDS— une machine hors ligne paie donc un aller-retour réseau, et non un à chaquehermes chat, tandis quehermes updateréessaie toujours ; - un home est auto-installé au plus une fois, consigné sous
_left_core_installeddans sonconfig.yaml. Si vous retirez le plugin plus tard, c’est votre choix et il tient.
Le confirmer après la mise à jour
hermes update
hermes plugins list | grep homeassistant
Si le plugin apparaît (activé), c’est terminé. S’il ne s’est pas installé — par exemple security.allow_lazy_installs: false, ou la machine est restée hors ligne — l’installer à la main fonctionne tout aussi bien :
hermes plugins install homeassistant
hermes plugins enable homeassistant
Notez que plugins install résout l’épinglage révisé depuis le catalogue de plugins plutôt qu’un dépôt arbitraire, vous ne tirez donc pas de code non revu. Pour savoir comment les capacités des plugins sont isolées une fois installés, voir le mode d’isolation de l’hôte de plugins et le guide du catalogue de plugins.
La table va s’agrandir
LEFT_CORE est générique ; Home Assistant n’en est que la première ligne. Combiné aux contrôles de revue et de chaîne d’approvisionnement du catalogue (voir CI et chaîne d’approvisionnement du catalogue de plugins), il est raisonnable de s’attendre à ce que d’autres capacités intégrées empruntent ce chemin : retirées du cœur, puis installées automatiquement pour les utilisateurs qui les avaient.
Pour les utilisateurs, c’est une forme plus saine — un noyau plus petit, des mises à jour plus rapides, et des adaptateurs de plateforme qui peuvent sortir à leur propre rythme au lieu d’attendre la prochaine version mineure d’Hermes. Le coût, c’est que « intégré » ne signifie plus « toujours présent », si bien qu’un coup d’œil rapide à vos plugins de plateforme après une mise à jour est une habitude à garder.
En bref
- La plateforme de passerelle Home Assistant et l’outil
homeassistantont quitté le cœur et sont désormais un plugin officiel du catalogue ; hermes updatel’installe pour les profils qui l’utilisaient, avec une nouvelle tentative au démarrage de l’agent et de la passerelle qui respectesecurity.allow_lazy_installs;- les clés de configuration, variables d’environnement et noms d’outils sont inchangés — si
hermes plugins listl’affiche, la migration a réussi ; - s’il ne s’est pas installé,
hermes plugins install homeassistantest la voie manuelle, et d’autres entrées sont attendues dansLEFT_CORE.