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 @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
        • liv-in-sky
          liv-in-sky last edited by liv-in-sky

          ich habe eine neue version des scriptes gemacht. grund:

          • das eingeben eines postits in telegram sollte besser werden
          • die mehrfache nutzung von bots nervte etwas
          • ich wollte nicht dauernd scrollen, um die aktuelle postit liste in telegram zu sehen

          zu beachten:

          • beim ersten starten und installieren des neuen scriptes, kann es zu fehlermeldungen kommen - einfach script nochmal abschalten und einschalten
          • einen bot definieren - muss auch im setting des blockly's angegeben werden - diesen bot am besten nicht für andere nachrichten benutzen, damit die postits immer an erster stelle stehen
          • falls man die datenpunkte an einer anderen stelle haben möchte, einfach das blockly exportieren, in einem editor (z.b. notepad++) importieren, mit suche und ersetzen den datenpunktepfad angleichen, script wieder importieren - ((um dieses script zu testen und das alte weiterhin benutzen zu können, kann man dies auch gut gebrauchen))

          wie sieht das ganze jetzt aus:

          -mit Farbe anlegen!

          mitFarbePostit.gif

          einen Eintrag löschen!

          löschenPostit.gif

          alles Löschen!

          alleslöschenPostit.gif

          alles erneuern

          refreshPostit.gif

          über VIS bzw. Nutung der Datenpunkte!

          DPanlegenPostit.gif

          DPalarmPostit.gif

          das script (mit chrome, edge kopieren und in die scripte kopiernen!):

          postit-blockly-neu.txt

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

            @liv-in-sky
            Schönes Script, Danke dafür 🙂

            Kann ich das Botmenü mit einem Command über Telegram wieder aufrufen?
            Konnte irgendwie kein Befehl im Script erkennen, oder ich habe Tomaten auf den Augen 😁

            Im alten Script konnte man über den Command "postit ..." einen neuen Eintrag erstellen, das ist vermutlich geplant ausschließlich über das Menü oder der VIS zu erstellen, richtig ?

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

              @spike2 richtig - dateneingabe nur noch über menü

              du kannst in telegram zuerst chatverlauf löschen lassen und dann gibst du unten einfach "refresh" ein- dann sollte sich wieder alles aufbauen

              refreshPostit.gif

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

                @liv-in-sky

                mit "refresh" klappt das wunderbar, Dankeschön 🙂👍

                Komischerweise hatte ich das schonmal die Tage probiert, hat aber nicht geklappt vielleicht war die Autokorrektur am Eingabegerät schuld oder der Anfangsbuchstabe war groß geschrieben 😉

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

                  @spike2 du kannst dein script ja angleichen und einen neues keyword vergeben 🙂

                  • renew
                  • mach neu
                    .......
                  S 1 Reply Last reply Reply Quote 0
                  • S
                    spike2 @liv-in-sky last edited by

                    @liv-in-sky ich habe es herkömmlich "Notiz" genannt 🙂

                    Was nur noch ganz nice wäre, wenn bei einer neuen Notiz das Menü aktualisiert wird oder über Telegram eine Benachrichtigung ausgegeben wird (quasi als Bestätigung das die Notiz auch geschrieben wurde).

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

                      @spike2 die Bestätigung ist der Neuaufbau in Telegramm
                      Dort wird nämlich das Json übertragen, wie es jetzt aussieht
                      So erkennt man, ob die Eingabe erfolgreich war, erscheint das neue postit in Telegramm, ist alles OK

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

                        @spike2 sagte in [HowTo] Script Sticky Notes (PostIt) für VIS und Telegram:

                        @liv-in-sky ich habe es herkömmlich "Notiz" genannt 🙂

                        Was nur noch ganz nice wäre, wenn bei einer neuen Notiz das Menü aktualisiert wird oder über Telegram eine Benachrichtigung ausgegeben wird (quasi als Bestätigung das die Notiz auch geschrieben wurde).

                        Das Menü muss aktualisiert werden, ist das nicht bei dir

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

                          @liv-in-sky

                          Nee komischerweise nicht, so siehts bei mir aus.

                          Animation2.gif

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

                            @spike2

                            schaut nicht richtig aus

                            was hast du am script verändert - wird in der vis das richtige angezeigt ?

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

                              @liv-in-sky

                              Habe lediglich den Bot, Bilder, Telegram-Instanz und "refresh" in "Notiz" geändert.

                              In der VIS wird das richtige angezeigt 👍


                              1452e905-9240-4f3a-9a93-4b50925c88b0-grafik.png

                              d9a1089f-1960-4f72-8511-e635cc97ef3a-grafik.png

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

                                @spike2 schwierig

                                poste mal dein script, dann importiere ich es mal und teste es bei mir

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

                                  @liv-in-sky

                                  Okay, da bin ich ja gespannt was bei dir passiert 😉

                                  Postit Blockly.txt

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

                                    @spike2

                                    du musst das aktivieren

                                    dann funktioniert das script bei mir

                                    Image 202.png

                                    das ist ein überbleibswel von vorgängerscript - das ist nicht die anzahl der bots sondern sagt, dass du 3 farben zur auswahl hast

                                    probier mal - mal sehen ob's funktioniert

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

                                      @spike2 sieht dann mit deinem script so aus

                                      DPalarmPostit1.gif

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

                                        @liv-in-sky sagte in [HowTo] Script Sticky Notes (PostIt) für VIS und Telegram:

                                        @spike2

                                        du musst das aktivieren

                                        das ist ein überbleibswel von vorgängerscript - das ist nicht die anzahl der bots sondern sagt, dass du 3 farben zur auswahl hast

                                        probier mal - mal sehen ob's funktioniert

                                        Habe ich aktiviert, wird aber nicht aktualisiert.
                                        Da mein Script ja bei dir funktioniert, befürchte ich an einer anderen Stelle das Problem.
                                        Muss ich mir die Tage mal anschauen, ich pausiere für heute erstmal 😉

                                        Danke aber schon mal für deine Unterstützung 👍

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

                                          @spike2

                                          ok - evtl anderes telegram setting

                                          wenn du den fehler nicht findest, kann ich auch mal mit anydesk und dir zusammen auf deinem pc nach fehler suchen

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          455
                                          Online

                                          31.7k
                                          Users

                                          79.8k
                                          Topics

                                          1.3m
                                          Posts

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