Ephemeris Properties

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
domjo75
Beiträge: 159
Registriert: 22. Jan 2019 11:10
Answers: 0

Ephemeris Properties

Beitrag von domjo75 »

Hallo zusammen,
ich habe heute bemerkt, dass bei einem Feiertag dieser Fehler im LOG auftaucht.

Code: Alles auswählen

[ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'holiday-1' failed: Can't find bundle for base name descriptions.holiday_descriptions, locale de_DE in holiday
Hervorgerufen wird das durch diese Zeile in meiner Holidays.rules

Code: Alles auswählen

strToday = Ephemeris.getHolidayDescription(Ephemeris.getBankHolidayName(dtDate, strHoliday))
Ich habe mich eingelesen und versucht zu verstehen was denn nun eigentlich das Problem ist.
Es sieht wohl so aus, dass Ephemeris aus der XML nicht den deutschen Namen finden kann
z.B.

Code: Alles auswählen

<tns:Fixed month="OCTOBER" day="3" validFrom="1990" descriptionPropertiesKey="UNIFICATION_GERMANY"/><!-- Tag der Deutschen Einheit ab 1990 -->
Also habe ich die "holiday_descriptions_de.properties" und "country_descriptions_de.properties" von GITHUB geladen und in SERVICES gelegt.
Leider bringt das irgendwie gar nichts.
Muss ich da noch irgendwas spezielles machen, damit das funktioniert? Ich google mir schon die Finger wund, finde aber nichts.

Gruss
Dominik

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Ephemeris Properties

Beitrag von int5749 »

domjo75 hat geschrieben: 4. Okt 2021 15:52 Ich google mir schon die Finger wund, finde aber nichts.
Willkommen im Club ;-) Ephemeris ist leider noch nicht so im EInsatz und eine kleine große Diva obendrein.
domjo75 hat geschrieben: 4. Okt 2021 15:52 Muss ich da noch irgendwas spezielles machen, damit das funktioniert?
Ja, bei meinen Versuchen musste ich zwingend den Pfad zur XLM angeben, damit es funktioniert.
Da bei mir "Tag der deutschen Einheit" angezeigt wurde, poste ich einmal meine Konfig, welche bei mir seit vielen Monaten so läuft.
Das einzige Manko ist leider, das ich bisher einige für mich wichtige Feiertage (welche in der Konfig fehlten) nicht eingebaut bekommen habe :-/ Eine Diva halt. Und auch einige persönliche Übersetzungen werden nicht angezogen, obwohl in der XML enthalten. Dies war vor einigen Monaten bereits ein bekanntes Problem, habe bisher aber noch keine Zeit gefunden weiter zu forschen.

Sagte ich bereits, das Ephemeris eine Diva ist?

Items (obwohl ich denke, dies hast Du ähnlich aber eben zur Vollständigkeit

Code: Alles auswählen

Switch Holiday			"Feiertag"
String TodayIs			"Heute ist: [%s]"
Rule (mir reicht es bei einem Systemstart oder morgens um 5)

Code: Alles auswählen

rule Feiertage
when
    Time cron "5 0 0 * * ?" 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
Viele Grüße
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

domjo75
Beiträge: 159
Registriert: 22. Jan 2019 11:10
Answers: 0

Re: Ephemeris Properties

Beitrag von domjo75 »

Moin,

im Grunde sieht das bei mir auch so aus. Ich unterscheide noch zwischen Urlaub und Feiertag, weil ich im Urlaub und an Feiertagen die Rollo´s im Büro nur zu 50% öffne.
Im Urlaub, wenn wir also nicht da sind, schaltet sich ausserdem nicht die komplette Ambientebeleuchtung an.
Egal...

Code: Alles auswählen

Switch Holiday_IsState
Switch BankHoliday_IsState
String Holiday_Today    "Holiday (Urlaub)"
String BankHoliday_Today    "BankHoliday (Feiertag)"
String BankHoliday_Next   "Next BankHoliday (Feiertag XML) [%1$tA, %1$td.%1$tm.%1$tY]"
Switch HolidayGen_IsState
DateTime Holiday_Date   "Holiday (Urlaub ICS) [%1$tA, %1$td.%1$tm.%1$tY]" { channel="...}

Code: Alles auswählen

rule "Holiday - Switches fuer heute aktualisieren"
when
    Time cron "0 0 6 * * ? *"    
then
    logInfo("Holiday", "Switches fuer heute aktualisieren.")

    val dtDate = new DateTimeType().zonedDateTime.plusDays(0)
    //val dtDatetest = new DateTimeType().zonedDateTime.plusDays(28)
    val String strHoliday = '/etc/openhab/services/Holidays_de.xml'
    var String strToday = "regular"
    var String strTodayBH = "regular"

    Holiday_Today.postUpdate(strToday)
    Holiday_IsState.postUpdate(OFF)

    BankHoliday_Today.postUpdate(strToday)
    BankHoliday_IsState.postUpdate(OFF)

    HolidayGen_IsState.postUpdate(OFF)
    // BankHoliday_Next.postUpdate(strToday)
    
    if  (Holiday_Date.state != UNDEF) {
        val dtHoliday = (Holiday_Date.state as DateTimeType).zonedDateTime
        Holiday_IsState.postUpdate(OFF)
        if (dtHoliday.year == now.year && dtHoliday.month == now.month && dtHoliday.dayOfMonth == now.dayOfMonth) {            
            strToday = "Urlaub"
            Holiday_IsState.postUpdate(ON)
            HolidayGen_IsState.postUpdate(ON)
            }
        }
    Holiday_Today.postUpdate(strToday)
    

    if  (Ephemeris.isBankHoliday(dtDate, strHoliday)) {
        //strTodayBH = Ephemeris.getHolidayDescription(Ephemeris.getBankHolidayName(dtDate, strHoliday))
        strTodayBH = "Feiertag"
        BankHoliday_IsState.postUpdate(ON)
        HolidayGen_IsState.postUpdate(ON)
    }
    BankHoliday_Today.postUpdate(strTodayBH)

    val String nextHoliday = Ephemeris.getNextBankHoliday('/etc/openhab/services/Holidays_de.xml')
    var status = ""
    status += ", 'isWeekend': " + Ephemeris.isWeekend
    status += ", 'NextBankHoliday': " + Ephemeris.getNextBankHoliday('/etc/openhab/services/Holidays_de.xml')
    status += ", 'DaysUntil': " + Ephemeris.getDaysUntil(nextHoliday, '/etc/openhab/services/Holidays_de.xml')
    status += ", 'isBankHoliday': " + Ephemeris.isBankHoliday('/etc/openhab/services/Holidays_de.xml')
    status += ", 'getBankHolidayName': " + Ephemeris.getBankHolidayName(43,'/etc/openhab/services/Holidays_de.xml')
    status += ", 'isInDayset(school)': " + Ephemeris.isInDayset("school")
    status += ", 'strToday': " + strToday
    status += ", 'strTodayBH': " + strTodayBH
    logInfo("Holiday", status)

    BankHoliday_Next.postUpdate(nextHoliday)

end

Sieht auffallend ähnlich aus :lol:

Trotzdem funktioniert das bei mir nicht. Dann muss es ja an den Dateien liegen.
Ich habe mal meine XML und die beiden Properties angehängt (.TXT musste ich einfügen um die Dateien hier anhängen zu können). Vielleicht ist da ja was verkehrt.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Ephemeris Properties

Beitrag von int5749 »

Hmm,

das einzige was mir beim direkten Vergleich aufgefallen ist, ist eine Leerzeile in den beiden .properties Files.
Ich kann mir zwar nicht vorstellen, dass dies eine Auswirkung hat, aber bis auf dieses Details sind diese beiden Files identisch mit meinen.
Die XML sieht auch gleich aus.
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

Antworten