Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Benutzeravatar
Steinspiel
Beiträge: 396
Registriert: 28. Dez 2019 08:49
Answers: 2

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von Steinspiel »

guten Morgen,
int5749 hat geschrieben: 2. Mär 2020 23:15 Hast Du denn Ephemeris schon installiert und konfiguriert?
Installieren? Oh, oh, da habe ich mich wohl ernsthaft etwas doof angestellt... ;-)

Nachdem ich unter Bindings kein "Ephemeris" gefunden hatte und bei @alkaline bei "Was wird benötigt?" auch nicht explizit (für Leute wie mich) ;) stand das man es installieren muss, dachte ich es gehört "irgendwie" schon zu openHAB dazu und habe einfach seine Konfiguration 1:1 übernommen... Also die Items, Ruls, *.xml usw.

Wo finde ich denn das Binding damit ich es installieren kann?

Danke erst einmal und einen schönen Tag noch...
bis dann, Steinspiel

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

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von int5749 »

Guten Morgen,

OK, installiert war evtl. etwas zu hoch, da dies bereits im Core mit enthalten ist.

Zur Konfiguration musst Du zwingend die ephemeris.cfg füllen/erstellen, ich meine die Konfiguration über PaperUI ist daher derzeit nicht notwendig, emofehle dies aber trotzdem. Warum? Die Notwengkeit der ephemeris.cfg ist einem Issue gheschuldet, welches (hoffentlich) bald behoben wird. Dann wäre die ephemeris.cfg eine optionale Möglichkeit.

In der PaperUI findest Du dies unter => Configuration/System und dann auf der rechten Seite scrollen ;)

Somit müsstest Du beides, so wie von alkaline beschrieben, einrichtigen. Ist dies bereits - neben der Übernahme der Rules - erfolgt??

Viele Grüße

Jörg
alkaline hat geschrieben: 5. Jan 2020 09:47 Ich persönlich halte die existierende Doku für Ephemeris für sehr undurchsichtig die Actions sind unter dem Punkt Ephemeris hier beschrieben:
https://www.openhab.org/docs/configuration/actions.html

Was wird benötigt?

Papuer UI: Ausfüllen der Standortinformationen.
Achtung: Nur aus der Dropdown Box wählen, nichts reinschreiben.

ephemeris.cfg: (liegt später unter Services ab und hält die in der Paper UI gemachten Einstellungen)

Code: Alles auswählen

country=de
region=bw
dayset-workday=[Monday,Tuesday,Wednesday,Thursday,Friday]
dayset-weekend=[Saturday,Sunday]
dayset-beforeWeekend=[Friday]
Wichtige infos zur ephemeris.cfg:
die eckigen Klammern wurden bei mir nicht automatisch gesetzt, die habe ich nachträglich eingefügt. Stand heute kann ich nicht ersehen, ob die zwingend benötigt werden, es gehen beide Wege.
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

Benutzeravatar
Steinspiel
Beiträge: 396
Registriert: 28. Dez 2019 08:49
Answers: 2

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von Steinspiel »

Moin,
int5749 hat geschrieben: 3. Mär 2020 07:42 [...]
Somit müsstest Du beides, so wie von alkaline beschrieben, einrichtigen. Ist dies bereits - neben der Übernahme der Rules - erfolgt??
Also ich habe Ephemeris in PaperUI ausgefüllt und gespeichert und dann die "ephemeris.cfg" von @alkaline übernommen und in \SERVICES gespeichert. Region habe ich dort einfach von "bw" in "sh" für Schleswig Holstein geändert

Code: Alles auswählen

country=de
region=sh
dayset-workday=[Monday,Tuesday,Wednesday,Thursday,Friday]
dayset-weekend=[Saturday,Sunday]
dayset-beforeWeekend=[Friday]
Rules und Items habe ich komplett so übernommen (unter einem eigenen Namen gespeichert) sowie die "holiday_descriptions_de.properties" und "Holidays_de.xml" auch in \SERVICES abgelegt.
Im Log wird mir immer noch folgendes angezeigt:

Code: Alles auswählen

2020-03-03 20:45:25.453 [INFO ] [.eclipse.smarthome.model.script.FILE] - Heute ist ein Wochentag
2020-03-03 20:45:25.457 [INFO ] [.eclipse.smarthome.model.script.FILE] - Heute ist nicht Freitag
2020-03-03 20:45:25.566 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Error during the execution of startup rule 'Ephemeris Rege': Cannot instantiate configuration from URL 'file:/etc/openhab2/services/Holidays_de.xml'.
Also teilweise scheint es ja zu funktionieren.
Allerdings in Visual Studio Code werden besagten drei Fehler in der Rules Datei angezeigt :

Bild

openHAB scheint ja die "Holidays_de.xml" nicht zu finden, oder?
Ich nutze ZRAM , kann es damit zu tun haben das der Pfad nicht gefunden wird? Aber das ist glaube ich auch Quatsch, die anderen Files werden ja gefunden!
bis dann, Steinspiel

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

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von int5749 »

Hallo Steinspiel

das ist immer so eine Sache, mit der einfachen Übernahme von Beispielen in die eigene Konfig.

Ich vermute mal, Du hast OpenHab schon neu gestartet? Dies ist notwendig, wenn Du Änderungen an den XML Dateien vornimmst.

Ferner habe ich schon min. 2 Fehler gefunden

Zeile 12 & 15 unterstützt gemäß Doku keine Angabe von Files

Code: Alles auswählen

getHolidayDescription(<holiday name>)
Zeile 13 scheint ein Problem mit der eigenen Deinition eines DaySets zu haben

Ich würde empfehlen, die Beispiele erst einmal abzustrippen und mit einfachen Abfragen anzufangen, dies hilft mir dann immer ;-)
Zum testen habe ich einen Test-Switch erstellt, wenn der betätigt wird, lasse ich abfragen laufen und im Log anzeigen.
So kann ich einzelne Befehle immer mal adhoc testen ;-)

Bei mir ist zum Beispiel (neben der Konfiguration und cfg) folgendes eingerichtet und seit gerade aktiv

Items

Code: Alles auswählen

Switch Holiday        "Feiertag"
String SpecialDay   "Heute ist: [MAP(de.map):%s]"
String TodayIs         "Heute ist: [%s]"
DateTime Datum    "Datum [%1$td.%1$tm.%1$tY]" <calendar>          {channel="knx:device:bridge:Vopenhab:datum",channel="ntp:ntp:home:dateTime"}
Things

Code: Alles auswählen

/* Virtuelle Items, keine Hardware */
    Thing device Vopenhab "virtuelle" @ "KNX" [
     ] {
        Type datetime-control : uhrzeit "Zeit und Tag"  [ ga="10.001:0/8/15" ]
        Type datetime-control : datum   "Datum"         [ ga="11.001:0/47/11" ]
   }
Dateien im System (ich habe dies auf einem Windows Rechner laufen) und alles liegt im Service Ordner

holidays_de.xml (wird für Feiertage verwendet und ist eine Kopie des Originals, erweitert um pers. Feiertage wie z.B. Ostersonntag)
holiday_descriptions_de.properties (enthält die Übersetzungen, es sind aber nicht alle pers. Feiertage enthalten)
specialdays.xml (pers. Tage zur besonderen Verwendung wie z.B. Adventsonntage, usw)

Rule

Code: Alles auswählen

rule Feiertage
when
    Time cron "0 0 0 * * ?" or
    System started
then
    if (Ephemeris.isBankHoliday(new DateTimeType().zonedDateTime.now().plusDays(0), '<myPath>/holidays_de.xml') == true) {
        postUpdate(TodayIs, Ephemeris.getHolidayDescription(Ephemeris.getBankHolidayName(new DateTimeType().zonedDateTime.now().plusDays(0), '<myPath>/holidays_de.xml')))
        postUpdate(Holiday, ON)
    } else if (Ephemeris.isBankHoliday(new DateTimeType().zonedDateTime.now().plusDays(0), '<myPath>/holidays_de.xml') == false && Ephemeris.isBankHoliday(new DateTimeType().zonedDateTime.now().plusDays(0), '<myPath>/specialdays.xml') == true) {
        postUpdate(TodayIs, Ephemeris.getHolidayDescription(Ephemeris.getBankHolidayName(new DateTimeType().zonedDateTime.now().plusDays(0), '<myPath>/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
Mit den längeren Pfaden muss gearbeitet werden, da eine kürzere Funktion zwar vorhanden, aber derzeit noch nicht funktioniert.
Ausserdem kann über den <offset> dann auch mal auf einen Feiertag gesprungen werden ;-) Dies hat mir zudem das testen erleichtert.

Sitemap

Code: Alles auswählen

Text item=TodayIs
Nun zeigt mir das Item in der Sitemap entweder den entsprechenden Feiertag, meine "besonderen" Tage oder einfach nur das aktuelle Datum an.

Den Switch Feiertag ON/OFF nutze ich dann in diversen Rules.

Gruß
Jörg
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

Benutzeravatar
OliverCJ
Beiträge: 405
Registriert: 29. Aug 2017 12:41
Answers: 3
Wohnort: Bergisch Gladbach

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von OliverCJ »

Hallo zusammen,

ich schaue mir das mit Ephemeris auch gerade mal ein wenig an und frage mich, ob ich die XML-Files in der Form wirklich brauche und die description.properties dazu.
Ich meine, was interessiert mich, dass bis 1990 der 17.06. der Nationalfeiertag war. Das kann ich doch rauslöschen, oder?
Und kann ich nicht auch direkt in der Holiday_de.xml die Feiertage in Deutsch benennen? Muss ich die Umwandlung über das Description-File gehen?

Ich denke halt, dann macht man sich 1x die Arbeit und dann ist Ruhe und man hat eine XML, wo wirklich nur das drin steht, was man für sein Bundesland benötigt, das direkt auf Deutsch, und gut ist...

Ich probier das jetzt mal :-)

Oliver

_______________________________________________
Homematic IP Komponenten an CCU 3 (wächst stetig)
Innogy Smarthome System (verabschiedet sich langsam)
Philips Hue Beleuchtung
Fritz!Box
VU+ Solo SAT-Receiver
2 Squeezeboxen
Denon Heos System

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

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von int5749 »

OliverCJ hat geschrieben: 4. Mär 2020 17:34 Hallo zusammen,

ich schaue mir das mit Ephemeris auch gerade mal ein wenig an und frage mich, ob ich die XML-Files in der Form wirklich brauche und die description.properties dazu.
Ich meine, was interessiert mich, dass bis 1990 der 17.06. der Nationalfeiertag war. Das kann ich doch rauslöschen, oder?
Und kann ich nicht auch direkt in der Holiday_de.xml die Feiertage in Deutsch benennen? Muss ich die Umwandlung über das Description-File gehen?

Ich denke halt, dann macht man sich 1x die Arbeit und dann ist Ruhe und man hat eine XML, wo wirklich nur das drin steht, was man für sein Bundesland benötigt, das direkt auf Deutsch, und gut ist...

Ich probier das jetzt mal :-)

Oliver
Hallo Oliver,

ist sicher eine Möglichkeit, aber dann kannst Du fast beim Holiday.script bleiben? Die Idee ist ja, eine standard Datei/action zu haben.
Ich hatte z.B. das holiday script dahingehend erweitert, das alle Feiertage (alle bundesländer) zzgl. Advent und Karneval etc beinhaltet.

Daher mache ich minimale Anpassungen an der original xml und für alles andere nehme ich meine ;-)

Bin gespannt auf deine Ergebnisse.

Viele Grüße,
Jörg
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

Benutzeravatar
udo1toni
Beiträge: 15269
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von udo1toni »

Ja, das ist das Problem mit Ephemeris, warum sollte man das überhaupt machen?

Der große Vorteil (alle Feiertag sind schon korrekt vorgegeben, egal für welchen Zeitraum, egal welches Land, wenn neue Feiertage dazu kommen, werden sie automatisch eingepflegt) geht sofort verloren, wenn man selbst eigene Daten dazu packen muss.
Da schon der Advent nicht abgebildet wird, wird das Ganze noch absurder. Die Begründung im Jollydays Forum, dass dies ja keine Feiertage seien, ist für mich nicht stichhaltig. Muttertag z.B. ist ebenfalls kein Feiertag, aber in der Liste der Jollydays enthalten.

Selbst der Name des Dienstes - Ephemeris - ist extrem unglücklich, denn es geht dabei nicht um Feiertage, sondern um die Position von Himmelskörpern (auf deutsch Ephemeriden). Keine Ahnung, wer da so genial daneben gegriffen hat.

Dürfte ich mir hier etwas wünschen, so wäre dies:
  • eigene (mehrere) Konfigurationsdatei(en), zusätzlich zur offiziellen
  • besserer Name
  • kürzere Funktionsnamen. isBankHoliday geht vollkommen am Thema vorbei, es sei denn, man möchte openHAB in einer Bank einsetzen, und selbst dann klappt es nicht, denn auch an diesen Tagen kann es sein, dass in einer Bank Leute arbeiten. Was hat das Wort Bank mit Feiertag zu tun?
    Auch im englischen finde ich da keinen Zusammenhang, allerdings bin ich auch kein Muttersprachler, vielleicht hab ich da nur was verpasst.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

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

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von int5749 »

udo1toni hat geschrieben: 4. Mär 2020 20:31 Dürfte ich mir hier etwas wünschen, so wäre dies:
  • eigene (mehrere) Konfigurationsdatei(en), zusätzlich zur offiziellen
  • besserer Name
  • kürzere Funktionsnamen. isBankHoliday geht vollkommen am Thema vorbei, es sei denn, man möchte openHAB in einer Bank einsetzen, und selbst dann klappt es nicht, denn auch an diesen Tagen kann es sein, dass in einer Bank Leute arbeiten. Was hat das Wort Bank mit Feiertag zu tun?
    Auch im englischen finde ich da keinen Zusammenhang, allerdings bin ich auch kein Muttersprachler, vielleicht hab ich da nur was verpasst.
Da stimme ich Dir zu - auch wenn ich diese Funktion mittlerweile so weit am laufen habe.

Bank Holiday bezeichnet laut Wikipedia Tage an denen keine Bankgeschäfte durhgeführt werden und eben keine Feiertage sind, darüber hinaus gibt es Target-Tage. Dies sind dann Tage an denen trotz Feiertags Bankgeschäfte erledigt werden (Ja, ich arbeite in einem Finanzinstitut :) )
Einziger nicht regulärer Feiertag, welches ein Bankfeiertag ist, ist der Rosenmontag in den Karnevals Hochburgen.
Wir dürfen auch noch Heiigabend und Sylvester so bezeichnen, da wir dort auch (geschenkt) frei haben.

Somit bleibt es weiter unchlüssig!

Falls dies mal angepasst würde, gibt es wieder eine Migration :?
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

Benutzeravatar
OliverCJ
Beiträge: 405
Registriert: 29. Aug 2017 12:41
Answers: 3
Wohnort: Bergisch Gladbach

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von OliverCJ »

Okay, überzeugt.. ich versuche mal, dass so zu nutzen, wie es vorgegeben ist. Spart dann wahrscheinlich doch ne Menge Arbeit.

BTW: So unglücklich finde ich den Namen gar nicht. Denn wie "errechnet" sich Ostern?
Ostern fällt auf den ersten Sonntag nach dem zyklisch bestimmten Vollmond, der am oder nach dem 21. März stattfindet. Fällt der kirchliche Frühlingsvollmond auf einen Sonntag, wird Ostern am darauf folgenden Sonntag gefeiert.

Es geht also um bewegliche Feiertage, die sich anhand der Position von Himmelskörpern bestimmen lassen... Passt doch!

Zugegeben: Die meisten Feiertage in Deutschland sind dann eben doch fest an ein Datum gebunden, aber wollen wir mal nicht kleinlich sein :-)

_______________________________________________
Homematic IP Komponenten an CCU 3 (wächst stetig)
Innogy Smarthome System (verabschiedet sich langsam)
Philips Hue Beleuchtung
Fritz!Box
VU+ Solo SAT-Receiver
2 Squeezeboxen
Denon Heos System

Benutzeravatar
udo1toni
Beiträge: 15269
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von udo1toni »

Nein, es geht um besondere Tage im allgemeinen, die wenigsten Feiertage richten sich nach Ostern. Etliche andere Tage richten sich auch nach Himmelskörpern, aber mit der Logik müsste das Astro Binding Ephemeris heißen, denn da geht es ausschließlich um die Positionen beweglicher Himmelskörper.
Holliday hat aber eben auch eine spezielle Bedeutung, weshalb die verwendete Library auch Jollyday heißt. Warum hat man nicht direkt diesen Namen verwendet? Ich glaube nicht, dass die Schöpfer der Library da Einwände gehabt hätten...

Jollyday liefert wahrscheinlich für fast jeden Tag im Jahr ein Ergebnis, weil da auch massig andere besondere Tage gelistet sind, man schaue mal in die Datei https://github.com/svendiedrichsen/joll ... properties
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Antworten