Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [HowTo] Script Sticky Notes (PostIt) für VIS und Telegram

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [HowTo] Script Sticky Notes (PostIt) für VIS und Telegram

    This topic has been deleted. Only users with topic management privileges can see it.
    • liv-in-sky
      liv-in-sky @SchlaMatt last edited by liv-in-sky

      @schlamatt

      habe das im script dazugefügt:

      einen datenpunkt erstellen : Anzahl

      <block xmlns="https://developers.google.com/blockly/xml" type="create" id="l@0f*,xzets:!Nt6~^tO" x="137" y="1028">
       <field name="NAME">0_userdata.0.Alarm-MaterialDesign.PostitAnzahl</field>
       <value name="VALUE">
         <block type="text" id="-7Rl^[|JI$F|:AT:f/,k">
           <field name="TEXT"></field>
         </block>
       </value>
       <value name="COMMON">
         <block type="text" id="0ZQ.@,RyJ|SUoOXcW(qh">
           <field name="TEXT">{     "name": "Anzahl momentaner Postits",     "role": "",     "type": "number",     "read": true,     "write": true,     "desc": "Manuell erzeugt"   }</field>
         </block>
       </value>
      </block>
      

      Image 013.png

      eine function, welche die anzahl rmittelt

      <block xmlns="https://developers.google.com/blockly/xml" type="procedures_defnoreturn" id="#]#j*L6Gt$Yb=1Cn6aiX" x="837.3017578124995" y="2637.3128204345703">
       <field name="NAME">AnzahlBestimmen</field>
       <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
       <statement name="STACK">
         <block type="control_ex" id="ga`1KXlK^k9u6^;PlxH5">
           <field name="TYPE">false</field>
           <field name="CLEAR_RUNNING">FALSE</field>
           <value name="OID">
             <shadow type="field_oid" id="y-zhIZil{Rt%O{dObhr?">
               <field name="oid">Object ID</field>
             </shadow>
             <block type="text" id="yd_yU#ef+f!HG8;{:VKQ">
               <field name="TEXT">0_userdata.0.Alarm-MaterialDesign.PostitAnzahl</field>
             </block>
           </value>
           <value name="VALUE">
             <shadow type="logic_boolean" id="u9ydU$o;i.}wJ3qcI(R,">
               <field name="BOOL">TRUE</field>
             </shadow>
             <block type="lists_length" id="zYh`1=My[v|p}@ywn4:t">
               <value name="VALUE">
                 <block type="convert_json2object" id="4Mqz4:|CHP[oMO,WI(T+">
                   <value name="VALUE">
                     <block type="get_value" id="Ap*5fry(uv(GPJoHzLj;">
                       <field name="ATTR">val</field>
                       <field name="OID">0_userdata.0.Alarm-MaterialDesign.PostItMessages</field>
                     </block>
                   </value>
                 </block>
               </value>
             </block>
           </value>
           <value name="DELAY_MS">
             <shadow type="math_number" id="`Ok!uhI/EE|3o}/UP2W%">
               <field name="NUM">0</field>
             </shadow>
           </value>
         </block>
       </statement>
      </block>
      

      Image 016.png

      bei beiden bildern siehst du auch, wo die function eingefügt wird - der grüne pfeil

      SchlaMatt 1 Reply Last reply Reply Quote 1
      • SchlaMatt
        SchlaMatt @liv-in-sky last edited by

        @liv-in-sky

        Vielen lieben Dank für die schnelle Hilfe!
        Funktioniert einwandfrei!

        H 1 Reply Last reply Reply Quote 0
        • H
          holly200289 @SchlaMatt last edited by

          @schlamatt

          Hey Leute ,
          ich versuche schon seit Tagen ,die Postit zum laufen zu bekommen, aber leider gestaltet sich das nicht so einfach.Ich habe das Skript installiert, das material design widget u. das Widget exportiert ?
          Es funktioniert aber nicht von Unterwegs ein Postit zu Versenden das es in der Vis angezeigt wird ?

          liv-in-sky 1 Reply Last reply Reply Quote 0
          • liv-in-sky
            liv-in-sky @holly200289 last edited by

            @holly200289

            mit telegram musst du postit und dann den text eingeben

            z.b.

            postit dies ist eine nachricht

            H 1 Reply Last reply Reply Quote 0
            • H
              holly200289 @liv-in-sky last edited by

              @liv-in-sky

              Vielen Dank für die schnelle Antwort, das habe ich versucht aber leider wird
              es nicht in den Datenpunkt geschrieben,wenn ich das manuell in den Datenpunkt
              Schreibe funktioniert dass und wird in der Vis dargestellt.

              liv-in-sky 2 Replies Last reply Reply Quote 0
              • liv-in-sky
                liv-in-sky @holly200289 last edited by

                @holly200289

                wichtig ist die groß und kleinschreibung - muss passen - wie steht im blockly das postit ? so muss es auch eingegeben werden

                1 Reply Last reply Reply Quote 0
                • liv-in-sky
                  liv-in-sky @holly200289 last edited by

                  @holly200289 zeig mal dein blockly so wie hier:

                  Image 005.png wie viele bots hast du eingerichtet ?

                  H 2 Replies Last reply Reply Quote 0
                  • H
                    holly200289 @liv-in-sky last edited by

                    @liv-in-sky Screenshot 2023-08-03 183843.png

                    1 Reply Last reply Reply Quote 0
                    • H
                      holly200289 @liv-in-sky last edited by

                      @liv-in-sky

                      Ich weiß nicht wo da das Problem ist?

                      liv-in-sky 2 Replies Last reply Reply Quote 0
                      • liv-in-sky
                        liv-in-sky @holly200289 last edited by

                        @holly200289 mir fällt i moment auch nicht wirklich was ein

                        wird den, nachdem du etwas mit "postit......." eingegeben hast, auch in den datenpunkten des telegramadapters etwas angezeigt - also kommt die nachricht in den datenpunkten an ?

                        1 Reply Last reply Reply Quote 0
                        • liv-in-sky
                          liv-in-sky @holly200289 last edited by

                          @holly200289
                          könntest du mal aktivieren und nachsehen, ob da getriggert wird und was drinsteht

                          Image 009.png

                          H 1 Reply Last reply Reply Quote 0
                          • H
                            holly200289 @liv-in-sky last edited by

                            @liv-in-sky

                            Leider steht da nicht drin ,also scheint da nichts getriggert zu werden ?

                            liv-in-sky 1 Reply Last reply Reply Quote 0
                            • liv-in-sky
                              liv-in-sky @holly200289 last edited by liv-in-sky

                              @holly200289

                              seltsam das ganze

                              entweder ein script problem, welches ich nicht auf dem schirm habe oder eine telegram adapter thema

                              versuche das mal.

                              Image 011.png

                              script dann einfach speichern und ins log sehen - das log dann bitte zeigen !

                              als 2ten test: postit in telegram machen und im dp telegram.0.communicate.request mal nachsehen, was da steht - beispiel bei mir:

                              tele4.gif

                              ansonsten kann ich dir nur anbieten, mal mit anydesk gemeinsam auf deinem rechner zu sehen, was da los ist

                              H 1 Reply Last reply Reply Quote 0
                              • H
                                holly200289 @liv-in-sky last edited by

                                @liv-in-sky

                                Wenn du da machen würdest ,wäre das glaube ich besser ,vieleicht könntest du mir dann noch zeigen wie ich nur den Text einblende ,wie das einer hier im Forum gemacht hat ?

                                liv-in-sky 1 Reply Last reply Reply Quote 0
                                • liv-in-sky
                                  liv-in-sky @holly200289 last edited by liv-in-sky

                                  @holly200289

                                  schau mal in den chat

                                  Image 012.png

                                  1 Reply Last reply Reply Quote 0
                                  • P
                                    PatrickFro last edited by

                                    @liv-in-sky Erstmal: Es ist ein tolles Script, welches sogar meine bessere Hälfte gerne nutzt. Das besagt schon was 😉

                                    Nun die Frage. In der VIS werden die einzelnen Einträge ideal angezeigt. Sind wir aber unterwegs und wollen uns eine Idee holen (wir nutzen das Script 2 Mal, einmal für irgendwann umzusetzende Ideen, eine für ToDos), so können wir im Telegram-Kanal die Einträge kaum lesen. Die ersten 2 sind in einer Zeile, da kann man noch was erahnen, die weiteren Einträge sind alle in der nächsten Zeile (aktuell 7 Stück). Wie könnte ich die Telegram-Tastatur so anpassen, dass pro Eintrag eine Zeile genutzt wird?
                                    e58a3aff-233c-4329-a533-b1a4a6159413-image.png

                                    liv-in-sky 3 Replies Last reply Reply Quote 0
                                    • liv-in-sky
                                      liv-in-sky @PatrickFro last edited by

                                      @patrickfro ja - das sieht nicht übersichtlich aus - hast du schon viel im orginalscript geändert ?

                                      ich muss es mir nochmal ansehen, da ich eigentlich dachte, es können nur 3 einträge pro zeile angezeigt werden - richtig zeit habe ich erst am WE . ich kuck mal

                                      1 Reply Last reply Reply Quote 0
                                      • liv-in-sky
                                        liv-in-sky @PatrickFro last edited by

                                        @patrickfro

                                        hast du eigentlich viele längere einträge, dann müßten wir vielleicht immer nur eine zeile pro eintrag erstellen

                                        1 Reply Last reply Reply Quote 0
                                        • liv-in-sky
                                          liv-in-sky @PatrickFro last edited by liv-in-sky

                                          @patrickfro

                                          nur kurz:

                                          die function telegrammSend damit austauschen (einfach ganzes script in der function ersetzen - copy paste), wenn du nur eine zeile pro eingabepunkt haben willst:

                                          
                                          let ArrSend=[];
                                          let ArrSendInner=[];
                                          let ArrSendInner2=[];
                                          let ArrSendInnerDel=[]
                                          
                                          for(let i=0;i<theAlarmJson.length;i++){
                                            ArrSendInner=[] 
                                           // if (i<3) ArrSendInner.push({
                                               
                                                     ArrSendInner.push({
                                                               "text":theAlarmJson[i].text.substring(0, 48),
                                                               "callback_data": 'delOverTelegram.'+theAlarmJson[i].text.substring(0, 48)}    )
                                                               
                                                     ArrSend.push(ArrSendInner) ;
                                          
                                              
                                          }
                                          if (theAlarmJson.length>0) ArrSendInnerDel.push({
                                                               "text":"DeleteAllPosts-Its !",
                                                               "callback_data": 'delAllOverTelegram.'
                                             })
                                          
                                          
                                          //log(JSON.stringify(ArrSendInner))
                                          //ArrSend.push(ArrSendInner)
                                          if(ArrSendInner2.length>0 ) ArrSend.push(ArrSendInner2)
                                          if (theAlarmJson.length>0) ArrSend.push(ArrSendInnerDel)
                                          
                                          
                                          //log("Länge: "+ArrSend[0].length)
                                          ArrSend.length==0 ? refreshed=" PostIt empty" : refreshed="refreshed PostIt";
                                          
                                          for(let a=0;a<anzahlBots.length;a++) {
                                           sendTo('telegram.'+anzahlBots[a], {
                                           
                                            text: refreshed ,
                                            parse_mode:"Markdown",
                                            reply_markup: {
                                                inline_keyboard: ArrSend, 
                                                           
                                                resize_keyboard:      false,
                                                one_time_keyboard:    false,
                                                disable_notification: false,
                                                remove_Keyboard:      true  
                                            }
                                          });
                                          }
                                          
                                          return "PostIt gesendet";
                                          
                                          
                                          
                                          
                                          
                                          

                                          Image 147.png

                                          das hier, wenn du 2 eingaben pro zeile willst:

                                          let ArrSend=[];
                                          let ArrSendInner=[];
                                          let ArrSendInner2=[];
                                          let ArrSendInnerDel=[]
                                          
                                          for(let i=0;i<theAlarmJson.length;i++){
                                            ArrSendInner=[] 
                                           // if (i<3) ArrSendInner.push({
                                               if (i%2==0 && i+1<theAlarmJson.length) {log(i+" gerade")
                                                     ArrSendInner.push({
                                                               "text":theAlarmJson[i].text.substring(0, 48),
                                                               "callback_data": 'delOverTelegram.'+theAlarmJson[i].text.substring(0, 48)},
                                                               {
                                                               "text":theAlarmJson[i+1].text.substring(0, 48),
                                                               "callback_data": 'delOverTelegram.'+theAlarmJson[i+1].text.substring(0, 48)}
                                                                     )
                                                               
                                                     ArrSend.push(ArrSendInner) ;}
                                          
                                               else{ 
                                                   if (i%2==0 && i+1==theAlarmJson.length){
                                                      ArrSendInner=[]
                                                      ArrSendInner.push({
                                                               "text":theAlarmJson[i].text.substring(0, 48),
                                                               "callback_data": 'delOverTelegram.'+theAlarmJson[i].text.substring(0, 48)})
                                                      ArrSend.push(ArrSendInner)}
                                          }
                                          }
                                          if (theAlarmJson.length>0) ArrSendInnerDel.push({
                                                               "text":"DeleteAllPosts-Its !",
                                                               "callback_data": 'delAllOverTelegram.'
                                             })
                                          
                                          
                                          //log(JSON.stringify(ArrSendInner))
                                          //ArrSend.push(ArrSendInner)
                                          if(ArrSendInner2.length>0 ) ArrSend.push(ArrSendInner2)
                                          if (theAlarmJson.length>0) ArrSend.push(ArrSendInnerDel)
                                          
                                          
                                          //log("Länge: "+ArrSend[0].length)
                                          ArrSend.length==0 ? refreshed=" PostIt empty" : refreshed="refreshed PostIt";
                                          
                                          for(let a=0;a<anzahlBots.length;a++) {
                                           sendTo('telegram.'+anzahlBots[a], {
                                           
                                            text: refreshed ,
                                            parse_mode:"Markdown",
                                            reply_markup: {
                                                inline_keyboard: ArrSend, 
                                                           
                                                resize_keyboard:      false,
                                                one_time_keyboard:    false,
                                                disable_notification: false,
                                                remove_Keyboard:      true  
                                            }
                                          });
                                          }
                                          
                                          return "PostIt gesendet";
                                          
                                          
                                          
                                          
                                          
                                          

                                          Image 146.png

                                          ps: die eingabelänge pro item ist 48 zeichen - das ist durch telegram begrenzt - weil ich ja für die anzeige ein inline-keyboard verwende
                                          um zu verhindern, das es zu einem fehler kommt, bei längerer eingabe, müßtest du folgendes machen: an 2 stellen im blockly

                                          Image 148.png Image 149.png

                                          ich werde wohl noch die 3er anzeige auf vordermann bringen, da war ein fehler drin - ich habe nicht mit mehr als 6 einträgen gerechnet, da sonst eine flut an postit's über meiner vis liegen würde 🙂

                                          P 1 Reply Last reply Reply Quote 1
                                          • P
                                            PatrickFro @liv-in-sky last edited by

                                            @liv-in-sky Vielen 1000 Dank! Ich habe es nun umsetzen können in beiden Scripten. Nun wird Madame zufrieden sein 😉

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            681
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            11
                                            145
                                            11519
                                            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