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 Menü dynamisch aus Aufzählung generieren.

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Telegram Menü dynamisch aus Aufzählung generieren.

    This topic has been deleted. Only users with topic management privileges can see it.
    • N
      Nahasapee @dslraser last edited by

      @dslraser
      Hi, danke 🙂

      @dslraser sagte in Telegram Menü dynamisch aus Aufzählung generieren.:

      Gestartet wird mit menue ?

      mein Menü tiggert mit:

      /menue 
      

      3eb29ac9-d310-468f-bd94-53cb51b0dfce-image.png

      @dslraser sagte in Telegram Menü dynamisch aus Aufzählung generieren.:

      Das mit dem Script habe ich noch nicht so ganz verstanden... Was muss hier wie in die letzte Zeile ?
      Ein "echtes" Beispiel wäre schön.

      Das ist mein "echtes" Beispiel, genauso habe ich es gerade bei mir im Broker, du müsstest lediglich die Liste in der zweiten Zeile anpassen, wenn das Menü aus einer anderen Aufzählung generiert werden soll.

      Zum besseren Verständnis bei mir gibt es zur Zeit 5 Aufzählungslisten:

      • Funktion
      • Erdgeschoss
      • Obergeschoss
      • Customs
      • TV
        75d4bbc8-b937-4e7a-8a35-91bb0c560bf0-image.png

      wenn ich jetzt aus allen 5 mein Menü generieren wollte
      müssten alle 5 Namen rein

      let myEnumList =   ['functions','rooms','obergeschoss','customs'];
      

      Die Namen die in die Liste müssen, findet man unter Objekte im ioBroker, unter Aufzählung zeigt er nur die Übersetzung an:

      b749c16d-6ee6-475a-920b-be0a2bcf74ab-image.png

      Alle SubMenüs werden dann aus den entsprechenden Unterpositionen generiert.

      @dslraser sagte in Telegram Menü dynamisch aus Aufzählung generieren.:

      Ich frage deshalb, weil ich ein recht umfangreiches und individuelles Telegram Menü habe, mit dem ich fast alles steuern kann und auch Zustände und Rückmeldungen bekomme.

      Rückmeldungen gibt mein Menü leider noch nicht, es setzt nur "stumpf" die Taster.
      Einen Rückmeldemodus werde ich aber bei Gelegenheit ergänzen, da ich gern meine Fensterkontakte abfragen möchte.

      @dslraser sagte in Telegram Menü dynamisch aus Aufzählung generieren.:

      Mein Menü startet mit Menü, also mit ü, das dürfte sich dann ja nicht in die Quere kommen, oder ?

      ich glaub jetzt zwar nicht, aber falls du es testen solltest vielleicht lieber doch das andere Script von deinen Menü temporär deaktivieren.
      Viele Grüße

      1 Reply Last reply Reply Quote 0
      • N
        Nahasapee last edited by

        Hi,
        ich habe mal ein kleines Update eingespielt.

        • paar kleine Fehler wurden behoben
        • die untere Navigationsleiste hat neue Icons bekommen
          e282ffb9-53aa-455d-b7e1-b281dd1fbb38-image.png
        • Konfigurationsmöglichkeiten hinzugefügt
          • Sprache(DE,EN)
          • welche Auswahllisten verwendet werden sollen
          • welche Telegraminstanz im IoBroker verwendet werden soll
          • soll das Menü über Telegramm Rückmeldung geben, ob ein State geschaltet wurde
          • desweiteren sind die Anzahl an Köpfe in Spalte/Zeile steuerbar
          • z.b. 2x3 : 5c286e19-24e8-43cb-aba6-736fc06062cb-image.png
          • z.b. 3x2 00795a06-b2d4-4683-9403-6b6a7fa4d503-image.png
        • boolesche States werden unterstützt (Switch und Buttons)
        • Nummerische States können gesteuert werden z.B. Rollopositionen
        • falls states schreibgeschützt sind, erfolgt eine Ausgabe des momentanen Wertes

        Hier mal eine kleine Animation vom Menü und Navigation

        • iobrokerTelegramMenu2.gif

        Das wars erst mal Viele Grüße 🙂

        1 Reply Last reply Reply Quote 1
        • N
          Nahasapee last edited by

          Hi ,
          hier noch mal kleines HowTo Video, wie man neue Räume ins Menü einfügt.

          Viele Grüße

          addEnumsAndTest.gif

          1 Reply Last reply Reply Quote 0
          • AlCalzone
            AlCalzone Developer @Nahasapee last edited by

            @Nahasapee sagte in Telegram Menü dynamisch aus Aufzählung generieren.:

            man muss es einfach nur noch im ioBroker -Verzeichnis installieren mit:
            npm install mytelegrammenu

            alles weitere steht auf github.

            Besser ist es, das Paket stattdessen in den Einstellungen des Skript-Adapters als zusätzliches Modul zu vermerken. Damit geht man sicher, dass es bei Upgrades etc. nicht verloren geht und auch nach Restore von Backups immer wieder installiert wird.

            N 1 Reply Last reply Reply Quote 0
            • N
              Nahasapee @AlCalzone last edited by

              @AlCalzone vielen Dank für den Hinweis, ich hab es angepasst.

              Ich hab kleines Update eingeschoben man kann nun
              einen Report erstellen über die momentanen Zustände der gesamten Schalter im Menüpunkt.

              createReport2.gif

              BBTown 1 Reply Last reply Reply Quote 0
              • BBTown
                BBTown @Nahasapee last edited by

                @Nahasapee
                erst einmal vielen Dank für das Teilen deines Scriptes und vor allem für deine sehr, sehr anschauliche Beschreibung.

                Allerdings, obgleich ich mich an Deine Anleitung gehalten habe scheint irgendwo ein Schritt zu fehlen?!

                Wenn ich in telegram "/menu" eingebe, dann erhalte ich anstelle des erwarteten Menus die Meldung:
                "Ich verstehe "#menu" nicht"

                Anbei mein Script

                const MyTelegramMenu = require('mytelegrammenu');                         
                const options = {
                                'enumList': ['rooms','functions'],                                  
                                'locale':'de',
                                'telegramInstance': 'telegram.0',
                                'feedbackToTelegram': true,
                                'MenuRows': 3,
                                'MenuCols': 2
                                 }
                const telegramMenu = new MyTelegramMenu(this,options);
                

                Wo liegt mein Fehler?

                N FredF 2 Replies Last reply Reply Quote 0
                • N
                  Nahasapee @BBTown last edited by

                  @BBTown sagte in Telegram Menü dynamisch aus Aufzählung generieren.:

                  "Ich verstehe "#menu" nicht"

                  Hi, BBTown
                  also das kommt nicht von meinem Skript, wenn da was reinkommt was es nicht versteht
                  ignoriert es das normalerweise.
                  Vermutlich Anwortet nur irgendein anderes Skript auf den Befehl (vielleicht text2command) oder sowas
                  und klappt so das Menü wieder ein?

                  Ist es eventuell unten da?

                  379afd38-7fe0-4c25-9648-9fdac929b53a-image.png

                  Das Einrichten vom Bot und den Telegramadapter hast du aber hinbekommen?(botfather ect.)
                  ->https://nodei.co/npm/iobroker.telegram/

                  PS. was steht im log?

                  Viele Grüße

                  BBTown 1 Reply Last reply Reply Quote 0
                  • BBTown
                    BBTown @Nahasapee last edited by BBTown

                    @Nahasapee
                    Ja, einen Bot habe ich und ich habe auch bereits mit eigenen Menus und Buttons herumgespielt.

                    Kann es sein, dass der Punkt bzw. ein Script fehlt um das ganze überhaupt in meinen Bot zu schicken?
                    Wo wird denn z.B. definiert, dass der Aufruf mit "/menu" erfolgt und nicht bspw. mit "Enums" oder mit "BBTown"?

                    [Nachtrag]
                    braucht es nicht noch ggf. etwas in diese Richtung?

                    sendTo('telegram.0', {
                        text:   'Press button',
                        reply_markup: {
                            keyboard: [
                                ['Line 1, Button 1', 'Line 1, Button 2'],
                                ['Line 2, Button 3', 'Line 2, Button 4']
                            ],
                            resize_keyboard:   true,
                            one_time_keyboard: true
                        }
                    });
                    
                    N 2 Replies Last reply Reply Quote 0
                    • N
                      Nahasapee @BBTown last edited by

                      @BBTown sagte in Telegram Menü dynamisch aus Aufzählung generieren.:

                      Wo wird denn z.B. definiert, dass der Aufruf mit "/menu" erfolgt

                      das macht das Package im "Hintergrund" 😉
                      wenn du es genau wissen willst hier:

                      https://github.com/Nahasapeemapetilon/MyTelegramMenu/blob/dbf3aa854234b7236949942976bae0ec7d65e01b/lib/mytelegrammenu.js#L35

                      ist das npm package korrekt installiert und was sagt das log wenn du das Script ausführst ?

                      BBTown 1 Reply Last reply Reply Quote 0
                      • BBTown
                        BBTown @Nahasapee last edited by

                        @Nahasapee sagte in Telegram Menü dynamisch aus Aufzählung generieren.:

                        ist das npm package korrekt installiert

                        meinst Du das hier?
                        8ba76e4d-fd3b-4d6f-bc9f-f8b995dc76ff-grafik.png

                        N 1 Reply Last reply Reply Quote 0
                        • N
                          Nahasapee @BBTown last edited by

                          @BBTown sagte in Telegram Menü dynamisch aus Aufzählung generieren.:

                          braucht es nicht noch ggf. etwas in diese Richtung?

                          nein macht alles das Skript im Hintergrund

                          BBTown 1 Reply Last reply Reply Quote 0
                          • FredF
                            FredF Most Active Forum Testing @BBTown last edited by

                            @BBTown sagte in Telegram Menü dynamisch aus Aufzählung generieren.:

                            "Ich verstehe "#menu" nicht"

                            Ich verhindere das indem ich im text2command den namen angebe.
                            Tanken z.B.
                            4254d05c-6cf8-49e3-80b7-d6e62c27a075-grafik.png

                            BBTown 1 Reply Last reply Reply Quote 0
                            • N
                              Nahasapee @BBTown last edited by

                              @BBTown sagte in Telegram Menü dynamisch aus Aufzählung generieren.:

                              meinst Du das hier?

                              ja,

                              ich hab es aber bei mir manuell installiert und nicht geprüft, ob das mit der automatischen installation klappt...test ich gleich mal

                              text2command hab ich bei mir leider auch nicht laufen und kenne mich da jetzt nicht sonderlich aus.

                              aber gucke ich auch gleich noch mal rein.

                              nichtsdestotrotz wäre mal nen log ganz gut was er bei dir sagt
                              😉

                              BBTown 1 Reply Last reply Reply Quote 0
                              • BBTown
                                BBTown @Nahasapee last edited by BBTown

                                @Nahasapee
                                so, ich bin einen halben Schritt weiter.
                                Ich Depp habe die ganze Zeit "/menu" und nicht "/menue" getippt.

                                Nun bekomme ich die Rückmeldung: "Bitte wählen:"
                                und habe folgende Fehler im Log

                                
                                javascript.0	2019-07-20 20:58:46.540	warn	Object "enum.functions" does not exist
                                javascript.0	2019-07-20 20:58:46.540	warn	Object "enum.rooms" does not exist
                                javascript.0	2019-07-20 20:58:14.007	warn	Object "enum.functions" does not exist
                                javascript.0	2019-07-20 20:58:14.007	warn	Object "enum.rooms" does not exist
                                javascript.0	2019-07-20 20:57:26.317	warn	Object "enum.functions" does not exist
                                javascript.0	2019-07-20 20:57:26.317	warn	Object "enum.rooms" does not exist
                                javascript.0	2019-07-20 20:57:03.402	warn	Object "enum.functions" does not exist
                                javascript.0	2019-07-20 20:57:03.401	warn	Object "enum.rooms" does not exist
                                javascript.0	2019-07-20 20:55:37.221	warn	Object "enum.functions" does not exist
                                javascript.0	2019-07-20 20:55:37.221	warn	Object "enum.rooms" does not exist
                                

                                026bc98e-95d1-4195-aa9e-1ef8981a13b8-grafik.png

                                2745ff38-70b5-4087-abee-fce318fba742-grafik.png

                                1 Reply Last reply Reply Quote 0
                                • BBTown
                                  BBTown @FredF last edited by

                                  @FredF sagte in Telegram Menü dynamisch aus Aufzählung generieren.:

                                  @BBTown sagte in Telegram Menü dynamisch aus Aufzählung generieren.:

                                  "Ich verstehe "#menu" nicht"

                                  Ich verhindere das indem ich im text2command den namen angebe.
                                  Tanken z.B.
                                  4254d05c-6cf8-49e3-80b7-d6e62c27a075-grafik.png

                                  tztztz ... soll man denn auf "scriptEnabled" verweisen?? 🤓

                                  1 Reply Last reply Reply Quote 0
                                  • BBTown
                                    BBTown @Nahasapee last edited by

                                    @Nahasapee sagte in Telegram Menü dynamisch aus Aufzählung generieren.:

                                    ich hab es aber bei mir manuell installiert

                                    falls Du das hier meinst

                                    npm install mytelegrammenu
                                    

                                    das habe ich auch durchgeführt

                                    1 Reply Last reply Reply Quote 0
                                    • N
                                      Nahasapee last edited by Nahasapee

                                      @BBTown sagte in Telegram Menü dynamisch aus Aufzählung generieren.:

                                      Ich Depp habe die ganze Zeit "/menu" und nicht "/menue" getippt.

                                      das sollte ich vielleicht mal ändern zu /menü

                                      starte mal deine Javascript instanz neu, bisschen merkwürdig,dass er deine Auflistung nicht kennt
                                      f2895aae-c8a4-486f-b474-2dbee8a14344-image.png

                                      Deine Auflistungen sind ja schön prall gefüllt, da freu ich mich schon auf nen test, wenn es läuft 🙂

                                      BBTown 1 Reply Last reply Reply Quote 0
                                      • BBTown
                                        BBTown @Nahasapee last edited by BBTown

                                        @Nahasapee sagte in Telegram Menü dynamisch aus Aufzählung generieren.:

                                        starte mal deine Javascript instanz neu, bisschen merkwürdig,dass er deine Auflistung nicht kennt

                                        brachte noch keine Änderung.
                                        Ich werde mal eine neue Aufzählung anlegen, das hast Du ja auch gemacht.
                                        Vielleicht reagiert das Script dann anders.

                                        1 Reply Last reply Reply Quote 0
                                        • N
                                          Nahasapee last edited by

                                          @BBTown sagte in Telegram Menü dynamisch aus Aufzählung generieren.:

                                          brachte noch keine Änderung.

                                          werden sie im Expertenmodus unter Objekte angezeigt?
                                          wie heißen die da mach mal bitte ein Screenshot.

                                          432083e1-3574-4cd5-9c88-05bf91416309-image.png

                                          BBTown 1 Reply Last reply Reply Quote 0
                                          • BBTown
                                            BBTown @Nahasapee last edited by

                                            @Nahasapee
                                            2fe67cf0-f697-45f3-8ec8-fcf34a68f3f8-grafik.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            518
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript
                                            7
                                            48
                                            4073
                                            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