Home Assistant hat den Kern verlassen: Was mit deinem Setup passiert

Du bittest Hermes, das Licht im Wohnzimmer zu dimmen, und bekommst unknown platform: homeassistant zurück. Du hast nichts geändert und nichts gelöscht — du hast letzte Nacht nur hermes update ausgeführt.
So sieht „Core-Slimming“ aus der Nutzerperspektive aus: Ein Plattform-Adapter, der früher mit Hermes ausgeliefert wurde, ist in den Plugin-Katalog gewandert. Die gute Nachricht: Der Umzug brachte eine automatische Migration mit, und für die meisten ändert sich an ihrer Config nichts. Hier steht, was den Kern verlassen hat, wie die Migration läuft und was zu tun ist, wenn sie nicht greift.
Was tatsächlich den Kern verlassen hat
Home Assistant war früher Teil des Kernels: plugins/platforms/homeassistant/ (der Gateway-Plattform-Adapter) plus tools/homeassistant_tool.py (das Agent-Tool), zusammen mit den Toolsets homeassistant / hermes-homeassistant, dem Enum Platform.HOMEASSISTANT, der Umgebungs-Freischaltzeile HASS_TOKEN, dem pip-Extra homeassistant und einem Haufen fest verdrahteter Einträge, die über Dump-Ausgabe, Setup-Zusammenfassung, Dashboard-Plattformkarte und die ACP-Tool-Listen verstreut waren.
#132469 hat all das entfernt. Das Feature lebt jetzt im Katalog-Plugin homeassistant (Repo NousResearch/hermes-homeassistant, im Review auf 2.0.1 gepinnt). In deinem aktualisierten Baum hat plugins/platforms/ kein homeassistant-Verzeichnis mehr.
Deine Config bleibt, wie sie ist
Das ist der beste Teil: Das Plugin wurde so gebaut, dass es gleiche Namen, gleiche Config-Keys, gleiche Umgebungsvariablen verwendet.
HASS_TOKENundHASS_URLsind unverändert;platforms.homeassistantin deiner Gateway-Config ist unverändert;- die Tool-Namen
ha_*sind unverändert.
Mit anderen Worten: Es gibt keinen neuen Key zu lernen. Du musst nur bestätigen, dass das Plugin tatsächlich installiert ist.
Wie die automatische Migration funktioniert
Das Release fügt eine generische „Left-Core“-Migration in hermes_cli/left_core_migration.py hinzu, und ihr Design ist lesenswert, weil es den schwierigsten Teil jeder Plugin-Aufteilung löst: bestehende Nutzer umzuziehen, ohne einen Support-Thread.
Die Tabelle heißt LEFT_CORE, und jede Zeile sagt, welches Katalog-Plugin zu installieren ist, plus ein schreibgeschütztes Prädikat für „hat dieses Home das Feature genutzt“. Derzeit gibt es genau eine Zeile:
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_",),
),
)
Der Test „hat dieses Home es genutzt“ ist schreibgeschützt: HASS_TOKEN in der .env des Homes (diese eine Variable aktivierte sowohl den Adapter als auch die Tools), die Plattform in seiner Gateway-Config aktiviert (Legacy-gateway.json oder die Blöcke gateway.platforms / platforms / gateway.homeassistant, wobei das letzte explizite enabled gewinnt), oder homeassistant in den Toolsets des Homes ausgewählt. Ein HASS_TOKEN aus der Prozessumgebung (systemd, Docker) zählt ebenfalls.
Installationen geschehen zu drei Zeitpunkten:
hermes update— installiert für jedes Profil-Home, das sich das venv teilt und das Feature genutzt hat;- Agent-Start — versucht es einmal pro Prozess für das aktive Home erneut (Desktop-Nutzer aktualisieren über die App und führen nie
hermes updateaus, so bekommen sie es), unter Beachtung vonsecurity.allow_lazy_installs; - Gateway-Start — versucht es ebenfalls einmal erneut und legt das Ergebnis für den ersten Agent-Turn dieses Homes in die Warteschlange.
Installationen laufen über den normalen Katalogpfad am geprüften Pin, sodass Kill-Liste, Abhängigkeits-Constraints und Enable-Schritt alle greifen. Ein durchdachtes Detail: Die Abhängigkeitszustimmung läuft für diese Zeilen unbeaufsichtigt, weil das Feature im Kern ausgeliefert wurde und seine Nutzer diese Abhängigkeiten damals bereits akzeptiert hatten.
Zwei weitere Anti-Ärger-Regeln:
- nach einem fehlgeschlagenen Versuch (nicht im Katalog, nicht erreichbar, Installationsfehler) überspringen die Start-Wiederholungen die Zeile für
STARTUP_RETRY_SECONDS— eine Offline-Maschine zahlt also einen Netzwerk-Roundtrip, nicht einen bei jedemhermes chat, währendhermes updateimmer erneut versucht; - ein Home wird höchstens einmal automatisch installiert, festgehalten als
_left_core_installedin seinerconfig.yaml. Wenn du das Plugin später entfernst, ist das deine Entscheidung und sie bleibt bestehen.
Nach dem Upgrade überprüfen
hermes update
hermes plugins list | grep homeassistant
Taucht das Plugin auf (aktiviert), bist du fertig. Wenn es nicht installiert wurde — etwa wegen security.allow_lazy_installs: false oder weil die Maschine offline war —, funktioniert die Installation von Hand genauso gut:
hermes plugins install homeassistant
hermes plugins enable homeassistant
Beachte, dass plugins install den geprüften Pin aus dem Plugin-Katalog auflöst statt eines beliebigen Repos, du ziehst also keinen ungeprüften Code. Wie Plugin-Fähigkeiten nach der Installation isoliert werden, steht in Plugin-Host-Isolationsmodus und im Plugin-Katalog-Leitfaden.
Die Tabelle wird wachsen
LEFT_CORE ist generisch; Home Assistant ist nur die erste Zeile. Zusammen mit den Review- und Supply-Chain-Prüfungen des Katalogs (siehe Plugin-Katalog-CI und Supply Chain) ist es fair zu erwarten, dass weitere eingebaute Fähigkeiten diesen Weg gehen: aus dem Kern entfernt und dann für die Nutzer, die sie hatten, automatisch installiert.
Für Nutzer ist das eine gesündere Form — ein kleinerer Kernel, schnellere Updates und Plattform-Adapter, die nach ihrem eigenen Zeitplan veröffentlichen können, statt auf die nächste Hermes-Minor-Version zu warten. Der Preis ist, dass „eingebaut“ nicht mehr „immer vorhanden“ bedeutet, ein kurzer Blick auf deine Plattform-Plugins nach einem Upgrade ist also eine gute Angewohnheit.
Kurz zusammengefasst
- Die Gateway-Plattform von Home Assistant und das Tool
homeassistanthaben den Kern verlassen und sind jetzt ein offizielles Katalog-Plugin; hermes updateinstalliert es für Profile, die es genutzt haben, mit einem erneuten Versuch bei Agent- und Gateway-Start, dersecurity.allow_lazy_installsbeachtet;- Config-Keys, Umgebungsvariablen und Tool-Namen sind unverändert — wenn
hermes plugins listes zeigt, hat die Migration funktioniert; - wenn es nicht installiert wurde, ist
hermes plugins install homeassistantder manuelle Weg, und inLEFT_COREwerden weitere Einträge erwartet.