Seite 7 von 9

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Verfasst: 6. Jul 2020 13:23
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.

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Verfasst: 6. Jul 2020 13:41
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')

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Verfasst: 6. Jul 2020 15:14
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.

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Verfasst: 6. Jul 2020 16:24
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!

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Verfasst: 7. Jul 2020 20:31
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

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Verfasst: 7. Jul 2020 23:36
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.

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Verfasst: 8. Jul 2020 07:18
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"

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Verfasst: 8. Jul 2020 09:49
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

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Verfasst: 8. Jul 2020 10:59
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.

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Verfasst: 8. Jul 2020 11:55
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 ?