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

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    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 @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
                                      • Michael Roling
                                        Michael Roling Developer last edited by

                                        Neuerung:

                                        • wenn man werte setzt werden diese immer als bestätigt gesetzt, möchte man aber den Wert als unbestätigt setzen , zum Beispiel um andere Adapter zu steuern, muss dieses angegeben werden, siehe Doku.
                                        • Es können einzelne Elemente aus anderen Gruppen übernommen werden
                                        M 1 Reply Last reply Reply Quote 0
                                        • Michael Roling
                                          Michael Roling Developer last edited by Michael Roling

                                          @schmakus
                                          ich bin gerade damit angefangen submenus in den Adapter zu integrieren, nutzt du in irgendeiner Art diese Menus schon per skript?
                                          Bisher habe ich schon ein Menu mit on und off, so kann ich Datenpunkt mit dem selben Menu schalten. Das gleiche kann man schnell mit ja und nein machen.

                                          Vielleicht hast du ja noch andere ideen. Das submenu als navigation zu nutzen, macht in meinen augen wenig Sinn.

                                          Update!
                                          Ich habe jetzt noch ein Menu gebaut in dem man Prozente setzen kann einmal von 0-100 im 10er Schritt und einmal im 20ziger Schritt. Das kann man gut für Rollos nutzen.

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

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

                                            @schmakus
                                            ich bin gerade damit angefangen submenus in den Adapter zu integrieren, nutzt du in irgendeiner Art diese Menus schon per skript?
                                            Bisher habe ich schon ein Menu mit on und off, so kann ich Datenpunkt mit dem selben Menu schalten. Das gleiche kann man schnell mit ja und nein machen.

                                            Vielleicht hast du ja noch andere ideen. Das submenu als navigation zu nutzen, macht in meinen augen wenig Sinn.

                                            Update!
                                            Ich habe jetzt noch ein Menu gebaut in dem man Prozente setzen kann einmal von 0-100 im 10er Schritt und einmal im 20ziger Schritt. Das kann man gut für Rollos nutzen.

                                            Hi, ich verwende Submenüs für Ein/Aus, Hochdimmen/Runterdimmen und wie du auch erwähnt hast mit Werten für Rollläden oder Dimm-Level von Lampen.
                                            Bei jedem Submenü habe ich einen Zurück-Button, um wieder auf z.B. meine Lampenübersicht zu kommen.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            618
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            58
                                            1719
                                            512559
                                            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