Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Telegram keyboard Variable

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Telegram keyboard Variable

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

      Hallo zusammen,
      arbeite mich als Neuling in die Welt von iobrocker ein.
      Mit Java stehe ich bis jetzt noch auf Kriegsfuß.
      Hoffe deshalb auf mithilfe.
      Derzeit probiere ich in einem Javascript das an Telegram die Buttons (Ja/Nein) schickt, den Text der Buttons (Ja/Nein) als Variable zu definieren.
      Die Variable würde ich dann über Blockly füllen sofern es sowas wie Public Variable gibt.
      Alternativ könnten auch Datenpunkte statt Variable helfen.

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

      Vielen Dank u. Gruß,

      T 1 Reply Last reply Reply Quote 0
      • T
        ticaki Developer @Ballazonk last edited by ticaki

        @Ballazonk
        Es gibt keine globalen Variablen, aber wie du schon sagst States.

        // die State werden nicht sofort erzeugt, wird also beim ersten Durchlauf wohl nicht funktionieren.
        createState('javascript.0.var1');
        createState('javascript.0.var2');
        
        sendTo('telegram', {
            text:   'Bitte wähle ein Button',
            reply_markup: {
                keyboard: [
                    [getState('javascript.0.var1').val, getState('javascript.0.var2').val],
                ],
                resize_keyboard:   true,
                one_time_keyboard: true
            }
        });
        

        und dann noch was zum auslesen der Antwort, ist aber noch nix drin um selbst geschriebenes abzufangen 🙂

        createState('javascript.0.msg');
        
        on({id:'telegram.0.communicate.request',change:"any",ack:false}, function(obj){
            var msg = obj.state.val; 
            var user = msg.substring(1,msg.indexOf(']'));
            msg = msg.substring(msg.indexOf(']')+1,msg.length);
            console.log(msg);
            setState('javascript.0.msg',msg);
            sendTo('telegram', {
                user: user,
                answerCallbackQuery: {
                    text: "Pressed!",
                    showAlert: false // Optional parameter
                }
            })
        }
        

        EDIT beachten 🙂
        EDIT2 im ersten Teil fehlt noch der user.

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

          @ticaki
          Vielen Dank für die Antwort.
          Das Funktioniert top und macht das Ganze sehr viel komfortabler.
          So langsam komme ich in die Thematik rein und kann es auch nachvollziehen, für mich persönlich sehr wichtig.

          Dank u. viele Gruß

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

          Support us

          ioBroker
          Community Adapters
          Donate

          716
          Online

          31.8k
          Users

          80.0k
          Topics

          1.3m
          Posts

          2
          3
          472
          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