[solved] Ein Newbie benötigt Hife bei einer Rule

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
PJH
Beiträge: 135
Registriert: 23. Mai 2017 08:32
Answers: 0
Wohnort: Duisburg
Kontaktdaten:

Re: [solved] Ein Newbie benötigt Hife bei einer Rule

Beitrag von PJH »

Hallo udo1toni,

danke, woher weiß die rule (das System) wo es die Datei (heißt übrigens holidayS_de.xml) findet?

Es ergibt einen Fehler, auch wenn ich den vollständigen Pfad zur Datei eingebe.

Schöne Grüße. PJH
openHAB 4.3 im Synology NAS Docker-Container.

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

Re: [solved] Ein Newbie benötigt Hife bei einer Rule

Beitrag von udo1toni »

Gewöhnlich sollte die Datei in $OPENHAB_CONF/services/ liegen. Die xml Datei (holidays_de.xml ) soltle auch tatsächlich ausgewertet werden, im Gegensatz (wie erwähnt...) zur holiday_descriptions_de.properties, welche leider nicht berücksichtigt wird. Aber openHAB verwendet zumindest eine interne Version dieser Datei (die aber offensichtlich irgendwo verpackt liegt, denn im Dateisystem selbst ist sie nicht auffindbar).
Die holidays_de.xml liegt natürlich ebenfalls als default Version vor. Ob die eigene Datei verwendet wird, kann man also nur daran erkennen, dass ein in der Standard Datei nicht vorhandener Termin erkannt wird.
Insgesamt finde ich die Umsetzung suboptimal, sowohl was jollyday selbst betrifft als auch die Integration in openHAB, auf der anderen Seite stehen dadurch sehr viele Feiertage zur Verfügung, auch solche, die hier eher unbekannt sind, das hilft natürlich auch bei der potentiellen Verbreitung von openHAB :)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

PJH
Beiträge: 135
Registriert: 23. Mai 2017 08:32
Answers: 0
Wohnort: Duisburg
Kontaktdaten:

Re: [solved] Ein Newbie benötigt Hife bei einer Rule

Beitrag von PJH »

Hallo udo1toni, ich benötige nochmal (vermutlich auch nochmal und nochmal ...) Deine Hilfe.

Ich bekomme die Datei holidays-de.xml (ich habe sie umbenannt, aber vorher mit holidays_de.xml ging's auch nicht) einfach nicht eingelesen.

Hie ist einmal meine (Versuchs) -rule.

Code: Alles auswählen

rule "dummy"


    when
        Time cron "0 01 00 ? * * *" or
        System started or
	    Item vSystemRestart changed to ON
    then
        // val FeiertagName1 = getHolidayDescription(getNextBankHoliday)
     val String FeiertagName = '/etc/openhab/conf/services/holidays-de.xml'
    //  val String  currentHoliday     =  Ephemeris.getNextBankHoliday() //Ephemeris.getBankHolidayName()
      // val String FeiertagName     =   Ephemeris.getNextBankHoliday()
       val long TagebisFeiertag    =   Ephemeris.getDaysUntil(FeiertagName)


        val String morgenWochenende =   Ephemeris.isWeekend(1)
        
    Nfeiertag.postUpdate(FeiertagName + " " + "(in " + TagebisFeiertag + " Tagen)") 
    Nfeiertag2.postUpdate(FeiertagName + " " + "(in " + TagebisFeiertag + " Tag)") 
    Afeiertag.postUpdate(TagebisFeiertag)
    TagebisFeiertag1.postUpdate(TagebisFeiertag)

        if (TagebisFeiertag < 2 || morgenWochenende == true) {
            logInfo("dummy","Morgen ist Wochenende oder Feiertag {}")
        }
        else {
            logInfo("dummy","Morgen ist kein Wochenende und Feiertag ist erst in " + TagebisFeiertag + " Tagen")
        }
        TbF.postUpdate(TagebisFeiertag)
end
Das Ergebnis:
Bildschirmfoto 2024-01-17 um 11.30.46.png
Die Datei liegt hier:
Bildschirmfoto 2024-01-17 um 11.50.44.png
Ob ich den Vorsatz /etc mit eingebe, oder nicht, ändert nix.

Ich betreibe openHAB in der Version 3.3 auf einer Synology NAS im Docker-Container.

Danke und einen schönen Gruß. PJH
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openHAB 4.3 im Synology NAS Docker-Container.

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

Re: [solved] Ein Newbie benötigt Hife bei einer Rule

Beitrag von udo1toni »

So wird eher ein Schuh draus:

Code: Alles auswählen

rule "Feiertag"
 when
    Time cron "0 0 0 * * ?" or // täglich um Mitternacht
    System started or
    Item vSystemRestart changed to ON
 then
    val strHolidays         = "/etc/openhab/conf/services/holidays_de.xml"       // Name der Datei
    val strNextHoliday      = Ephemeris.getNextBankHoliday(strHolidays)          // Original-Name des Feiertags
    val strFeiertag         = Ephemeris.getHolidayDescription(strNextHoliday)    // Übersetzung, falls Standard Feiertag. alternativ:
    val strFeiertag         = transform("MAP","holiday.map",strNextHoliday)      // Übersetzung aus Mapping solange eigene Feiertage nicht übersetzt werden können
    val nNextHoliday        = Ephemeris.getDaysUntil(strNextHoliday,strHolidays) // Tage bis zum Feiertag
    val bTomorrowWeekend    = Ephemeris.isWeekend(1)

    var strMeldung          = strFeiertag + " ("
    switch(nNextHoliday) {
        case 1  : strMeldung += "morgen)"
        case 2  : strMeldung += "übermorgen)"
        default : strMeldung += "in" + nNextHoliday.toString + "Tagen)"
    }
    Afeiertag.postUpdate(nNextHoliday)
    Nfeiertag.postUpdate(strMeldung)
    if(nNextHoliday < 2 || bTomorrowWeekend) {
        logInfo("holiday","Morgen ist Wochenende oder Feiertag.")
    } else {
        logInfo("holiday","Morgen ist kein Wochenende und {} ist erst in {} Tagen",strFeiertag,nNextHoliday)
    }
end
Die diversen doppelten Items habe ich mal weg gelassen, die brauchst Du nicht.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: [solved] Ein Newbie benötigt Hife bei einer Rule

Beitrag von peter-pan »

Der Test mit der Rule von Udo hat bei mir soweit auch ganz gut geklappt. Ich habe allerdings noch zwei Änderungen vorgenommen.

a) Name der Datei "/etc/openhab/services/Holidays_de.xml", da hier so abgestellt.

b) den Pfad etwas gekürzt (ohne "/conf"), da $OPENHAB_CONF bei mir /etc/openhab. Info hier
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

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

Re: [solved] Ein Newbie benötigt Hife bei einer Rule

Beitrag von udo1toni »

Stimmt, auf den Pfad hatte ich gar nicht mehr geschaut...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

PJH
Beiträge: 135
Registriert: 23. Mai 2017 08:32
Answers: 0
Wohnort: Duisburg
Kontaktdaten:

Re: [solved] Ein Newbie benötigt Hife bei einer Rule

Beitrag von PJH »

Guten Morgen, also ich kann machen, was ich will, ich bekomme die Datei nicht eingelesen.

Muss man sie eventuell noch irgendwo deklarieren?

Und bitte, ich habe im Beitrag von Gestern (17.1.24) 12.06h meine Ordnerstruktur gepostet. Kann jemand bitte einmal nachschauen wie die Ordnerangabe richtig lauten muss?

Vielen Dank und einen schönen Gruß. PJH
openHAB 4.3 im Synology NAS Docker-Container.

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: [solved] Ein Newbie benötigt Hife bei einer Rule

Beitrag von peter-pan »

Also ich kenne mich mit Docker nicht aus, aber Udo hat schon Recht .Eigentlich sollte sich hinter der Umgebungsvariablen $OPENHAB_CONF der absolute Pfad für deine openHAB-Umgebung verbergen.

Code: Alles auswählen

hab3@oh3ssd:~ $ echo $OPENHAB_CONF
/etc/openhab
hab3@oh3ssd:~ $ ls -alF $OPENHAB_CONF/
insgesamt 68
drwxrwxr-x 17 openhab openhab 4096 18. Dez 09:55 ./
drwxr-xr-x 99 root    root    4096 10. Jan 17:30 ../
drwxrwxr-x  3 openhab openhab 4096 20. Dez 2021  automation/
drwxrwxr-x  3 openhab openhab 4096  9. Jan 12:21 html/
drwxrwxr-x  3 openhab openhab 4096 12. Dez 2021  icons/
drwxrwxr-x  2 openhab openhab 4096 10. Jan 11:22 items/
drwxrwxr-x  2 openhab openhab 4096 25. Apr 2023  misc/
drwxrwxr-x  2 openhab openhab 4096  9. Jan 12:21 persistence/
drwxrwxr-x  2 openhab openhab 4096 17. Jan 19:13 rules/
drwxrwxr-x  2 openhab openhab 4096 13. Jan 15:43 scripts/
drwxrwxr-x  2 openhab openhab 4096  9. Jan 12:21 services/
drwxrwxr-x  2 openhab openhab 4096  9. Jan 12:21 sitemaps/
drwxrwxr-x  2 openhab openhab 4096  9. Jan 12:21 sounds/
drwxr-xr-x  2 openhab openhab 4096  9. Jan 12:21 tags/
drwxrwxr-x  2 openhab openhab 4096  9. Jan 12:21 things/
drwxrwxr-x  2 openhab openhab 4096 10. Jan 14:25 transform/
drwxrwxr-x  2 openhab openhab 4096 23. Dez 2021  .vscode/
hab3@oh3ssd:~ $
Und im entsprechenden Unterverzeichnis sind dann normalerweise die einzelnen Dateien abgelegt. Das sieht dann bei mir so aus:

Code: Alles auswählen

hab3@oh3ssd:~ $ ls -alF /etc/openhab/services
insgesamt 156
drwxrwxr-x  2 openhab openhab  4096  9. Jan 12:21 ./
drwxrwxr-x 17 openhab openhab  4096 18. Dez 09:55 ../
-rw-rw-r--  1 openhab openhab  1547  2. Jul 2023  addons.cfg
-rw-r--r--  1 openhab openhab   425 25. Dez 2022  basicui.cfg
-rw-rw-r--  1 openhab openhab 23573 25. Dez 11:41 country_descriptions_de.properties
-rw-rw-r--  1 openhab openhab   137 29. Dez 17:41 ephemeris.cfg
-rw-rw-r--  1 openhab openhab 20795 29. Dez 18:09 holiday_descriptions_de.properties
-rw-rw-r--  1 openhab openhab  8744 25. Dez 10:59 Holidays1_de.xml
-rw-rw-r--  1 openhab openhab  7957 25. Dez 10:43 Holidays_de.xml
-rw-rw-r--  1 openhab openhab   333 12. Dez 2021  readme.txt
-rw-rw-r--  1 openhab openhab   551 12. Dez 2021  rrd4j.cfg
-rw-rw-r--  1 openhab openhab 48638  7. Dez 09:59 runtime.cfg
-rw-rw-r--  1 openhab openhab 10415 10. Sep 19:44 runtime.cfg.dpkg-dist
hab3@oh3ssd:~ $
...und so oder so ähnlich sollte das auch bei dir aussehen.
Ob es natürlich in Docker noch spezielle Mechanismen zu beachten gilt, kann ich natürlich nicht beurteilen, aber vielleicht hilft dir der Linux-Befehl echo $OPENHAB_CONF und folgende ja schon weiter, um Licht ins Dunkle zu bringen. Das musst du schon selbst heraus finden
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

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

Re: [solved] Ein Newbie benötigt Hife bei einer Rule

Beitrag von udo1toni »

In einem Docker Container ist der vollständige Pfad ebenfalls /ect/openhab/services/Holidays_de.xml (immer vorausgesetzt, es handelt sich um das offizielle Docker Image)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

PJH
Beiträge: 135
Registriert: 23. Mai 2017 08:32
Answers: 0
Wohnort: Duisburg
Kontaktdaten:

Re: [solved] Ein Newbie benötigt Hife bei einer Rule

Beitrag von PJH »

Das scheint im (Synology) Docker-Container etwas anders zu sein. Wenn ich direkt im openhab-Ordner echo $OPENHAB_CONF eingebe erhalte ich als Ausgabe nul.
Wenn ich die Abfrage vom root-Verzeichnis aus eingebe,erhalte ich nur eine Leerzeile.

Ich habe den kompletten Pfad zur holidays-Datei ermittelt und eingegeben (volume1/docker/openhab/conf/services/holidays_de.xml), aber auch das funktioniert nicht.

Ich werden wohl mein Ephemeris Experiment abbrechen müssen.

Jedenfalls vielen Dank für eure Bemühungen.

Schöne Grüße. PJH
openHAB 4.3 im Synology NAS Docker-Container.

Antworten