[solved] Ein Newbie benötigt Hife bei einer Rule
- udo1toni
- Beiträge: 15240
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: [solved] Ein Newbie benötigt Hife bei einer Rule
.toLocalDate liefert ja ein gültiges LocalDate Objekt, das heißt, Du kannst ganz normal mit format() arbeiten, ich bevorzuge inzwischen tatsächlich die ISO Schreibweise (zumindest auf Serversystemen).
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 1173
- Registriert: 4. Nov 2019 22:08
Re: [solved] Ein Newbie benötigt Hife bei einer Rule
Ich mache das einfach über die Formatierung des Items.
Beispiel:
Ergebnins: Donnerstag, 25.01.24
Beispiel:
Code: Alles auswählen
DateTime Datum "[%1$tA, %1$td.%1$tm.%1$ty]"
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3
- peter-pan
- Beiträge: 2758
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: [solved] Ein Newbie benötigt Hife bei einer Rule
..irgendwie klappt das nicht, bzw. stehe ich auf dem "Schlauch"
Dieser Code:
liefert:
Der Code erweitert:
liefert:
aber auch so was hat nicht gefruchtet





Dieser Code:
Code: Alles auswählen
logInfo("holiday","Aschermittwoch ist in {} Tagen Datum ({}) und Altweiberfasching ist dann in {} Tagen, das ist am {}", easterDays - 46, now.plusDays(easterDays - 46 ).toLocalDate, easterDays - 51, now.plusDays(easterDays - 51 ).toLocalDate)
Code: Alles auswählen
Aschermittwoch ist in 20 Tagen Datum (2024-02-14) und Altweiberfasching ist dann in 15 Tagen, das ist am 2024-02-09
Code: Alles auswählen
logInfo("holiday","Aschermittwoch ist in {} Tagen Datum ({}) und Altweiberfasching ist dann in {} Tagen, das ist am {}", easterDays - 46, now.plusDays(easterDays - 46 ).toLocalDate, easterDays - 51, now.plusDays(easterDays - 51 ).toLocalDate.format("dd MM yyyy"))
Code: Alles auswählen
Could not invoke method: java.time.LocalDate.format(java.time.format.DateTimeFormatter) on instance: 2024-02-09 in test_ephemeris
Code: Alles auswählen
.toLocalDate.toString.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME)


Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
- peter-pan
- Beiträge: 2758
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: [solved] Ein Newbie benötigt Hife bei einer Rule
...mach ich normalerweise auch..
Code: Alles auswählen
DateTime Total_Moon_eclipse "nächste Mondfinsternis[%1$ta, %1$td.%1$tm.%1$ty, %1$tH:%1$tM]" <bloodmoon> (gAstro) ["Point"] {channel="astro:moon:local:eclipse#total"}
oder auch mal so:
DateTime HmIP_SRH_0515_1STATE_Time1 "Terrassentuer Datum per Rule" <window> (gSen_0515) ["Point"] {stateDescription="pattern" [pattern="%1$td.%1$tm.%1$ty - %1$tH:%1$tM Uhr"]} // Update ist Trigger über Rule

Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
- udo1toni
- Beiträge: 15240
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: [solved] Ein Newbie benötigt Hife bei einer Rule
Ja, das mit dem format ist auch knapp daneben. 
Das Gemeine: Du musst das Format nicht einfach als String übergeben. Du könntest natürlich string.format("%1$td.%1$tm. %1$tY",meinDatum) verwenden, aber das wäre ja öde...
führt bei mir zur Ausgabe
(für die anderen Log-Zeilen habe ich lediglich jeweils .format(dtf) an das entsprechende LocalDate Objekt angehängt.
java.time.format steht nicht ohne import zur Verfügung, weshalb ich es komplett ausgeschrieben habe - für einmailge Anwendung erschien mir der import nicht gerechtfertigt.
Das Schicke an der Lösung: Du kannst dtf auch als globale Konstante definieren und aus jeder Rule innerhalb der Datei darauf zugreifen.

Das Gemeine: Du musst das Format nicht einfach als String übergeben. Du könntest natürlich string.format("%1$td.%1$tm. %1$tY",meinDatum) verwenden, aber das wäre ja öde...
Code: Alles auswählen
val nAW = easterDays - 52
val nAM = easterDays - 46
val ldAW = now.plusDays(nAW).toLocalDate
val ldAM = now.plusDays(nAM).toLocalDate
val dtf = java.time.format.DateTimeFormatter.ofPattern("dd.MM. yyyy")
logInfo("holiday","Aschermittwoch ist in {} Tagen (am {}) und Altweiberfasching ist in {} Tagen (am {})", nAM, ldAM.format(dtf), nAW, ldAW.format(dtf))
Code: Alles auswählen
[INFO ] [rg.openhab.core.model.script.holiday] - Aschermittwoch ist in 20 Tagen (am 14.02. 2024) und Altweiberfasching ist in 14 Tagen (am 08.02. 2024)
[INFO ] [rg.openhab.core.model.script.holiday] - Der erste Advent in 2024 ist am 01.12. 2024
[INFO ] [rg.openhab.core.model.script.holiday] - Nächster Feiertag: Karfreitag in 64 Tagen (29.03. 2024)
[INFO ] [rg.openhab.core.model.script.holiday] - Ostersonntag ist in 66 Tagen (31.03. 2024)
java.time.format steht nicht ohne import zur Verfügung, weshalb ich es komplett ausgeschrieben habe - für einmailge Anwendung erschien mir der import nicht gerechtfertigt.
Das Schicke an der Lösung: Du kannst dtf auch als globale Konstante definieren und aus jeder Rule innerhalb der Datei darauf zugreifen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 1173
- Registriert: 4. Nov 2019 22:08
Re: [solved] Ein Newbie benötigt Hife bei einer Rule
Mega, Hut ab!
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3
- peter-pan
- Beiträge: 2758
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: [solved] Ein Newbie benötigt Hife bei einer Rule
Super, vielen Dank. Ich war zwar schon hier und hatte auch das hier gesehen
aber ich konnte damit nicht so richtig etwas anfangen. Aber jetzt wo ich deine Lösung sehe, sieht das alles ganz logisch aus. Aber ich wäre nie darauf gekommen.
Danke nochmals.
Code: Alles auswählen
For example:
LocalDate date = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy MM dd");
String text = date.format(formatter);
LocalDate parsedDate = LocalDate.parse(text, formatter);
Danke nochmals.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
-
- Beiträge: 135
- Registriert: 23. Mai 2017 08:32
- Wohnort: Duisburg
- Kontaktdaten:
Re: [solved] Ein Newbie benötigt Hife bei einer Rule
Sehr geehrte Forumsteilnehmer, ich habe mal wieder ein Problem.
Ich bin jetzt auf die openHAB Version 4 umgestiegen und da gibt es Veränderungen in Ephemeris.
Es gibt nun ein Binding und dieses gibt den nächsten Feiertag aus, aber in englisch.
Thing:
Item:
Rule:
Wie bekomme ich wohl den AFeiertag auf deutsch ausgegeben?
Vielen Dank für Eure Hilfe. Schöne Grüße. PJH
Ich bin jetzt auf die openHAB Version 4 umgestiegen und da gibt es Veränderungen in Ephemeris.
Es gibt nun ein Binding und dieses gibt den nächsten Feiertag aus, aber in englisch.
Thing:
Code: Alles auswählen
Thing ephemeris:holiday:local "Ephemeris Feiertage"
Code: Alles auswählen
String NaechsterFeiertag "Nächster Feiertag" <calendar> {channel="ephemeris:holiday:local:next-title"}
Code: Alles auswählen
AFeiertag.postUpdate(NaechsterFeiertag.state)
Vielen Dank für Eure Hilfe. Schöne Grüße. PJH
openHAB 4.3 im Synology NAS Docker-Container.
- udo1toni
- Beiträge: 15240
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: [solved] Ein Newbie benötigt Hife bei einer Rule
Schau mal, das ist in der Doku (ganz grob) erklärt:
https://www.openhab.org/docs/configurat ... #ephemeris
Im Kern musst Du ephemeris zunächst korrekt konfigurieren, und anschließend musst Du noch die passende Sprachdatei an der richtigen Stelle ablegen sowie bei den Funktionsaufrufen den Dateinamen mit angeben.
Sinnvoller, als einen alten Thread herauszukramen ist übrigens fast immer, einen neuen Thread zu erstellen.
https://www.openhab.org/docs/configurat ... #ephemeris
Im Kern musst Du ephemeris zunächst korrekt konfigurieren, und anschließend musst Du noch die passende Sprachdatei an der richtigen Stelle ablegen sowie bei den Funktionsaufrufen den Dateinamen mit angeben.
Sinnvoller, als einen alten Thread herauszukramen ist übrigens fast immer, einen neuen Thread zu erstellen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 135
- Registriert: 23. Mai 2017 08:32
- Wohnort: Duisburg
- Kontaktdaten:
Re: [solved] Ein Newbie benötigt Hife bei einer Rule
Hallo udo1toni, danke für die Antwort.
In openHAB 4 scheint das ja ein bisschen anders (einfacher ?) zu gehen, es wird keine holiday-Datei benötigt.
Mein Problem ist: Ich kann ja einen "normalen" Feiertag Mappen, das klappt ja alles.
Aber ich möchte es zum Beispiel so machen:
und dann wird AFeiertag in der Mapping-Datei (natürlich) nicht mehr erkannt.
Also muss ich AFeiertag bereits in der rule (anstatt in der sitemap) mappen und das bringe ich nicht hin.
Schöne Grüße. PJH
In openHAB 4 scheint das ja ein bisschen anders (einfacher ?) zu gehen, es wird keine holiday-Datei benötigt.
Mein Problem ist: Ich kann ja einen "normalen" Feiertag Mappen, das klappt ja alles.
Aber ich möchte es zum Beispiel so machen:
Code: Alles auswählen
AFeiertag.postUpdate(NaesterFeiertag.state + " " + "(in " + BFeiertag + " Tag)")
Also muss ich AFeiertag bereits in der rule (anstatt in der sitemap) mappen und das bringe ich nicht hin.
Schöne Grüße. PJH
openHAB 4.3 im Synology NAS Docker-Container.