Seite 1 von 1

Ephemeris / Feiertage in OH3

Verfasst: 25. Mai 2022 23:27
von Baumtasche
Hallo zusammen,

in OH2.5 hatte ich eine Rule die mir den nächsten Feiertag berechnet und über eine Sonos ausgegeben hat. Diese rule will ich jetzt in OH3 implementieren, scheitere aber aktuell an der Umwandlung des Feiertagsnamen in deutsch. Ich habe dazu die Datei https://github.com/svendiedrichsen/joll ... properties
in den Ordner /services abgelegt, danach sollte man eigentlich mit der Funktion 'Ephemeris.getHolidayDescription' den Namen ausgeben können, aber leider funktioniert das nicht. Habe ich da was übersehen, hat jemand eine Idee?

Code: Alles auswählen

rule "Ephemeris - Ferien und Feiertag" 

when
	Time cron "0 0 1 * * ?"
then
   val String  currentHoliday     = Ephemeris.getBankHolidayName()
   val String  nextHoliday        = Ephemeris.getNextBankHoliday()
   val long    untilHoliday       = Ephemeris.getDaysUntil(nextHoliday)
   val String  nextHolidayName    = Ephemeris.getHolidayDescription(nextHoliday)  
   val String  currentHolidayName = Ephemeris.getHolidayDescription(currentHoliday)   
   
   if (Ephemeris.isBankHoliday == true) {
        ItemFeiertag.sendCommand(ON)
        ItemFeiertagName.postUpdate(currentHolidayName)         
      } 
   if (Ephemeris.isBankHoliday == false) {
         ItemFeiertag.sendCommand(OFF)
         ItemFeiertagNext.postUpdate(nextHolidayName + " in " + untilHoliday + " Tagen")
      } 
 end 

Re: Ephemeris / Feiertage in OH3

Verfasst: 26. Mai 2022 10:46
von int5749
Moin

Wie sieht denn Deine Konfig zu Ephemeris aus? Hast Du wie < hier > beschrieben Deine Region angepasst? Sonst wird die default vom System genommen.

Dies hatte bei mir aber auch nicht zuverlässig funktioniert, daher habe ich die xml Dateien bei mir lokal abgelegt und rufe diese dann direkt auf.

Code: Alles auswählen

rule Feiertage
when
    Time cron "5 0 0 * * ?" or
    Item vSystemRestart changed to ON or
    System started
then
    val String strHoliday = '/etc/openhab/services/holidays_de.xml'
    val String strSpecialday = '/etc/openhab/services/specialdays.xml'
    val dtDate = new DateTimeType().zonedDateTime.plusDays(0)

    var String strToday = "regular"

    if  (Ephemeris.isBankHoliday(dtDate, strHoliday)) {
        strToday = Ephemeris.getHolidayDescription(Ephemeris.getBankHolidayName(dtDate, strHoliday))
        Holiday.postUpdate(ON)
    } else {
        Holiday.postUpdate(OFF)
        if (Ephemeris.isBankHoliday(dtDate, strSpecialday))
            strToday = Ephemeris.getBankHolidayName(dtDate, strSpecialday)
    }
    TodayIs.postUpdate(strToday)
    logInfo("Ephemeris", "Heute ist: {}", strToday)
    logInfo("Ephemeris", "Feiertag: {}", Holiday.state.toString)
end
Die aktualisiert ein Item, welches ich in meiner Sitemap darstelle

Code: Alles auswählen

String TodayIs			"Heute ist: [%s]"
Evtl. hilft dies weiter :)

Viele Grüße

Re: Ephemeris / Feiertage in OH3

Verfasst: 26. Mai 2022 11:12
von Baumtasche
Danke für deine Antwort. Ich habe die Config in der UI vorgenommen, muss ich das eher mit einer cfg Datei machen? Muss die Datei vielleicht ein speziellen Namen haben, denn woher weiß das System, wie die Datei heißt?
Ich kann mich nicht erinnern, dass ich das bei OH2.5 machen mußte.

Re: Ephemeris / Feiertage in OH3

Verfasst: 26. Mai 2022 13:42
von int5749
Baumtasche hat geschrieben: 26. Mai 2022 11:12 Danke für deine Antwort. Ich habe die Config in der UI vorgenommen, muss ich das eher mit einer cfg Datei machen? Muss die Datei vielleicht ein speziellen Namen haben, denn woher weiß das System, wie die Datei heißt?
Ich kann mich nicht erinnern, dass ich das bei OH2.5 machen mußte.
MainUI Konfig sollte ausreichen. Wie gesagt, dies lief bei mir auch nicht stabil daher gebe ich die Datei explizit an und das funktioniert bei mir.

Re: Ephemeris / Feiertage in OH3

Verfasst: 30. Mai 2022 21:13
von Baumtasche
vielen Dank, leider habe ich es, trotz deiner Hilfe nicht hinbekommen. Ich habe das jetzt übers mapping gelöst, und es funktioniert einwandfrei.

Danke noch mal