Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Ical Termine als Telegramnachricht

    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 Termine als Telegramnachricht

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

      Bei Instanzen wird er doch angezeigt. Aber bei Objekte nicht. Habe nach der Anleitung aus dem Forum gearbeitet.

      J.A.R.V.I.S. 1 Reply Last reply Reply Quote 0
      • J.A.R.V.I.S.
        J.A.R.V.I.S. Developer @Nico Adler last edited by J.A.R.V.I.S.

        @Nico-Adler iCal, CalDAV oder Google API?

        1 Reply Last reply Reply Quote 0
        • Nico Adler
          Nico Adler last edited by

          Also wenn ich es richtig verstehe dann habe ich einmal den ical Adapter und einmal den calendar Adapter bei dem ich über Google API alles eingerichtet habe. Beim zweiten habe ich aber keine Datenpunkte bei Objekte. Also nicht Mal der Adapter wird da angezeigt.

          J.A.R.V.I.S. 1 Reply Last reply Reply Quote 0
          • J.A.R.V.I.S.
            J.A.R.V.I.S. Developer @Nico Adler last edited by

            @Nico-Adler dann versuch es testweise mal mit der iCal Adresse im Calendar Adapter.

            1 Reply Last reply Reply Quote 0
            • Nico Adler
              Nico Adler last edited by

              Ich bekomme es irgendwie nicht hin.. anscheinend bin ich zu blöd. Im Log steht no permission granted.

              Also kann man nicht einfach den ical Datenpunkt umschreiben lassen. Der funktioniert zumindest, bloß das dort "<span style...." steht

              1 Reply Last reply Reply Quote 0
              • bahnuhr
                bahnuhr Forum Testing Most Active @Stephan Schleich last edited by

                @Stephan-Schleich sagte in Ical Termine als Telegramnachricht:

                oder post mal das Script.

                Warum stellt du dein Script nicht hier ein?

                1 Reply Last reply Reply Quote 0
                • bahnuhr
                  bahnuhr Forum Testing Most Active last edited by bahnuhr

                  So,
                  hab mal ein bisschen rum gespielt.

                  var arr = getState('ical.0.data.table').val;
                  
                  for (x=1;x<=5;x++) {
                      log (arr[x].date + " / " + arr[x].event);
                  }
                  

                  du musst die table Var. nehmen.
                  Dann arr erzeugen.

                  Im log kommt dann:
                  dbe73e21-69cd-4147-8ce7-f343c02fcf67-image.png

                  Was du noch brauchst:

                  • Prüfen von Datum
                  • telegram senden.

                  mfg
                  Dieter

                  Nico Adler 1 Reply Last reply Reply Quote 0
                  • Nico Adler
                    Nico Adler last edited by

                    <xml xmlns="http://www.w3.org/1999/xhtml">
                      <block type="telegram" id="~U[Ttfz9[[RJFe$HzE@Y" x="-587" y="2062">
                        <field name="INSTANCE"></field>
                        <field name="LOG"></field>
                        <field name="SILENT">FALSE</field>
                        <field name="PARSEMODE">HTML</field>
                        <value name="MESSAGE">
                          <shadow type="text" id="Gzz$1-!y]:uJcJ4tA)4O">
                            <field name="TEXT">text</field>
                          </shadow>
                          <block type="text_join" id="feiXZ+N4Ic*_*T6/]gr|">
                            <mutation items="2"></mutation>
                            <value name="ADD0">
                              <block type="get_value" id="{;wI`jk@W1*YZI%lE(+`">
                                <field name="ATTR">val</field>
                                <field name="OID">ical.0.data.html</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <value name="USERNAME">
                          <block type="text" id="93]*F0;~EH8%Yow+8a%`">
                            <field name="TEXT">Nico</field>
                          </block>
                        </value>
                      </block>
                    </xml>
                    

                    Hier ist das Blockly Script.

                    1 Reply Last reply Reply Quote 0
                    • Nico Adler
                      Nico Adler @bahnuhr last edited by

                      @bahnuhr wo muss ich das hin kopieren? Sorry aber ich bin noch beim urschleim

                      bahnuhr 1 Reply Last reply Reply Quote 0
                      • bahnuhr
                        bahnuhr Forum Testing Most Active @Nico Adler last edited by

                        @Nico-Adler sagte in Ical Termine als Telegramnachricht:

                        @bahnuhr wo muss ich das hin kopieren? Sorry aber ich bin noch beim urschleim

                        Das ist ein Script und muss bei Scripte als Javascript (nicht blockly) eingefügt und dann gestartet werden.

                        1 Reply Last reply Reply Quote 0
                        • Nico Adler
                          Nico Adler last edited by

                          habe ich gemacht. im log stehen jetzt auch die Termine. wie füge ich das jetzt in das blockly.
                          wenn ich das objekt vom javascript nehme, kommt nur der text true.

                          bahnuhr 1 Reply Last reply Reply Quote 0
                          • bahnuhr
                            bahnuhr Forum Testing Most Active @Nico Adler last edited by

                            @Nico-Adler sagte in Ical Termine als Telegramnachricht:

                            habe ich gemacht. im log stehen jetzt auch die Termine. wie füge ich das jetzt in das blockly.
                            wenn ich das objekt vom javascript nehme, kommt nur der text true.

                            tut mir leid, blockly mach ich nicht.

                            Muss jemand anders mal helfen.

                            Nico Adler 1 Reply Last reply Reply Quote 0
                            • Nico Adler
                              Nico Adler last edited by

                              OK. Ich danke dir trotzdem für deine Mühe

                              1 Reply Last reply Reply Quote 0
                              • Nico Adler
                                Nico Adler @bahnuhr last edited by

                                @bahnuhr ich habe mir jetzt ein datenpunkt angelegt.

                                und dein script mit hilfe von google etwas geändert.
                                im Datenpunkt steht jetzt schon mal Klartext, aber ich glaube er macht nur den letzen eintrag da rein. wie kann ich das lösen?

                                hier das skript:

                                var arr = getState('ical.0.data.table').val;
                                
                                for (x=1;x<=5;x++) {
                                    setState("ical.0.Termin", arr[x].date + " / " + arr[x].event);
                                }
                                
                                1 Reply Last reply Reply Quote 0
                                • Nico Adler
                                  Nico Adler last edited by

                                  Keiner eine Idee?

                                  bahnuhr 1 Reply Last reply Reply Quote 0
                                  • bahnuhr
                                    bahnuhr Forum Testing Most Active @Nico Adler last edited by

                                    @Nico-Adler sagte in Ical Termine als Telegramnachricht:

                                    Keiner eine Idee?

                                    Na, weil du den Wert 5 x zuweist.
                                    Also erst 1 in die Var.
                                    dann 2 in die Var.
                                    ....

                                    Und zum Schluss steht halt die 5 drin.

                                    1 Reply Last reply Reply Quote 0
                                    • Nico Adler
                                      Nico Adler last edited by

                                      Und wie kann ich das ändern? Also im Log bei deinem Skript kommen ja die nächsten 5 Termine einzeln aufgelistet. Kann ich die in einen Datenpunkt fortlaufend übertragen?

                                      bahnuhr 1 Reply Last reply Reply Quote 0
                                      • bahnuhr
                                        bahnuhr Forum Testing Most Active @Nico Adler last edited by

                                        @Nico-Adler sagte in Ical Termine als Telegramnachricht:

                                        Und wie kann ich das ändern? Also im Log bei deinem Skript kommen ja die nächsten 5 Termine einzeln aufgelistet. Kann ich die in einen Datenpunkt fortlaufend übertragen?

                                        z.B. so:

                                        // Variablen
                                            var arr = getState('ical.0.data.table').val;
                                            var vUser = "Dieter";
                                            var vText = "";
                                        
                                        // Script
                                            for (x=1;x<=5;x++) {
                                                log (arr[x].date + " / " + arr[x].event);
                                                vText += (arr[x].date + " / " + arr[x].event +"\n");
                                            }
                                        
                                        // telegram senden
                                                vText = "Die nächsten Termine:\n" + vText;
                                                log (vText);
                                                sendTo('telegram', { user: vUser, text: vText, parse_mode: 'HTML' });
                                        

                                        Hättest du aber auch selber drauf kommen können, oder ?

                                        1 Reply Last reply Reply Quote 1
                                        • Nico Adler
                                          Nico Adler last edited by

                                          Vielen Dank das funktioniert.
                                          Ich wäre nicht selber drauf gekommen, weil ich leider davon keine Ahnung habe.

                                          1 Reply Last reply Reply Quote 0
                                          • bahnuhr
                                            bahnuhr Forum Testing Most Active last edited by

                                            So, habe jetzt auch die Tage eingebaut.
                                            Probleme gibt es beim Jahreswechsel. Damit konnte ich aber nun erst einmal leben.

                                            // Variablen
                                                var arr = getState('ical.0.data.table').val;
                                                var vUser = "Dieter";
                                                var AnzTage = 7;    // wie viele Tage sollen ausgelesen werden
                                                var vText = "";
                                            
                                            //aktuelles Datum
                                                aktJahr = new Date().getFullYear(); aktMon = new Date().getMonth()+1; aktTag = new Date().getDate();
                                                d3 = getDateObject(aktJahr+"-"+aktMon+"-"+aktTag+" 02:00:00");
                                            
                                            // Datum aus ical
                                                var arr = getState('ical.0.data.table').val;
                                                arr.forEach(myFunction);
                                                function myFunction(item, i) { 
                                                    // date aus Array ermitteln
                                                        aMon = (arr[i].date).substring(3, 5); aTag = (arr[i].date).substring(0, 2);
                                                        d2 = getDateObject(aktJahr+"-"+aMon+"-"+aTag);
                                                    // Tage ermitteln
                                                        var t = Date.parse(d2) - Date.parse(d3);
                                                        var days = Math.floor( t/(1000*60*60*24) );
                                                    // wenn kleiner x Tage dann dazu fügen
                                                        if (days <= AnzTage) {
                                                            log (aTag + "." + aMon + "." + " " + arr[i].event +"\n");
                                                            vText += (aTag + "." + aMon + "." + " " + arr[i].event +"\n");
                                                        }
                                                }
                                            // telegram senden
                                                vText = "Die nächsten Termine:\n" + vText;
                                                log (vText);
                                                sendTo('telegram', { user: vUser, text: vText, parse_mode: 'HTML' });
                                            

                                            mfg
                                            Dieter

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            792
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            53
                                            2427
                                            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