Müllkalender via openHAB

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderatoren: Cyrelian, seppy

Antworten
noxx
Beiträge: 16
Registriert: 28. Dez 2017 13:08

Re: Müllkalender via openHAB

Beitrag von noxx »

Hallo

meine items:

Code: Alles auswählen

//Abfall heute
Switch ABFALL_HEUTE_AKTIV
String ABFALL_HEUTE_NAME_ICAL { http="<[http://192.168.1.208:8080/static/abfall2018.ics:10800000:JS(abfall_heute.js)]" }

//Abholung morgen
Switch ABFALL_MORGEN_AKTIV
String ABFALL_MORGEN_NAME_ICAL { http="<[http://192.168.1.208:8080/static/abfall2018.ics:10800000:JS(abfall_morgen.js)]" }

//Naechste Abholung
Switch ABFALL_FOLGT_AKTIV
String ABFALL_FOLGT_DATUM_ICAL { http="<[http://192.168.1.208:8080/static/abfall2018.ics:10800000:JS(abfall_naechste_abholung_datum.js)]" }
DateTime ABFALL_FOLGT_DATUM
String ABFALL_FOLGT_NAME_ICAL { http="<[http://192.168.1.208:8080/static/abfall2018.ics:10800000:JS(abfall_naechste_abholung_name.js)]" }
In der BasicUI sehe ich nun einen Eintrag,
01.png
aber das scheint die komplette *.ics zu sein.
Im Browser kann ich diese auch öffen mit
http://192.168.1.208:8080/static/abfall2018.ics
02.png
Gruß

EDIT

Habe mal die ical ins netz gestellt und verlinkt.
Da kommt noch ein anderer Fehler.

Code: Alles auswählen

' to a state type which item 'ABFALL_FOLGT_DATUM' accepts: [DateTimeType, UnDefType].

2018-01-16 14:17:43.708 [WARN ] [org.eclipse.jetty.http.HttpParser   ] - URI is too large >8192

2018-01-16 14:17:43.715 [WARN ] [org.eclipse.jetty.http.HttpParser   ] - bad HTTP parsed: 414 for HttpChannelOverHttp@181c66d{r=19,c=false,a=IDLE,uri=null}

2018-01-16 14:17:46.708 [WARN ] [.core.transform.TransformationHelper] - Cannot get service reference for transformation service of type JS

2018-01-16 14:17:46.712 [WARN ] [ab.binding.http.internal.HttpBinding] - Couldn't transform response because transformationService of type 'JS' is unavailable

2018-01-16 14:17:46.840 [WARN ] [.core.transform.TransformationHelper] - Cannot get service reference for transformation service of type JS

2018-01-16 14:17:46.848 [WARN ] [ab.binding.http.internal.HttpBinding] - Couldn't transform response because transformationService of type 'JS' is unavailable

2018-01-16 14:17:46.973 [WARN ] [.core.transform.TransformationHelper] - Cannot get service reference for transformation service of type JS

2018-01-16 14:17:46.982 [WARN ] [ab.binding.http.internal.HttpBinding] - Couldn't transform response because transformationService of type 'JS' is unavailable

2018-01-16 14:17:47.144 [WARN ] [.core.transform.TransformationHelper] - Cannot get service reference for transformation service of type JS

2018-01-16 14:17:47.176 [WARN ] [ab.binding.http.internal.HttpBinding] - Couldn't transform response because transformationService of type 'JS' is unavailable

2018-01-16 14:17:51.130 [WARN ] [rthome.model.script.actions.BusEvent] - Cannot convert 'BEGIN:VCALENDAR
Edit2:

Fehler 40. Depp sitzt 40cm davor....
Javascript Transformation vergessen
Nun scheint es zu gehen
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

StefanH.
Beiträge: 162
Registriert: 28. Dez 2017 11:37

Re: Müllkalender via openHAB

Beitrag von StefanH. »

top ;-)

PS: Am besten demnaechst den EDIT direkt nach oben schreiben. So bin ich erst ganz am Schluss darauf gekommen, dass du es schon geloest hast ;-)

thokje
Beiträge: 8
Registriert: 25. Jul 2018 10:06

Re: Müllkalender via openHAB

Beitrag von thokje »

Hallo zusammen, ich bin noch nicht so lange im openHAB Thema und habe bisher hier immer still mit gelesen. Die meisten Fragen habe ich bisher beantwortet bekommen.
Nun muss ich aber diesen Beitrag hervorholen. Ich hatte nämlich auch vor, den Abfallkalender anzeigen zu lassen. Ich habe es dann zunächst mit den Beispielen von seppy versucht. Da das dann nicht ganz hingehauen hat, habe ich es anschließend mit den Dateien von alkaline versucht bzw. mit der späteren anpassung von StefanH. Leider bekomme ich die Termine aber nicht angezeigt in meiner UI.

Aktuell sieht es folgendermaßen aus:

https://imgur.com/a/8Dm9SwT

Ein ähnlihces Fehlerbild hab ich im Thread auch schon gesehen, aber die Lösung funktioniert nicht. Es scheint, als wäre die komplette ICS Datei im Item. So stellt es sich auch in den Logs dar:

Code: Alles auswählen

org.openhab.core.transform.TransformationException: An error occurred while executing script.
	at org.openhab.core.transform.TransformationHelper$TransformationServiceDelegate.transform(TransformationHelper.java:67) [211:org.openhab.core.compat1x:2.2.0]
	at org.openhab.binding.http.internal.HttpBinding.execute(HttpBinding.java:194) [212:org.openhab.binding.http:1.11.0]
	at org.openhab.core.binding.AbstractActiveBinding$BindingActiveService.execute(AbstractActiveBinding.java:144) [211:org.openhab.core.compat1x:2.2.0]
	at org.openhab.core.service.AbstractActiveService$RefreshThread.run(AbstractActiveService.java:166) [211:org.openhab.core.compat1x:2.2.0]
2018-07-29 19:07:58.975 [WARN ] [ab.binding.http.internal.HttpBinding] - Transformation 'JS(abfall_morgen.js)' threw an exception. [response=BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
PRODID:-//idContor GmbH/ Paula  ICS v.1.0
X-WR-CALNAME;CHARSET=ISO-8859-1:Abfallkalender
BEGIN:VEVENT
DTEND;VALUE=DATE:20180103
DTSTART;VALUE=DATE:20180102
DTSTAMP:20180728T212646Z
SUMMARY;CHARSET=ISO-8859-1:Gelbe Tonne
DESCRIPTION;CHARSET=ISO-8859-1:Dieser Kalender bietet Ihnen die Abfuhrtermine des aktuellen Jahres zum Import an.
CREATED:20180728T212646Z
LOCATION;CHARSET=ISO-8859-1:
BEGIN:VALARM
X-WR-ALARMUID:001F5BEF-F788-2018-0726-218516068704
TRIGGER:-PT01D
DESCRIPTION;CHARSET=ISO-8859-1:REMINDER
ACTION:DISPLAY
END:VALARM
END:VEVENT
BEGIN:VEVENT
DTEND;VALUE=DATE:20180107
DTSTART;VALUE=DATE:20180106
DTSTAMP:20180728T212646Z
SUMMARY;CHARSET=ISO-8859-1:Graue Tonne
...
...
Da kommt dann die ganze ics Datei. Und am Ende noch

Code: Alles auswählen

...
...
DESCRIPTION;CHARSET=ISO-8859-1:REMINDER
ACTION:DISPLAY
END:VALARM
END:VEVENT
END:VCALENDAR]
org.openhab.core.transform.TransformationException: An error occurred while executing script.
	at org.openhab.core.transform.TransformationHelper$TransformationServiceDelegate.transform(TransformationHelper.java:67) [211:org.openhab.core.compat1x:2.2.0]
	at org.openhab.binding.http.internal.HttpBinding.execute(HttpBinding.java:194) [212:org.openhab.binding.http:1.11.0]
	at org.openhab.core.binding.AbstractActiveBinding$BindingActiveService.execute(AbstractActiveBinding.java:144) [211:org.openhab.core.compat1x:2.2.0]
	at org.openhab.core.service.AbstractActiveService$RefreshThread.run(AbstractActiveService.java:166) [211:org.openhab.core.compat1x:2.2.0]
2018-07-29 20:08:04.510 [WARN ] [org.eclipse.jetty.http.HttpParser   ] - URI is too large >8192
2018-07-29 20:08:04.517 [WARN ] [org.eclipse.jetty.http.HttpParser   ] - bad HTTP parsed: 414 for HttpChannelOverHttp@2454ea{r=0,c=false,a=IDLE,uri=null}
Ich habe mir die Abfall.zip von StefanH. heruntergeladen und die Dateien entsprechend in die Verzeichnisse gelegt. In den Items die URL natürlich angepasst. Die Kalenderdatei liegt im static Ordner (/conf/Html).

Ich habe openHAB auf einer Synology installiert.

Hat jemand eine Idee, woran es liegen kann bzw. welche Informationen fehlen noch um zu analysieren?

http Bindung ist installiert, ebenso Javascript Transformationen und JSONPath Transformation.

Danke für eure UNterstützung.

Gruß

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

Re: Müllkalender via openHAB

Beitrag von udo1toni »

Und das Java Script hast Du im scripts Ordner liegen?
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

thokje
Beiträge: 8
Registriert: 25. Jul 2018 10:06

Re: Müllkalender via openHAB

Beitrag von thokje »

Im Scripts Ordner? Es handelt sich doch hier um Transformation Scripts. Und die sollen doch im transform Ordner liegen, oder?

Ich kann es aber mal mit dem Scripts Ordner ausprobieren. Dort sollen aber laut readme die Dateien die Dateiendung .script haben. *grübel*

Edit: Hab es dennoch einmal ausprobiert, ändert aber nichts. Muss ich das http binding ggf. noch irgendwie konfigurieren?

Noch einmal ein Edit: Es liegt an der ics Datei meines Versorgers. Die ist wohl nicht korrekt aufgebaut. Ich habe mir mal die vom Ortenau Kreis (Link in einem der oberen Beiträge) besorgt und diese dann neben meine gelegt. Da war dann die Formatierung bzw. die Werte anders dargestellt. Als Bsp:

Erster Eintrag bei meinem Entsorger:

Code: Alles auswählen

BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
PRODID:-//idContor GmbH/ Paula  ICS v.1.0
X-WR-CALNAME;CHARSET=ISO-8859-1:Abfallkalender
BEGIN:VEVENT
DTEND;VALUE=DATE:20180103
DTSTART;VALUE=DATE:20180102
DTSTAMP:20180728T212646Z
SUMMARY;CHARSET=ISO-8859-1:Gelbe Tonne
DESCRIPTION;CHARSET=ISO-8859-1:Dieser Kalender bietet Ihnen die Abfuhrtermine des aktuellen Jahres zum Import an.
CREATED:20180728T212646Z
LOCATION;CHARSET=ISO-8859-1:
BEGIN:VALARM
X-WR-ALARMUID:001F5BEF-F788-2018-0726-218516068704
TRIGGER:-PT01D
DESCRIPTION;CHARSET=ISO-8859-1:REMINDER
ACTION:DISPLAY
END:VALARM
Erster Eintrag andere ics:

Code: Alles auswählen

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//MARKKOM//EB ABFALLWIRTSCHAFT OG//DE
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-TIMEZONE:Europe/Berlin
BEGIN:VEVENT
DTSTART:20180620T050000
DTEND:20180620T070000
DTSTAMP:20180620T050000Z
UID:137679
CREATED:20130101T050000Z
DESCRIPTION:Heute\, Grüne Tonne nicht vergessen!
LAST-MODIFIED:20130101T050000Z
LOCATION:Achern-Sasbachried\,Alle Straßen Achern-Sasbachried
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Grüne Tonne
TRANSP:TRANSPARENT
END:VEVENT
vgl. insbesondere DTSTART. Mal sehen, ob ich das nun irgendwie hinbekomme.

Mit der zweiten Datei klappt es wie gesagt. Nützt mir nur nichts zu wissen, dass dort übermorgen die grüne Tonne angeholt wird. :)

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

Re: Müllkalender via openHAB

Beitrag von udo1toni »

thokje hat geschrieben: 30. Jul 2018 21:56 Im Scripts Ordner? Es handelt sich doch hier um Transformation Scripts. Und die sollen doch im transform Ordner liegen, oder?
Stimmt, sorry, kurzfristige geistige Umnachtung...

Ja, wenn die ics-datei unerwartet codiert ist, gibt's Probleme. Leider bin ich da nicht tief genug drin. Die Datei ist ja relativ übersichtlich, Du könntest Dir also (ja, unbefriedigend) damit behelfen, die Datei manuell anzupassen und neu zu importieren. Ansonsten müsstest Du Dich anden Entwickler wenden, vielleicht kann der das im Binding berücksichtigen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

thokje
Beiträge: 8
Registriert: 25. Jul 2018 10:06

Re: Müllkalender via openHAB

Beitrag von thokje »

udo1toni hat geschrieben: 31. Jul 2018 00:26
Ja, wenn die ics-datei unerwartet codiert ist, gibt's Probleme. Leider bin ich da nicht tief genug drin. Die Datei ist ja relativ übersichtlich, Du könntest Dir also (ja, unbefriedigend) damit behelfen, die Datei manuell anzupassen und neu zu importieren. Ansonsten müsstest Du Dich anden Entwickler wenden, vielleicht kann der das im Binding berücksichtigen.
Das mit dem Anpassen habe ich gestern Nacht noch probiert, hat aber leider nicht geholfen. Ich werde aber noch einmal schauen, was ich alles noch anpassen kann und es so weiterprobieren. Ich hab mir meine Datei auch erst einmal soweit gekürzt, dass es nicht allzu viel Aufwand ist.

thokje
Beiträge: 8
Registriert: 25. Jul 2018 10:06

Re: Müllkalender via openHAB

Beitrag von thokje »

Statt zu editieren, mache ich mal einen neuen Beitrag. Ich denke, ich habe das Problem gelöst. Verifizieren kann ich es aber erst, wenn ich wieder daheim bin. Hab von der Arbeit keinen Zugriff auf meine BasicUI, aber immerhin auf die Syno.

Ich hab mir die beiden .ics Dateien noch einmal angesehen. Ich hab das ja zu Hause auch schon mit notepad++ gemacht und da dann schon einmal einige Unterschiede manuell ausgemerzt. Aber keine dieser Anpassungen hat geholfen. Als letztes habe ich gestern noch einmal die funktionierende Datei eingehangen. Da hab ich dann heute auch direkt die Erinnerung bekommen, dass ich morgen bitte die grüne Tonne rausstellen soll. :D

Auf der Arbeit habe ich dann auch wieder Notepad++ genutzt um die Dateien zu öffnen. Und siehe da.... ein eklatanter Unterschied wurde sichtbar. Ich hatte hier noch die Darstellung der Sonderzeichen eingeschaltet und da fiel es mir wie Schuppen von den Augen:

Bild

Bei der funktionierenden Datei gab es am Zeilenende ein LF (Linefeed), beim Kalender meines Entsorgers gab es aber ein CR (Carriage Return).

Ich gehe mal davon aus, dass die JS Scripte meine Datei hierdurch nicht korrekt lesen konnten. Wenn ich aktuell zumindest in meine Logdatei schaue, kommen zumindest keine Fehler mehr hoch. Ich schaue es mir dann zu Hause mal auf der UI an und sag dann noch einmal Bescheid.

//Edit: Jetzt funktioniert es ganz wunderbar. Lag tatsächlich an der Art des Zeilenendes in der ics Datei.

Gruß

thokje
Beiträge: 8
Registriert: 25. Jul 2018 10:06

Re: Müllkalender via openHAB

Beitrag von thokje »

Nur noch einmal zur Vollständigkeit:

Das Problem lag tatsächlich an der ics Datei meines Entsorgers. Alle anderen Änderungen, die ich an dieser vorher vorgenommen hatte, waren nicht notwendig. Ich musste nur das Zeilenende Zeichen austauschen und das ist mit Notepad++ Gott sei Dank kein Akt.

Klappt bei mir also nun alles bestens.

StefanH.
Beiträge: 162
Registriert: 28. Dez 2017 11:37

Re: Müllkalender via openHAB

Beitrag von StefanH. »

Muesste mir den source code nochmal anschauen, aber das macht Sinn, wenn hier wirklich Zeile fuer Zeile ausgelesen und ausgewertet wird. Eine Zeile wird dann vielleicht mit CRLF definiert und nicht nur mit LF. Auf jeden Fall sehr interessant.

Antworten