Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Error/Bug
    4. Ical-Adapter fkt. nicht. getHours is not a function at checkDates

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Ical-Adapter fkt. nicht. getHours is not a function at checkDates

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      steinwedel last edited by

      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

      1 Reply Last reply Reply Quote 0
      • S
        steinwedel last edited by

        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.

        1 Reply Last reply Reply Quote 0
        • S
          steinwedel last edited by

          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.

          1 Reply Last reply Reply Quote 0
          • A
            aquapro last edited by

            Jip, kann ich bestätigen. http://forum.iobroker.net/viewtopic.php?f=22&t=2928

            1 Reply Last reply Reply Quote 0
            • G
              GeosShark last edited by

              @steinwedel:

              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
              

              😞

              1 Reply Last reply Reply Quote 0
              • S
                steinwedel last edited by

                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.

                1 Reply Last reply Reply Quote 0
                • G
                  GeosShark last edited by

                  @steinwedel:

                  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;
                                  }
                  
                  
                  1 Reply Last reply Reply Quote 0
                  • S
                    steinwedel last edited by

                    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.

                    1 Reply Last reply Reply Quote 0
                    • G
                      GeosShark last edited by

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

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      830
                      Online

                      31.8k
                      Users

                      80.0k
                      Topics

                      1.3m
                      Posts

                      3
                      9
                      1283
                      Loading More Posts
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes
                      Reply
                      • Reply as topic
                      Log in to reply
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                      The ioBroker Community 2014-2023
                      logo