gerade fällt mir ein Problem mit den Feiertagen in Ephemeris auf. Wobei das Problem wohl eher in meiner rule oder der sitemap zu suchen ist, nicht in Ephemeris. Ich komme aber nicht drauf, wo der Fehler liegt. Fällt euch vielleicht etwas auf?
Am 1.11. war Allerheiligen. Wenn ich heute auf meine sitemap schaue (und sie auch vorher noch mal explizit aktualisiere), dann wird mir der Tag immer noch angezeigt:
Meine items dazu:
Code: Alles auswählen
Switch Feiertag
"Feiertag"
<party>
(gFeiertage)
String FeiertagName
"Feiertagname [%s]"
<party>
(gFeiertage)
String NextFeiertagName
"Nächster Feiertag [%s]"
<party>
(gFeiertage)
String NextFeiertagUntil
"Nächster Feiertag in [%s Tag(en)]"
(gFeiertage)
Code: Alles auswählen
rule "Ephemeris Regel"
when
System started or
Time cron "0 0 * * * ?"
then
val String aktuellerFeiertagInt = Ephemeris.getBankHolidayName('/etc/openhab2/services/Holidays_de.xml') //holt den heutigen Feiertag mit internationaler Bezeichnung aus der XML-Datei
val String aktuellerFeiertagDe = Ephemeris.getHolidayDescription(aktuellerFeiertagInt) //wandelt die internationale Bezeichnung in die deutsche Bezeichnung um
val String naechsterFeiertagInt = Ephemeris.getNextBankHoliday('/etc/openhab2/services/Holidays_de.xml') //holt den nächsten Feiertag mit internationaler Bezeichnung aus der XML-Datei
val String naechsterFeiertagDe = Ephemeris.getHolidayDescription(naechsterFeiertagInt) //wandelt die internationale Bezeichnung in die deutsche Bezeichnung um
val long naechsterFeiertagTage = Ephemeris.getDaysUntil(naechsterFeiertagInt, '/etc/openhab2/services/Holidays_de.xml') //Tage bis zum nächsten Feiertag aus der XML
val boolean EsistFreitag = Ephemeris.isInDayset("beforeWeekend") //ermittelt, ob der heutige Tag ein Freitag ist - also ein Tag vor Wochenende - und schreibt das in eine bool'sche Variable
NextFeiertagName.postUpdate(naechsterFeiertagDe) //schreibt den Namen des nächsten Feiertags in das Item 'NextFeiertagName'
logInfo("EPHEMERIS","Heutiger Feiertag ist: " + aktuellerFeiertagDe)
logInfo("EPHEMERIS", naechsterFeiertagDe + " ist in " + naechsterFeiertagTage + " Tagen")
if (Ephemeris.isBankHoliday == true) {
logInfo("EPHEMERIS", "Heute ist ein Feiertag")
Feiertag.sendCommand(ON) // Schalter Feiertag setzen
TK_Feiertag.sendCommand(ON) //Schaltet den Feiertag für das Tankerkönig-Binding ein
Urlaub.sendCommand(ON) // Schalter Urlaub setzen
FeiertagName.postUpdate(aktuellerFeiertagDe)
}
if (Ephemeris.isBankHoliday == false) {
logInfo("EPHEMERIS", "Heute ist kein Feiertag")
Feiertag.sendCommand(OFF)
TK_Feiertag.sendCommand(OFF) //Schaltet den Feiertag für das Tankerkönig-Binding aus
Urlaub.sendCommand(OFF)
Lange_schlafen.sendCommand(if(Wochenende.state == ON) ON else OFF)
NextFeiertagName.postUpdate(naechsterFeiertagDe)
NextFeiertagUntil.postUpdate(naechsterFeiertagTage)
}
if (naechsterFeiertagTage == 1) {
logInfo("EPHEMERIS", "Nur noch ein Tag bis Feiertag")
Lange_schlafen.sendCommand(ON) // Lange schlafen ein
}
if (EsistFreitag == true) {
logInfo("EPHEMERIS", "Nur noch ein Tag bis Wochenende")
Lange_schlafen.sendCommand(ON) // Lange schlafen ein
}
if (Ephemeris.isWeekend == true) {
logInfo("EPHEMERIS", "Wochenende")
Wochenende.sendCommand(ON)
Lange_schlafen.sendCommand(ON)
}
if (Ephemeris.isWeekend == false) {
logInfo("EPHEMERIS", "Arbeitswoche")
Urlaub.sendCommand(OFF)
Wochenende.sendCommand(OFF)
Lange_schlafen.sendCommand(OFF)
}
end
und noch der entsprechende Frame in der sitemap:
Code: Alles auswählen
// Dieser Bereich wird nur angezeigt, wenn innerhalb der nächsten 14 Tage ein Geburtstag und/oder am heutigen Tag ein Feiertag ist
Frame label="Wichtige Tage" visibility=[GeburtstagHeute !=NULL, FeiertagName !=NULL, Geburtstag1Tage < 14] {
Text item=GeburtstagHeute visibility=[GeburtstagHeute !=NULL]
Text item=FeiertagName visibility=[FeiertagName !=NULL]
Text item=Dummy2 visibility=[GeburtstagHeute !=NULL]
Text item=Geburtstag1Name visibility=[Geburtstag1Tage < 14]
Text item=Geburtstag1Tage label="in" visibility=[Geburtstag1Tage < 14]
Text item=Geburtstag2Name visibility=[Geburtstag2Tage < 14]
Text item=Geburtstag2Tage label="in" visibility=[Geburtstag2Tage < 14]
Text item=Geburtstag3Name visibility=[Geburtstag3Tage < 14]
Text item=Geburtstag3Tage label="in" visibility=[Geburtstag3Tage < 14]
}
Danke!
Oliver