Home Assistant Docker Installation umziehen

Meine Home Assistant Docker Installation muss von einem Pi umziehen. Seit geraumer Zeit spiele ich schon mit Home Assistant herum. Bisher lief das Ganze auf einem Raspberry 3B+ innerhalb eines Docker Containers, das Ganze soll nun umziehen auf einen Esprimo Q910, denn ich mir zunächst zu Testzwecken erst einmal für ein paar Wochen von einem Bekannten ausgeliehen habe.

Wieso wollte ich meine Home Assistant Docker Installation umziehen?

Ursprünglich wollte ich einen Umzug auf andere Hardware durchführen da mir die Startzeiten des Docker Containers einfach immer zu lange erschienen sind. Das Ganze hatte sich aber spürbar reduziert, als ich das Logging der Daten in eine MARIADB Datenbank ausgelagert habe und so nicht mehr die interne SQLite DB auf der SD-Karte genutzt wurde. Der MariaDB Server lief dann rund um die Uhr auf meinem Synology NAS.

Wieso ich nun doch umziehe.

Das Ganze ist im Moment einfach nur einmal ein Test, ob alles so funktioniert wie ich es mir vorstelle. Denn insgesamt werkeln hier vier Raspberry Pis rund um die Uhr.

Einer für Home Assistant NodeRED, der Nächste dann für meine ganze Homematic Geschichte, ein weiterer für mein Zigbee Gateway und auf dem vierten Läuft noch ein Kodi Mediaplayer (welcher evtl. dauerhaft gegen einen FireTV Stick oder wenn mal wieder im Angebot FireTV Cube ausgetauscht wird). Dann habe ich auch noch einen CubiTruck mit einer kleinen FHEM Instanz für meine PCA Steckdosen laufen, da ich die Steckdosen noch nicht direkt in Home Assistent eingebunden habe. Insgesamt also doch ein paar Geräte die 24/7 laufen, hier möchte ich das Ganze auf so wenig wie möglich reduzieren.

Ein Esprimo Q920 soll laut einem Bekannten eines Bekannten rund 7 Watt mit einer Windows Installation und einer laufenden VM benötigen. Ich denke der Q910 dürfte etwas höher liegen. Jedoch hoffe ich, dass ich wenigstens auf die gleichen Werte komme wie die Einzelgeräte (Kann ich doch z. B. auch den MariaDB Server darauf installieren und das Synology NAS länger am Tag in den Standby schicken).

Nun aber Schluss mit den Ideen und auf zur Migration.

Vorbereitungen

Ich habe auf dem Esprimo Q920 ein Ubuntu Server 20.04.3 LTS installiert. Die LTS Version einfach aus dem Grund das ich hier noch bis April 2025, wenn nötig, mit Updates versorgt werde. Vermutlich werde ich hier aber schon vor 2025 auf eine neue Version umsteigen. Aber Puffer zu haben ist ja nicht schlecht. Hier habe ich einfach eine Basisinstallation durchgeführt.

Nach der Installation setze ich nun an.

Docker installieren auf dem Esprimo Q910

Bevor ich irgendwas installiere, mache ich zunächst über die folgenden Kommandos ein Update aller bereits installierten Pakete.

sudo apt-get update 
sudo apt-get upgrade

Nun geht es darum das System für externe Repositories vorzubereiten, hierzu muss man sich noch ein paar Pakete mittels des folgenden Kommandos installieren.

sudo apt-get install ca-certificates curl gnupg lsb-release

Im nächsten Schritt müssen wir zunächst noch die GPG-Keys des Docker Repositories (mittels des curl Befehls) installieren und im Anschluss (der echo Befehl, 3 Zeilen lang) wird noch die Datei mit den entsprechenden Informationen zum Repositorium.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \ https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee \ /etc/apt/sources.list.d/docker.list > /dev/null

Nun müssen wir noch die Informationen auf aus dem neu hinzugefügten Repositorium einlesen. Die machen wir wieder über das apt-get update Kommando

sudo apt-get update

Nun können wir auch endlich Docker installieren.

sudo apt-get install docker-ce docker-ce-cli containerd.io

Verzeichnisse für den Container anlegen

Ich weiß nicht wieso aber irgendwie hab ich es mir angewöhnt alles was bei mir unter Docker läuft im Verzeichnis /srv/docker/Containername abzulegen.

Aus diesem Grund lege ich zunächst mit dem folgenden Kommando mein Verzeichnis für Home Assistent an.

sudo mkdir -p /srv/docker/homeassistant/

Im nächsten Schritt kommen zunächst die Arbeiten auf dem Raspberry pi

Raspberry Pi vorbereiten

Bevor ich die Dateien vom Raspberry Pi auf den Esprimo kopiere, muss ich zunächst die Laufende Instanz von Home Assistant auf dem Pi stoppen. Hierzu Wechsel ich mit dem Kommando

cd /srv/docker/homeassisant

in das Verzeichnis und stoppe mittels

docker-compose stop 

zunächst die laufende Instanz. Sobald ich wieder einen Eingabeprompt habe, ist der Docker Container gestoppt und ich kann das ganze Verzeichnis via ssh auf den neuen Rechner kopieren. Hierzu gehe ich zunächst eine Ordnereben mit dem folgenden Kommando nach oben.

cd ..

um nun mittels

scp -r Home Assistant benutzername@192.168.2.7:/home/benutzername/

in mein Homeverzeichnis zu kopieren. Das ich das ganze zunächst in mein Homeverzeichnis kopiere liegt einfach daran das ich so auch noch ein schnelles Backup habe, falls ich gleich etwas ändere und es nicht sofort funktioniert.

Home Assistant auf dem neuen Rechner starten

Da ich nun alles erst in meinem Homeverzeichnis abgelegt habe muss ich die Dateien noch an Ihren entsprechenden Zielort kopieren. Hierzu Wechsel ich erst mit cd in das entsprechende Verzeichnis und kopiere dann die Dateien mittel cp an ihren Zielort.

cd /home/benutzername/homeassistant
sudo cp -R * /srv/docker/homeassistant

Ändern der docker-compose.yml Datei

Nachdem die Dateien kopiert sind Wechsel ich in das entsprechende Verzeichnis

cd /srv/docker/homeassistant

und ändere noch eine Zeile im meiner docker-compose.yml Datei, damit nun nicht das Raspberry Pi Image von Home Assistant verwendet wird. (Ich weiß gerade gar nicht was passieren würde, wenn ich es so gelassen hätte)

Zeile 5 ändern von:

image: ghcr.io/home-assistant/home-assistant:stable

auf

image: ghcr.io/home-assistant/home-assistant:stable

so das meine docker-compose.yml nun wie folgt aussieht

version: '3'
services:
  homeassistant:
    container_name: homeassistant
    image: ghcr.io/home-assistant/home-assistant:stable
    volumes:
    - ./ha-config:/config
    - /etc/localtime:/etc/localtime:ro
    restart: unless-stopped
    privileged: true
    network_mode: host

Nun kann ich mittels docker-compose up das Ganze wieder starten. Doch beim Aufruf des entsprechenden Kommandos kommt, das docker-compose nicht gefunden wurde. Mist, das vergesse ich öfters auf einem frischen System zu installieren. Also noch schnell mittels

sudo apt-get install docker-compose 

das docker-compose Paket nachinstalliert. Nun kann ich mit

docker-compose up

Home Assistant wieder starten.

In der Regel starte ich den Container mittels docker-compose up -d damit das ganze im Hintergrund läuft. Beim ersten Start lasse ich jedoch das -d weg, um zu schauen ob irgendwelche Fehlermeldungen auftreten.

Nachdem auf den ersten Blick alles so läuft wie es soll, vertausche ich noch in meiner Fritz!Box die IP-Adressen des Esprimo mit der des Raspberry Pi’s und umgekehrt. Damit diese Änderungen greifen muss ich nun beide Systeme noch einmal neu starten.

Bevor ich nun die Docker Container wieder starte, schalte ich den Raspberry Pi aus und ändere ich noch die IP Adresse des Esprimo auf die alte IP Adresse des Raspberry Pi’s. Ich hoffe das ich somit nicht die Apps auf dem iPhone aktualisieren muss, da diese sich automatisch per VPN verbinden, wenn ich mal unterwegs bin, aber halt genau auf diese IP Adresse. Das mache ich einfach aus dem Grund das ich so nicht die Apps auf den Endgeräten neu einrichten muss und dass mein Automatischer VPN Aufbau beim Starten der Home Assistant App auf dem iPhone auch funktioniert. Aber das ist Thema für einen anderen Beitrag.

Nachdem nun alles so läuft wie ich es mir vorstelle kann ich nun schon einmal einen Raspberry Pi ausschalten. Ich denke als nächstes werde ich dann noch die FHEM Installation von meinem Cubitruck ebenfalls auf diesen Rechner in einen Docker-Container umziehen.

Bemerkung

Der Umzug im Gesamten war eigentlich Recht einfach. Je nachdem welche Plattform Du verwendest kannst Du aber auch mal unter https://www.home-assistant.io/installation/ nachschauen ob es für Deine Plattform bereits eine Installationsanleitung existiert.

Hinterlasse jetzt einen Kommentar

Kommentar hinterlassen

E-Mail Adresse wird nicht veröffentlicht.


*