openHAB 3 – Umstellung und Probleme
Mein zweiter Versuch auf die openHAB Version 3 umzusteigen hat nun funktioniert.
Ich verwende das OH3 image von openhabian:
https://github.com/openhab/openhabian/releases
Hier muss man Version 1.6.2b verwenden. Davor gibt es zu viele Probleme.
Grundsätzlich gibt es zwei Wege: das aktuelle System migrieren oder eine Neuinstallation.
Ich habe die Neuinstallation gewählt, so dass das Produktivsystem weiterlaufen kann bis ich alle Problem auf dem neuem System behoben habe.
Die neue UI benutze ich nur zur Konfiguration. Ich greife weiterhin auf die alten Sitemaps zu. Diese findet man in der neuen Oberfläche nicht. Man kann sie aber wie folgt ansprechen:
http://192.168.xxx.yyy:8080/basicui/app
Im ersten Schritt habe ich alle bindings per Hand über die Oberfläche installiert. Danach die Konfigurationsdateien von dem alten System /etc/openhab2 auf das neue System /etc/openhab kopiert – außer den rules und persistence.
Probleme
Persistance
Für grafische Auswertungen verwende ich influxdb. Somit wollte ich die Persistenz auch über influxdb laufen lassen.
Dann kamen etliche Fehlermeldungen und ich dachte, meine Konfiguration von items oder things war falsch.
Lösung: Einfach die influxdb.persist rüberziehen. In der UI war die Konfiguration anscheinend nicht vollständig.
RULES
Die meisten Probleme kamen, als ich meine Regeln geholt habe.
ERROR: ‘toString’ is not a member of ‘DateTime’
Fehlermeldung
2021-01-17 11:04:36.763 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'admin-1' failed: 'toString' is not a member of 'DateTime'; line 14, column 51, length 19 in admin
OH2 – Alter Code
OH2 val DateTime MoveMoment = now
OH2 Temp_1W_Date.postUpdate(new DateTimeType(MoveMoment.toString))
OH3 Lösung /Neuer Code
Temp_1W_Date.postUpdate(now.toLocalTime.toString("HH:mm"))
ERROR: ‘millis’ is not a member of ‘java.time.ZonedDateTime’
Fehlermeldung
2021-01-17 12:29:01.001 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'sonoffHeating-6' failed: 'millis' is not a member of 'java.time.ZonedDateTime'; line 217, column 26, length 10 in sonoffHeating
OH2 – Alter Code
t_begin = now.millis
OH3 Lösung /Neuer Code
t_begin = now.toInstant().toEpochMilli()
Referenz
https://community.openhab.org/t/oh3-error-millis-is-not-a-member-of-java-time-zoneddatetime/111177
ERROR: array element type mismatch
Fehlermeldung
2021-01-17 12:15:00.138 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID '1wire-2' failed: An error occurred during the script execution: array element type mismatch in 1wire
OH2 – Alter Code
var String cmdExe="cat "
var String cmdAll=cmdExe + " /var/log/daemon.log"
var String cmdRet=executeCommandLine(cmdAll,1000)
OH3 Lösung /Neuer Code
var String cmdExe="cat "
var String cmdAll="/var/log/daemon.log"
var String cmdRet=executeCommandLine(Duration.ofSeconds(20),cmdExe,cmdAll)
Referenz
https://github.com/openhab/openhab-docs/issues/1367
ERROR: Could not cast NULL
Fehlermeldung
2021-01-17 10:41:16.820 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'SMA-2' failed: Could not cast NULL to org.openhab.core.library.types.DecimalType; line 33, column 27, length 34 in SMA
OH2 – Alter Code
if (SMA_Day_Start.state==NULL) { SMA_Day_Start.postUpdate(0)
OH3 Lösung /Neuer Code
if(SMA_Day_Start.state==NULL || SMA_Day_Start.state == UNDEF) { SMA_Day_Start.postUpdate(0) }
Hallo Thomas,
Die alten sitemaps Findet man auf der Weboberfläche noch, diese sind nur etwas versteckt. Man muss in der “Übersichtseite” dann oben rechts am eck gibts ein Button der “andere Apps” heißt, wenn man darauf klickt kommt Rechts ein Menü und dort kann man die alten seiten anklicken.
Dann noch etwas bei der Letzten Regel Fehlt der Alte Code aus OH2, bzw ist er nicht lesbar,
Gruß
Christoph