Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. Telegram Button Script

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Telegram Button Script

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

      Moin,

      ich möchte hier mal eine kurze Anleitung zu Telegram und Buttons geben. Falls man das Script verkürzen kann oder zusammenfassen kann könnt ihr ja gerne schreiben. Ich hab es ja leider nicht so mit dem Programmieren. :lol:

      Was wird benötigt?

      ioBroker mit Text to command Adapter und den Telegram Adapter.

      Ich gehe mal davon aus das das alles schon läuft.

      Ich trigger den ersten Button befehl per Text to command mit:

      Schalte irgendwas an oder aus | Übersicht (Das ist Aktivierungswort für die Buttons) | Haken setzen | script auswählen was wir gleich erstellen | true | Antwort leer lassen
      

      Zum Script (Beispiel Script):

      sendTo('telegram.0', {
          text:   'Bitte wähle ein Button',
          reply_markup: {
              keyboard: [
                  ['Zeit', 'Temperaturabfrage'],
              ],
              resize_keyboard:   true,
              one_time_keyboard: true
          }
      });
      

      Text wird dann beim Aktivieren im Telegram angezeigt.

      Zeit und Temperaturabfrage sind triggerwörter für Text to Command.

      Zeit ist kein Script sondern ein Text to Command befehl der die Zeit wiedergibt.

      Temperaturabfrage ist ein weiteres Script mit Buttons.

      Dazu erstellen wir mit Text to Command

      Schalte irgendwas an oder aus | Temperaturabfrage | Haken setzen | script auswählen was wir gleich erstellen | true | Antwort leer lassen
      

      Script:

      sendTo('telegram.0', {
          text:   'Wähle ein Zimmer',
          reply_markup: {
              keyboard: [
                  ['Temperatur Küche', 'Temperatur Wohnzimmer', 'Temperatur Schlafzimmer'],
                  ['Übersicht']
              ],
              resize_keyboard:   true,
              one_time_keyboard: true
          }
      });
      

      Nun habe ich oben 3 Buttons mit 3 Triggerwörtern und unten ein Button womit ich zurück auf die Übersicht komme.

      Übersicht haben wir ja schon erstellt.

      Ich habe in 3 Räumen HM Heizkörperaktoren die ich mit Text to Command nun abfrage und zwar die Temperatur mit den oben im Script geschriebenen Triggerwörtern.

      Ich hoffe das es verständlich genug beschrieben ist. Ansonsten einfach melden.

      Hier noch ein paar Bilder.
      2343_telegram.png
      2343_ttc.png

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

        Ich grabe das noch mal aus. Ich kriege es nicht gebacken ? Wenn ich die Scripte manuell auslöse erscheinen im Bot brav die Button. Aber wenn ich diese Button betätige passiert nichts ? Bzw. auch anders herum, wie löse ich am Handy die Abfrage (Button) aus ?

        Ich habe Deine Scripte mal 1 zu 1 kopiert und auch die im Screenshot gezeigten Dinge 1 zu 1 bei mir eingestellt.

        (allerdings teste ich es mit einer Abfrage wie der Status meines Fernsehers ist–-, also an oder aus)

        Irgendwas mache ich wohl falsch ?

        LG Heiko

        Edit: ich habe es hin bekommen und jetzt auch verstanden. Danke für die Anleitung.

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

          Text 2 command braucht man eigentlich nicht. Man kann auch Direkt im Script auf die Telegram Nachrichten reagieren.

          Habe sowas auch gemacht: http://forum.iobroker.net/viewtopic.php?p=78219#p78219

          Wenn ich in Telegram schreibe "Wie ist die Temperatur im Wohnzimmer" kriege ich die Antwort … "Temperatur im Wohnzimmer beträgt x °C"..

          Wenn ich schreibe "Wie warm ist es im Kellerloch"? Kriege ich eine Auswahl mit den Verfügbaren Zimmern, weil es das Zimmer "Kellerloch" im Skript nicht gibt.

          Ist eventuell auch für den ein oder anderen interessant.

          Gruß

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

            Hallo Zusammen,

            ich greife das Thema hier noch mal auf da ich aktuell eine Frage dazu habe.

            Soweit funktioniert alles mit Telegram und den Button. Aber es gibt doch bestimmt eine

            Möglichkeit die 3 Werte (oder auch noch mehr) mit einem Button abzufragen.

            Im Moment sieht es noch so aus:
            1441_telegram_temp.jpeg
            1441_texttocom.jpeg

            Ich habe es schon selber versucht, aber irgendwie fehlt da noch was oder ist falsch.

            Ich habe auch keine Ahnung wie ich das Script in Text to Command platzieren soll.
            1441_script.jpg

            Ich bin mir auch nicht sicher ob das in Zeile 4 alles stimmt da ich es aus einem bestehenden

            Script hier aus dem Forum für mich abgeändert habe.

            Vielleicht kann mir einer von den Spezialisten unter die Arme greifen und mein Script "reparieren"

            oder falls es völliger Mühl ist, eine andere Lösung vorschlagen/machen.

            Für eure Mühe vielen Dank im voraus.

            Gruss

            Paulchen

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

              was hälst Du von dieser Variante ?

              (ich bin gerade unterwegs, Script habe ich jetzt nicht zur Hand)![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201802 ... b60c51.jpg">https://uploads.tapatalk-cdn.com/20180209/9e84620c88ab8e462f7763b2c4b60c51.jpg</link_text>" />![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201802 ... c90d18.jpg">https://uploads.tapatalk-cdn.com/20180209/f1a149fd7ed615204f9e9f60a0c90d18.jpg</link_text>" />~~~~

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

                Sieht gut aus.

                Am liebsten wäre mir ein Button (z.B. Name Status) wenn ich den drücke

                sollen alle Zustände/Temperaturen usw. die mir wichtig sind, untereinander

                erscheinen wie bei Dir in deinem Fenster.

                Muss nicht sein, dass es nach Räumen unterteilt ist.

                Ich möchte nur die mir wichtigsten unter Status zusammenfassen aber auch

                die Möglichkeit haben mal einen im Script hinzuzufügen oder rauszunehmen.

                Falls ich ein bestehendes für mich umschreiben müsste, sollte es für mich als

                fortgeschrittener Anfänger machbar sein und ich würde auch gerne verstehen

                was da passiert.

                Gruss

                Paulchen

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

                  beim zweiten Bild werden ja alle angezeigt.

                  Nur sind bei meiner Variante die auf einmal anzeigbaren Werte begrenzt. Ich nutze das gleiche Script zum Abfragen der Batteriezustände, also wieviel Volt die Geräte noch haben. Wenn das Ergebnisfenster eine bestimmte Größe/Länge erreicht hatte kam eine Fehlermeldung im Log. Sinngemäß "zu lang, oder zu groß"

                  (ich wollte dort auch alle Geräte auf einmal anzeigen, sind aber fast 50 Geräte, das ging dann nicht)

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

                    deshalb bei mir der Weg über Räume..![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201802 ... 76c74f.jpg">https://uploads.tapatalk-cdn.com/20180209/e4c1c31a04d7e6c37f26b92faa76c74f.jpg</link_text>" />![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201802 ... ca52d8.jpg">https://uploads.tapatalk-cdn.com/20180209/e42e1545840d1d619c2c3296e0ca52d8.jpg</link_text>" />~~~~

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

                      So viele werden es bei mir nicht. Sind zwar mitlerweile auch 52 Geräte,

                      aber ich will wie gesagt nur die mir wichtigsten angezeigt bekommen.

                      6 Systemvariablen

                      3 Temperaturen und Luftfeuchte

                      1 Terrassentür

                      und dann noch 4-5 Zustände von Aktoren.

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

                        ach ja, hier steht das Script schon…

                        http://forum.iobroker.net/viewtopic.php ... 43#p100143

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

                          Oh Ha, das ist aber ein ordentliches Script.

                          Da werde ich beim umschreiben sicherlich Hilfe benötigen.

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

                            sieht nur so viel aus (durch die Menge der Geräte)

                            Wenn Du es in Ruhe auf dem PC anschaust wirst Du das sehen.

                            Ist eigentlich nicht viel drann.

                            Der obere Teil sind die Button und danach kommen die abzufragenden Geräte.

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

                              OK.

                              Hab mir das Script mal näher angesehen.

                              Bis auf eine Zeile (Zeile 5) und in Teilen Zeile 3 und 4, ist mir alles klar und ich weiß

                              wie ich es umschreiben muss.

                              Zeile 5

                              if (befehl.search(/(?=.*(\bBATTERIE\b|\bVOLL\b|\bLEER\b|\bVOLT\b)).+/ig) != -1)

                              Ich vermute das da ein Zusammenhang besteht mit Zeile 4.

                              Was in Zeile 3 und 4 passiert ist mir auch nicht ganz klar und ob ich da was für mich

                              umschreiben muss.

                              var benutzer = stateval.substring(1,stateval.indexOf("]"));

                              var befehl = stateval.substring(stateval.indexOf("]")+1,stateval.length);

                              Wenn ich das Script umgeschrieben habe rufe ich es über Text to Command auf indem

                              ich einen Button (z.B. Status) damit belege, oder?

                              Gruß

                              Paulchen

                              Edit:

                              Hab es jetzt mal für mich umgeschrieben bis auf besagte Zeile 5.

                              Läuft aber so noch nicht.

                              id: 'telegram.0.communicate.request', change: 'any'}, function (obj) {
                                  var stateval = getState('telegram.0.communicate.request').val;              // Statevalue in Variable schreiben
                                  var benutzer = stateval.substring(1,stateval.indexOf("]"));                 // Benutzer aus Statevalue extrahieren
                                  var befehl = stateval.substring(stateval.indexOf("]")+1,stateval.length);   // Befehl/Text aus Statevalue extrahieren
                              
                                   if (befehl.search(/(?=.*(\bBATTERIE\b|\bVOLL\b|\bLEER\b|\bVOLT\b)).+/ig) != -1) {
                                      sendTo('telegram', {
                                          user: benutzer,
                                          text: 'Für welchen Raum möchtest du den Status abfragen?',
                                          reply_markup: {
                                              inline_keyboard: [
                              //                    [{ text: 'alle Räume', callback_data: '%Status'}],
                                                  [{ text: 'Wohnzimmer', callback_data: '%StatusWohnzimmer'}],
                                                  [{ text: 'Flur', callback_data: '%StatusFlur'}],
                                                  [{ text: 'Keller', callback_data: '%StatusKeller'}], 
                                                  [{ text: 'Terrasse', callback_data: '%StatusTerrasse'}],
                                                  [{ text: 'Garten', callback_data: '%StatusGarten'}],
                                              ]
                                           }
                                      });
                                  }    
                              
                              // Auswahl alle Räume oder einzeln.Alle Räume ist für Telegramm zu lang = Fehler im log
                              /*    else if (befehl === "%Status") {
                                          sendTo('telegram', {
                                          user: benutzer,
                                          text: "Alle Räume Status angefragt",
                                          answerCallbackQuery: {
                                          text:
                                                  '\nXXX ' + getState().val + 
                                                  '\nXXX ' + getState().val +
                                                  '\nXXX ' + getState().val +
                                                  '\nXXX ' + getState().val + 
                                                  '\nXXX ' + getState().val +
                                                  '\nXXX ' + getState().val +
                                                  '\nXXX ' + getState().val            
                                          ,
                                          showAlert: true
                                          }
                                      });
                                  }*/ 
                                  else if (befehl === "%StatusWohnzimmer") {
                                          sendTo('telegram', {
                                          user: benutzer,
                                          text: "Wohnzimmer Status angefragt",
                                          answerCallbackQuery: {
                                          text: 
                                                  'Schranklicht ' + getState("hm-rpc.0.GEQ0209223.1.STATE").val + 
                                                  ' %\nWohnzimmerlicht ' + getState("hm-rpc.0.NEQ0257178.1.LEVEL").val +
                                                  ' %\nEsszimmerlicht ' + getState("hm-rpc.0.JEQ0202637.1.LEVEL").val +
                                                  '\nSteckdose Laptop ' + getState("hm-rpc.0.MEQ1435110.1.STATE").val +
                                                  '\nSteckdose Tablet ' + getState("hm-rpc.0.GEQ0209632.1.STATE").val +
                                                  '\nTerrassentür ' + getState("hm-rpc.0.MEQ0179152.1.STATE").val
                                          ,
                                          showAlert: true
                                          }
                                      });
                                  } 
                                  else if (befehl === "%StatusFlur") {
                                          sendTo('telegram', {
                                          user: benutzer,
                                          text: "Flur Status angefragt",
                                          answerCallbackQuery: {
                                          text: 
                                                  'Repeater ' + getState("hm-rpc.0.HEQ0102360.2.STATE").val + 
                                                  '\nAndriod laden ' + getState("hm-rpc.0.HEQ0102360.1.STATE").val +
                                                  '\nFlurlicht ' + getState("hm-rpc.0.JEQ0097197.1.STATE").val +
                                                  '\nNachtlicht ' + getState("hm-rpc.0.OEQ0174232.1.STATE").val +
                                                  '\nHaustürCam ' + getState("hm-rpc.0.HEQ0175625.1.STATE").val
                                          ,
                                          showAlert: true
                                          }
                                      });
                                  }
                                  else if (befehl === "%Status Keller") {
                                          sendTo('telegram', {
                                          user: benutzer,
                                          text: "Keller Status angefragt",
                                          answerCallbackQuery: {
                                          text: 
                                                  'Kellerfenster Links ' + getState("hm-rpc.0.LEQ1175462.1.STATE").val + 
                                                  '\nKellerfenster Rechts ' + getState("hm-rpc.0.LEQ1175621.1.STATE").val +
                                                  '\nLuftentfeuchter ' + getState("hm-rpc.0.GEQ0209623.1.STATE").val +
                                                  '\nSteckdose KellerCam ' + getState("hm-rpc.0.HEQ0102493.2.STATE").val +
                                                  '\nRPi ioBroker ' + getState("hm-rpc.0.MEQ1565039.1.STATE").val +
                                                  '\nRPi Nextcloud ' + getState("hm-rpc.0.MEQ1561418.1.STATE").val
                                          ,
                                          showAlert: true
                                          }
                                      });
                                  }
                                  else if (befehl === "%StatusTerrasse") {
                                          sendTo('telegram', {
                                          user: benutzer,
                                          text: "Terrasse Status angefragt",
                                          answerCallbackQuery: {
                                          text: 
                                                  'Markisse ' + getState("hm-rpc.0.NEQ1320295.1.LEVEL").val + 
                                                  ' %\nÜberdachung ' + getState("hm-rpc.0.MEQ1008372.1.STATE").val +
                                                  '\nFrei ' + getState("hm-rpc.0.MEQ1008372.2.STATE").val +
                                                  '\nTerrassenbeleuchtung ' + getState("hm-rpc.0.GEQ0209667.1.STATE").val
                                          ,
                                          showAlert: true
                                          }
                                      });
                                  }
                                  else if (befehl === "%StatusGarten") {
                                          sendTo('telegram', {
                                          user: benutzer,
                                          text: "Garten Status angefragt",
                                          answerCallbackQuery: {
                                          text: 
                                                  'Gartenlicht ' + getState().val +
                                                  ' %\nGartenhaus ' + getState("hm-rpc.0.LEQ0771728.1.STATE").val + 
                                                  '\nGartenhauslicht ' + getState("hm-rpc.0.OEQ0818221.1.STATE").val + 
                                                  '\nBW-Melder ' + getState("hm-rpc.0.LEQ1278626.1.MOTION").val +
                                                  '\nLichtwert ' + getState("hm-rpc.0.LEQ1278626.1.BRIGHTNESS").val + 'Lux '
                                          ,
                                          showAlert: true
                                          }
                                      });
                                  }
                              
                              1 Reply Last reply Reply Quote 0
                              • dslraser
                                dslraser Forum Testing Most Active last edited by

                                @Paulchen67:

                                OK.

                                Hab mir das Script mal näher angesehen.

                                Bis auf eine Zeile (Zeile 5) und in Teilen Zeile 3 und 4, ist mir alles klar und ich weiß

                                wie ich es umschreiben muss.

                                Zeile 5

                                if (befehl.search(/(?=.*(\bBATTERIE\b|\bVOLL\b|\bLEER\b|\bVOLT\b)).+/ig) != -1)

                                Ich vermute das da ein Zusammenhang besteht mit Zeile 4.

                                Was in Zeile 3 und 4 passiert ist mir auch nicht ganz klar und ob ich da was für mich

                                umschreiben muss.

                                var benutzer = stateval.substring(1,stateval.indexOf("]"));

                                var befehl = stateval.substring(stateval.indexOf("]")+1,stateval.length);

                                Wenn ich das Script umgeschrieben habe rufe ich es über Text to Command auf indem

                                ich einen Button (z.B. Status) damit belege, oder?

                                Gruß

                                Paulchen

                                Edit:

                                Hab es jetzt mal für mich umgeschrieben bis auf besagte Zeile 5.

                                Läuft aber so noch nicht.

                                id: 'telegram.0.communicate.request', change: 'any'}, function (obj) {
                                    var stateval = getState('telegram.0.communicate.request').val;              // Statevalue in Variable schreiben
                                    var benutzer = stateval.substring(1,stateval.indexOf("]"));                 // Benutzer aus Statevalue extrahieren
                                    var befehl = stateval.substring(stateval.indexOf("]")+1,stateval.length);   // Befehl/Text aus Statevalue extrahieren
                                
                                     if (befehl.search(/(?=.*(\bBATTERIE\b|\bVOLL\b|\bLEER\b|\bVOLT\b)).+/ig) != -1) {
                                        sendTo('telegram', {
                                            user: benutzer,
                                            text: 'Für welchen Raum möchtest du den Status abfragen?',
                                            reply_markup: {
                                                inline_keyboard: [
                                //                    [{ text: 'alle Räume', callback_data: '%Status'}],
                                                    [{ text: 'Wohnzimmer', callback_data: '%StatusWohnzimmer'}],
                                                    [{ text: 'Flur', callback_data: '%StatusFlur'}],
                                                    [{ text: 'Keller', callback_data: '%StatusKeller'}], 
                                                    [{ text: 'Terrasse', callback_data: '%StatusTerrasse'}],
                                                    [{ text: 'Garten', callback_data: '%StatusGarten'}],
                                                ]
                                             }
                                        });
                                    }    
                                    
                                // Auswahl alle Räume oder einzeln.Alle Räume ist für Telegramm zu lang = Fehler im log
                                /*    else if (befehl === "%Status") {
                                            sendTo('telegram', {
                                            user: benutzer,
                                            text: "Alle Räume Status angefragt",
                                            answerCallbackQuery: {
                                            text:
                                                    '\nXXX ' + getState().val + 
                                                    '\nXXX ' + getState().val +
                                                    '\nXXX ' + getState().val +
                                                    '\nXXX ' + getState().val + 
                                                    '\nXXX ' + getState().val +
                                                    '\nXXX ' + getState().val +
                                                    '\nXXX ' + getState().val            
                                            ,
                                            showAlert: true
                                            }
                                        });
                                    }*/ 
                                    else if (befehl === "%StatusWohnzimmer") {
                                            sendTo('telegram', {
                                            user: benutzer,
                                            text: "Wohnzimmer Status angefragt",
                                            answerCallbackQuery: {
                                            text: 
                                                    'Schranklicht ' + getState("hm-rpc.0.GEQ0209223.1.STATE").val + 
                                                    ' %\nWohnzimmerlicht ' + getState("hm-rpc.0.NEQ0257178.1.LEVEL").val +
                                                    ' %\nEsszimmerlicht ' + getState("hm-rpc.0.JEQ0202637.1.LEVEL").val +
                                                    '\nSteckdose Laptop ' + getState("hm-rpc.0.MEQ1435110.1.STATE").val +
                                                    '\nSteckdose Tablet ' + getState("hm-rpc.0.GEQ0209632.1.STATE").val +
                                                    '\nTerrassentür ' + getState("hm-rpc.0.MEQ0179152.1.STATE").val
                                            ,
                                            showAlert: true
                                            }
                                        });
                                    } 
                                    else if (befehl === "%StatusFlur") {
                                            sendTo('telegram', {
                                            user: benutzer,
                                            text: "Flur Status angefragt",
                                            answerCallbackQuery: {
                                            text: 
                                                    'Repeater ' + getState("hm-rpc.0.HEQ0102360.2.STATE").val + 
                                                    '\nAndriod laden ' + getState("hm-rpc.0.HEQ0102360.1.STATE").val +
                                                    '\nFlurlicht ' + getState("hm-rpc.0.JEQ0097197.1.STATE").val +
                                                    '\nNachtlicht ' + getState("hm-rpc.0.OEQ0174232.1.STATE").val +
                                                    '\nHaustürCam ' + getState("hm-rpc.0.HEQ0175625.1.STATE").val
                                            ,
                                            showAlert: true
                                            }
                                        });
                                    }
                                    else if (befehl === "%Status Keller") {
                                            sendTo('telegram', {
                                            user: benutzer,
                                            text: "Keller Status angefragt",
                                            answerCallbackQuery: {
                                            text: 
                                                    'Kellerfenster Links ' + getState("hm-rpc.0.LEQ1175462.1.STATE").val + 
                                                    '\nKellerfenster Rechts ' + getState("hm-rpc.0.LEQ1175621.1.STATE").val +
                                                    '\nLuftentfeuchter ' + getState("hm-rpc.0.GEQ0209623.1.STATE").val +
                                                    '\nSteckdose KellerCam ' + getState("hm-rpc.0.HEQ0102493.2.STATE").val +
                                                    '\nRPi ioBroker ' + getState("hm-rpc.0.MEQ1565039.1.STATE").val +
                                                    '\nRPi Nextcloud ' + getState("hm-rpc.0.MEQ1561418.1.STATE").val
                                            ,
                                            showAlert: true
                                            }
                                        });
                                    }
                                    else if (befehl === "%StatusTerrasse") {
                                            sendTo('telegram', {
                                            user: benutzer,
                                            text: "Terrasse Status angefragt",
                                            answerCallbackQuery: {
                                            text: 
                                                    'Markisse ' + getState("hm-rpc.0.NEQ1320295.1.LEVEL").val + 
                                                    ' %\nÜberdachung ' + getState("hm-rpc.0.MEQ1008372.1.STATE").val +
                                                    '\nFrei ' + getState("hm-rpc.0.MEQ1008372.2.STATE").val +
                                                    '\nTerrassenbeleuchtung ' + getState("hm-rpc.0.GEQ0209667.1.STATE").val
                                            ,
                                            showAlert: true
                                            }
                                        });
                                    }
                                    else if (befehl === "%StatusGarten") {
                                            sendTo('telegram', {
                                            user: benutzer,
                                            text: "Garten Status angefragt",
                                            answerCallbackQuery: {
                                            text: 
                                                    'Gartenlicht ' + getState().val +
                                                    ' %\nGartenhaus ' + getState("hm-rpc.0.LEQ0771728.1.STATE").val + 
                                                    '\nGartenhauslicht ' + getState("hm-rpc.0.OEQ0818221.1.STATE").val + 
                                                    '\nBW-Melder ' + getState("hm-rpc.0.LEQ1278626.1.MOTION").val +
                                                    '\nLichtwert ' + getState("hm-rpc.0.LEQ1278626.1.BRIGHTNESS").val + 'Lux '
                                            ,
                                            showAlert: true
                                            }
                                        });
                                    }
                                ```` `  
                                

                                In Zeile 5 stehen lediglich "Schlagworte" für Telegram, womit Du die Funktion in Telegram aufrufen kannst. Die kannst Du nach Deinen wünschen anpassen. Also für meine Batterieabfrage nutze ich halt die Begriffe voll/leer/ oder volt (einer würde auch reichen).

                                Für Temperaturabfragen habe ich sowas wie warm oder kalt (halt möglichst kurz, damit ich in Telegramm nicht erst soviel eintippen muss)

                                Text to Command brauchst Du hier gar nicht. Das macht genau diese Zeile 5.

                                Also einfach die oder das Schlagwort bei Telegram eintippen und das Script ruft die Button auf.

                                PS: irgendwie fehlt bei Dir aber auch ganz am Anfang das on… (bei id)

                                PPS: wenn Du das von mir verlinkte Script 1:1 übernimmst und bei Dir einfügst und startest und dann in Deinem Telegram Bot die Begriffe wie voll/leer/volt usw. eintippst und absendest sollten schon mal alle Button da sein (die Du ja verändern kannst im Script). Abfragen kannst Du dann natürlich mit den angezeigten Buttons noch nichts, dafür musst Du Deine Geräte im Script hinterlegen/umschreiben.

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

                                  So, funktioniert ohne Probleme.

                                  Danke, für deine Unterstützung.

                                  Jetzt würde mich noch interessieren, ob man das Aufklappen der

                                  Tastatur unterdrücken kann wenn ich durch das Schlüsselwort das

                                  Script aufrufe.
                                  1441_ca3d8e81-d35a-43f3-b2c8-2da2e7045e52.jpeg

                                  Gruß

                                  Paulchen

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

                                    das mit der Tastatur weiß ich leider nicht…

                                    1 Reply Last reply Reply Quote 0
                                    • R
                                      robsdobs last edited by

                                      Es ist möglich eine gesendete Message zu editieren und damit beispielsweise die Tastatur zu entfernen. (es gibt ein zeitliches Limit)

                                      Dafür benötigst du die message ID der Meldung. Im Github gibt es einen Pull request der zwei neue Datenpunkte hinzufügt, welche die chat ID und message ID der zuletzt gesendeten Meldung enthält.

                                      Bis dahin kannst du auch die message ID der letzten empfangenen Meldung nehmen und eins dazu addieren. Solange du nicht mehrere Nutzer hast funktioniert das.

                                      1 Reply Last reply Reply Quote 0
                                      • B
                                        bishop last edited by

                                        Ist es auch möglich den button im telegram zu bekommen ohne etwas eingeben zu müssen am anfang?

                                        Also direkt bei öffnen des bot channels.

                                        4663_screenshot_20180226-170734.png

                                        1 Reply Last reply Reply Quote 0
                                        • J
                                          jan.beres last edited by

                                          Hallo,

                                          Ich brauche mal wieder eure Hilfe da ich leider noch gar keinen Plan von Scripten habe.

                                          Ich möchte gerne im Telegramm Unterpunkte haben, sodass ich zb. Erst auf LED drücken muss und dann die Farben auswählen kann.

                                          Bis jetzt sieht es so aus:

                                          sendTo('telegram.0', {

                                          text: 'Bitte wähle ein Button',

                                          reply_markup: {

                                          keyboard: [

                                          ['Wohnwand An', 'Wohnwand Aus'],

                                          ['Arbeitszimmerlicht An', 'Arbeitszimmerlicht Aus'],

                                          ['LED An', 'LED Aus'],

                                          ['LED Blau'],

                                          ['LED Rot'],

                                          ['LED Grün'],

                                          ['LED Gelb'],

                                          ['LED Weiß'],

                                          ],

                                          resize_keyboard: true,

                                          one_time_keyboard: true

                                          }

                                          });

                                          Vielen Dank im Vorraus

                                          Jan

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

                                            Das geht doch relativ einfach.

                                            Einfach ein Unter Script erstellen in dem du dann die Farben ändern kannst.

                                            Dann kannst du das Script z.B Farben nennen und auf Farben einen Trigger setzen.

                                            Es macht wahrscheinlich sinn die Farbwahl neben An/Aus zu platzieren.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.0k
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            15
                                            41
                                            21595
                                            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