openHAB 4.1.0

Upgrade OH3 zu OH4

Upgrade von Openhab 3.4.5 auf 4.1.0

Neues Jahr 2024 soll auch in der Home Automation etwas Neues bringen, daher heißt es auf die aktuelle stable version von openHAB umzusteigen. Nach der Umstellung auf docker container sollte das ja auch einfacher verlaufen. Hier also ein Erfahrungsbericht.

Zuerst einmal neue Volumes für die neue Version anlegen, man möchte ja ein Backup Szenario haben. Da ich alle meine Volumes am gleichen Platz haben möchte, lege ich sie extern an:

docker volume create openhab4_addons
docker volume create openhab4_conf
docker volume create openhab4_userdata

Im nächsten Schritt werden alle files aus den alten OH3 volumes in die entsprechenden neuen OH4 Verzeichnisse kopiert. (Berechtigungen kontrollieren)

Nun heißt es den OH3 container zu stoppen und den OH4 container zu deployen. Hier das YAML file für docker compose bzw. so wie bei mir für den portainer.io

version: '3.8'

services:
  openhab4:
    image: openhab/openhab:4.1.0
    restart: always
    volumes:
      - "/etc/localtime:/etc/localtime:ro"
      - "/etc/timezone:/etc/timezone:ro"
      - "openhab4_conf:/openhab/conf"
      - "openhab4_addons:/openhab/addons"
      - "openhab4_userdata:/openhab/userdata"
    environment:
      CRYPTO_POLICY: "unlimited"
      EXTRA_JAVA_OPTS: "-Duser.timezone=Europe/Berlin"
      OPENHAB_USER: "openhab"
      OPENHAB_GROUP: "openhab"
      OPENHAB_HTTP_PORT: "8080"
      OPENHAB_HTTPS_PORT: "8443"
      # If you need more memory
      #EXTRA_JAVA_OPTS: "-Xms1024m -Xmx2048m -Duser.timezone=${TZ}"
      USER_ID: 9001
      GROUP_ID: 9001
    labels:
      - "com.centurylinklabs.watchtower.enable=true"
    network_mode: host
    
volumes:
    openhab4_conf:
      external: true
    openhab4_addons:
      external: true
    openhab4_userdata:
      external: true
        

Nach dem Starten des OH4 containers dauert es eine Weile, den OH beginnt automatisch die Update Routinen zu starten und dann: alles läuft, ich kann es gar nicht glauben. Irgendetwas muss doch noch zu ändern sein. Also beginnt einmal der check:

  • Die neue OH Oberfläche auf port 8080
  • Alle Things online und idle
  • Die Sitemaps der BasicUI (zeigen jetzt mehr Spalten an, wenn das Fenster breiter gemacht wird)
  • MQTT devices ein- und ausschalten
  • Regeln starten
  • Telegramm Nachricht schicken
  • eMail Nachricht schicken
  • Daten im Grafana darstellen

Alle checks einwandfrei, also muss ein neuer Workspace im VisualCode angelegt werden und mit den neuen files befüllt werden. Siehe an, da gibt es eine Fehlermeldung:
The method getRed() from the type HSBType is deprecated

Statt in OH3:
val Number num_red = (ColorPicker.state as HSBType).red.intValue * 2.55
val int red = num_red.intValue
val int green = (ColorPicker.state as HSBType).green.intValue
val int blue = (ColorPicker.state as HSBType).blue.intValue
jetzt in OH4:
val rgb = hsbToRgb(ClorPicker.state as HSBType) // ret array of int values
val Number num_red = rgb.get(0).intValue * 2.55
val int red = num_red.intValue
val int green = rgb.get(1).intValue
val int blue = rgb.get(2).intValue

Mehr war dann aber auch schon wieder nicht zu machen, alles läuft.

In der Standard Umgebung von openhab gibt es die cli-console. Diese ist im container nicht vorhanden. Um die Konsole trotzdem verwenden zu können, braucht man folgenden Befehl.

docker exec -ti openhab4-openhab4-1 /openhab/runtime/bin/client
user: openhab
password: habopen
CategoriesAllgemein openHAB

Schreibe einen Kommentar

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

Begin typing your search above and press return to search. Press Esc to cancel.