Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test Adapter telegram-menu v.1.6.x

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Test Adapter telegram-menu v.1.6.x

    This topic has been deleted. Only users with topic management privileges can see it.
    • Michael Roling
      Michael Roling Developer @Speedy012 last edited by

      @speedy012 so jetzt kann man die rows verschieben in der Navigation!

      S 1 Reply Last reply Reply Quote 0
      • S
        Speedy012 @Michael Roling last edited by

        @michael-roling 👍 sehr schön,

        1 Reply Last reply Reply Quote 1
        • S
          Supernils last edited by

          Toller Adapter. Vielen Dank.
          Kann man den Text (z.B. "Wähle eine Aktion") bei der Navigation irgendwie unterdrücken?

          Michael Roling 1 Reply Last reply Reply Quote 0
          • Michael Roling
            Michael Roling Developer @Supernils last edited by

            @supernils hallo, das geht meines wissens nicht

            1 Reply Last reply Reply Quote 0
            • F
              fritzke316 last edited by fritzke316

              Ich habe den Adapter jetzt auch mal getestet, und soweit funktioniert alles super, echt toller Adapter!!
              Nur eine Frage habe ich, kann man einen Benutzer auch irgendwie umbenenen? Hatte erst den falschen Benutzer eingetragen und erst gemerkt als ich schon einen Teil meines Menüs gebastelt hatte, dann konnte ich nur noch den Benutzer löschen, neu anlegen und das Menü neu erstellen 😞
              Vielleicht wäre es auch ganz gut wenn die anderen Menüs so wie das Globale funktionieren, d.h. Man legt ein Menü an und kann dann in einer separaten Zeile angeben welcher Benutzer dieses Menü erhält, dann kann man das auch einfach immer wieder umstellen.

              S Michael Roling 2 Replies Last reply Reply Quote 1
              • S
                Speedy012 @fritzke316 last edited by

                Ich habe keine Ahnung was für ein Aufwand das ist. Aber vielleicht ist es auch möglich Menü Teile Benutzern zuzuweisen. Meine Frau braucht z.B. nicht das selbe Menü wie ich, aber einige Teile. Aktuell müsste man aber für jeden User ein eigenes Menü erstellen. Vielleicht kann man das durch Haken setzen irgend wie realisieren.

                Ist nur eine Idee.

                Michael Roling 1 Reply Last reply Reply Quote 1
                • Michael Roling
                  Michael Roling Developer @fritzke316 last edited by Michael Roling

                  @fritzke316 hi danke für das Feedback.
                  Das umbenennen setzte ich mit auf meine todo Liste.
                  Den anderen Punkt schaue ich mir auch noch mal an.

                  Evtl. nehme ich die User komplett raus, und auch den Global User, und man erstellt nur noch Gruppen, in denen man wie beim Global User nur noch die einzelnen User hinzufügt

                  F 1 Reply Last reply Reply Quote 0
                  • Michael Roling
                    Michael Roling Developer @Speedy012 last edited by Michael Roling

                    @speedy012 die Frage die sich mir nur dazu stellt ist, wie übersichtlich bleibt das ganze? Halte ich aber im Hinterkopf

                    Vielleicht macht es auch Sinn eine kopierfunktion ein zu bauen in der man verschiedene Elemente in ein anderes User Profil hinzufügt. Evtl in kombination mit dem Post hiervor

                    1 Reply Last reply Reply Quote 0
                    • F
                      fritzke316 @Michael Roling last edited by

                      @michael-roling Ja genau etwa so hätte ich mir das auch gedacht, dann ist man immer flexibel und kann die User einfach von einer Gruppe in die andere schieben wie man grad lust hat 🙂

                      1 Reply Last reply Reply Quote 1
                      • Michael Roling
                        Michael Roling Developer last edited by

                        Ich habe mal wieder ein wenig am Adapter gearbeitet.
                        Ab jetzt kann man nur noch Gruppen erstellen, in der man zwingenderweise User eintragen muss.
                        Wenn ihr die neue Version installiert füllt dieses bitte direkt aus.

                        • Man kann diese Gruppen umbenennen. Deren Name hat aber für den Ablauf keine Bedeutung. Ist nur für die Übersicht.

                        Als nächstes wäre der Plan einzelne Daten aus anderen Gruppen importieren zu können.

                        Ich bin wie immer auf euer Feedback gespannt.

                        Schmakus 1 Reply Last reply Reply Quote 0
                        • Schmakus
                          Schmakus Developer @Michael Roling last edited by Schmakus

                          @michael-roling Hi, hab den Adapter auch mal getestet. Ich finde es gut, einen Adapter für ein Telegram-Menü bereitzustellen, da doch viele Script-Lösungen unterwegs sind, welche aber für einen normalen User kaum handlebar sind.

                          Ich finde die Konfiguration etwas umständlich. Evtl. könntest mit jsonConfig eine übersichtlichere UI erstellen?

                          Des Weiteren könntest dir mal die callback-Funktion von Telegram anschauen. Dadurch lassen sich m.M. gute Untermenüs erstellen, wie auch einen Zurück-Button, mit welchem man immer in das vorherige Menü gelangt.
                          Ich habe mal mit JS etwas herumgespielt. Vielleicht bringt dich das auf die eine oder andere Idee?!

                          Eine weiterer Vorschlag wäre, mit einer Art Gerätesteuerung zu arbeiten. Bedeutet es gibt Standard-Texte wie "Ein", "Aus", ... welche sich auf das zuvor ausgewählte Gerät und deren Datenpunkte beziehen. Beispiel: Ich wähle "Zisterne" im Menü und bekomme ein Untermenü mit "Ein", Aus" / Ich wähle Lampe1 und bekomme ein Untermenü mit "Ein", "Aus", usw.

                          Hierzu muss man sich das Gerät (in dem Fall Zisterne) merken bis ein anderes Gerät über ein Menü gewählt wird.

                          Callback-Funktion:

                          const adapterName = 'telegram.0';
                          
                          on({ id: `${adapterName}.communicate.request`, change: 'any' }, (obj) => {
                              const val = obj.state.val;
                              const username = val.substring(1, val.indexOf("]"));
                              const text = val.substring(val.indexOf("]") + 1).trim();
                              const chatId = getState(`${adapterName}.communicate.requestChatId`).val;
                          
                              if (text === '/menu') {
                                  const keyboard = {
                                      inline_keyboard: [
                                          [
                                              {
                                                  text: 'First Level 1 Option',
                                                  callback_data: 'menu:firstLevel1'
                                              },
                                              {
                                                  text: 'First Level 2 Option',
                                                  callback_data: 'menu:firstLevel2'
                                              }
                                          ]
                                      ]
                                  };
                                  sendTo(`${adapterName}`, 'send', { chatId: chatId, text: 'Please select an option:', reply_markup: JSON.stringify(keyboard) });
                              } else if (text.startsWith('menu:')) {
                                  const callbackData = text.split(':')[1];
                                  if (callbackData === 'firstLevel1') {
                                      const keyboard = {
                                          inline_keyboard: [
                                              [
                                                  {
                                                      text: 'Second Level 1 Option',
                                                      callback_data: 'submenu:firstLevel1:secondLevel1'
                                                  },
                                                  {
                                                      text: 'Second Level 2 Option',
                                                      callback_data: 'submenu:firstLevel1:secondLevel2'
                                                  }
                                              ],
                                              [
                                                  {
                                                      text: 'Back to Main Menu',
                                                      callback_data: 'menu:back'
                                                  }
                                              ]
                                          ]
                                      };
                                      sendTo(`${adapterName}`, 'send', { chatId: chatId, text: 'You selected First Level 1. Please select a sub-option:', reply_markup: JSON.stringify(keyboard) });
                                  } else if (callbackData === 'firstLevel2') {
                                      sendTo(`${adapterName}`, 'send', { chatId: chatId, text: 'You selected First Level 2.' });
                                  } else if (callbackData.startsWith('submenu:firstLevel1:')) {
                                      const subCallbackData = callbackData.split(':')[2];
                                      if (subCallbackData === 'secondLevel1') {
                                          const keyboard = {
                                              inline_keyboard: [
                                                  [
                                                      {
                                                          text: 'Back to First Level 1',
                                                          callback_data: 'submenu:firstLevel1:back'
                                                      },
                                                      {
                                                          text: 'Back to Main Menu',
                                                          callback_data: 'menu:back'
                                                      }
                                                  ]
                                              ]
                                          };
                                          sendTo(`${adapterName}`, 'send', { chatId: chatId, text: 'You selected Second Level 1. Please select an option:', reply_markup: JSON.stringify(keyboard) });
                                      } else if (subCallbackData === 'secondLevel2') {
                                          sendTo(`${adapterName}`, 'send', { chatId: chatId, text: 'You selected Second Level 2.' });
                                      }
                                  } else if (callbackData === 'back') {
                                      const keyboard = {
                                          inline_keyboard: [
                                              [
                                                  {
                                                      text: 'First Level 1 Option',
                                                      callback_data: 'menu:firstLevel1'
                                                  },
                                                  {
                                                      text: 'First Level 2 Option',
                                                      callback_data: 'menu:firstLevel2'
                                                  }
                                              ]
                                          ]
                                      };
                                      sendTo(`${adapterName}`, 'send', { chatId: chatId, text: 'Please select an option:', reply_markup: JSON.stringify(keyboard) });
                                  }
                              }
                          });
                          
                          
                          Michael Roling 1 Reply Last reply Reply Quote 1
                          • Michael Roling
                            Michael Roling Developer @Schmakus last edited by

                            @schmakus Hi vielen Dank für dein Feedback.
                            Die Konfiguration möchte ich nicht mit jsonConfig machen, habe das zwar in meinen anderen Adapter damit gemacht. Ich denke so bin ich doch um einiges flexibler.
                            Wegen der Übersicht, da hast du sicherlich Recht, es ist immer Luft nach oben. Was stört dich denn am meisten? Bisher habe ich erstmal die Priorität aufs funktionelle gelegt.
                            Mit den Menus werde ich mir noch mal anschauen, genau wie die Gerätesteuerung. Ist sicherlich eine coole Idee.

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

                              @michael-roling Erstmal Dankeschön für den Adapter, so ist es relativ einfach ein Menü zu erstellen.
                              Wäre es möglich die Nachricht "Eintrag wurde nicht gefunden!" zu unterbinden?
                              Ich habe diverse Blockly Scripte mit Commands zu laufen, da ist klar das der Adapter den Command natürlich nicht finden kann 😉

                              Michael Roling 2 Replies Last reply Reply Quote 1
                              • Michael Roling
                                Michael Roling Developer @spike2 last edited by

                                @spike2
                                Danke für dein Feedback.
                                Ja das ist möglich. Werde ich mir anschauen.

                                1 Reply Last reply Reply Quote 1
                                • Michael Roling
                                  Michael Roling Developer @spike2 last edited by

                                  @spike2 so ich habe etwas hoch geladen. Jetzt kann man in den Settings den Text einstellen!

                                  S Negalein 2 Replies Last reply Reply Quote 1
                                  • S
                                    spike2 @Michael Roling last edited by

                                    @michael-roling Ahh super, werde ich morgen ausprobieren. Vielen Dank schon mal 👍

                                    1 Reply Last reply Reply Quote 0
                                    • Negalein
                                      Negalein Global Moderator @Michael Roling last edited by

                                      @michael-roling sagte in Test Adapter telegram-menu v.0.2.x:

                                      Jetzt kann man in den Settings den Text einstellen!

                                      wenn das damit gemeint ist, dann funktioniert es super.
                                      825433fc-b290-42a2-9548-02d4583d90dd-image.png

                                      PS: gibt es eine Möglichkeit, das true false als ein aus weiterzugeben?
                                      Seh da schon das Problem bei der Chefin 😉

                                      Michael Roling 1 Reply Last reply Reply Quote 0
                                      • Michael Roling
                                        Michael Roling Developer @Negalein last edited by

                                        @negalein hi, nein das ist damit nicht gemeint 😉.
                                        Es geht um den Text der gesendet wird wenn der Eintrag nicht gefunden wird.
                                        Da du sicherlich Switch nutzt, muss ich mir etwas dazu überlegen.
                                        Bei einem normalen Set geht das so schon.

                                        S Michael Roling 2 Replies Last reply Reply Quote 1
                                        • S
                                          spike2 @Michael Roling last edited by

                                          @michael-roling Funktioniert super, Vielen Dank dafür 🙂

                                          1 Reply Last reply Reply Quote 1
                                          • Michael Roling
                                            Michael Roling Developer @Michael Roling last edited by

                                            @michael-roling so ich habe auch dieses endlich hinzugefügt. Nun kannst du Values ändern indem du dieses am Ende in den Text einfügst - change{"true":"an", "false":"aus"}, oder nach deinen Wünschen veränderst

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            589
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            58
                                            1730
                                            558287
                                            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