Der Umstieg von OpenHAB 2 auf 3 wird kein einfacher – soviel ist klar! Die 1.x Bindings entfallen und die Standard-Rule-Engine wird getauscht.
Ich mache mir bereits intensive Gedanken, wie die Umstellung gelingt, und soviel ist bereits klar: beide Versionen müssen eine ganze Weile parallel laufen – auf einem Raspberry Pi!
Wie das mit nur einem RPi-4 zu schaffen ist lest ihr im Beitrag.
Eine gute Voraussetzung für den parallelen Betrieb ist Docker, da hiermit die einzelnen Instanzen voneinander getrennt sind. Das verhindert Probleme beim Abhängigkeitsmanagement und die Verwaltung der Ports etc ist ebenfalls einfach zu handhaben.
Wir starten eine OH3 Instanz parallel zu einer laufenden OH2 Instanz.
Die Ports (8080, 8443, 8101, 5007) werden auf eigene Ports der Maschine gemappt. Der Einfacheit halber habe ich hier einfach überall die „3“ vorgestellt.
Wichtig: die Verzeichnisse für OH3 müssen eigene Verzeichnisse sein. Ihr dürft auf keinen Fall die selben Verzeichnisse der OH2 verwenden. Wer eine Migration versuchen möchte, kann die OH2 Verzeichnisse kopieren.
Wie ihr seht, habe ich mir ein neues Verzeichnis für OH3 angelegt, und den Docker run-Befehl zusammen mit stop und remove in ein Script ausgelagert. Das erleichtert das updaten auf neue OH3 Releases! Die Unterverzeichnisse addons, conf und userdata sind identisch zu OH2 und werden nach dem ersten Start automatisch angelegt und befüllt.
Hier nochmal ein Blick auf das Port-Mapping nach dem Start. OH3 ist nun auf Port 38080 der RPi-IP erreichbar.
OpenHAB 3.0 kommt mit einer ganz neuen Oberfläche die Habmin und Papper-UI vollständig ersetzt. Und mit neuen Sicherheits-Features. So gibt es nun User / Admin Accounts. Und nach dem ersten Start – egal ob Migration oder neu aufgesetzt – wird der Admin-Account angelegt.
Hier mal ein Screenshot der UI nach dem Login. Alles an einem Platz. Neben dieser gibt es nur noch zwei weitere Oberflächen, soweit ich das verstanden habe: Die Basic-UI zur Anzeige und ebenso das schöne HABPanel.
Nun, damit haben wir OpenHAB 3.0 parallel zur 2.5 am laufen. Das Erkunden der Neuerungen und Möglichkeiten kann beginnen.
Ich mache mir derzeit Gedanken darüber, wie ein Umstieg möglichst Wertvoll sein kann. Ich möchte nicht einfach nur migrieren, sondern dabei gleich ein paar „Schulden“ abbauen und neue Ideen und Ansätze einfließen lassen.
Halt euch auf dem Laufenden!
Habt ihr schon Pläne für die Migration? Ideen? Ansätze? Erfahrungen? Schreibt in die Kommentare!
Zum Kopieren, hier mein docker-run Script:
docker stop openhab3
docker rm openhab3
docker run \
--name openhab3 \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
-v /opt/openhab3-krug/conf:/openhab/conf \
-v /opt/openhab3-krug/userdata:/openhab/userdata \
-v /opt/openhab3-krug/addons:/openhab/addons \
-d \
-e USER_ID=1000 \
-e GROUP_ID=1000 \
-e LANG=de_DE.UTF-8 \
-e LANGUAGE=de_DE.UTF-8 \
-e LC_ALL=de_DE.UTF-8 \
-e EXTRA_JAVA_OPTS="-Xmx1024m" \
--restart=always \
--device=/dev/ttyACM0 \
-m 1024m \
-p 38080:8080 \
-p 38443:8443 \
-p 38101:8101 \
-p 35007:5007 \
openhab/openhab:3.0.0-snapshot
docker start openhab3
3 Responses
Zum Kopieren, hier mein docker-run Script:
docker stop openhab3
docker rm openhab3
docker run \
–name openhab3 \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
-v /opt/openhab3-krug/conf:/openhab/conf \
-v /opt/openhab3-krug/userdata:/openhab/userdata \
-v /opt/openhab3-krug/addons:/openhab/addons \
-d \
-e USER_ID=1000 \
-e GROUP_ID=1000 \
-e LANG=de_DE.UTF-8 \
-e LANGUAGE=de_DE.UTF-8 \
-e LC_ALL=de_DE.UTF-8 \
-e EXTRA_JAVA_OPTS=“-Xmx1024m“ \
–restart=always \
–device=/dev/ttyACM0 \
-m 1024m \
-p 38080:8080 \
-p 38443:8443 \
-p 38101:8101 \
-p 35007:5007 \
openhab/openhab:3.0.0-snapshot
docker start openhab3
Hi wofür ist genau das Parameter -e EXTRA_JAVA_OPTS=”-Xmx1024m” \ und -m 1024m \
Hi Martin, das ist leicht erklärt und eine sehr nützliche Sache:
Der Parameter -e EXTRA_JAVA_OPTS=”-Xmx1024m” setzt den maximalen Java-Speicherbedarf auf 1 GB. D.h. die Java-Runtime darf nicht mehr als 1 GB nutzen.
Der Parameter -m 1024m teilt docker mit, dass dieser Container nicht mehr ais 1 GB nutzen darf.
Somit sind docker und java gleich eingestellt.