Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Telegram inline-keyboard ohne Text2Command

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    18
    1
    659

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

Telegram inline-keyboard ohne Text2Command

Geplant Angeheftet Gesperrt Verschoben Blockly
9 Beiträge 4 Kommentatoren 1.4k Aufrufe 8 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • J Offline
    J Offline
    Joshude
    schrieb am zuletzt editiert von Joshude
    #1

    Meine eigentliche Frage findet sich weiter unten im Spoiler, die habe ich mir selbst beantwortet.
    In diesem Thread werde ich nun einfach meine Erfahrungen und Fortschritte mit dem Inline-Keyboard ohne Nutzung von Text2Command posten und beschreiben. Wenn ihr Fragen habt, immer los!

    GIF in Aktion


    ~~Moin zusammen,

    sagtmal, hat jemand von euch schon erfolgreich mit Blockly ein inline-keyboard realisiert?
    Ich meine nicht das klassische Menü, was über Buttons funktioniert und dann den ganzen Chat vollspamt, sondern ein inline-keyboard-menü mit Nachrichten, sie sich quasi selbst bearbeiten.

    Telegram unterstützt die Mechanik, ich werde nur aus sämtlichen Dokus nicht schlau. Ich nutze kein Text2command, was dem aber eigentlich kein Abbruch tun sollte. Ich bin soweit, dass das inline-keyboard wunderbar klappt, ich bekomme es aber einfach nicht hin, dass das Menü nicht als neue Nachricht geschickt wird sondern eben das vorige Menü "inline" ersetzt, die Nachricht also entsprechend bearbeitet wird.

    Ich würde es gerne über blockly lösen, da mir tiefgehende JS-Kenntnisse fehlen. Hab mein Blockly mal exportiert, vielleicht hilfts einem. Ansonsten auch als JS aus der debug-ansicht:
    blockly.txt
    javascript.txt

    Vielleicht kann mir ja jemand den entscheidenden Tipp geben an welcher Stelle ich am besten wie einbaue, dass das Menü neu aufgebaut wird! Danke :)~~

    M 1 Antwort Letzte Antwort
    0
    • J Joshude

      Meine eigentliche Frage findet sich weiter unten im Spoiler, die habe ich mir selbst beantwortet.
      In diesem Thread werde ich nun einfach meine Erfahrungen und Fortschritte mit dem Inline-Keyboard ohne Nutzung von Text2Command posten und beschreiben. Wenn ihr Fragen habt, immer los!

      GIF in Aktion


      ~~Moin zusammen,

      sagtmal, hat jemand von euch schon erfolgreich mit Blockly ein inline-keyboard realisiert?
      Ich meine nicht das klassische Menü, was über Buttons funktioniert und dann den ganzen Chat vollspamt, sondern ein inline-keyboard-menü mit Nachrichten, sie sich quasi selbst bearbeiten.

      Telegram unterstützt die Mechanik, ich werde nur aus sämtlichen Dokus nicht schlau. Ich nutze kein Text2command, was dem aber eigentlich kein Abbruch tun sollte. Ich bin soweit, dass das inline-keyboard wunderbar klappt, ich bekomme es aber einfach nicht hin, dass das Menü nicht als neue Nachricht geschickt wird sondern eben das vorige Menü "inline" ersetzt, die Nachricht also entsprechend bearbeitet wird.

      Ich würde es gerne über blockly lösen, da mir tiefgehende JS-Kenntnisse fehlen. Hab mein Blockly mal exportiert, vielleicht hilfts einem. Ansonsten auch als JS aus der debug-ansicht:
      blockly.txt
      javascript.txt

      Vielleicht kann mir ja jemand den entscheidenden Tipp geben an welcher Stelle ich am besten wie einbaue, dass das Menü neu aufgebaut wird! Danke :)~~

      M Online
      M Online
      MCU
      schrieb am zuletzt editiert von
      #2

      @Joshude https://forum.iobroker.net/topic/21644/vorlage-telegram-menü-ohne-text2command/96

      NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
      Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

      J 1 Antwort Letzte Antwort
      -1
      • M MCU

        @Joshude https://forum.iobroker.net/topic/21644/vorlage-telegram-menü-ohne-text2command/96

        J Offline
        J Offline
        Joshude
        schrieb am zuletzt editiert von
        #3

        @MCU Ich weiß jetzt leider nicht, was mir der direkt von dir verlinkte Post sagen soll?! Bisschen mehr Text als nur ein Link wäre schon enorm hilfreich.

        Aber ich glaube ich habe es inzwischen selbst gelöst, zumindest sofern "unter der Haube" auch alles so ist wie es eigentlich sein soll.
        Mein Gedanke war, dass man nach Aufruf des Menüs eine Funktion aufrufen muss, die einem den vergangenen Text bearbeitet. Das ist aber quark, das macht man direkt bei Aufruf des Menüs.
        Also statt bei Aufruf des Menüs eine neue Nachricht zu schicken wir die bestehende Nachricht einfach bearbeitet. Dann klappts auch mit dem Nachbarn.

        Ganz Konkret:

        Das sind praktisch die Aufrufe der aktuell bestehenden Menüs:
        884b611d-a8b5-4753-9a66-ff45727da989-image.png

        Das "Startmenü" ist ganz klassisch eine geschickte Nachricht von Telegram ohne vorher was zu bearbeiten. Damit geht es quasi los ohne, dass man sich eine Nachricht von davor überschreibt:

        sendTo('telegram.0', {
                chatId: getState("telegram.0.communicate.requestChatId").val,
                text: "Aktion wählen",
                reply_markup: {
                    inline_keyboard: [
                        [{ text: 'Licht', callback_data: 'menu_licht' }],
                        [{ text: 'Strom', callback_data: 'menu_strom' }],
                        [{ text: 'Heizung', callback_data: 'menu_heizung' }],
                        [{ text: 'Status', callback_data: 'menu_status' }]
                    ],
                    resize_keyboard:   true,
                    one_time_keyboard: false
                }
            });
        

        Und die anderen Menüs sind nach dem Schema aufgebaut:

        sendTo('telegram.0', {
                chatId: getState("telegram.0.communicate.botSendChatId").val,
                text: 'Hauptmenü',
                editMessageText: {
                    options: {
                        chat_id: getState("telegram.0.communicate.requestChatId").val,
                        message_id: last_message_id,
                        reply_markup: {
                            inline_keyboard: [
                                [{ text: 'Licht', callback_data: 'menu_licht' }],
                                [{ text: 'Strom', callback_data: 'menu_strom' }],
                                [{ text: 'Heizung', callback_data: 'menu_heizung' }],
                                [{ text: 'Status', callback_data: 'menu_status' }]
                            ],
                        }
                    }
                }
            });
        

        Hier sieht man auch schön den Vergleich wie ein Menü aussieht, was erstellt wird (das erste) und einem Menü, bei dem das vorhige ersetzt wird (das zweite).
        Das sieht dann so aus:
        GIF in Aktion

        B 1 Antwort Letzte Antwort
        0
        • J Joshude

          @MCU Ich weiß jetzt leider nicht, was mir der direkt von dir verlinkte Post sagen soll?! Bisschen mehr Text als nur ein Link wäre schon enorm hilfreich.

          Aber ich glaube ich habe es inzwischen selbst gelöst, zumindest sofern "unter der Haube" auch alles so ist wie es eigentlich sein soll.
          Mein Gedanke war, dass man nach Aufruf des Menüs eine Funktion aufrufen muss, die einem den vergangenen Text bearbeitet. Das ist aber quark, das macht man direkt bei Aufruf des Menüs.
          Also statt bei Aufruf des Menüs eine neue Nachricht zu schicken wir die bestehende Nachricht einfach bearbeitet. Dann klappts auch mit dem Nachbarn.

          Ganz Konkret:

          Das sind praktisch die Aufrufe der aktuell bestehenden Menüs:
          884b611d-a8b5-4753-9a66-ff45727da989-image.png

          Das "Startmenü" ist ganz klassisch eine geschickte Nachricht von Telegram ohne vorher was zu bearbeiten. Damit geht es quasi los ohne, dass man sich eine Nachricht von davor überschreibt:

          sendTo('telegram.0', {
                  chatId: getState("telegram.0.communicate.requestChatId").val,
                  text: "Aktion wählen",
                  reply_markup: {
                      inline_keyboard: [
                          [{ text: 'Licht', callback_data: 'menu_licht' }],
                          [{ text: 'Strom', callback_data: 'menu_strom' }],
                          [{ text: 'Heizung', callback_data: 'menu_heizung' }],
                          [{ text: 'Status', callback_data: 'menu_status' }]
                      ],
                      resize_keyboard:   true,
                      one_time_keyboard: false
                  }
              });
          

          Und die anderen Menüs sind nach dem Schema aufgebaut:

          sendTo('telegram.0', {
                  chatId: getState("telegram.0.communicate.botSendChatId").val,
                  text: 'Hauptmenü',
                  editMessageText: {
                      options: {
                          chat_id: getState("telegram.0.communicate.requestChatId").val,
                          message_id: last_message_id,
                          reply_markup: {
                              inline_keyboard: [
                                  [{ text: 'Licht', callback_data: 'menu_licht' }],
                                  [{ text: 'Strom', callback_data: 'menu_strom' }],
                                  [{ text: 'Heizung', callback_data: 'menu_heizung' }],
                                  [{ text: 'Status', callback_data: 'menu_status' }]
                              ],
                          }
                      }
                  }
              });
          

          Hier sieht man auch schön den Vergleich wie ein Menü aussieht, was erstellt wird (das erste) und einem Menü, bei dem das vorhige ersetzt wird (das zweite).
          Das sieht dann so aus:
          GIF in Aktion

          B Offline
          B Offline
          bishop
          schrieb am zuletzt editiert von
          #4

          @Joshude
          könntest du das mal bitte als export anbieten?
          Also das komplette Blockly damit ich das auf meine sachen umbauen kann.
          Ich bekomme das nicht hin, es werden mir keine Nachrichten an Telegram geschickt.
          Habe versucht, dass nach zu bauen..

          J 1 Antwort Letzte Antwort
          0
          • B bishop

            @Joshude
            könntest du das mal bitte als export anbieten?
            Also das komplette Blockly damit ich das auf meine sachen umbauen kann.
            Ich bekomme das nicht hin, es werden mir keine Nachrichten an Telegram geschickt.
            Habe versucht, dass nach zu bauen..

            J Offline
            J Offline
            Joshude
            schrieb am zuletzt editiert von
            #5

            @bishop
            Klar, hier:
            telegraminline.txt

            Ist allerdings noch nicht 100%ig fertig. Sprich die Grundzüge gehen, es sind aber noch nicht alle Menüs und alle Grundfunktionen auf inline umgebaut.
            Was geht ist das Hauptmenü und der Aufruf der Untermenüs Strom und Licht. Heizung und Status ist noch ohne Funktion.
            Innerhalb der Menüs gibts beim Licht noch ein Untermenü "Wohnzimmer", was auch teilweise geht.

            Ich kann das Script gerne updaten, wenn ich weiter dran gebaut habe und es vollständig ist.

            Mir gefällt das mit dem inline-Menü jedenfalls wesentlich besser als das Menü mit den normalen Buttons, da der Chat nicht so vollgespammt wird.

            B 1 Antwort Letzte Antwort
            0
            • J Joshude

              @bishop
              Klar, hier:
              telegraminline.txt

              Ist allerdings noch nicht 100%ig fertig. Sprich die Grundzüge gehen, es sind aber noch nicht alle Menüs und alle Grundfunktionen auf inline umgebaut.
              Was geht ist das Hauptmenü und der Aufruf der Untermenüs Strom und Licht. Heizung und Status ist noch ohne Funktion.
              Innerhalb der Menüs gibts beim Licht noch ein Untermenü "Wohnzimmer", was auch teilweise geht.

              Ich kann das Script gerne updaten, wenn ich weiter dran gebaut habe und es vollständig ist.

              Mir gefällt das mit dem inline-Menü jedenfalls wesentlich besser als das Menü mit den normalen Buttons, da der Chat nicht so vollgespammt wird.

              B Offline
              B Offline
              bishop
              schrieb am zuletzt editiert von
              #6

              @Joshude
              vielen dank, werde mir das mal anschauen!

              J 1 Antwort Letzte Antwort
              1
              • B bishop

                @Joshude
                vielen dank, werde mir das mal anschauen!

                J Offline
                J Offline
                Joshude
                schrieb am zuletzt editiert von
                #7

                @bishop Hier mal meine aktuelle Version, wo zumindest alle Menüs was tun sollten und eigentlich auch alle Funktionen gehen sollten, wenn ich nichts übersehen habe. Jeweils mit den benötigten callback-aufrufen, damit das Menü auch vernünftig funktioniert. Hier wird dann auch der Text definiert, der als Antwort kommen soll, alternativ gibt es callback-aufrufe, die ohne Text auskommen. Sollte eigentlich alles recht selbsterklärend sein, wenn mans erstmal vor sich hat

                telegraminline.txt

                M 1 Antwort Letzte Antwort
                1
                • J Joshude

                  @bishop Hier mal meine aktuelle Version, wo zumindest alle Menüs was tun sollten und eigentlich auch alle Funktionen gehen sollten, wenn ich nichts übersehen habe. Jeweils mit den benötigten callback-aufrufen, damit das Menü auch vernünftig funktioniert. Hier wird dann auch der Text definiert, der als Antwort kommen soll, alternativ gibt es callback-aufrufe, die ohne Text auskommen. Sollte eigentlich alles recht selbsterklärend sein, wenn mans erstmal vor sich hat

                  telegraminline.txt

                  M Offline
                  M Offline
                  michael_4358
                  schrieb am zuletzt editiert von
                  #8

                  @Joshude
                  grandios!

                  hast du das alles mit blockly gemacht ode rgibt es auch ein anderes programm?

                  J 1 Antwort Letzte Antwort
                  0
                  • M michael_4358

                    @Joshude
                    grandios!

                    hast du das alles mit blockly gemacht ode rgibt es auch ein anderes programm?

                    J Offline
                    J Offline
                    Joshude
                    schrieb am zuletzt editiert von
                    #9

                    @michael_4358
                    danke dir! Das ist alles in Blockly entstanden, allerdings sind die meisten Funktionen innerhalb des Blocklys direkt JavaScript-Funktionen. Gibt noch ein paar blockly-Funktionen, die werde ich allerdings auch noch zu Javascript umbauen.

                    1 Antwort Letzte Antwort
                    1
                    Antworten
                    • In einem neuen Thema antworten
                    Anmelden zum Antworten
                    • Älteste zuerst
                    • Neuste zuerst
                    • Meiste Stimmen


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    467

                    Online

                    32.5k

                    Benutzer

                    81.6k

                    Themen

                    1.3m

                    Beiträge
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                    ioBroker Community 2014-2025
                    logo
                    • Anmelden

                    • Du hast noch kein Konto? Registrieren

                    • Anmelden oder registrieren, um zu suchen
                    • Erster Beitrag
                      Letzter Beitrag
                    0
                    • Home
                    • Aktuell
                    • Tags
                    • Ungelesen 0
                    • Kategorien
                    • Unreplied
                    • Beliebt
                    • GitHub
                    • Docu
                    • Hilfe