NEWS
Ical-Adapter fkt. nicht. getHours is not a function at checkDates
-
Seit meiner letzten Update-Orgie funktioniert der ical-Apdater nicht. Folgender Fehler wird angezeigt:
> TypeError: ev.start.getHours is not a function at checkDates (/opt/iobroker/node_modules/iobroker.ical/main.js:238:18) at Request._callback (/opt/iobroker/node_modules/iobroker.ical/main.js:20
Die Fehlermeldung deutet darauf hin, dass das Objekt kein Date Objekt ist. Da der iCal-Adapter keine Update erfahren hat (1.1.1), muss der Fehler woanders herkommen.
Vielleicht kann jemand weiterhelfen.
Gruß Gerhard
-
So inzwischen konnte ich mich dem Problem etwas nähern.
Grundsätzlich scheint der Adapter zu funktionieren. Ich habe zwecks Analyse die Variable ev.start ausgeben lassen.
Es gibt ein Ereignis, bei dem kein Type vom Wert Date () zurückgegeben wird, sondern lediglich eine Zahl (hier 20160619). Bei dem Ereignis handelt es sich um ein ganztägiges Ereignis. Datum ist 19.6.2016.
-
Das betreffende Ereignis ist vom Datentyp String. Da dieses als ganztägiges Ereignis nicht relevant ist, habe ich folgenden Bugfix in main.js des Adapter eingebaut:
nach Zeile 235:
// If not type Date return if (typeof ev.start === 'string') return;
Ich denke, die Lösung dürfte auch anderen gegebenenfalls helfen. Vielleicht wird er in die nächste Version des Adapters übernommen.
-
Jip, kann ich bestätigen. http://forum.iobroker.net/viewtopic.php?f=22&t=2928
-
Das betreffende Ereignis ist vom Datentyp String. Da dieses als ganztägiges Ereignis nicht relevant ist, habe ich folgenden Bugfix in main.js des Adapter eingebaut:
nach Zeile 235:
// If not type Date return if (typeof ev.start === 'string') return;
Ich denke, die Lösung dürfte auch anderen gegebenenfalls helfen. Vielleicht wird er in die nächste Version des Adapters übernommen. `
Funktioniert bei mir leider nicht.
pi 02 11:30:08.502 error host.pi instance system.adapter.ical.0 terminated with code 6 (uncaught exception) ical.0 02 11:30:08.191 error TypeError: Object 20160519 has no method 'getMonth' at Object.RRule (/opt/iobroker/node_modules/iobroker.ical/node_modules/rrule/lib/rrule.js:537:49) at Request._callback (/opt/iobroker/node_m
-
Vielleicht finden wir Dein Problem auch noch. Bitte füge vor der Zeile, die den Fehler auslöst folgendes ein:
adapter.log.info('Content von ev.start: '+ev.start);
Mich interessiert, was dann im Log zurück gegeben wird.
-
Mich interessiert, was dann im Log zurück gegeben wird. `
Hier die Ausgabe:
pi 03 09:08:18.254 error host.pi instance system.adapter.ical.0 terminated with code 6 (uncaught exception) ical.0 03 09:08:17.941 error Error: Content von opts.dtstart: 20160519 at Object.RRule (/opt/iobroker/node_modules/iobroker.ical/node_modules/rrule/lib/rrule.js:534:7) at Request._callback (/opt/iobroker/node_modules/iobr ical.0 03 09:08:17.940 error uncaught exception: Content von opts.dtstart: 20160519
Das ist dann mein Geburtstag yyyymmdd: 19.05.2016 (in diesem Jahr)
Allerdings muss da Kommand wie folgt lauten…
throw new Error('Content von opts.dtstart: '+opts.dtstart);
das ursprünglich angemeckerte Kommando lautet:
if (!opts.bymonth) { opts.bymonth = opts.dtstart.getMonth() + 1; }
-
Danke Frank. Das Problem ist dasselbe nur an einer anderen Stelle. Eigentlich wird ein Javascript Date-Objekt von dem Programm erwartet. Tatsächlich kommt hier manschmal auch ein einfacher String mit dem Datum vor. Der Fehler tritt offensichtlich nur bei ganztätigen Ereignissen auf. Dann aber wohl auch nicht immer. Ich hatte schon früher ganztätige Ereignisse ohne diesen Fehler.
Das sinnvollste dürfte für eine dauerhafte Lösung sein, zu prüfen, ob es sich um einen String mit Datum handelt und dieses dann in ein Date-Objekt umgewandelt wird. Dann dürfter dieser Fehler nicht mehr auftreten.
-
Hallo zusammen,
ich nochmal.
Gibt es mittlerweile eine offizielle Korrektur?
Ich habe schon versucht, aus dem String ein Date-Objekt zu machen, mit dem Erfolg, dass die Fehlermeldungen weg sind.
Allerdings funktioniert dann der gesamte Kalender nicht mehr…..