Seite 1 von 1

Nach Update auf OH 5.01 Zeitproblem

Verfasst: 21. Sep 2025 13:45
von Lactobacillus
Hallo,

ich musste wegen SD Kartendefekt letzten Sonntag mein OH neu aufsetzen. Sether werden Rules die um 13.30Uhr schalten sollen erst um 14.30 Uhr. Sowohl in der Config als auch in der UI ist Berlin als Timezone gewählt. Wo könnte ich noch schauen? da der Logviewer auch richtig läuft

Re: Nach Update auf OH 5.01 Zeitproblem

Verfasst: 21. Sep 2025 14:43
von Harka
nw378 hat geschrieben: 19. Sep 2025 08:59 Hier habe ich eine Lösung aufgezeigt: viewtopic.php?t=7875&start=12

Im weiteren Verlauf steht noch eine Lösung, wie das auch updatesicher geht.

Re: Nach Update auf OH 5.01 Zeitproblem

Verfasst: 21. Sep 2025 15:02
von Lactobacillus
Habe jetzt nachgeschaut aber in allen 3 Stellen,

Java Opts=, UI und Config ist Berlin ausgewählt.

Re: Nach Update auf OH 5.01 Zeitproblem

Verfasst: 21. Sep 2025 18:45
von udo1toni
Wie lautet die Zeit in der Shell? Am besten so ermitteln:

Code: Alles auswählen

openhabian@openhabian:~$ timedatectl
               Local time: So 2025-09-21 16:40:11 CEST
           Universal time: So 2025-09-21 14:40:11 UTC
                 RTC time: n/a
                Time zone: Europe/Berlin (CEST, +0200)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
Stimmt hier die Zeit? Ist der NTP Service aktiv? Welcher Server wird verwendet?

Code: Alles auswählen

openhabian@openhabian:~$ timedatectl timesync-status
       Server: 2003:d4:bf05:d401:aab8:e0ff:fe00:eca1 (opnsense.udo.lokal)
Poll interval: 34min 8s (min: 32s; max 34min 8s)
         Leap: normal
      Version: 4
      Stratum: 1
    Reference: GPS
    Precision: 1us (-23)
Root distance: 2.059ms (max: 5s)
       Offset: -31.769ms
        Delay: 5.519ms
       Jitter: 64.828ms
 Packet count: 10686
    Frequency: +14.803ppm
Interessant ist hier die Angabe unter Server, im Beispiel mit IPv6 Adresse und lokal gültigem fqdn :)
Sollte die Systemzeit falsch gesetzt sein, stimmt logischerweise auch die Zeit in openHAB nicht.

Was ergibt der folgende Befehl:

Code: Alles auswählen

openhabian@openhabian:~$ cat /etc/systemd/system/multi-user.target.wants/openhab.service | grep EnvironmentFile
Bei mir sieht das Ergebnis so aus:

Code: Alles auswählen

EnvironmentFile=-/etc/default/openhab
EnvironmentFile=-/etc/openhab/linux.parameters
Und in der Folge: Was ergibt das passende Grep auf jedes der gelisteten EnvironmentFiles:

Code: Alles auswählen

openhabian@openhabian:~$ cat /etc/default/openhab | grep EXTRA | grep -v '##'
EXTRA_JAVA_OPTS=""

Code: Alles auswählen

openhabian@openhabian:~$ cat /etc/openhab/linux.parameters | grep EXTRA | grep -v '##'
EXTRA_JAVA_OPTS="-Duser.timezone=Europe/Berlin"
Falls die ausgegebene Zeile länger ist, bitte unbedingt die vollständige Zeile betrachten!
Mögliche Fehler in diesem Zusammenhang (die mir gerade so einfallen...):
1. Das EnvironmentFile ist abweichend definiert. (hier ist das Minus (-) nach dem = und vor dem absoluten Pfad wichtig!)
2. Wird EXTRA_JAVA_OPTS an mehreren Stellen definiert, so gilt nur die letzte Definition.
3. Es könnte auch sein, dass user.timezone mehrfach innerhalb der Zeile angegeben ist.

Re: Nach Update auf OH 5.01 Zeitproblem

Verfasst: 21. Sep 2025 19:03
von Lactobacillus

Code: Alles auswählen

openhabian@openhabian:~ $ timedatectl
               Local time: Sun 2025-09-21 18:53:32 CEST
           Universal time: Sun 2025-09-21 16:53:32 UTC
                 RTC time: n/a
                Time zone: Europe/Berlin (CEST, +0200)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
openhabian@openhabian:~ $ timedatectl timesync-status
       Server: 2001:7c0:3100:1::110 (2.debian.pool.ntp.org)
Poll interval: 34min 8s (min: 32s; max 34min 8s)
         Leap: normal
      Version: 4
      Stratum: 2
    Reference: 8145FD01
    Precision: 1us (-25)
Root distance: 1.136ms (max: 5s)
       Offset: +58us
        Delay: 15.031ms
       Jitter: 765us
 Packet count: 21
    Frequency: -8.669ppm
openhabian@openhabian:~ $ cat /etc/systemd/system/multi-user.target.wants/openhab.service | grep EnvironmentFile
EnvironmentFile=-/etc/default/openhab
EnvironmentFile=-/etc/openhab/linux.parameters
openhabian@openhabian:~ $ cat /etc/default/openhab | grep EXTRA | grep -v '##'
EXTRA_JAVA_OPTS=""
EXTRA_JAVA_OPTS="-Xms192m -Xmx768m -XX:-TieredCompilation -XX:TieredStopAtLevel=1 -XX:+ExitOnOutOfMemoryError -Dxt      ext.qn.interning=true -Duser.timezone=Europe/London"
openhabian@openhabian:~ $
Ok, unten tauch plötzlich London auf das wirds wohl sein. Hab das jetzt auch in der TXT Datei gefunden steht einmal Europ/Berlin und unten noch Europe/London. Wie bekomme ich das nun geändert? in der TXT datei lässt es sich nicht speichern

Re: Nach Update auf OH 5.01 Zeitproblem

Verfasst: 21. Sep 2025 21:36
von udo1toni
Du musst entweder die Datei /etc/default/openhab bearbeiten, oder alternativ im Verzeichnis /etc/openhab/ in der Datei linux.parameters die Zeile für EXTRA_JAVA_OPTS einfügen und dort anpassen.
Letzteres überlebt auch ein Update, bei dem die default-Datei mit ausgeliefert wird (das kommt ab und zu vor).

Egal für welchen Weg Du Dich entscheidest: Die Dateien im Verzeichnis /etc/default/ sollten nur vom User root bearbeitbar sein, die Dateien in /etc/openhab/ sollten allesamt dem User openhab gehören, und auch nur dieser hat Schreibrechte.
Am einfachsten geht das Bearbeiten mit dem sudo Befehl:

Code: Alles auswählen

sudo nano /etc/default/openhab
um die default-Datei zu bearbeiten.
Oder eben alternativ:

Code: Alles auswählen

cat /etc/default/openhab | grep EXTRA | sudo -u openhab tee /etc/openhab/linux.parameters
sudo -u openhab nano /etc/openhab/linux.parameters
Der erste Befehl kopiert die EXTRA_JAVA_OPTS Zeilen in die neue Datei, und zwar als User openhab.
Der zweite Befehl öffnet diese Datei zum bearbeiten, ebenfalls als User openhab.
Da es in der Datei offenbar zwei Einträge gibt (ein leerer, ein gefüllter), solltest Du die leere Zeile auskommentieren (# davor schreiben).
Der Kopierbefehl kopiert auch die Beispiele aus der default-Datei mit, die sind aber schon auskommentiert.
Abschließend musst Du natürlich noch London durch Berlin ersetzen und nach dem Speichern den Dienst neu starten.

Erklärung der Befehle:
sudo -> Superuser Do. Wobei man mit dem Parameter -u jeden beliebigen User als ausführenden User auswählen kann.
cat -> Lies eine Datei und gib sie zeilenweise an die Standardausgabe aus.
grep -> filtere die Eingabe zeilenweise auf das Vorkommen der Zeichenfolge (Groß/Kleinschreibung wird beachtet)
tee -> dupliziere die Eingabe und gib sie in eine Datei aus, parallel dazu auf die Standardausgabe. Dabei wird die Datei im Kontext des ausführenden Users geschrieben.
Mit der Pipe | wird die Ausgabe des linken Befehls als Eingabe an den rechten Befehl gesendet.
Zum Kopieren der relevanten Zeile von einer Datei in die andere wird also die Datei ausgegeben, dabei werden die relevanten Zeilen herausgepickt und weitergeleitet, der nächste Befehl wird im Kontext des Users openhab ausgeführt und schreibt die Zeilen in die Datei.