Ephemeris - neue OpenHAB Funktion - Brainstorming

  • Seit Openhab 2.5 ist die Funktion Ephemeris in OpenHAB integriert.
    Ephemeris kann den Status von Feiertagen, Wochenende und selbst definierten Daten ermitteln, darstellen und in Rules verarbeiten.
    Bei Feiertagen werden sogar die Unterschiede der verschiedenen Bundesländer berücksichtigt.
    Ephemeris schreit gerade förmlich nach einer Integration in Licht/Jalousie/Heizungsrules, da bspw eure smarte Heizung sich tagsüber so an einem Feiertag der in der Woche liegt nicht runterregelt.
    Bei Jalousien ist eine spätere Öffnung an Feiertagen und Wochenenden (ging vorher auch etwas umständlicher) ebenso möglich....genau wie das spätere automatisierte schließen, wenn am nächten Tag ein Feiertag oder Wochenende ist.
    Geburtstage, Hochzeitstage usw usw sind natürlich auch möglich. Das stärkt eure Position beim WAF :thumbup:

    Ich hab mich gestern abend das erste mal an Ephemeris rangesetzt.
    Wer Lust hat, der kann sich ja an diesem Thread beteilligen um optimale Rules zu erstellen.

    Vorbereitung:
    1. Datei /srv/openhab2-conf/services/runtime.cfg öffnen und die ggf. vorhandenen Zeilen
    org.openhab.ephemeris:dayset-weekend=[SATURDAY,SUNDAY] sowie org.openhab.ephemeris:dayset-school=[MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY] löschen.
    2. eine Datei erstellen sudo nano /srv/openhab2-conf/services/ephemeris.cfg. Folgendes in die Datei rein:

    Code
    country=de
    region=be
    dayset-weekend = [SATURDAY,SUNDAY]
    dayset-school = [MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY]

    Den Regionscode bitte auf Euren Wert anpassen....be steht in meinem Beispiel für Berlin.
    Regionscodes findet ihr hier https://github.com/svendiedrichse…Holidays_de.xml immer unter dem Punkt hierarchy
    Alles abspeichern und OpenHAB neustarten

    Folgende Sachen hab ich mir bisher per Rule zusammengestellt. Das ganze könnte eine Rule für abends werden, da ich berechne ob am kommenden Tag ein Feiertag oder Wochenende ist :

    Items Datei (den Dummy nutzen wir temporär als Rule Trigger, später übernimmt das natürlich ein cron):
    Switch Dummy
    Sitemap Datei:
    Switch item=Dummy

    Rules Datei:

    was mich irritiert, das es keine Ephemeris Variable für getNextWeekend zu geben scheint....find ich doof.
    Verbesserungsvorschläge zur Errechnung für eine Abendrule @TehTux oder @Momo90 ?

  • Um selbst definierte Tage (Geburtstage etc) zu verwerten geht ihr wie folgt vor:
    sudo nano/srv/openhab2-conf/services/wichtige_tage.xml
    dort folgendes als Beispiel rein:

    XML
    <?xml version="1.0" encoding="UTF-8"?>
    <tns:Configuration hierarchy="us" description="United States"
        xmlns:tns="http://www.example.org/Holiday" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.example.org/Holiday /Holiday.xsd">
        <tns:Holidays>
            <tns:Fixed month="APRIL" day="14" descriptionPropertiesKey="Geburtstag Horschte" />
        </tns:Holidays>
    </tns:Configuration>

    Zeile 6 ist das Event welches ermittelt/ausgewertet werden soll.
    In der Datei können natürlich weitere Events zugefügt werden. Zeile 6 Kopieren, nach zeile 6 einfügen und dann das Datum und Beschreibung anpassen.

    WICHTIG!!!
    Nach erstellen/editieren dieser Datei MUSS openhab neu gestartet werden, ansonsten wird die Datei nicht neu eingelesen.

    Beispielrule (Dummy Item vom ersten Beitrag hier genutzt):

  • "getNextWeekend" könntest errechnen über now.getDateOfWeek
    Wüsste aber nicht was das bringen soll, da es immer Samstag ergeben wird, außer es ist Samstag. Dann kommt Sonntag raus :D

    Oder meinst du getDaysuntil, also wie viele Tage noch bis zum Wochenende sind?
    Das müsste man sich auch mit now.getDateOfWeek errechnen können

  • Gefällt mir sehr der Grundgedanke, bin bisher aber nur blutiger Anfänger^^

    Was mir aber gefällt ist dein Hochzeitstag, wessen Idee war das mit dem Valentinstag? :) Aber bei uns ist es ähnlich, an dem Tag ist unser Jahrestag^^

    NAS: Gehäuse: Jonsbo G3, Mainboard: MSI B460M PRO, CPU: Intel Pentium G6400, OS: OMV 6

    Client: NVIDIA Shield Pro 2019

  • naja bspw Hochzeitstage ändern sich ja nicht so oft, Geburtstage sogar noch seltener glaube ich :D

    Schonmal an Scheidung gedacht? :D Freunde hat man auch oft nicht lebenslang somit braucht man die Geburtstage auch nicht mehr speichern. Bei Geburtstagen der Kinder und besten Freunden würde ich dir sogar recht geben. An sich nicht viel Arbeit aber ich finds immer blöd gleiche Daten an mehreren Stellen zu pflegen.

  • Hab mal was mit Node.js gebastelt…

    Link zur ICS-Datei der Stadt rein und raus kommt:


    :thumbup:

  • So ich hab jetzt im Google Kalendar mal einen neuen Kalender "Wichtige Tage" erstellt und ein paar Geburtstage eingefügt. Das funktioniert soweit prima. Das Script stoße ich aktuell noch über Terminal an. Nach der Testphase mache ich dann dafür einen Cronjob.

    Falls jemand interesse hat das einzusetzen, einfach melden. Dann schreibe ich einen kleinen Guide. Ist aktuell nur etwas problematisch mit der Zeit.

    Edit//

    Nach erstellen/editieren dieser Datei MUSS openhab neu gestartet werden, ansonsten wird die Datei nicht neu eingelesen.

    Also "erstellen" ging bei mir ohne Neustart. Beim Editieren klappt's aber nicht. Gibt es irgend eine Möglichkeit das zu umgehen? Kompletter Neustart ist irgendwie nicht so toll… Vielleicht bringt es ja etwas in der XML einen Zeitstempel zu hinterlegen?!

  • Falls jemand interesse hat das einzusetzen, einfach melden. Dann schreibe ich einen kleinen Guide. Ist aktuell nur etwas problematisch mit der Zeit.

    meld

    Also "erstellen" ging bei mir ohne Neustart. Beim Editieren klappt's aber nicht. Gibt es irgend eine Möglichkeit das zu umgehen? Kompletter Neustart ist irgendwie nicht so toll… Vielleicht bringt es ja etwas in der XML einen Zeitstempel zu hinterlegen?!

    du könntest die zwischengespeicherte datei umbenennen, evt hilft das ja.
    mich persönlich stört das nicht so wirklich. wenn ich am system gebastelt hab starte ich openhab sowieso neu.

  • Hallo,
    ich versuche gerade eine Rule zu stricken die mich warnt, wenn ich vergessen habe meinen Wecker an Feiertagen auszuschalten.
    Mit den Standardeinstellungen läuft das fast.
    Irgendwie habe ich da wohl einen Denkfehler

    Wecker für morgen gesetzt, der nächste Feiertag ist Montag der 2. Weihnachtstag. Von heute (So. 18.12.22) in 8 Tagen. Meine Rule meint aber es sind 7 Tage

    Code
    2022-12-18 08:18:54.547 [INFO ] [org.openhab.core.model.script.Info  ] - Nächster Wecker ist in 1Tagen
    2022-12-18 08:18:54.550 [INFO ] [org.openhab.core.model.script.Info  ] - Nächster Feiertag ist in 7Tagen
    2022-12-18 08:18:54.552 [INFO ] [org.openhab.core.model.script.Info  ] - alles gut
    2022-12-18 08:18:54.570 [INFO ] [org.openhab.core.model.script.Info  ] - Nächster Wecker ist in 1Tagen
    2022-12-18 08:18:54.572 [INFO ] [org.openhab.core.model.script.Info  ] - Nächster Feiertag ist in 7Tagen
    2022-12-18 08:18:54.575 [INFO ] [org.openhab.core.model.script.Info  ] - alles gut


    Setzte ich den Wecker auf den 26.12. würde die rule mich nicht warnen

    Code
    2022-12-18 08:30:12.326 [INFO ] [org.openhab.core.model.script.Info  ] - Nächster Wecker ist in 8Tagen
    2022-12-18 08:30:12.329 [INFO ] [org.openhab.core.model.script.Info  ] - Nächster Feiertag ist in 7Tagen
    2022-12-18 08:30:12.332 [INFO ] [org.openhab.core.model.script.Info  ] - alles gut


    Ich bin in der glücklichen Situation, dass ich auch am Heilig Abend und Sylvester nicht arbeiten muß.
    Da habe ich eine zweite Rule gebastelt. Da wird es dann ganz seltsam.

    XML: mehrFeiertage.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <tns:Configuration hierarchy="us" description="United States"
        xmlns:tns="http://www.example.org/Holiday" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.example.org/Holiday /Holiday.xsd">
        <tns:Holidays>
            <tns:Fixed month="DECEMBER" day="24" descriptionPropertiesKey="Heilig Abend" />
            <tns:Fixed month="DECEMBER" day="31" descriptionPropertiesKey="Sylvester" />
        </tns:Holidays>
    </tns:Configuration>
    Code
    2022-12-18 08:39:52.913 [INFO ] [org.openhab.core.model.script.Info  ] - Nächster Wecker ist in 8Tagen
    2022-12-18 08:39:52.916 [INFO ] [org.openhab.core.model.script.Info  ] - Nächster Feiertag ist in -1Tagen
    2022-12-18 08:39:52.920 [INFO ] [org.openhab.core.model.script.Info  ] - Nächster Feiertag istHeilig Abend
    2022-12-18 08:39:52.923 [INFO ] [org.openhab.core.model.script.Info  ] - alles gut

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!