Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. neuer Adapter webCal

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    18
    1
    578

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

neuer Adapter webCal

Scheduled Pinned Locked Moved Tester
306 Posts 27 Posters 60.2k Views 24 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D dirkhe

    @dirkhe So ganz kann ich zwar nicht nachvollziehen, was die da machen, aber ich konnte es fixen, indem ich den default wert von false auf "" geändert habe. Ich frage mich nur, warum die den dafault wert anziehen, wenn sie doch vom Adapter eine Antwort bekommen, auch wenn das Array leer ist...
    Aber wenn du willst, kannst du die die Version direkt vom git ziehen, dann geht es wieder

    C Online
    C Online
    chris299
    wrote on last edited by chris299
    #219

    @dirkhe danke, jetzt geht es.
    Jetzt muss ich nur noch raus finden, wie man zu einem Event eine Erinnerung erstellt, d.h. zu einer Zeit x vor dem Event ein Blockly getriggert bekommt ;-)
    hättest du da evtl. einen Tipp, wie man das ansetzt?

    D 1 Reply Last reply
    0
    • C chris299

      @dirkhe danke, jetzt geht es.
      Jetzt muss ich nur noch raus finden, wie man zu einem Event eine Erinnerung erstellt, d.h. zu einer Zeit x vor dem Event ein Blockly getriggert bekommt ;-)
      hättest du da evtl. einen Tipp, wie man das ansetzt?

      D Offline
      D Offline
      dirkhe
      Developer
      wrote on last edited by dirkhe
      #220

      @chris299 Mit Blocky kann ich nicht dienen, ist mir zu kompliziert.
      Aber du hast ja die ganzen Datenpunkte:
      1d7da994-a8b8-4304-ad1d-5ac823e4b9d5-grafik.png
      Da kannst dann auf Änderung hören und sobald die Gefüllt sind, kanst du dir eine Benachrichtigung schicken
      In JS zb. so

      (function(){
      
          const id_alexaBad= "alexa2.0.Echo-Devices.xxxxxxxxxxx.";
          const id_alexaKueche= "alexa2.0.Echo-Devices.xxxxxxxxxxx.";
          const id_cal= 'webcal.0.events.';
      
          schedule({hour: 19, minute: 0}, function(){
              ['Restabfall','Bioabfall', 'Papiertonne','GelbeTonne'].forEach(function(value){
                  if (getState(id_cal + value + '.1' ).val != "" ){
                      setState(id_alexaKueche + 'Commands.speak', '60;Morgen ist ' + value);
                      setState(id_alexaBad + 'Commands.speak', '60;Morgen ist ' + value);
                  }
              })
          });
      
          schedule({hour: 7, minute: 0}, function(){
              ['Restabfall','Bioabfall', 'Papiertonne','GelbeTonne'].forEach(function(value){
                  if (getState(id_cal + value + '.0').val  != "" ){
                      setState(id_alexaKueche + 'Commands.speak', '60;Heute ist ' + value);
                      setState(id_alexaBad + 'Commands.speak', '60;Heute ist ' + value);
                  }
              })
          });
      
      })();
      

      Du kannst natürlich auch direkt auf.now schauen, das wird gefüllt, sobald das Ereignis eintritt. Das habe ich in meinem obigen Beispiel nicht gemacht, weil ich die Benachrichtigung zu einer bestimmten Zeit haben wollte.

      Also setzte mal so ein Ereignis und schaue dir die Datenpunkte an

      C 1 Reply Last reply
      0
      • D dirkhe

        @chris299 Mit Blocky kann ich nicht dienen, ist mir zu kompliziert.
        Aber du hast ja die ganzen Datenpunkte:
        1d7da994-a8b8-4304-ad1d-5ac823e4b9d5-grafik.png
        Da kannst dann auf Änderung hören und sobald die Gefüllt sind, kanst du dir eine Benachrichtigung schicken
        In JS zb. so

        (function(){
        
            const id_alexaBad= "alexa2.0.Echo-Devices.xxxxxxxxxxx.";
            const id_alexaKueche= "alexa2.0.Echo-Devices.xxxxxxxxxxx.";
            const id_cal= 'webcal.0.events.';
        
            schedule({hour: 19, minute: 0}, function(){
                ['Restabfall','Bioabfall', 'Papiertonne','GelbeTonne'].forEach(function(value){
                    if (getState(id_cal + value + '.1' ).val != "" ){
                        setState(id_alexaKueche + 'Commands.speak', '60;Morgen ist ' + value);
                        setState(id_alexaBad + 'Commands.speak', '60;Morgen ist ' + value);
                    }
                })
            });
        
            schedule({hour: 7, minute: 0}, function(){
                ['Restabfall','Bioabfall', 'Papiertonne','GelbeTonne'].forEach(function(value){
                    if (getState(id_cal + value + '.0').val  != "" ){
                        setState(id_alexaKueche + 'Commands.speak', '60;Heute ist ' + value);
                        setState(id_alexaBad + 'Commands.speak', '60;Heute ist ' + value);
                    }
                })
            });
        
        })();
        

        Du kannst natürlich auch direkt auf.now schauen, das wird gefüllt, sobald das Ereignis eintritt. Das habe ich in meinem obigen Beispiel nicht gemacht, weil ich die Benachrichtigung zu einer bestimmten Zeit haben wollte.

        Also setzte mal so ein Ereignis und schaue dir die Datenpunkte an

        C Online
        C Online
        chris299
        wrote on last edited by
        #221

        @dirkhe vielen Dank, ich hbe es dann mit einem blockly auch hinbekommen. Hat zuerst auch super funktioniert, aber heute sind die Einträge im Kalender fehlerhaft und seltsam: irgendwie doppelt und dreifach, obwohl heute eigentlich garkein termin sein sollte.
        der Kalender:
        05459f15-6946-42d3-a0de-c3f74dda6e3b-grafik.png
        und dann solche Ergebnisse im adapter datenpunkt (debug log):
        868b9ff8-d040-428d-9626-9f37eda479ba-grafik.png
        Im Ergebnis habe ich dann im Datenpunkt "heute" einen bzw. sogar mehrere Einträge
        von 08:00 bis um 12:30, von 08:00 bis um 12:30, von 08:00 bis um 12:30, von 08:00 bis um 12:30, von 08:00 bis um 12:30
        die da aber nicht sein sollten....
        Es hndelt sich um 5 Terminserien (mo-fr, jeweils eine mit wöchentlicher Wiederholung. Gestern und heute sind als Ausnahmen gelöscht worden.)

        Mache ich da was falsch?
        sieht für mich allerdings eher nach einer fehlerhaften Interpretation von wiederkehrenden Terminen aus...

        D 1 Reply Last reply
        0
        • C chris299

          @dirkhe vielen Dank, ich hbe es dann mit einem blockly auch hinbekommen. Hat zuerst auch super funktioniert, aber heute sind die Einträge im Kalender fehlerhaft und seltsam: irgendwie doppelt und dreifach, obwohl heute eigentlich garkein termin sein sollte.
          der Kalender:
          05459f15-6946-42d3-a0de-c3f74dda6e3b-grafik.png
          und dann solche Ergebnisse im adapter datenpunkt (debug log):
          868b9ff8-d040-428d-9626-9f37eda479ba-grafik.png
          Im Ergebnis habe ich dann im Datenpunkt "heute" einen bzw. sogar mehrere Einträge
          von 08:00 bis um 12:30, von 08:00 bis um 12:30, von 08:00 bis um 12:30, von 08:00 bis um 12:30, von 08:00 bis um 12:30
          die da aber nicht sein sollten....
          Es hndelt sich um 5 Terminserien (mo-fr, jeweils eine mit wöchentlicher Wiederholung. Gestern und heute sind als Ausnahmen gelöscht worden.)

          Mache ich da was falsch?
          sieht für mich allerdings eher nach einer fehlerhaften Interpretation von wiederkehrenden Terminen aus...

          D Offline
          D Offline
          dirkhe
          Developer
          wrote on last edited by
          #222

          @chris299 sieht merkwürdig aus. Ich habe letztens die ical version hochgehoben, vlt hat sich da was verändert. Ich kann mal versuchen, das bei mir nachzustellen.

          D 1 Reply Last reply
          0
          • D dirkhe

            @chris299 sieht merkwürdig aus. Ich habe letztens die ical version hochgehoben, vlt hat sich da was verändert. Ich kann mal versuchen, das bei mir nachzustellen.

            D Offline
            D Offline
            dirkhe
            Developer
            wrote on last edited by
            #223

            @dirkhe Also es ist tatsächlich ein Bug in der ical library. Das muss ich mir genauer anschauen

            D 1 Reply Last reply
            0
            • D dirkhe

              @dirkhe Also es ist tatsächlich ein Bug in der ical library. Das muss ich mir genauer anschauen

              D Offline
              D Offline
              dirkhe
              Developer
              wrote on last edited by
              #224

              @chris299 So, Bug sollte gefixt sein in der Version 1.3.6

              C 2 Replies Last reply
              0
              • D dirkhe

                @chris299 So, Bug sollte gefixt sein in der Version 1.3.6

                C Online
                C Online
                chris299
                wrote on last edited by
                #225

                @dirkhe sieht gut aus, d.h. das Problem scheint behoben zu sein, vielen Dank.

                1 Reply Last reply
                0
                • D dirkhe

                  @chris299 So, Bug sollte gefixt sein in der Version 1.3.6

                  C Online
                  C Online
                  chris299
                  wrote on last edited by
                  #226

                  @dirkhe ich wollte nun einen zweiten Kalender nch genau dem gleichen Muster einrichten, aber der zweite geht irgendwie garnicht.
                  da verschwinden auch die credentials aus der Config....
                  6877b5b4-0024-4f35-8fdb-c73d6b26f29e-grafik.png

                  Wie kann ich denn Teste, ob der Zugang zu dem Kalender als solche funktioniert? im Log sehe ich auch keinen Fehler....

                  1 Reply Last reply
                  0
                  • D Offline
                    D Offline
                    dirkhe
                    Developer
                    wrote on last edited by
                    #227

                    @chris299 schaue ich mir morgen mal an. Das hat auf jeden fall mal funktioniert. Ich musste die config anpassen, weil da ständig Warnungen kamen. Vlt ist dabei was kaputt gegangen.
                    Testen geht nicht, weil im admin adapter noch ein bug drin ist

                    C 1 Reply Last reply
                    0
                    • D dirkhe

                      @chris299 schaue ich mir morgen mal an. Das hat auf jeden fall mal funktioniert. Ich musste die config anpassen, weil da ständig Warnungen kamen. Vlt ist dabei was kaputt gegangen.
                      Testen geht nicht, weil im admin adapter noch ein bug drin ist

                      C Online
                      C Online
                      chris299
                      wrote on last edited by chris299
                      #228

                      @dirkhe vielen Dank. Evtl. würde es helfen, den Adapter im debug-loglevel etwas "gesprächiger" hinsichtlich der Connectivity zu machen, z.b. ausgeben, wenn er sich verbindet und ob das erfolgreich war....

                      EDIT: im Debug log sehe ich überhaupt nichts zu dem zweiten Kalender. sieht ganz so aus als würde der garnicht abgearbeitet....

                      D 1 Reply Last reply
                      0
                      • C chris299

                        @dirkhe vielen Dank. Evtl. würde es helfen, den Adapter im debug-loglevel etwas "gesprächiger" hinsichtlich der Connectivity zu machen, z.b. ausgeben, wenn er sich verbindet und ob das erfolgreich war....

                        EDIT: im Debug log sehe ich überhaupt nichts zu dem zweiten Kalender. sieht ganz so aus als würde der garnicht abgearbeitet....

                        D Offline
                        D Offline
                        dirkhe
                        Developer
                        wrote on last edited by
                        #229

                        @chris299 Das Problem war tatsächlich die Anpassung an der config. Die haben das Schema für password angepasst, Da habe ich das auch so angepasst, dass es keine Warnung mehr gab. Allerdings wurde das passwort dadurch nicht mehr gespeichert.
                        Die Diskussion habe ich mit den Admin Entwickler schon mal geführt. Die Idee ist, dass Passwörter encrypted gespeichert werden sollen. So gut so richtig, nur gibt es keine Lösung, wenn die Anzahl Passwörter dynamisch ist. Wenn es genau ein Passort gibt geht deren Lösung, aber nicht für eine dynamische Liste. Ich hatte da auch schon 2 Lösungsvorschläge gemacht, die wurden aber ignoriert.
                        Sollte in der 1.3.7 gefixt sein. Das Logging habe ich auch ein bisschen angepasst

                        C 2 Replies Last reply
                        0
                        • D dirkhe

                          @chris299 Das Problem war tatsächlich die Anpassung an der config. Die haben das Schema für password angepasst, Da habe ich das auch so angepasst, dass es keine Warnung mehr gab. Allerdings wurde das passwort dadurch nicht mehr gespeichert.
                          Die Diskussion habe ich mit den Admin Entwickler schon mal geführt. Die Idee ist, dass Passwörter encrypted gespeichert werden sollen. So gut so richtig, nur gibt es keine Lösung, wenn die Anzahl Passwörter dynamisch ist. Wenn es genau ein Passort gibt geht deren Lösung, aber nicht für eine dynamische Liste. Ich hatte da auch schon 2 Lösungsvorschläge gemacht, die wurden aber ignoriert.
                          Sollte in der 1.3.7 gefixt sein. Das Logging habe ich auch ein bisschen angepasst

                          C Online
                          C Online
                          chris299
                          wrote on last edited by
                          #230

                          @dirkhe sieht sehr gut aus, vielen Dank

                          1 Reply Last reply
                          0
                          • D dirkhe

                            @chris299 Das Problem war tatsächlich die Anpassung an der config. Die haben das Schema für password angepasst, Da habe ich das auch so angepasst, dass es keine Warnung mehr gab. Allerdings wurde das passwort dadurch nicht mehr gespeichert.
                            Die Diskussion habe ich mit den Admin Entwickler schon mal geführt. Die Idee ist, dass Passwörter encrypted gespeichert werden sollen. So gut so richtig, nur gibt es keine Lösung, wenn die Anzahl Passwörter dynamisch ist. Wenn es genau ein Passort gibt geht deren Lösung, aber nicht für eine dynamische Liste. Ich hatte da auch schon 2 Lösungsvorschläge gemacht, die wurden aber ignoriert.
                            Sollte in der 1.3.7 gefixt sein. Das Logging habe ich auch ein bisschen angepasst

                            C Online
                            C Online
                            chris299
                            wrote on last edited by
                            #231

                            @dirkhe nachem ich nun die Termine im IOBroker sehe (nochmals vielen Dank für den Adapter und Deine Hilfe) kommt nun die Kür-Frage: wie baue ich eine Termin-erinnerung für einen Termin der sich zwar wiederholt, aber nicht immer zur gleichen Zeit?
                            Den Termin selber sehe ich unter "heute" und unter "next", aber wie bekomme ich ein Blockly/JS zu diesem Zeitpunkt, bzw. besser etwas davor getriggert?
                            aktulle habe ich nur eine täglichen trigger, aber schon beim Zeitversatz wird es knifflig, weil die Termine in UTC sind.... kann man irgendwie direkt einen Trigger auf einen Termin legen (z.B. bei Änderung von "next"?

                            1 Reply Last reply
                            0
                            • D Offline
                              D Offline
                              dirkhe
                              Developer
                              wrote on last edited by
                              #232

                              @chris299 genau, du kannst direkt auf next change triggern und dann den wert als datum, müsste eigentlich mit new Date() funktionieren. Dann deine zeit vorher abziehen und dann per schedule deine errinnerung auslösen. Aber ggf. Darüber nachdenken, ein ggf. Gesetztes schedule zu löschen, falls du die zeit mal änderst. Zusätzlich beim start des scriptes die funktion auch aufrufen, falls der iobroker oder der jsadapter neu startet

                              D C 2 Replies Last reply
                              0
                              • D dirkhe

                                @chris299 genau, du kannst direkt auf next change triggern und dann den wert als datum, müsste eigentlich mit new Date() funktionieren. Dann deine zeit vorher abziehen und dann per schedule deine errinnerung auslösen. Aber ggf. Darüber nachdenken, ein ggf. Gesetztes schedule zu löschen, falls du die zeit mal änderst. Zusätzlich beim start des scriptes die funktion auch aufrufen, falls der iobroker oder der jsadapter neu startet

                                D Offline
                                D Offline
                                dirkhe
                                Developer
                                wrote on last edited by
                                #233

                                ich könnte bei gelegenheit mal schauen, ob man einen eingestellten alarm auslesen kann und dann zu diesem zeitpunkt einen datenpunkt updaten

                                1 Reply Last reply
                                0
                                • D dirkhe

                                  @chris299 genau, du kannst direkt auf next change triggern und dann den wert als datum, müsste eigentlich mit new Date() funktionieren. Dann deine zeit vorher abziehen und dann per schedule deine errinnerung auslösen. Aber ggf. Darüber nachdenken, ein ggf. Gesetztes schedule zu löschen, falls du die zeit mal änderst. Zusätzlich beim start des scriptes die funktion auch aufrufen, falls der iobroker oder der jsadapter neu startet

                                  C Online
                                  C Online
                                  chris299
                                  wrote on last edited by
                                  #234

                                  @dirkhe nochmal danke für den Hinweis, aber mittels Blockly bekomme ich das wohl nicht hin.... (JS kann ich noch nicht.... :-) )
                                  sowas wie

                                  scheduleById('webcal.0.events.SchuleMarlon.next', async () => {
                                    console.info('naechste Veranstaltung gestartet ');
                                  });
                                  

                                  funktiniert anscheinend nur mit Uhrzeit am gleichen Tag....
                                  Könntest Du mir noch einen etwas konkreteren Tipp geben, wie ich ein Blockly so schedulen kann?

                                  D 1 Reply Last reply
                                  0
                                  • C chris299

                                    @dirkhe nochmal danke für den Hinweis, aber mittels Blockly bekomme ich das wohl nicht hin.... (JS kann ich noch nicht.... :-) )
                                    sowas wie

                                    scheduleById('webcal.0.events.SchuleMarlon.next', async () => {
                                      console.info('naechste Veranstaltung gestartet ');
                                    });
                                    

                                    funktiniert anscheinend nur mit Uhrzeit am gleichen Tag....
                                    Könntest Du mir noch einen etwas konkreteren Tipp geben, wie ich ein Blockly so schedulen kann?

                                    D Offline
                                    D Offline
                                    dirkhe
                                    Developer
                                    wrote on last edited by
                                    #235

                                    @chris299 bin jetzt gerade im Urlaub, muss danach mal schauen. Blocky ist mir zu kompliziert, wenn kann ich dir javascript liefern

                                    C 1 Reply Last reply
                                    0
                                    • D dirkhe

                                      @chris299 bin jetzt gerade im Urlaub, muss danach mal schauen. Blocky ist mir zu kompliziert, wenn kann ich dir javascript liefern

                                      C Online
                                      C Online
                                      chris299
                                      wrote on last edited by
                                      #236

                                      @dirkhe ein Ansatz in JS würde mir auch schon sehr helfen. Ein bisschen lesen kann ich das und ich wollte mich eh mal intensiver damit beschäftigen 😀

                                      D 1 Reply Last reply
                                      0
                                      • C chris299

                                        @dirkhe ein Ansatz in JS würde mir auch schon sehr helfen. Ein bisschen lesen kann ich das und ich wollte mich eh mal intensiver damit beschäftigen 😀

                                        D Offline
                                        D Offline
                                        dirkhe
                                        Developer
                                        wrote on last edited by
                                        #237

                                        @chris299 so hier mal ein JS Beispiel:

                                            function webCalAlert(dpID, minutesBefore) {
                                                let s = null;
                                        
                                                function initALert(timeStr) {
                                                    if (s != null)
                                                        clearSchedule(s);
                                                    if (timeStr) {
                                                        s = schedule(new Date(new Date(timeStr).getTime() - 1000 * 60 * minutesBefore), function () {
                                                            s = null;
                                                            log("Alert form " + dpID, "error")
                                                        })
                                                    }
                                                }
                                        
                                                on({ id: dpID, change: "ne" }, function (obj) {
                                                    initALert(obj.state.val);
                                                })
                                                initALert(getState(dpID).val);
                                            }
                                        
                                            webCalAlert("webcal.0.events.Restabfall.next", 5)
                                            webCalAlert("0_userdata.0.example_state", 1);
                                        
                                        
                                        M 1 Reply Last reply
                                        0
                                        • D dirkhe

                                          @chris299 so hier mal ein JS Beispiel:

                                              function webCalAlert(dpID, minutesBefore) {
                                                  let s = null;
                                          
                                                  function initALert(timeStr) {
                                                      if (s != null)
                                                          clearSchedule(s);
                                                      if (timeStr) {
                                                          s = schedule(new Date(new Date(timeStr).getTime() - 1000 * 60 * minutesBefore), function () {
                                                              s = null;
                                                              log("Alert form " + dpID, "error")
                                                          })
                                                      }
                                                  }
                                          
                                                  on({ id: dpID, change: "ne" }, function (obj) {
                                                      initALert(obj.state.val);
                                                  })
                                                  initALert(getState(dpID).val);
                                              }
                                          
                                              webCalAlert("webcal.0.events.Restabfall.next", 5)
                                              webCalAlert("0_userdata.0.example_state", 1);
                                          
                                          
                                          M Offline
                                          M Offline
                                          mika84
                                          wrote on last edited by
                                          #238

                                          @dirkhe Hi, schon mal vorab: tolle Arbeit!
                                          Bei mir sehe ich keine Serientermine.
                                          Ich nutze die Download-Funktion. Die Termine werden auch heruntergeladen. Aber im der json ist zu sehen, dass kein Serientermin dabei ist.
                                          Kannst du die Funktion hinzufügen oder fehlt mir nur etwas.

                                          P.S.: ich habe aktuell keine Ereignisse konfiguriert. Also ist alles ungefiltert.

                                          D 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          916

                                          Online

                                          32.5k

                                          Users

                                          81.6k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe