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

).
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 ?