Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. neuer Adapter webCal

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    neuer Adapter webCal

    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      dirkhe Developer @michije last edited by

      @michije muss ich mir mal in ruhe anschauen, das parsen habe ich nicht seber programmiert, nutze da fertige bibliotheken.

      1 Reply Last reply Reply Quote 0
      • Markus Kufner
        Markus Kufner @dirkhe last edited by

        @dirkhe Ich würde gerne in den Termin einen Ort ins entsprechende Feld übertragen.
        Mein used case ist ein digitales Fahrtenbuch. Handy meldet an ioBroker wenn ich mich mit dem Fahrzeug verbinde oder trenne. Der ioBroker liest aus der Instanz für das Auto den Kilometerstand und die Lokation aus und schreibt dies wiederum in einen Kalender.

        1 Reply Last reply Reply Quote 0
        • D
          dirkhe Developer @michije last edited by dirkhe

          @michije schau mal hier,da ist ei online validator
          https://kewisch.github.io/ical.js/validator.html
          Sieht so aus, als wenn apple da gegen die norm arbeitet...
          Probiere da mal mit deinen echten daten rum, wenn du rausbekommst, was genau das problem ist, zb irgendein zeilenumbruch oder so, kann man ja vlt was fixen, im prinzip müsste das aber hier https://github.com/kewisch/ical.js gemeldet und gefixt werden

          Update
          In der tat manipuliere ich die daten vor der ausgabe ins log, indem ich whitespace entferne. Du müsstest also beim testen die original daten testen

          M 1 Reply Last reply Reply Quote 0
          • D
            dirkhe Developer @michije last edited by dirkhe

            das mit dem Ort muss ich mir anschauen. Im prinzip geht das ja am adapter vorbei, da müsste ich mir was überlegen, wie ich generisch beim addEvent weitere felder mit übertragen kann

            update:
            Ich denke,dass bekomme ich hin, mal schauen, ob ich am we zeit finde

            Markus Kufner 1 Reply Last reply Reply Quote 0
            • Markus Kufner
              Markus Kufner @dirkhe last edited by

              @dirkhe herzlichen Dank schon einmal dafür, dass du deine Zeit für mich investierst!

              D 1 Reply Last reply Reply Quote 0
              • M
                michije @dirkhe last edited by michije

                @dirkhe Da kommt genau der gleiche Fehler wie im ioBroker log 😕
                Wenn das Problem scheint der Linebreak in X-TITLE zwischen Straße und PLZ zu sein:

                 X-APPLE-RADIUS=0;X-APPLE-REFERENCEFRAME=1;X-TITLE=[Strasse]
                [PLZ] [ORT]
                

                Wenn ich den Line Break entferne, validiert er korrekt. Scheint also wirklich ein Apple Problem zu sein. Da die Events von 2016 und 2017 sind, werde ich die einfach raus löschen, dann müsste es auch im Adapter klappen.
                Danke dir für die Hilfe 🙂

                EDIT: Oh no, es tritt noch wesentlich öfter auf.. Dann weiß ich auch nicht wie ich das zum laufen bekommen soll 😕

                D 2 Replies Last reply Reply Quote 0
                • D
                  dirkhe Developer @michije last edited by

                  @michije ich kann mal versuchen, ob ich da was machen kann.

                  1 Reply Last reply Reply Quote 0
                  • D
                    dirkhe Developer @michije last edited by

                    @michije Versuche mal die 1.4.0, da habe mal ein fix eingebaut, wo er die Apple tags vor dem parsen löscht, sollte man auch im debug sehen

                    M 1 Reply Last reply Reply Quote 0
                    • D
                      dirkhe Developer @Markus Kufner last edited by

                      @markus-kufner Sollte mit der 1.4.0 jetzt gehen

                      Markus Kufner 1 Reply Last reply Reply Quote 0
                      • Markus Kufner
                        Markus Kufner @dirkhe last edited by

                        @dirkhe klappt. Herzlichen Dank!

                        1 Reply Last reply Reply Quote 0
                        • M
                          michije @dirkhe last edited by

                          Hi @dirkhe, ich konnte die neue Version erst jetzt testen, es kommt immer noch der gleiche Error in der Konsole wie zuvor leider, und ich sehe auch kein entsprechenden Debug Eintrag
                          bc382f06-f309-4b2f-a87c-4b7aced0dd16-image.png

                          D 1 Reply Last reply Reply Quote 0
                          • D
                            dirkhe Developer @michije last edited by

                            @michije wo ist denn die ausgabe parse calendar event. Die wird eigentlich im debug ausgegeben, dann wird sie optimiert und das auch nochmal ausgegeben.
                            Das log schicke mir doch mal. Wenn du daten änderst, ersetzte die mal nur durch xxxx oder so

                            1 Reply Last reply Reply Quote 0
                            • N
                              nobbiman @dirkhe last edited by nobbiman

                              @dirkhe Wenn ich hier die komplette Diskussion lese bin ich begeistert, da der Adapter genau das kann, was ich dringend suche. Leider scheitere ich noch an den Basics: Ich versuche seit Stunden, einen Google-Kalender mit dem Adapter zu verbinden. Kann ja eigentlich bei den wenigen (5) Eingaben in der Konfiguration der Instanz nicht so schwierig sein – dachte ich. Vielleicht habe ich ja auch nur ein Verständnisproblem!?
                              WebCal-Instanzeinstellungen.jpg
                              Der Reihe nach
                              • Name – sollte doch sicher der Name des Google-Kalenders sein!?
                              • authorization method – sollte „google“ sein, so vermute ich jedenfalls
                              • Die Kalender URL wird offensichtlich nicht gebraucht
                              • Der Nutzername auch nicht
                              • Password/Secret: Das Passwort zu meinem Google-Account?
                              • RefreshToken with calDAV Permission: woher bekomme ich den? Gibt auch der nachfolgende Screenshot nicht her oder ist es der Client-Schlüssel?
                              • Die Client-ID kommt aus Google Auth Platform?
                              OAuth.jpg
                              So eingestellt, bekomme ich beim Test der Verbindung die Meldung „invalid_client“

                              Wähle ich bei der „authorization method“ die Option „Herunterladen“ oder „Basic“, speichere die geladenen Einstellungen und teste die Konfiguration, erscheint der Fehler Error reading from URL "https://calendar.google.com/calendar/embed?src=54267ef3724XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXf10482ca89%40group.calendar.google.com&ctz=Europe%2FBerlin“: 401 obwohl ich den Kalender über diese Adresse im Browser aufrufen kann.
                              Müsste ich denn im Google-Kalender den Nutzer WebCal nicht auch freischalten, wenn JA; mit welcher Adresse?
                              Stelle ich in der Konfiguration "oauth" ein und teste, bekomme ich auch die Meldung "cannot find homeUrl"!
                              Wo liegt denn nur mein Fehler?

                              D 1 Reply Last reply Reply Quote 0
                              • D
                                dirkhe Developer @nobbiman last edited by dirkhe

                                @nobbiman Leider ist es nicht so einfach, google anzubinden, ich habe da damals lange gebraucht, bis ich das hinbekommen habe. MIttlerweile nutzte ich selber keinen google kalender mehr, sondern nextcloud.
                                Aber im Prinzip habe ich es hier dokumentiert, was man machen muss:
                                https://github.com/dirkhe/ioBroker.webcal/blob/master/doc/google.md

                                N 1 Reply Last reply Reply Quote 0
                                • N
                                  nobbiman @dirkhe last edited by

                                  @dirkhe Ich hatte die verlinkte Erläuterung schon gesehen und nun nochmals Schritt für Schritt erneut nachvollzogen. Mit viel Sorgfalt hat es dann geklappt und ich habe eine Testverbindung aus dem Adapter heraus mit "access" quittiert bekommen.
                                  Ich ziehe meinen Hut für das Ermitteln der beschriebenen Vorgehensweise!
                                  Danke, da wäre ich nicht dahinter gekommen!

                                  1 Reply Last reply Reply Quote 0
                                  • N
                                    nic f. last edited by

                                    Hallo Zusammen, hab den Adapter heute in Betrieb genommen und ich verwende ihn, um in einem Google Kalender Termine per Script einzutragen.
                                    Klappt prima! Super Sache!

                                    nur eine Frage zu dem "add.Events"-Block - wie ist "color" zu verwenden? Ich habe schon einiges getestet, aber er ignoriert es. Im Google Kalender werden die Termine nur in Standardfarbe erstellt.

                                    Ist das überhaupt dafür gedacht? oder klappt es evtl im Google Kalender nicht?

                                    Vielen Dank!

                                    sendTo("webcal.0", "addEvents", {
                                    calendar: "smarthome",
                                    events: [
                                    {
                                    summary: "test2",
                                    description: "test add Event",
                                    location: "ort",
                                    color: "red",
                                    organizer: "ich",
                                    start: "12.1.25 23:00"
                                    }

                                    1 Reply Last reply Reply Quote 0
                                    • D
                                      dirkhe Developer last edited by

                                      @nic-f ich gebe das einfach an google weiter. Ich glaube du musst da eine id für die Farbe angeben, habe mir das nicht genauer angesehen. Am besten machst du im google kalender mal einträge in verschiedenen Farben und stellst den adapter mal auf debug, da solltest du den farbcode erkennen, vermute ich mal

                                      H 1 Reply Last reply Reply Quote 0
                                      • H
                                        HomeUser @dirkhe last edited by

                                        Hallo,
                                        erstmal vielen Dank für den Adapter, mit dem ich vermutlich den iCal ablösen werde, um auch Daten hinzufügen zu können!

                                        Allerdings bin ich bei meinen Versuchen heute beim Delete gescheitert.

                                        Ich verwende dieses Skript (die ID ist die _IDID aus dem JSON, welches ich empfangen habe):

                                        sendTo("webcal.0", "deleteEvents", {
                                            calendar: "SmartHome",
                                            events: [
                                              {
                                                id: 'd08b79c9-7c46-402f-86d1-cd96ddbca800'
                                                //id: eventId
                                              },	  
                                              {
                                                id: "failed test"
                                              }
                                            ]
                                          },function(events){
                                            /* callback function 
                                        	   object events will be repeat from input, 
                                        	   with additional status or error field,   
                                        	*/
                                        	log(events);	
                                          })
                                        
                                        

                                        Aber leider bekomme ich immer folgendes Output:
                                        [
                                        { id: 'd08b79c9-7c46-402f-86d1-cd96ddbca800', error: 'Not Found' },
                                        { id: 'failed test', error: 'Not Found' }
                                        ]

                                        Was kann ich falsch machen?
                                        Welche ID muss ich nehmen?
                                        Welche ID muss ich eigentlich bei wiederkehrenden Terminen nehmen, um nicht die Serie sondern einen Einzeltermin zu löschen? Die ID scheint dort die gleiche zu sein an allen Tagen.

                                        D 1 Reply Last reply Reply Quote 0
                                        • D
                                          dirkhe Developer @HomeUser last edited by

                                          @homeuser was für einen kalender hast du denn, google oder webcal?
                                          Im prinzip wrappe ich das nur auf die vorhandenen funktion. stell doch mal auf debug, vlt steht da dann auch mehr.

                                          H 1 Reply Last reply Reply Quote 0
                                          • H
                                            HomeUser @dirkhe last edited by

                                            @dirkhe Ich nutze den Kalender von Nextcloud.

                                            Mit debug habe ich probiert die relevanten Abschnitte aus dem Log zu extrahieren:

                                            2025-02-10 19:21:51.857 - silly: webcal.0 (275635) States system redis pmessage io.messagebox.system.adapter.webcal.0/io.messagebox.system.adapter.webcal.0:{"command":"deleteEvents","message":{"calendar":"SmartHome","events":[{"id":"d08b79c9-7c46-402f-86d1-cd96ddbca800"},{"id":"failed test"}]},"from":"system.adapter.javascript.0","callback":{"message":{"calendar":"SmartHome","events":[{"id":"d08b79c9-7c46-402f-86d1-cd96ddbca800"},{"id":"failed test"}]},"id":2077,"ack":false,"time":1739211711853},"_id":8937513}
                                            2025-02-10 19:21:51.858 - debug: webcal.0 (275635) {"command":"deleteEvents","message":{"calendar":"SmartHome","events":[{"id":"d08b79c9-7c46-402f-86d1-cd96ddbca800"},{"id":"failed test"}]},"from":"system.adapter.javascript.0","callback":{"message":{"calendar":"SmartHome","events":[{"id":"d08b79c9-7c46-402f-86d1-cd96ddbca800"},{"id":"failed test"}]},"id":2077,"ack":false,"time":1739211711853},"_id":8937513}
                                            2025-02-10 19:21:51.858 - debug: webcal.0 (275635) delete Events from SmartHome
                                            2025-02-10 19:21:54.309 - debug: webcal.0 (275635) fetching Calendar SmartHome
                                            2025-02-10 19:21:54.309 - silly: webcal.0 (275635) sendTo "deleteEvents" to system.adapter.javascript.0 from system.adapter.webcal.0
                                            2025-02-10 19:21:54.315 - info: javascript.0 (3266) script.js.common.Wallbox_Planner_V4: [
                                            { id: 'd08b79c9-7c46-402f-86d1-cd96ddbca800', error: 'Not Found' },
                                            { id: 'failed test', error: 'Not Found' }
                                            ]
                                            2025-02-10 19:21:56.779 - info: webcal.0 (275635) found 8 calendar objects
                                            2025-02-10 19:21:56.781 - debug: webcal.0 (275635) parse calendar data:
                                            ....
                                            2025-02-10 19:21:56.788 - debug: webcal.0 (275635) parse calendar data:
                                            BEGIN:VCALENDAR
                                            CALSCALE:GREGORIAN
                                            VERSION:2.0
                                            PRODID:-//IDN nextcloud.com//Calendar app 5.0.9//EN
                                            BEGIN:VEVENT
                                            CREATED:20250209T162558Z
                                            DTSTAMP:20250210T182012Z
                                            LAST-MODIFIED:20250210T182012Z
                                            SEQUENCE:7
                                            UID:d08b79c9-7c46-402f-86d1-cd96ddbca800
                                            DTSTART;TZID=Europe/Berlin:20250210T210000
                                            DTEND;TZID=Europe/Berlin:20250210T220000
                                            STATUS:CONFIRMED
                                            SUMMARY:Auto
                                            END:VEVENT
                                            BEGIN:VTIMEZONE
                                            TZID:Europe/Berlin
                                            BEGIN:DAYLIGHT
                                            TZOFFSETFROM:+0100
                                            TZOFFSETTO:+0200
                                            TZNAME:CEST
                                            DTSTART:19700329T020000
                                            RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
                                            END:DAYLIGHT
                                            BEGIN:STANDARD
                                            TZOFFSETFROM:+0200
                                            TZOFFSETTO:+0100
                                            TZNAME:CET
                                            DTSTART:19701025T030000
                                            RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
                                            END:STANDARD
                                            END:VTIMEZONE
                                            END:VCALENDAR
                                            
                                            
                                            D 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            961
                                            Online

                                            31.7k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            26
                                            305
                                            34677
                                            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