Ich habe ein seltsames Phänomen entdeckt, was ich nicht aufschlüsseln kann.
Zur Bestimmung eines Feiertages habe ich bereits vor Monates vom alten holiday.script umgestellt auf Ephemeris, was unter OH2 auch ganz gut funktioniert hat, solange die Systemzeit bei dem alten System synchron mit NTP war (was leider nicht immer der Fall war).
Unter OH3 wird die Regel nun Nachts durchlaufen, aber die if-Schleife nicht ausgeführt.
Code: Alles auswählen
rule Feiertage
when
Time cron "0 0 0 * * ?" or
Item vSystemRestart changed to ON or
System started
then
if (Ephemeris.isBankHoliday(new DateTimeType().zonedDateTime.plusDays(0), 'c:/openHAB/conf/services/holidays_de.xml') == true) {
postUpdate(TodayIs, Ephemeris.getHolidayDescription(Ephemeris.getBankHolidayName(new DateTimeType().zonedDateTime.plusDays(0), 'c:/openHAB/conf/services/holidays_de.xml')))
postUpdate(Holiday, ON)
} else if (Ephemeris.isBankHoliday(new DateTimeType().zonedDateTime.plusDays(0), 'c:/openHAB/conf/services/holidays_de.xml') == false && Ephemeris.isBankHoliday(new DateTimeType().zonedDateTime.plusDays(0), 'c:/openHAB/conf/services/specialdays.xml') == true) {
postUpdate(TodayIs, Ephemeris.getHolidayDescription(Ephemeris.getBankHolidayName(new DateTimeType().zonedDateTime.plusDays(0), 'c:/openHAB/conf/services/specialdays.xml')))
postUpdate(Holiday, OFF)
} else {
postUpdate(TodayIs, Datum.state.format("%1$tA, %1$td.%1$tm.%1$ty"))
postUpdate(Holiday, OFF)
}
logInfo("Ephemeris", "Heute ist: {}", TodayIs.state)
end

Die ist ja der letzte Teil der Rule, die somit zumindest getriggert wurde2021-01-12 00:00:01.101 [INFO ] [.openhab.core.model.script.Ephemeris] - Heute ist: Montag, 11.01.21
Da ich für Testzwecke einen Schalter eingebaut habe, funktioniert die Regel komplett beim manunellen Trigger.
Nun bin ich ratlos2021-01-12 07:13:06.643 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'vSystemRestart' received command ON
2021-01-12 07:13:06.643 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'vSystemRestart' changed from OFF to ON
2021-01-12 07:13:06.674 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'TodayIs' changed from Montag, 11.01.21 to Dienstag, 12.01.21
2021-01-12 07:13:06.659 [INFO ] [.openhab.core.model.script.Ephemeris] - Heute ist: Dienstag, 12.01.21

Viele Grüße