Seite 1 von 1
Mal wieder Ephemeris
Verfasst: 3. Okt 2023 21:00
von guinnes
Moin
Der Titel sagt es : ich versuche mit Ephemeris was zu machen und stehe vor Rätseln.
Ich habe versucht, ob meine Einstellungen richtig sind bzw. ob denn Einstellugen was bewirken :
1. Wenn ich als Region Bayern einstelle, sollte der 06.01 ein Feiertag sein, ist aber nicht, ebenso sollte der 08.06 kein Feiertag sein ist es aber
2. Wenn ich versuche, die Feiertage nach deutsch zu übersetzen bekomme ich :
Can't find bundle for base name descriptions.holiday_descriptions, locale de_DE
Die Konfiguration habe ich sowohl in der /services/ephemeris.cfg gemacht :
Code: Alles auswählen
country=de
region=nw
dayset-workday=[MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY]
dayset-weekend=[SATURDAY,SUNDAY]
als auch in der runtime.cfg.
Die Dateien "country_descriptions_de.properties" und "holiday_descriptions_de.properties" liegen im selben Verzeichniss ( Sollten gar nicht nötig sein, da die Daten in den Resourcen der Java-Files sind )
Kann mir jemand helfen ?
Re: Mal wieder Ephemeris
Verfasst: 3. Okt 2023 21:25
von int5749
Moin,
also Ephemeris ist eine Zicke

kämpfe auch noch mit privaten Spezial Tagen
guinnes hat geschrieben: ↑3. Okt 2023 21:00
1. Wenn ich als Region Bayern einstelle, sollte der 06.01 ein Feiertag sein, ist aber nicht, ebenso sollte der 08.06 kein Feiertag sein ist es aber
Ich habe gerade noch einmal im Ferienkalender geschaut: Der 08.06. ist auch in Bayern ein Feiertag
guinnes hat geschrieben: ↑3. Okt 2023 21:00
Code: Alles auswählen
country=de
region=nw
dayset-workday=[MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY]
dayset-weekend=[SATURDAY,SUNDAY]
region=nw ist doch Nordrhein-Westfalen, da ist der 06.01. kein Feiertag.
Möchtest Du denn NRW oder Bayern?
Mit welchem Befehle übersetzt Du denn den "Feiertag"??
Re: Mal wieder Ephemeris
Verfasst: 3. Okt 2023 21:47
von guinnes
int5749 hat geschrieben: ↑3. Okt 2023 21:25
also Ephemeris ist eine Zicke

kämpfe auch noch mit privaten Spezial Tagen
guinnes hat geschrieben: ↑3. Okt 2023 21:00
1. Wenn ich als Region Bayern einstelle, sollte der 06.01 ein Feiertag sein, ist aber nicht, ebenso sollte der 08.06 kein Feiertag sein ist es aber
Ich habe gerade noch einmal im Ferienkalender geschaut: Der 08.06. ist auch in Bayern ein Feiertag
Stimmt, hab ich mich wohl verlesen
guinnes hat geschrieben: ↑3. Okt 2023 21:00
Code: Alles auswählen
country=de
region=nw
dayset-workday=[MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY]
dayset-weekend=[SATURDAY,SUNDAY]
region=nw ist doch Nordrhein-Westfalen, da ist der 06.01. kein Feiertag.
Das ist der Stand der Datei, nachdem ich alles wieder richtig für meinen Standort eingestellt hatte
Mit welchem Befehle übersetzt Du denn den "Feiertag"??
Ich machs mit Blockly, der Code, der dabei rauskommt ist :
Code: Alles auswählen
var Ephemeris = Java.type('org.openhab.core.model.script.actions.Ephemeris');
console.info((Ephemeris.getHolidayDescription(Ephemeris.getBankHolidayName(time.toZDT('2023-06-08')))));
Wenn ich die Übersetzung "Ephemeris.
getHolidayDescription" rauslasse, kommt ein plausibler Feiertagname dabei raus, aber eben leider in Englisch
Re: Mal wieder Ephemeris
Verfasst: 3. Okt 2023 22:40
von int5749
Bei Blockly kann ich Dir nicht helfen, aber mit dem Inhalt meiner DSL Rule. Evtl. kannst Du das umbauen?
Bei mir läuft um 5Min nach Mitternacht eine Regel und setzt mir ein Text-Item zur Anzeige in der iPhone App
Code: Alles auswählen
val String strHoliday = '/etc/openhab/services/holidays_de.xml' <<== Pfad zur lokalen Datei der deutschen Übersetzung
val String strSpecialday = '/etc/openhab/services/specialdays.xml' <<== Pfad für meine persönlichen Tage
val dtDate = new DateTimeType().zonedDateTime.plusDays(0) <<== HEJUTE
var String strToday = "regular" <<== Default
Ab hier passiert Ephemeris Magie
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)
Für heute steht dann in "TodayIs" => "Tag der deutschen Einheit"
Re: Mal wieder Ephemeris
Verfasst: 4. Okt 2023 17:28
von guinnes
Danke für die Antwort.
Ich habs versucht :
Code: Alles auswählen
val String strHoliday = '/etc/openhab/services/Holidays_de.xml' // <<== Pfad zur lokalen Datei der deutschen Übersetzung
val String strSpecialday = '/etc/openhab/services/specialdays.xml' // <<== Pfad für meine persönlichen Tage
val dtDate = new DateTimeType().zonedDateTime.minusDays(1) // <<== HEJUTE
var String strToday = "regular" // <<== Default
//Ab hier passiert Ephemeris Magie
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("Ephebla", "Übersetzung {}",strToday)
Ergebniss :
Script execution of rule with UID 'Test5' failed: Can't find bundle for base name descriptions.holiday_descriptions, locale de_DE
Mittlerweile gehe ich davon aus, daß es einfach nicht tut
Ach ja, meine Version :
openHAB 4.0.2
Release Build
Interessant ist vielleicht noch, daß der Fehler nur kommt, wenn es einen Feiertag gibt
Re: Mal wieder Ephemeris
Verfasst: 4. Okt 2023 17:52
von int5749
Hmm, ja weil ohne Feiertag keine Abfrage.
Dumme Frage: Du hast aber die Datei an der besagten Stelle im Dateisystem liegen?
Die andere hast Du ja aus-kommentiert
Re: Mal wieder Ephemeris
Verfasst: 4. Okt 2023 18:51
von guinnes
int5749 hat geschrieben: ↑4. Okt 2023 17:52
Hmm, ja weil ohne Feiertag keine Abfrage.
Ich habe natürlich auch ohne die Feiertagsabfrage versucht, dann kommt einfach null, wenn kein Feiertag ist
Dumme Frage: Du hast aber die Datei an der besagten Stelle im Dateisystem liegen?
Selbstverständlich, obwohl die nicht benötigt wird, weil alle landesspezifischen Dateien mit im Java-Paket enthalten sind
Die andere hast Du ja aus-kommentiert
Ich habe alles auskommentiert, was ich nicht brauche.
Jetzt habe ich allerdings eine Lösung gefunden : Map-Transformation ! Ist zwar ne Krücke, aber geht ( Dabei muß allerdings die Abfrage rein, da es sonst zu einer Fehlermeldung kommt, wenn der angegebene Tag kein Feiertag ist )
Die Übersetzung geht übrigens bei der 3.4.1 auch schon nicht, ich frage mich, warum es bei dir funktioniert ??
Re: Mal wieder Ephemeris
Verfasst: 4. Okt 2023 20:46
von int5749
guinnes hat geschrieben: ↑4. Okt 2023 18:51
Die Übersetzung geht übrigens bei der 3.4.1 auch schon nicht, ich frage mich, warum es bei dir funktioniert ??
Bei mir läuft das so seit einer frühen 3.x und auch jetzt noch unter 4.0.2 bzw. mittlerweile 4.0.3
Der von mit gepostete Code ist 1:1 und nur in einer Rule, welche bei Systemstart oder Nachts um 5-nach-Mitternacht ausgeführt wird.
Seltsam!
Ich habe gerade noch einmal meine emphemeris.cfg überprüft, ich habe 1 Eintrag mehr als Du.
Evtl. liegt es an dem language Parameter?
Code: Alles auswählen
country=de
region=nw
language=de
dayset-workday=[MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY]
dayset-weekend=[SATURDAY,SUNDAY]
Viele Grüße
Re: Mal wieder Ephemeris
Verfasst: 4. Okt 2023 21:37
von guinnes
int5749 hat geschrieben: ↑4. Okt 2023 20:46
Ich habe gerade noch einmal meine emphemeris.cfg überprüft, ich habe 1 Eintrag mehr als Du.
Evtl. liegt es an dem language Parameter?
Code: Alles auswählen
country=de
region=nw
language=de
dayset-workday=[MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY]
dayset-weekend=[SATURDAY,SUNDAY]
Viele Grüße
Danke nochmal.
Leider hat das auch nichts gebracht.