Zeitformat openHAB 3

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Jojo
Beiträge: 207
Registriert: 5. Mär 2019 21:13
Answers: 2
Wohnort: Ingolstadt

Zeitformat openHAB 3

Beitrag von Jojo »

Servus,

ich habe eine Regel, die mir die Zeit der Aktualisierung eines Items anzeigt

Code: Alles auswählen

when 
Item TempKeller received update 
then
ZeitKeller.postUpdate(now.toLocalTime.toString("HH:mm"))
end
In OH3 ging die nicht mehr und ich habe now.toLocalTime eingefügt. Das hat fast funktioniert, die Zeitz wird korrekt angezeigt.
Das Datum aber ist 1970, wie bekomme ich das aktuell ?
--

Gruß

Jojo

harteknut
Beiträge: 235
Registriert: 3. Dez 2019 08:21
Answers: 9

Re: Zeitformat openHAB 3

Beitrag von harteknut »

Im Befehl machst Du ja nur ein Update von Stunde und Minute, da wird kein vollständiges DateTime-Element (bestehend aus Datum, Uhrzeit und Zeitzone) übergeben.
Übergebe im postUpdate-Kommando das ganze Element, und dann kannst Du bei der Anzeige auf hh:mm reduzieren.

Jojo
Beiträge: 207
Registriert: 5. Mär 2019 21:13
Answers: 2
Wohnort: Ingolstadt

Re: Zeitformat openHAB 3

Beitrag von Jojo »

Servus Harteknut,

Ich will ja nur Stunden und Minuten, das ist OK.
Aber das 1970-01-01 stört mich weil es einfach nicht stimmt.
Bildschirmfoto 2021-01-24 um 14.48.31.png
Die Rule macht an sich genau was sie soll, aber ich bekomme VSC langsam in den Griff und das mault eben rum ...
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
--

Gruß

Jojo

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Zeitformat openHAB 3

Beitrag von int5749 »

Wie synchronisierst Du die Zeit? Hast Du NTP Binding installiert?
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

harteknut
Beiträge: 235
Registriert: 3. Dez 2019 08:21
Answers: 9

Re: Zeitformat openHAB 3

Beitrag von harteknut »

Hallo Jojo,

das verstehe ich schon. Es liegt m.E. daran, dass Deine Items (ZeitKeller und ZeitEG) "echte" DateTime-Items sind, und die enthalten eben auch Datum und Zeizone. Da Du aber nur (zumindest beim Keller) nur Stunde und Minuten aktualisiert, bleibt der Rest auf Default (01.01.1970).
Wie hast Du denn die Items definiert? Bei mir sind die Items, die nur als reine Uhrzeiten ohne Datum angezeigt werden, so definiert:

Code: Alles auswählen

DateTime Eine_Uhrzeit             "der Zeitpunkt ist [%1$tH:%1$tM]"
Die werden dann automatisch als hh:mm angezeigt.
Bei mir werden die z.B. so beschrieben:

Code: Alles auswählen

Eine_Uhrzeit.postUpdate(ZonedDateTime.now().with(LocalTime.MIDNIGHT).plusMinutes(80).toLocalDateTime().toString())
Ich sehe gerade, dass Du nur "toLocalTime" verwendest. Es würde wahrscheinlich reichen, in "toLocalDateTime" zu ändern...

Jojo
Beiträge: 207
Registriert: 5. Mär 2019 21:13
Answers: 2
Wohnort: Ingolstadt

Re: Zeitformat openHAB 3

Beitrag von Jojo »

Servus Ihr beiden,

@int5749: Dank deines Hinweises ist jetzt das NTP Binding installiert, wie nutze ich das ? Ich bekomme das irgendwie nicht hin.

@Harteknut:
so sind meine definiert:

Code: Alles auswählen

DateTime ZeitEG "EG aktualisiert um: [%1$TH:%1$TM Uhr]"     <time>
DateTime ZeitOG "OG aktualisiert um: [%1$tH:%1$tM Uhr]"     <time>
DateTime ZeitKeller "aktualisiert um: [%1$tH:%1$tM Uhr]"    <time>
--

Gruß

Jojo

harteknut
Beiträge: 235
Registriert: 3. Dez 2019 08:21
Answers: 9

Re: Zeitformat openHAB 3

Beitrag von harteknut »

... dann müsste doch ein

Code: Alles auswählen

ZeitEG.postUpdate(ZonedDateTime.now().toLocalDateTime().toString)
reichen, oder nicht?

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Zeitformat openHAB 3

Beitrag von int5749 »

Jojo hat geschrieben: 24. Jan 2021 19:27 jetzt das NTP Binding installiert, wie nutze ich das ? Ich bekomme das irgendwie nicht hin.
Schau mal Hier in einem alten Post habe ich meine NTP Konfig dargestellt
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

Jojo
Beiträge: 207
Registriert: 5. Mär 2019 21:13
Answers: 2
Wohnort: Ingolstadt

Re: Zeitformat openHAB 3

Beitrag von Jojo »

Super,
das habe ich mal implementiert.
Ändert aber nichts an der Ausgangslage

Die Rule:

Code: Alles auswählen

rule "Zeit oben"
when 
Item TempBuero received update 
then
ZeitOG.postUpdate(now.toLocalTime.toString("HH:mm"))
ZeitOG.postUpdate(now.Date.toString("HH:mm"))

end
einmal ist .toString rot unterkringelt ( Invalid number of arguments. The method toString() is not applicable for the arguments (String)(org.eclipse.xtext.xbase.validation.IssueCodes.invalid_number_of_arguments)

und einmal Date ( ist die Variable, die ich in den Items definiert habe ):The method or field Date is undefined for the type ZonedDateTime(org.eclipse.xtext.diagnostics.Diagnostic.Linking)

Was mache ich falsch ?
--

Gruß

Jojo

harteknut
Beiträge: 235
Registriert: 3. Dez 2019 08:21
Answers: 9

Re: Zeitformat openHAB 3

Beitrag von harteknut »

Nun,
als erstes müssen mal die HH:MM aus den Klammern raus. Den Formatfilter benötigst Du ja nur für die Anzeige. Da müssen die Klammern wie in meinem Vorschlag leer bleiben.
Dann musst Du die Methode mit "ZonedDateTime" definieren, das fehlt in Deinem Ausdruck.
Dann ist der Aufruf einer Variable hinter "now" mit dem Punkt nicht zulässig, so können nur Methoden (oder Felder) aufgerufen werden, und die Methode/Feld "Date" gibt es für ZonedDateTime nicht.

Ich habe die Zeile, die ich oben gepostet habe, mit C&P bei mir probiert, wird anstandslos umgesetzt. Kopier die bitte einfach mal genau so in Deine Rule und sag mal, ob das tut.

Noch ein anderer Hinweis / Frage:
Ist DateTime für Deinen Einsatz überhaupt der richte Item-Type? Wenn Du keine Funktionen damit schalten möchtest (mit isbefore oder isafter oder ähnlich), sondern wirklich nur eine Anzeige umsetzen möchtest, dann reicht auch ein String Item. Das kannst Du dann so beschreiben, wie Du es ganz am Anfang machen wolltest (im Format HH:MM), da ist dann auch kein 1970 drin. Damit kann man dann halt (bis auf die Anzeige) nix "machen".

Antworten