Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Google-Kalenderdaten usw. morgens täglich an Telegram

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.6k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.0k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

Google-Kalenderdaten usw. morgens täglich an Telegram

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
14 Beiträge 6 Kommentatoren 1.9k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • lobomauL Offline
    lobomauL Offline
    lobomau
    schrieb am zuletzt editiert von
    #5

    Ja, das funktioniert schon mal. Ich habe es eben auch in diese Richtung versucht, aber nix hinbekommen :-(

    Was bei mir läuft ist ein Script, das in iCal nach Terminen schaut, in dem Fall ob der Mülleiner geleert werden muss.

    Das geht schon in die richtige Richtung…

    viewtopic.php?f=21&t=3761&hilit=kalende ... nft#p34975

    Host: NUC8i3 mit Proxmox:

    • ioBroker CT Debian 13, npm 10.9.4, nodejs 22.21.0
    • Slave: Pi4
    1 Antwort Letzte Antwort
    0
    • T Offline
      T Offline
      tempestas
      schrieb am zuletzt editiert von
      #6

      Mit diesem Skript

      ! ````
      // Skript schaut täglich um 18h, ob im Kalender das Wort "Morgen" vorkommt. Wenn ja, wird ein Telegram geschickt mit dem betreffenden Termin bzw Terminen
      // tempestas 13.2.2018
      ! // Skripteinstellungen
      ! var debug = false;
      ! // Suchfunktion für Termin-Cutoff

      function nthIndex(str, pat, n){
      var L= str.length, i= -1;
      while(n-- && i++ <l){ i="str.indexOf(pat," i);/if/(i/</0)/break;/}/i_search="i;" funktion/function/warnung()/{/var/inhalt="getState("ical.0.data.html").val.toString();" hier/deine/müll-kalender/instanz/eingeben/count="inhalt.split("Morgen").length" -1;/wie/häufig/wird/"morgen"/gefunden?/posstart="inhalt.indexOf(" 'morgen',/0);/sucht/das/erste/mal/if(debug)/log("posstart/"+posstart);/if(posstart/!="-1){" falls/gefunden/wurde/gehts/weiter/stringshort="inhalt.substring(posStart," inhalt.length);/abschneiden/von/allem,/was/links/vom/ersten/treffer/steht/log("gekürzt/:"/+stringshort);/nthindex(stringshort,/'</span="">', count); // hier wird nun geschaut, wo es rechts abgeschnitten werden muss
      stringCut = stringShort.slice(0,i_search); // hier wird alles rechts abgeschnitten und so der finale String extrahiert

      if(debug) log("Fast Final: "+stringCut);
      

      ! // aufbereiten für telegram, entfernen von HTML Tags
      ! stringCut = stringCut.replace('
      ',"\n"); // Zeilenumbruch html durch telegram umbruch ersetzen
      ! // remove all inside SCRIPT and STYLE tags
      stringCut=stringCut.replace(/<script.>[\w\W]{1,}(.?)[\w\W]{1,}</script>/gi, "");
      stringCut=stringCut.replace(/<style.>[\w\W]{1,}(.?)[\w\W]{1,}</style>/gi, "");

          // remove BR tags. 
          stringCut=stringCut.replace(/
      

      /gi, "");
      stringCut=stringCut.replace(/<br\s>/gi, "");
      stringCut=stringCut.replace(/<br>/gi, "");

          // remove all else
          stringCut=stringCut.replace(/<(?:.|\s)*?>/g, "");
      
          // get rid of html-encoded characters:
          stringCut=stringCut.replace(/ /gi," ");
          stringCut=stringCut.replace(/&/gi,"&");
          stringCut=stringCut.replace(/"/gi,'"');
          stringCut=stringCut.replace(//gi,'>');
      

      !
      sendTo('telegram', stringCut);

      }
      }

      ! // Trigger Schedule
      ! schedule('0 18 * * ', function(){ // Täglich um 18h
      ! Warnung();
      });
      ! // Bei Start
      ! Warnung();</br></br\s></style.
      ></script.*></l){>

      erhälst du eine Telegram Nachricht mit allen Terminen (sei es Müll, Omas Geburtstag..), die morgen anstehen. Voraussetzung ist, dass dein Kalender "ersetze Datum mit Worten" aktiviert hat.
      
      Wenn du überall wo "Morgen" steht es auf "Heute" abwandelst, bekommst du alle Termine von heute

      <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

      1 Antwort Letzte Antwort
      0
      • haselchenH Offline
        haselchenH Offline
        haselchen
        Most Active
        schrieb am zuletzt editiert von
        #7

        Ich nutze leider die Datumsangabe und möchte auch nicht umstellen. Wie sieht dann das Skript aus und wo muss ich es dann als was speichern?

        ( Telegram Adapter ist Voraussetzung?)

        Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

        1 Antwort Letzte Antwort
        0
        • 2 Offline
          2 Offline
          2000ede
          schrieb am zuletzt editiert von
          #8

          Danke tempestas!

          Das werde ich mir mal genauer anschauen, ich kann zwar nur VBA-Excel, aber vielleicht bekomme ich es ja nicht nur zum laufen, sondern auch auf meine Zwecke angepasst. Auf jeden Fall eine gute Basis zum lernen für mich!

          TOP erstmal!

          1 Antwort Letzte Antwort
          0
          • T Offline
            T Offline
            tempestas
            schrieb am zuletzt editiert von
            #9

            @ ede: gern. Es ist alles kommentiert. Wenn du Hilfe brauchst, fragen.

            @haselchen: na ja, wenn du kein Telegram nutzt gibts noch pushover z.B., aber irgendeine Version brauchst du ja, wenn du es aktiv aufs Handy gespielt bkeommen willst. Sonst kannst du ja auch einfach so aufs Handy gucken für Termine, Wetter usw.

            <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

            1 Antwort Letzte Antwort
            0
            • Jeeper.atJ Offline
              Jeeper.atJ Offline
              Jeeper.at
              schrieb am zuletzt editiert von
              #10

              Noch einen kleinen Tipp zum Eingangspost.

              Die Abfrage nach = 8:00 wird in der Praxis nie wahr. Grund hierfür ist das im Hintergrund auch mit Sekunden (und evt. Noch genauer) gerechnet wird. Die Bedingung würde also nur wahr werden wenn die Zeit genau 8:00:00:00:00:00:00:00….. wäre. Also immer eine kleine Range abfragen. Also z. B. Zwischen 8:00 und 8:01. bin da am Anfang auch drüber gestolpert.

              Lg

              Günther

              1 Antwort Letzte Antwort
              0
              • 2 Offline
                2 Offline
                2000ede
                schrieb am zuletzt editiert von
                #11

                tempestas, dein Skript läuft bei mir schon und klappt soweit für die Termine morgen gut.

                Vielleicht schaffe ich es ja, mit Eurer Hilfe es für mich weiter zu modifizieren.

                Hier nochmal mein Wunsch und Zielbild:
                6334_aufbau.jpg
                6334_zielbild.jpeg

                1 Antwort Letzte Antwort
                0
                • haselchenH Offline
                  haselchenH Offline
                  haselchen
                  Most Active
                  schrieb am zuletzt editiert von
                  #12

                  Telegram habe ich, die Frage war nur, wenn Du ein Skript basteln würdest, brauche ich dann den Telegram Adapter?!

                  Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

                  1 Antwort Letzte Antwort
                  0
                  • T Offline
                    T Offline
                    tempestas
                    schrieb am zuletzt editiert von
                    #13

                    Ja, den brauchst du

                    <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

                    1 Antwort Letzte Antwort
                    0
                    • Paulchen67P Offline
                      Paulchen67P Offline
                      Paulchen67
                      schrieb am zuletzt editiert von
                      #14

                      @tempestas:

                      Mit diesem Skript

                      ! ````
                      // Skript schaut täglich um 18h, ob im Kalender das Wort "Morgen" vorkommt. Wenn ja, wird ein Telegram geschickt mit dem betreffenden Termin bzw Terminen
                      // tempestas 13.2.2018
                      ! // Skripteinstellungen
                      ! var debug = false;
                      ! // Suchfunktion für Termin-Cutoff

                      function nthIndex(str, pat, n){
                      var L= str.length, i= -1;
                      while(n-- && i++ <l){ i="str.indexOf(pat," i);/if/(i/</0)/break;/}/i_search="i;" funktion/function/warnung()/{/var/inhalt="getState("ical.0.data.html").val.toString();" hier/deine/müll-kalender/instanz/eingeben/count="inhalt.split("Morgen").length" -1;/wie/häufig/wird/"morgen"/gefunden?/posstart="inhalt.indexOf(" 'morgen',/0);/sucht/das/erste/mal/if(debug)/log("posstart/"+posstart);/if(posstart/!="-1){" falls/gefunden/wurde/gehts/weiter/stringshort="inhalt.substring(posStart," inhalt.length);/abschneiden/von/allem,/was/links/vom/ersten/treffer/steht/log("gekürzt/:"/+stringshort);/nthindex(stringshort,/'</span="">', count); // hier wird nun geschaut, wo es rechts abgeschnitten werden muss
                      stringCut = stringShort.slice(0,i_search); // hier wird alles rechts abgeschnitten und so der finale String extrahiert

                      if(debug) log("Fast Final: "+stringCut);
                      

                      ! // aufbereiten für telegram, entfernen von HTML Tags
                      ! stringCut = stringCut.replace('
                      ',"\n"); // Zeilenumbruch html durch telegram umbruch ersetzen
                      ! // remove all inside SCRIPT and STYLE tags
                      stringCut=stringCut.replace(/<script.>[\w\W]{1,}(.?)[\w\W]{1,}</script>/gi, "");
                      stringCut=stringCut.replace(/<style.>[\w\W]{1,}(.?)[\w\W]{1,}</style>/gi, "");

                          // remove BR tags. 
                          stringCut=stringCut.replace(/
                      

                      /gi, "");
                      stringCut=stringCut.replace(/<br\s>/gi, "");
                      stringCut=stringCut.replace(/<br>/gi, "");

                          // remove all else
                          stringCut=stringCut.replace(/<(?:.|\s)*?>/g, "");
                          
                          // get rid of html-encoded characters:
                          stringCut=stringCut.replace(/ /gi," ");
                          stringCut=stringCut.replace(/&/gi,"&");
                          stringCut=stringCut.replace(/"/gi,'"');
                          stringCut=stringCut.replace(//gi,'>');
                      

                      !
                      sendTo('telegram', stringCut);

                      }
                      }

                      ! // Trigger Schedule
                      ! schedule('0 18 * * ', function(){ // Täglich um 18h
                      ! Warnung();
                      });
                      ! // Bei Start
                      ! Warnung();</br></br\s></style.
                      ></script.*></l){>

                      erhälst du eine Telegram Nachricht mit allen Terminen (sei es Müll, Omas Geburtstag..), die morgen anstehen. Voraussetzung ist, dass dein Kalender "ersetze Datum mit Worten" aktiviert hat.
                      
                      Wenn du überall wo "Morgen" steht es auf "Heute" abwandelst, bekommst du alle Termine von heute `  
                      

                      Bei mir läuft das Script nicht.

                      Ersetze Datum mit Worten ist aktiviert.

                      Hab zum testen

                      schedule('0 18 * * *', function(){ // Täglich um 18h

                      auf aktuelle Zeit plus 2 Minuten gestell, aber da tut sich nichts.

                      EDIT!!!

                      Funktioniert jetzt.

                      ioBroker mit Ubuntu auf Intel NUC
                      piVCCU auf Raspberry Pi 3

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      591

                      Online

                      32.6k

                      Benutzer

                      82.3k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe