Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst] Problem mit Ical-Adapter und Telegram

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Problem mit Ical-Adapter und Telegram

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

      Hallo zusammen,

      ich habe bei Google-Kalender einen Geburtstagkalender gemacht und ich möchte gerne von Telegram am Tag eines Geburtstages eine Benachrichtigung bekommen.

      Die Realisierung schien mir eine leichte Aufgabe, aber ich kriege es nicht hin. Schon 4 Tage habe ich alles Mögliche versucht, aber irgendwo mache ich einen Denkfehler.

      Was ich bis jetzt gemacht habe:

      1. Bei Google einen Geburtstagskalender eingerichtet.
      2. Bei IoBroker einen neuen Ical-Adapter eingerichtet.
      3. Beim Google Geburtstagskalender die geheime Ical-Adresse gefunden und im Adapter eingetragen. Wenn ich mir den html-Objekt anschaue, scheint es, als ob der Adapter die Kalenderdaten bekommt.

      Objekte Ical (1).png
      4. Mit Blockly habe ich als Test einen kleinen Skript gebaut, aber ich die Geburtstage werden nicht an Telegram geschickt.

      Blockly Ical.png

      Wenn ich 'Wert' wähle und als Parsemode default, wird der ganze HTML-String an Telegram geschikt.

      Wenn ich als Parsemode HTML wähle, bekomme ich eine Fehlermeldung. Im Log steht dann 'Cannot send message [chatId - xxxxxxxxx: Error: ETELEGRAM: 400 Bad Request: can't parse entities: Unsupported start tag "span" at byte offset 0'

      Log Ical.png

      Ich habe schon stundenlang im Forum recherchiert, aber nichts gefunden. Wahrscheinlich ist es was Kleines, das ich in meiner Unwissenheit übersehe. Deshalb würde ich mich freuen, wenn jemand mir weiter helfen könnte.

      Grüße

      Johan

      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 @Johan2009 last edited by

        @Johan2009 das Problem wird doch in der Fehlermldung schon beantwortet. Die Fehlermeldung sagt, dass er mit einem <span> als Start-Tag nicht klarkommt bzw. nicht unterstützt wird.

        1 Reply Last reply Reply Quote 0
        • Johan2009
          Johan2009 last edited by

          @J-A-R-V-I-S Vielen Dank für die Rückmeldung. Dass der Adapter nicht mit <span> klarkommt, habe ich natürlich auch gesehen, aber ich dachte, dass ich im Blockly-Skript vielleicht die falschen Bausteine benutzt hatte. Hast du vielleicht eine Ahnung, wie ich mein Vorhaben realisieren kann?

          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 @Johan2009 last edited by

            @Johan2009 ich weiß nicht genau, was der Telegram Adapter benötigt. Vielleicht hilft es, wenn du ein <div> oder ähnliches drum rum baust. Vielleicht braucht er auch ein komplettes HTML, das müsstest du mal testen.

            1 Reply Last reply Reply Quote 0
            • Johan2009
              Johan2009 last edited by

              @J-A-R-V-I-S Ich bin sehr froh, dass ich IoBroker am Laufen habe und ich möchte gern lernen. Von einem <div> habe ich noch nie gehört 😧. Könntest du mir weiterhelfen? Soll ich das in Blockly machen?

              F 1 Reply Last reply Reply Quote 0
              • F
                fastfoot @Johan2009 last edited by

                @Johan2009 Das html ist für die Visualisierung gedacht, der Adapter stellt aber die Daten auch in dem Datenpunkt table bereit(Man erkennt das nicht weil dort Objekte gespeichert werden, tatsächlich sind da aber die Daten drin). So kannst Du das in Blockly ganz leicht realisieren
                iCalTermine.PNG

                <xml xmlns="https://developers.google.com/blockly/xml">
                 <variables>
                   <variable id="]9bf#tCn2o:A^e)kEbU[">txt</variable>
                   <variable id="@?Xc):9iG:J/]=bM%`au">Termin</variable>
                 </variables>
                 <block type="control" id="|zYa]3*PNG.${]^YhFD!" x="37" y="12">
                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                   <field name="OID">ical.0.trigger</field>
                   <field name="WITH_DELAY">FALSE</field>
                   <value name="VALUE">
                     <block type="text" id="Tg6(L=R:of2ue#G$I[GZ">
                       <field name="TEXT">read</field>
                     </block>
                   </value>
                   <next>
                     <block type="variables_set" id="(U|w1#6]seMnE$`iNnQG">
                       <field name="VAR" id="]9bf#tCn2o:A^e)kEbU[">txt</field>
                       <value name="VALUE">
                         <block type="text" id="AT*-I.z5ZyY|wX$X{D?R">
                           <field name="TEXT">Deine nächsten Termine:</field>
                         </block>
                       </value>
                       <next>
                         <block type="on_ext" id="pjk*+WubH6m.gC/?#5xX">
                           <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                           <field name="CONDITION">ne</field>
                           <field name="ACK_CONDITION"></field>
                           <value name="OID0">
                             <shadow type="field_oid" id="u6Y|9$9Yw[2;3JHc2IRl">
                               <field name="oid">ical.0.data.table</field>
                             </shadow>
                           </value>
                           <statement name="STATEMENT">
                             <block type="controls_forEach" id="=f^,ZE/~ps8ag^4W!a61">
                               <field name="VAR" id="@?Xc):9iG:J/]=bM%`au">Termin</field>
                               <value name="LIST">
                                 <block type="on_source" id=")UVarRxy:hY:CH]A)QQx">
                                   <field name="ATTR">state.val</field>
                                 </block>
                               </value>
                               <statement name="DO">
                                 <block type="variables_set" id="2:c1A_{C*`BIZP?%iJ;^">
                                   <field name="VAR" id="]9bf#tCn2o:A^e)kEbU[">txt</field>
                                   <value name="VALUE">
                                     <block type="text_join" id="-Z6IPj]`]jf*56~ow4Y_">
                                       <mutation items="4"></mutation>
                                       <value name="ADD0">
                                         <block type="variables_get" id="k}]0b0Vt=/-,b2)C$/xV">
                                           <field name="VAR" id="]9bf#tCn2o:A^e)kEbU[">txt</field>
                                         </block>
                                       </value>
                                       <value name="ADD1">
                                         <block type="text_newline" id="ub%EXn0NH~u3NFHp/27c">
                                           <field name="Type">\n</field>
                                         </block>
                                       </value>
                                       <value name="ADD2">
                                         <block type="get_attr" id="X!u,V:[QeYDMz)AcpWG_">
                                           <value name="PATH">
                                             <shadow type="text" id="4R{Q[{~r:^nZPgkofAtB">
                                               <field name="TEXT">date</field>
                                             </shadow>
                                           </value>
                                           <value name="OBJECT">
                                             <block type="variables_get" id="dd2!#h!_6q,2u8FTvV|x">
                                               <field name="VAR" id="@?Xc):9iG:J/]=bM%`au">Termin</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <value name="ADD3">
                                         <block type="get_attr" id="L|Q+L]A{1OlPo]#|(FFI">
                                           <value name="PATH">
                                             <shadow type="text" id="i0B$yHV1Gu|ZK|-0zlu#">
                                               <field name="TEXT">event</field>
                                             </shadow>
                                           </value>
                                           <value name="OBJECT">
                                             <block type="variables_get" id="hdlc-2/U*I~7Ed0Ew*bE">
                                               <field name="VAR" id="@?Xc):9iG:J/]=bM%`au">Termin</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                 </block>
                               </statement>
                               <next>
                                 <block type="telegram" id="gf2ir$]J{F5!Fzck4%!e">
                                   <field name="INSTANCE"></field>
                                   <field name="LOG"></field>
                                   <field name="SILENT">FALSE</field>
                                   <field name="PARSEMODE">default</field>
                                   <value name="MESSAGE">
                                     <shadow type="text" id="*gB;1;g=/ohB]ml+[k)8">
                                       <field name="TEXT">text</field>
                                     </shadow>
                                     <block type="variables_get" id=")|nyV5@dZK|1t;WC9j7G">
                                       <field name="VAR" id="]9bf#tCn2o:A^e)kEbU[">txt</field>
                                     </block>
                                   </value>
                                 </block>
                               </next>
                             </block>
                           </statement>
                         </block>
                       </next>
                     </block>
                   </next>
                 </block>
                </xml>
                

                1 Reply Last reply Reply Quote 0
                • Johan2009
                  Johan2009 last edited by

                  @fastfoot Danke für das Blockly-Skript! Ich werde es morgen sofort testen und melde mich dann wieder.

                  H 1 Reply Last reply Reply Quote 0
                  • H
                    Hardwearhansi @Johan2009 last edited by

                    @Johan2009 Jetzt mal ganz blöd gesagt aber der kalender auf deinem Handy kann dich auch benarichtigen ist ja blos ein Termin der erstell wurde 😂

                    1 Reply Last reply Reply Quote 0
                    • Johan2009
                      Johan2009 last edited by

                      @Hardwearhansi Wenn schon, denn schon! Es ist mir lieber, dass alle Benachrichtigungen von Smarthome-Sachen (Müllabholungen, Anwesenheitserkennung und jetzt auch Geburtstage) mit Telegram gemacht werden.

                      @fastfoot Dein Skript hat wunderbar geklappt! Nochmals vielen Dank! Ich habe das jetzt so gemacht, dass jeden Tag gecheckt wird, ob jemand an dem Tag Geburtstag hat (siehe auch mein Blockly). Eine letzte Frage hätte ich noch; wäre es auch möglich ein Skript zu machen, bei dem ich am Abend eine Benachrichtigung über einen Geburtstag vom nächsten Tag bekomme?

                      Blockly Ical (2).png

                      H F 2 Replies Last reply Reply Quote 0
                      • H
                        Hardwearhansi @Johan2009 last edited by

                        @Johan2009 Naja jeder des seihnen 😉

                        1 Reply Last reply Reply Quote 0
                        • F
                          fastfoot @Johan2009 last edited by

                          @Johan2009 sagte in Problem mit Ical-Adapter und Telegram:

                          @fastfoot Dein Skript hat wunderbar geklappt! Nochmals vielen Dank! Ich habe das jetzt so gemacht, dass jeden Tag gecheckt wird, ob jemand an dem Tag Geburtstag hat (siehe auch mein Blockly). Eine letzte Frage hätte ich noch; wäre es auch möglich ein Skript zu machen, bei dem ich am Abend eine Benachrichtigung über einen Geburtstag vom nächsten Tag bekomme?

                          So solltest Du das nicht so machen! Du setzt so jeden Tag um 7:00 einen neuen Trigger auf eine Änderung im table-DP.

                          In der iCal Instanz kannst du ja bereits festlegen, wann die Google Abfrage erfolgen soll, wenn du das manuell steuern willst, dann würde ich das dort löschen. Du bekommst auch immer alle Termine angezeigt, den Zeitraum stellst du in Tagen in den iCal Einstellungen ein, somit bekommst du jedesmal auch den Termin für den nächsten Tag oder mehr. Erstelle einfach ein paar Fake Kontakte mit Geburtstagen für die nächsten Tage, dann siehst Du was ich meine.

                          So sollte dein Blockly in etwa aussehen
                          iCalTermine2.PNG

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

                            @fastfoot Aha, jetzt verstehe ich was du meinst! Habe mir noch mal die Ical Instanz angesehen und das Blockly-Skript geändert. Es funktioniert jetzt reibungslos. Vielen Dank, dass du die Zeit genommen hast, mir das zu erklären!

                            1 Reply Last reply Reply Quote 0
                            • S
                              srkonus @fastfoot last edited by

                              @fastfoot Hi,

                              auch wenn das Thema vielleicht etwas älter ist, möchte ich es aufgreifen. Ich habe meine iCal - Telegram Benachrichtigung anhand deines Scripts gemacht. Komischerweise erhalte ich immer wieder mal auch tagsüber die Telegrambenachrichtigung, auch wenn mein Script um 20 Uhr nur die Nachricht verschicken soll.
                              Kann es damit zusammenhängen das der iCal Adapter mehrmals am Tag die Daten aktualisiert? Aus dem Log bin ich zu dem Zeitpunkt nicht schlau geworden.

                              MfG
                              srkonus

                              F 1 Reply Last reply Reply Quote 0
                              • F
                                fastfoot @srkonus last edited by

                                @srkonus ja, der Trigger reagiert auf Änderungen im table Datenpunkt. Wie geschrieben kannst du das ja in den Cron Einstellungen der iCal Instanz anpassen bzw löschen, dann wird nur um 7:00 und 19:00Uhr wie im Blockly abgefragt

                                S 1 Reply Last reply Reply Quote 0
                                • S
                                  srkonus @fastfoot last edited by

                                  @fastfoot Wie meinst du das mit "im iCal Adapter einstellen"? Das er die Infos nur erneuert wenn es neue Infos gibt?

                                  F 1 Reply Last reply Reply Quote 0
                                  • F
                                    fastfoot @srkonus last edited by

                                    @srkonus sagte in [gelöst] Problem mit Ical-Adapter und Telegram:

                                    @fastfoot Wie meinst du das mit "im iCal Adapter einstellen"? Das er die Infos nur erneuert wenn es neue Infos gibt?

                                    In den Instanzen gibt es für jeden Adapter einen CRON Job, wenn du Infos nur zum Abend oder wie im Blockly willst, dann muss du den Cronjob eben löschen oder entsprechend abändern

                                    S 1 Reply Last reply Reply Quote 0
                                    • S
                                      srkonus @fastfoot last edited by

                                      @fastfoot Ah, ok. Habe den iCal Adapter jetzt auf 19:45 Uhr gesetzt und das Script auf 19:50 Uhr. Damit sollte ja nur eine Benachrichtigung (vielleicht zwei) rausgehen. Danke für den Hinweis.

                                      F 1 Reply Last reply Reply Quote 0
                                      • F
                                        fastfoot @srkonus last edited by fastfoot

                                        @srkonus Damit gehen zwei Benachrichtigungen raus. Deaktiviere doch einfach mal den Zeitplan, dann hast du nur noch den Trigger welcher dann um 19:45 auf die Änderung des Cron triggert

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        563
                                        Online

                                        32.0k
                                        Users

                                        80.4k
                                        Topics

                                        1.3m
                                        Posts

                                        5
                                        18
                                        1312
                                        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