Hallo zusammen,
das Thema Ephemeris hat mich in den letzten Tagen (fast schon Wochen) nicht losgelassen und ich habe einiges getestet und bin nun dabei mein durchaus treu laufendes "Holiday-script" abzulösen. Wie heißt es so schon "Alles hat seine Zeit" und die neue Action ist nun einmal felxibler. Ich gehe hier nicht auf die Konfiguration vom Ephemeris ein, dies ist bereits in diversen Posts enthalten.
Für den Umstieg habe ich folgende Items:
Things
Dateien im System
Rule
Mit den längeren Pfaden muss gearbeitet werden, da eine kürzere Funktion zwar vorhanden, aber derzeit noch nicht funktioniert.
Sitemap
Leider wird das Datum immer noch als
angezeigt, hier wäre es schön nur das Datum zu haben und am liebsten als tt.mm.yy 
Ansonsten arbeitet das Script schon so weit, auch wenn sicher noch Optimierungspotential vorhanden ist
Viele Grüße,
Jörg
das Thema Ephemeris hat mich in den letzten Tagen (fast schon Wochen) nicht losgelassen und ich habe einiges getestet und bin nun dabei mein durchaus treu laufendes "Holiday-script" abzulösen. Wie heißt es so schon "Alles hat seine Zeit" und die neue Action ist nun einmal felxibler. Ich gehe hier nicht auf die Konfiguration vom Ephemeris ein, dies ist bereits in diversen Posts enthalten.
Für den Umstieg habe ich folgende Items:
Code:
Switch Holiday "Feiertag" String SpecialDay "Heute ist: [MAP(de.map):%s]" String TodayIs "Heute ist: [%s]" DateTime Datum "Datum [%1$td.%1$tm.%1$tY]" <calendar> {channel="knx:device:bridge:Vopenhab:datum",channel="ntp:ntp:home:dateTime"}
Code:
/* Virtuelle Items, keine Hardware */ Thing device Vopenhab "virtuelle" @ "KNX" [ ] { Type datetime-control : uhrzeit "Zeit und Tag" [ ga="10.001:0/8/15" ] Type datetime-control : datum "Datum" [ ga="11.001:0/47/11" ] }
- holidays_de.xml (wird für Feiertage verwendet und ist eine Kopie des Originals, erweitert um pers. Feiertage wie z.B. Ostersonntag)
- holiday_descriptions_de.properties (enthält die Übersetzungen, es sind aber nicht alle pers. Feiertage enthalten)
- specialdays.xml (pers. Tage zur besonderen Verwendung wie z.B. Adventsonntage, usw)
Rule
Code:
rule Feiertage when Time cron "0 0 0 * * ?" or System started then if (Ephemeris.isBankHoliday(new DateTimeType().zonedDateTime.now().plusDays(0), '<myPath>/holidays_de.xml') == true) { postUpdate(TodayIs, Ephemeris.getHolidayDescription(Ephemeris.getBankHolidayName(new DateTimeType().zonedDateTime.now().plusDays(0), '<myPath>/holidays_de.xml'))) postUpdate(Holiday, ON) } else if (Ephemeris.isBankHoliday(new DateTimeType().zonedDateTime.now().plusDays(0), '<myPath>/holidays_de.xml') == false && Ephemeris.isBankHoliday(new DateTimeType().zonedDateTime.now().plusDays(0), '<myPath>/specialdays.xml') == true) { postUpdate(TodayIs, Ephemeris.getHolidayDescription(Ephemeris.getBankHolidayName(new DateTimeType().zonedDateTime.now().plusDays(0), '<myPath>/specialdays.xml'))) postUpdate(Holiday, OFF) } else { postUpdate(TodayIs, Datum.state.toString) postUpdate(Holiday, OFF) } logInfo("Ephemeris", "Heute ist: {}", TodayIs.state) end
Sitemap
Code:
Text item=TodayIs
2020-03-02T22:33:20.343+0100

Ansonsten arbeitet das Script schon so weit, auch wenn sicher noch Optimierungspotential vorhanden ist

Viele Grüße,
Jörg
Kommentar