openHAB in Docker betreiben

Vor kurzem habe ich ein Video online gestellt indem ich den Betrieb von openHAB 3 in einem Docker Container vorgestellt habe.

In diesem kurzen Blog will ich nochmal detailierter auf das Thema eingehen.

Im Grunde genommen könnt Ihr mittels Docker openHAB so ziemlich auf allen Geräten betreiben wie zb. Synology NAS Systeme, alte Notebooks, alte Rechner, Raspis, Server und so weiter 😉

Eine Voraussetzung dabei ist eine laufende Docker Installation. Zudem nutze ich grundsätzlich bei all meinen Docker Instanzen auch Docker-Compose. Natürlich gibt es hier versch. Wege um ans Ziel zu gelangen, bei einer Synology läuft die Installation etwas anders als z.b. auf einem Linux System. Wie Ihr Docker & Docker-Compose auf Linux installiert findet Ihr hier:

In meinem Beispiel nutze ich CasaOS. Hier gibt es mehrere Möglichkeiten den openHAB Container auszurollen.

Den “standard” Weg über die Konsole aber auch eine sehr schönen und einfach zu konfigurierende Web Oberfläche. Diese benutze ich hier in diesem Beitrag.

1. Eigenen Container erstellen:

Dazu geht Ihr in der WebUI auf AppStore

Dann wählt Ihr Eigene Installation aus

Im nächsten Fenster habt Ihr dann die Möglichkeit einen Docker Container einfach selbst zu erstellen bzw. zu konfigurieren.

Es gibt aber auch noch eine weitere Funktion mit der Ihr ganz einfach Container bzw. “Apps” mittels der Docker Konsole, vorkonfigurierten Docker-Compose Files und AppFiles erstellen könnt.

2. Container Konfiguration importieren:

Dazu klickt Ihr auf das Import Symbol oben rechts

Im nächsten Fenster habt Ihr dann eben die Möglichkeit zwischen den 3 versch. Varianten zu wählen.

Ich nutze hier die Docker Compose import funktion.

Dazu kopiere ich mir einfach die offizielle openHAB Docker Compose Datei vom Docker Hub:

https://hub.docker.com/r/openhab/openhab/

version: '2.2'

services:
  openhab:
    image: "openhab/openhab:3.3.0"
    restart: always
    network_mode: host
    volumes:
      - "/etc/localtime:/etc/localtime:ro"
      - "/etc/timezone:/etc/timezone:ro"
      - "./openhab_addons:/openhab/addons"
      - "./openhab_conf:/openhab/conf"
      - "./openhab_userdata:/openhab/userdata"
    environment:
      CRYPTO_POLICY: "unlimited"
      EXTRA_JAVA_OPTS: "-Duser.timezone=Europe/Berlin"
      OPENHAB_HTTP_PORT: "8080"
      OPENHAB_HTTPS_PORT: "8443"

Nachdem Ihr gespeichert habt wird euch das Template automatisch mit allen Werten ausgefüllt.

3. Template für eigenes Setup abändern:

In meinem Fall hab ich das Docker-Image von openhab/openhab:3.3.0 auf openhab/openhab:milestone geändert.

Zudem hab ich in der Web UI noch den Port :8080 eingetragen um durch einen Klick auf das App Symbol auf die Startseite von openHAB zu gelangen.

Die Volumes hab ich meiner Ordnerstruktur angepasst bei mir liegen die openhab Ordner in /home/openhab/….

Unten habe ich dann noch die CPU-Anteile auf Mittel gestellt.

Das wars dann auch schon und Ihr könnt mit einem Klick auf Speichern den Container erstellen. Nachdem dieser heruntergeladen und erstellt wurde wird er Container auch gleich gestartet.

Nachdem der Installationsprozess durchgelaufen ist könnt Ihr einfach auf das App Symbol in CasaOS klicken und Ihr werdet auf die Startseite von openHAB weitergeleitet.

4. Bestehende openHAB Konfiguration übernehmen (Zusatz):

Falls Ihr schon ein openHAB System am laufen habt und “umziehen” wollt müsst Ihr noch einige zusätzliche Schritte vornehmen.

Wenn Ihr openHAB frisch installieren wollt könnt Ihr diesen Punkt überspringen und weiter zu Punkt 5 vorrücken 😉

Zuerst erstellt Ihr ein Backup eures “alten” Systems entweder kopiert Ihr euch die benötigten Daten oder Ihr erstellt wie ich in diesem Fall ein Backup mittels openhabian-config (altes System: openhabian auf einem Raspberry Pi 4).

Dazu loggt Ihr euch in der Konsole ein und gebt

sudo openhabian-config

ein. Dann wählt Ihr den Punkt 50 aus um ein Backup erstellen zu können. Im nächsten Fenster wählt Ihr ebenfalls den Punkt 50 (Backup & Restore) aus. Im Anschluss wird sofort ein Backup eures aktuellen Systems erstellt und bei einer Standard Installation unter /var/lib/openhab/backups/

Dieses Backup könnt Ihr dann mittels des Explorers herunterladen. Dazu verbindet Ihr euch mit dem Raspberry Pi mittels Netzwerklaufwerk verbinden.

Dort gebt Ihr dann \\ipAdresseeuresRaspis\ ein und klickt auf Durchsuchen.

Dort wählt Ihr dann den Ordner openHAB-userdata aus.

Nachdem Ihr euch verbunden habt sucht Ihr im Ordner backups nach der gerade erstellten Backup .zip Datei.

In meinem Fall openhab-backup-22_08_06-09_43_44.zip.

Dieses ladet Ihr euch herunter und entpackt es.

Dort findet Ihr die Ordner conf und userdata.

Jetzt geht Ihr zurück in CasaOS und klickt auf den openHAB Container und schaltet diesen aus bzw. fährt diesen herunter.

Nun könnt Ihr auf Files (App) klicken um dann in den openHAB Ordner zu wechseln. In meinem Fall /home/openhab

Dort findet Ihr dann die Ordner addons, conf, userdata.

Dort fügt Ihr dann alle Daten von z.b. dem conf Ordner in den conf Ordner auf CasaOS bzw. eurem Docker Container ein.

Ebenso mit dem userdata Ordner.

Eure manuell Installierten addons könnt Ihr ebenfalls einfach rüberkopieren.

Nachdem Ihr alle Daten kopiert habt könnt Ihr den openHAB Container wieder starten und Ihr habt jetzt das selbe Setup wie in eurem “alten” System.

Ebenso könnt Ihr ganz einfach ein Backup erstellen indem Ihr diese 3 Ordner an einem sicheren Ort speichert.

5. Frontail (Logviewer) installieren:

Da wir jetzt openHAB in einem Docker Container betreiben ist das Frontail bzw. der Logviewer nicht standardmäßig installiert.

Dies könnt Ihr jedoch leicht nachholen indem Ihr einen weiteren Container ausrollt.

Dazu geht Ihr genauso vor wie oben beschrieben.

Ihr erstellt einen neuen Container mittels der Docker-Compose import Funktion und fügt dann diese Zeilen ein:

version: '3'

services:

    frontail:
      image: schnuecks/frontail-multi:latest
      container_name: frontail
      command: --disable-usage-stats --ui-highlight --ui-highlight-preset /frontail/preset/openhab_AEM.json -t openhab_AEM -l 5000 -n 100 /logs/openhab.log /logs/events.log
      volumes:
        - /home/openhab/userdata/logs:/logs:ro
      ports:
        - "9001:9001"
      restart: unless-stopped

In meinem Fall liegen die Log Daten unter: /home/openhab/userdata/logs das müsst Ihr bei volumes: eurem Setup anpassen.

Nachdem Ihr dann auf Speichern gegangen seit ist das Template in CasaOS zu 90% korrekt ausgefüllt 🙂

Bei der WebUI könnt Ihr den Port :9001 einfügen um gleich auf die Frontail Seite zu gelangen.

Und bei Container Command wurden in meinem Fall die Commands nicht übernommen deswegen fügt Ihr hier einfach einen Container Command hinzu und gebt diese Befehle ein:

--disable-usage-stats --ui-highlight --ui-highlight-preset /frontail/preset/openhab_AEM.json -t openhab_AEM -l 5000 -n 100 /logs/openhab.log /logs/events.log

Nachdem der Container gespeichert, heruntergeladen und ausgerollt wurde werdet Ihr mit einem Klick auf das Frontail App Symbol auf die “normale” 9001 Log Ausgabe von openHAB weitergeleitet.

Oben rechts habt Ihr dann Funktionen wie die Logs zu Filtern, zu pausieren oder zwischen Bright & Dark Mode zu wechseln.

Ich finde diese Image wirklich Klasse vielen Dank an Alberto und Schnuecks, checkt gerne mal die GitHub Page zu dem Projekt:

Alberto: https://github.com/Interstellar0verdrive/frontail_AEM

Das hier verwendete Image von Schnuecks: https://github.com/Schnuecks/frontail_AEM

Mosquitto Docker-Compose

version: '3'
services:
    mosquitto:
        image: eclipse-mosquitto
        container_name: mosquitto
        volumes:
          - ./opt/mosquitto:/mosquitto
          - ./opt/mosquitto/data:/mosquitto/data
          - ./opt/mosquitto/log:/mosquitto/log
        ports:
          - 1883:1883
          - 9001:9001

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert