OpenHAB-Update
Update von 3.1 auf 3.4
Das Update von Version 3.1.0 auf Version 3.4.1 verlief nicht ganz so problemlos, wie erhofft. Glücklicherweise hatte ich vorher ein vollständiges Backup der Speicherkarte erstellt.
Ich hatte mir vor der Aktualisierung schon folgende Seiten dazu angesehen:
- https://www.eidelsburger.de/hobbys_und_technik/smarthome/update-auf-openhab-3-2/
- https://www.taste-of-it.de/debian-openhab-upgrade-von-3-2-zu-3-3/
- https://www.kolmer.one/2022/11/24/openhab-xiv-system-update-fuer-idioten/
- https://thesmarthomejourney.com/2020/05/07/how-to-update-openhabian/
- https://bloggingwelt.de/openhab-update-auf-2-5-nur-wie-mache-ich-das/
Ich habe es dann versucht mittels
sudo openhabian-config
Das lief auch anfangs ganz erfolgversprechend, mir wurde sofort das Update nahegelegt und es lief, nachdem ich ein paar Fragen beantwortet hatte, auch erst einmal eine ganze Weile wie erwartet. Die Downloads erfolgen und die Installation begann.
Nach einiger Zeit brach die Installation mit einer nichtssagenden Fehlermeldung ab. Die Seite, auf die dabei verwiesen wurde, war nur die allgemeine Installationsbeschreibung. Das System ließ sich dann auch nicht mehr erfolgreich starten.
Das Problem scheinen auch andere Benutzer erlebt zu haben, aber auf den Seiten von OpenHABian gab es dann immer nur den wenig hilfreichen Hinweis, dass diese ein Raspi-Problem sei und keine OpenHABian Thema.
Mit etwas Recherche kam ich auf den Hinweis, dass durch den Abbruch das Verzeichnis /boot nicht korrekt gefüllt wurde.
Zum Glück hatte ich im Vorfeld eine Installation mit 3.4.1 zum Testen installiert. Von dort habe ich den Inhalt des Verzeichnisses /boot kopiert und danach ließ sich das System auch wieder starten. Dann
apt update apt upgrade
Ich bekam die Meldung, dass die Installation nicht abgeschlossen ist und danach ging es dann weiter. Am Ende hatte ich wieder ein funktionsfähiges System.
Update über Backup
Inzwischen regele ich meine OpanHB-Updates über ein Backup. Ich installiere auf einer neuen Speicherkarte die neue OpenHAB-Version und initialisiere sie. Bei der alten Installation mache ich als letzten Schritt ein Backup.
sudo /usr/share/openhab/runtime/bin/backup
Das Backup wird dann mit Datum erzeugt und lokal abgelegt unter z.B.:
/var/lib/openhab/backups/openhab-backup-22_01_09-16_44_58.zip
bzw.
$OPENHAB_BACKUPS/openhab-backup-22_01_09-16_44_58.zip
Diese Datei kopiere ich dann auf die Speicherkarte mit der neuen Version in das Homeverzeichnis des Benutzers openhabian.
Für das Zurückspielen gilt dann entsprechend
sudo systemctl stop openhab sudo $OPENHAB_RUNTIME/bin/restore /home/openhabian/openhab-backup-22_01_09-16_44_58.zip sudo systemctl start openhab
Eventuell muss man dann noch kleiner Einstellungen vornehmen, z.B. die locale korrigieren. Alle vorher vorhandenen Bindings sind automatisch auch im neuen System aktiviert.
Update von 3.4 auf 4.0
Das Update selber war über die Backup-Nutzung unproblematisch. Leider habe sich ein paar Dinge so verändert, dass auf alle Fälle eine Anpassung notwendig ist.
- Ich habe relativ viele Rules mit Blockly-Scripten erstellt. Die sind nach dem Update erst einmal nicht lauffähig, weil sich die Sprache dahinter verändert hat. In den Logdateien finden sich Einträge der Art "ReferenceError: itemRegistry is not defined". Die Lösung ist aber recht einfach, man muss nur alle Blockly-Scripten einmal öffnen und Speichern, dann wird der Inhalt in der richtigen Darstellung gespeichert. Siehe dazu auch https://community.openhab.org/t/migration-to-v4-gives-itemregistry-is-not-defined-error-related-to-blockly-rules/147998
- Der Umgang mit Einheiten hat sich deutlich verändert. Ich habe viele Items mit Prozentwerten. Hier tauchte dann plötzlich in der GUI nicht mehr 56 % auf, sondern 0.56 zum Beispiel. Das Ganze ist auch recht komisch, weil bei den Channels des Things teilweise die Darstellung richtig war, aber nicht beim Item. Aber auch das lässt sich lösen, wenn man das Metadata Element Unit benutzt und dort als Einheit % einträgt. Eventuell muss man noch bei Type Number oder Number:Dimensionless eintragen.