Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
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 »

Ähm... Wenn Du einen Pfad angibst, dann muss der auch existieren. Aus dem docker Container heraus sollte der Pfad /etc/openhab2/services/ lauten, es ist unerheblich, wie die Dateien außerhalb des Containers erreicht werden können.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Nybass
Beiträge: 43
Registriert: 25. Mär 2017 11:15
Answers: 0

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von Nybass »

udo1toni hat geschrieben: 6. Jul 2020 13:23 Ähm... Wenn Du einen Pfad angibst, dann muss der auch existieren. Aus dem docker Container heraus sollte der Pfad /etc/openhab2/services/ lauten, es ist unerheblich, wie die Dateien außerhalb des Containers erreicht werden können.
Ja genau...das ist meine Frage: "Welchen Pfad und wie muss ich den in die Rules eintragen"
Initial bin ich auch davon ausgegangen, dass es /etc/openhab2/services/dateiname.xml lauten muss.

Aus der Verzweiflung schon folgende Einstellungen versucht und bekomme jeweils die Fehlermeldung, dass die Datei nicht gefunden werden kann.

Code: Alles auswählen

val String nextHoliday  = Ephemeris.getNextBankHoliday('etc/openhab2/services/holidays_de.xml')

Code: Alles auswählen

val String nextHoliday  = Ephemeris.getNextBankHoliday('/etc/openhab2/services/holidays_de.xml')

Code: Alles auswählen

val String nextHoliday  = Ephemeris.getNextBankHoliday('etc/openhab/services/holidays_de.xml')

Code: Alles auswählen

val String nextHoliday  = Ephemeris.getNextBankHoliday('/etc/openhab/services/holidays_de.xml')

Code: Alles auswählen

val String nextHoliday  = Ephemeris.getNextBankHoliday('$OH_CONF/services/holidays_de.xml')

Code: Alles auswählen

val String nextHoliday  = Ephemeris.getNextBankHoliday('opt/openhab/conf/holidays_de.xml')

Code: Alles auswählen

val String nextHoliday  = Ephemeris.getNextBankHoliday('/opt/openhab/conf/holidays_de.xml')

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 »

Nybass hat geschrieben: 6. Jul 2020 07:11 Meine docker-compose.yml Datei besitzt folgenden Inhalt:

Code: Alles auswählen

volumes:
      - "/opt/openhab/addons:/openhab/addons"
      - "/opt/openhab/conf:/openhab/conf"
      - "/opt/openhab/userdata:/openhab/userdata"
Wenn ich den Eintrag korrekt verstehe, wäre der Pfad

Code: Alles auswählen

/openhab/conf/services/
Denn das ist ja nun angegeben.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Nybass
Beiträge: 43
Registriert: 25. Mär 2017 11:15
Answers: 0

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von Nybass »

udo1toni hat geschrieben: 6. Jul 2020 15:14 Wenn ich den Eintrag korrekt verstehe, wäre der Pfad

Code: Alles auswählen

/openhab/conf/services/
Denn das ist ja nun angegeben.
Das ist korrekt - Danke!

Nybass
Beiträge: 43
Registriert: 25. Mär 2017 11:15
Answers: 0

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von Nybass »

Hallo zusammen,
ich habe nun mit Ephemeris rumgespielt....leider bekomme ich keine Deutschen Texte angezeigt:
Folgende Regel liefert in der Logausgabe/Item den englischen Text :(

Code: Alles auswählen

   /* Kommender Feiertag? */
   val String nextHoliday  = Ephemeris.getNextBankHoliday('/openhab/conf/services/holidays_de.xml')
   val long untilHoliday   = Ephemeris.getDaysUntil(nextHoliday, '/openhab/conf/services/holidays_de.xml')
   val String next_Holiday_Name = Ephemeris.getHolidayDescription(nextHoliday, '/openhab/conf/services/holiday_descriptions_de.properties'))
   NextFeiertagName.postUpdate(next_Holiday_Name) 
   logInfo("Nächster Feiertag", next_Holiday_Name + " ist in " + untilHoliday + " Tagen" )
   logInfo("Nächster Feiertag", nextHoliday)
openhab.log

Code: Alles auswählen

2020-07-07 00:00:00.082 [INFO ] [thome.model.script.Nächster Feiertag] - German Unity Day ist in 88 Tagen
2020-07-07 00:00:00.083 [INFO ] [thome.model.script.Nächster Feiertag] - UNIFICATION_GERMANY
events.log

Code: Alles auswählen

2020-07-06 22:16:10.502 [vent.ItemStateChangedEvent] - NextFeiertagName changed from NULL to German Unity Day
In der "holiday_descriptions_de.properties" Datei ist der entsprechende Eintrag zu finden. Aber keine Ahnung woher der englische Text " German Unity Day" kommt. In meinem Ordner "services" befindet sich nur diese holiday_description Datei.

Code: Alles auswählen

holiday.description.UNIFICATION_GERMANY            = Tag der Deutschen Einheit

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

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von peter-pan »

Nybass hat geschrieben: 7. Jul 2020 20:31 Folgende Regel liefert in der Logausgabe/Item den englischen Text
Zunächst mal ein kleiner Hinweis (Ich habe das am Anfang auch nicht gewusst - Tipp auf Seite 2 in diesem Topic von @Cyrelian):

Normalerweise brauchst du die Dateinamen der Standarddateien nicht angeben, wenn du keine Veränderungen vorgenommen hast, die sind in den Tiefen von OH verborgen ;) .

Probiere mal diese kleine Regel:

Code: Alles auswählen

rule "ephemeris 4" 
when    
   Item Ephem4 changed to ON  // Dummy Switch

then
   val String nextHoliday       = Ephemeris.getNextBankHoliday()
   logInfo("ephem4", "Der String enthält {}", nextHoliday)   // englischer Name

   val String next_Holiday_Name = Ephemeris.getHolidayDescription(nextHoliday)  // Umwandlung in Deutsch
   val long untilHoliday        = Ephemeris.getDaysUntil(nextHoliday)
   logInfo("ephem4", next_Holiday_Name + " ist in " + untilHoliday + " Tagen")
end 
Die zeigt bei mir folgendes an:

Code: Alles auswählen

2020-07-07 23:23:44.954 [INFO ] [clipse.smarthome.model.script.ephem4] - Der String enthält UNIFICATION_GERMANY
2020-07-07 23:23:44.982 [INFO ] [clipse.smarthome.model.script.ephem4] - Tag der Deutschen Einheit ist in 88 Tagen
Den Pfadnamen zu deinem Conf-Ordner (und zu deinem services-Unterordner) kannst du auch so heraus finden:

Code: Alles auswählen

[23:25:59] hab@ohtest:~$ env | grep -i openhab
OPENHAB_HOME=/usr/share/openhab2
OPENHAB_USERDATA=/var/lib/openhab2
OPENHAB_CONF=/etc/openhab2
OPENHAB_HTTPS_PORT=8443
OPENHAB_BACKUPS=/var/lib/openhab2/backups
OPENHAB_HTTP_PORT=8080
OPENHAB_LOGDIR=/var/log/openhab2
OPENHAB_GROUP=openhab
OPENHAB_RUNTIME=/usr/share/openhab2/runtime
OPENHAB_USER=openhab
[23:26:14] hab@ohtest:~$ echo $OPENHAB_CONF
/etc/openhab2
[23:27:02] hab@ohtest:~$
Bei mir ist das /etc/openhab2/services

Code: Alles auswählen

[23:32:07] hab@ohtest:~$ cd $OPENHAB_CONF/services
[23:32:21] hab@ohtest:/etc/openhab2/services$ ls -alF
insgesamt 132
drwxrwxr-x   2 openhab openhab  4096 Jun 24 00:00 ./
drwxrwxr-x+ 16 openhab openhab  4096 Jul  4 12:56 ../
-rw-rw-r--   1 openhab openhab  2269 Dez 15  2019 addons.cfg
-rw-rw-r--   1 openhab openhab 47387 Mär  2 00:46 dashboard.cfg
-rw-rw-r--   1 openhab openhab   194 Jan  8 13:41 ephemeris.cfg
-rw-rw-r--   1 openhab openhab   909 Apr 13 23:10 http.cfg
-rw-rw-r--   1 openhab openhab   184 Apr 17 13:38 mapdb.cfg
-rw-rw-r--   1 openhab openhab 24064 Jan  8 13:14 mycountry_descriptions_de.properties
-rw-rw-r--   1 openhab openhab 20365 Jan  8 13:16 myholiday_descriptions_de.properties
-rw-rw-r--   1 openhab openhab  7955 Jan  7 14:45 myHolidays_de.xml
-rw-rw-r--   1 openhab openhab   333 Dez 15  2019 readme.txt
-rw-rw-r--   1 openhab openhab  3682 Dez 15  2019 runtime.cfg
[23:32:30] hab@ohtest:/etc/openhab2/services$
Vielleicht hilft dir das weiter.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Nybass
Beiträge: 43
Registriert: 25. Mär 2017 11:15
Answers: 0

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von Nybass »

peter-pan hat geschrieben: 7. Jul 2020 23:36 Normalerweise brauchst du die Dateinamen der Standarddateien nicht angeben, wenn du keine Veränderungen vorgenommen hast, die sind in den Tiefen von OH verborgen ;) .
Bei mir läuft openHAB in einem Docker. Da es ohne den expliziten Dateinamen nicht funktioniert hat, habe ich diesen mit angegeben.

Daher wie erwartet die Logausgabe von deinem Beispiel wie folgt:

Code: Alles auswählen

2020-07-08 07:16:45.281 [INFO ] [clipse.smarthome.model.script.ephem4] - Der String enthält UNIFICATION_GERMANY
2020-07-08 07:16:45.293 [INFO ] [clipse.smarthome.model.script.ephem4] - German Unity Day ist in 87 Tagen
Bei den anderen Methoden wie z.B. "getBankHolidayName" funktioniert der Pfad - leider nicht bei "getHolidayDescription"

Im folgenden der Pfad auf dem PI direkt:

Code: Alles auswählen


pi@pi4-openhab:/opt/openhab/conf/services $ ls -al
total 96
drwxrwxrwx  2 openhab openhab  4096 Jul  5 12:23 .
drwxrwxrwx 13 openhab openhab  4096 Jul  6 21:06 ..
-rwxrwxrwx  1 openhab openhab  2368 Jan  6  2020 addons.cfg
-rwxrw----  1 openhab openhab   181 Jul  6 21:41 basicui.cfg
-rwxrw-rw-  1 openhab openhab   736 Jul  6 21:55 birthdays.xml
-rwxrw-rw-  1 openhab openhab 24068 Jul  5 12:09 country_descriptions_de.properties
-rwxrw-rw-  1 openhab openhab   394 Jul  6 22:07 ephemeris.cfg
-rwxrw-rw-  1 openhab openhab 20368 Jul  6 22:11 holiday_descriptions_de.properties
-rwxrw-rw-  1 openhab openhab  7957 Jul  5 12:23 holidays_de.xml
-rwxrw-rw-  1 openhab openhab  1420 Jan  4  2019 homematic.cfg
-rwxrw----  1 openhab openhab   160 Jan 10 09:11 network.cfg
-rwxrwxrwx  1 openhab openhab   333 Dec 15  2019 readme.txt
-rwxrw----  1 openhab openhab   527 Oct 26  2018 rrd4j.cfg
-rwxrwxrwx  1 openhab openhab  3682 Dec 15  2019 runtime.cfg
Den Pfad "/opt/openhab/conf" ist aber direkt auf dem PI4 selbst, im Docker lautet dieser nur "/openhab/conf"

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

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von peter-pan »

...Schade, da kann ich dir mit meinem Minimalwissen nicht weiterhelfen(Docker ist ein Fremdwort für mich :oops: :roll: ).
Ich meine aber, irgendwo gelesen zu haben, dass man diese Holiday-Ordner, etc. überall ablegen kann, wenn man den Pfad dazu in den Parametern angibt.
Was die Ausgabe der Feiertagsnamen in Englisch anbelangt, kann ich nur vermuten, dass da irgendwas mit den Ländereinstellungen bei dir noch nicht ganz klappt. Hast du hier schon mal nachgeschaut ?:
ephem.jpg
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Nybass
Beiträge: 43
Registriert: 25. Mär 2017 11:15
Answers: 0

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von Nybass »

peter-pan hat geschrieben: 8. Jul 2020 09:49 Was die Ausgabe der Feiertagsnamen in Englisch anbelangt, kann ich nur vermuten, dass da irgendwas mit den Ländereinstellungen bei dir noch nicht ganz klappt. Hast du hier schon mal nachgeschaut ?:
Habe ich nachgeschaut - das passt.

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

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von peter-pan »

Nybass hat geschrieben: 8. Jul 2020 10:59 Habe ich nachgeschaut - das passt.
...Hmm. Einen hätt' ich noch:

Code: Alles auswählen

[11:48:32] hab@ohtest:~$ env | grep -i lang
LANGUAGE=de_DE.UTF-8
LANG=de_DE.UTF-8
[11:50:24] hab@ohtest:~$ env | grep -i lc_
LC_CTYPE=de_DE.UTF-8
LC_ALL=de_DE.UTF-8
[11:50:48] hab@ohtest:~$
...passen die auch ?
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Antworten