Dev-Umgebung Home Assistant aufbauen

Eine Entwicklungsumgebung muss möglichst schlank sein, damit sie schnell startet und Entwicklungen müssen einfach in die Dev-Umgebung überragen werden können.

Um eigene Integration zu entwickeln, habe ich mich für eine DEV-Umgebung als Container unter Dockerdesktop entschieden.

Die Umgebung hat vor allem einen Vorteil, der /config Ordner der Home Assistant Instanz kann auf einen lokaler Ordern in das Filesystem des Rechners umgeleitet werde.
Dann kann man mit eine beliebigen Entwicklungsumgebung super einfach Änderungen am Code vornehmen und diese testen.

Einfach geht das mit Docker.Desktop und dem Plugin „Portainer“.
Docker.Desktop installieren, unter Extentions das PlugIn Portainer suchen und installieren.
Dann in Portainer einen s.g. Stack mit folgendem docker compose anlegen und den Stack deployen:

version: '1'
services:
  homeassistant:
    container_name: homeassistant
    image: "homeassistant/home-assistant:latest"
    volumes:
      - /home/guido/Dokumente/dockers/config:/config
      - /etc/localtime:/etc/localtime:ro
    restart: unless-stopped
    privileged: true
    ports:
      - "8123:8123"

Damit wird ein Container im Docker angelegt, in dem Container Homeassistant installiert und der config Ordner in den angegebenen Ordner umgeleitet. Zudem wird die lokale Zeit in den Container synchronisiert.
Für ein Windows System müsste die Zeile für den config-ordner so etwa aussehen: – C:\Users\NAME\dockers\config:/config
In meinem lokalen Filesystem unter Ubuntu sieht es dann so aus.

Jetzt für die Entwicklung einer eigenen Integration den Ordern „custom_components“ anlegen und schon kann eine Entwicklung in die Homeassistant Instanz kopiert und entwickelt werden.
Im lokalen Filesystem sind unter .storage auch die device- und entity-registry im Zugriff, was für das Debugging sehr hilfreich ist. Auch auf das Log vom Homeassistant kann auch aus der IDE direkt zugegriffen werden.

Super hilfreich ist, dass die Datenbank von Home Assistant sehr einfach zu kopieren ist. Einfach das File „home-assistant_v2.db“ aus der Produktion in das Dev-System kopieren und schon kann mit den historischen Daten gearbeitet werden. Home Assistant muss zur rauskopieren nicht gestoppt werden, meistens ist die DatenbankKopie danach heile. Wenn nicht, so kann sie aus einem Backup extrahiert werden.

Schreibe einen Kommentar