Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. JavaScript restart, Telegram Output wird überflutet

NEWS

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

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

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.0k

JavaScript restart, Telegram Output wird überflutet

Scheduled Pinned Locked Moved Solved JavaScript
javascript
12 Posts 4 Posters 1.6k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • H Offline
    H Offline
    homecineplexx
    wrote on last edited by
    #3

    @Dutchman said in JavaScript restart, Telegram Output wird überflutet:

    Also baue es bitte um zu einem trigger,

    Danke vorerst mal für die Hilfe.
    Wenn du ein gutes hast, wäre ich natürlich nicht abgeneigt, denn ich bin mit sicherheit nicht der einzige der danach fragen wird.
    BITTESCHÖN

    DutchmanD 1 Reply Last reply
    0
    • H homecineplexx

      @Dutchman said in JavaScript restart, Telegram Output wird überflutet:

      Also baue es bitte um zu einem trigger,

      Danke vorerst mal für die Hilfe.
      Wenn du ein gutes hast, wäre ich natürlich nicht abgeneigt, denn ich bin mit sicherheit nicht der einzige der danach fragen wird.
      BITTESCHÖN

      DutchmanD Offline
      DutchmanD Offline
      Dutchman
      Developer Most Active Administrators
      wrote on last edited by
      #4

      @homecineplexx said in JavaScript restart, Telegram Output wird überflutet:

      @Dutchman said in JavaScript restart, Telegram Output wird überflutet:

      Also baue es bitte um zu einem trigger,

      Danke vorerst mal für die Hilfe.
      Wenn du ein gutes hast, wäre ich natürlich nicht abgeneigt, denn ich bin mit sicherheit nicht der einzige der danach fragen wird.
      BITTESCHÖN

      gutes weis ich nicht aber lass es uns probieren ok !

      also dein code senden eine message wen das script gestartet wird :

      sendTo('telegram.0', {
              user: 'Christian',
              text: 'Bitte wähle einen Button',
              reply_markup: {
                  keyboard: [
                     ['Hauptmenü'],
                     ['Bewässerung-Info'],
                     ['Brunnenpumpe-On', 'Brunnenpumpe-Off'],
                     ['Vorgarten', 'Garten', 'Oben'],
                  ],
                  resize_keyboard: true,
                  one_time_keyboard: true
              }
          });
      

      jetzt erstellen wir uns ein object (ich mache es hier im script, geht auch Manuel !

      createState("mein_trigger", function () {
      });
      

      jetzt mochten ich einen event auslösen wen dieser state sich ändert :

        on({id: "javascript.0.mein_trigger"/*mein_trigger*/, change: "ne"}, function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
        });
      

      so und jetzt mal der code wo ich den trigger kombinieren mit deinem code um die Nachricht zu schicken.
      Ich :

      • erstelle erst den state
      • warte dan auf ein event (Änderung des states)
      • schicke die Nachricht
      createState("mein_trigger", function () {
      });
      
      on({id: "javascript.0.mein_trigger"/*mein_trigger*/, change: "ne"}, function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          sendTo('telegram.0', {
              user: 'Christian',
              text: 'Bitte wähle einen Button',
              reply_markup: {
                  keyboard: [
                     ['Hauptmenü'],
                     ['Bewässerung-Info'],
                     ['Brunnenpumpe-On', 'Brunnenpumpe-Off'],
                     ['Vorgarten', 'Garten', 'Oben'],
                  ],
                  resize_keyboard: true,
                  one_time_keyboard: true
              }
          });
      });
      

      so hoffe das hilft dem Verständnis, ab jetzt kann das script nämlich immer an bleiben und nur wen der state sich ändert wird der Inhalt ausgeufert. Ein restart, script start usw wird es nicht mehr auslosen !

      Tip : ich sehe das dies ein telegram menu ist, du kannst auch den state "request" von telegram umerwachten, da kommt nämlich die nachreicht rein die du zum bot schickst, und diese dan auswerten

      NegaleinN 1 Reply Last reply
      0
      • H Offline
        H Offline
        homecineplexx
        wrote on last edited by
        #5

        @Dutchman said in JavaScript restart, Telegram Output wird überflutet:

        obj.state.val

        DANKE
        der Ansatz mit dem Trigger war gut, hat mir aber nicht so super gefallen, vor allem nachdem du erwähnt hast, dass es bei Telegram eh schon quasi einen Trigger gibt.
        Habs nun so gelöst:

        on({id: "telegram.0.communicate.requestRaw", change: "ne"}, function (obj) {
            var value = JSON.parse(obj.state.val);
            
            if (value.text === 'Bewässerung') {
                sendTo('telegram.0', {
                user: 'Christian',
                text: 'Bitte wähle einen Button',
                reply_markup: {
                    keyboard: [
                       ['Hauptmenü'],
                       ['Bewässerung-Info'],
                       ['Brunnenpumpe-On', 'Brunnenpumpe-Off'],
                       ['Vorgarten', 'Garten', 'Oben'],
                    ],
                    resize_keyboard: true,
                    one_time_keyboard: true
                }
            });    
            }
        });
        
        DutchmanD 1 Reply Last reply
        1
        • H homecineplexx

          @Dutchman said in JavaScript restart, Telegram Output wird überflutet:

          obj.state.val

          DANKE
          der Ansatz mit dem Trigger war gut, hat mir aber nicht so super gefallen, vor allem nachdem du erwähnt hast, dass es bei Telegram eh schon quasi einen Trigger gibt.
          Habs nun so gelöst:

          on({id: "telegram.0.communicate.requestRaw", change: "ne"}, function (obj) {
              var value = JSON.parse(obj.state.val);
              
              if (value.text === 'Bewässerung') {
                  sendTo('telegram.0', {
                  user: 'Christian',
                  text: 'Bitte wähle einen Button',
                  reply_markup: {
                      keyboard: [
                         ['Hauptmenü'],
                         ['Bewässerung-Info'],
                         ['Brunnenpumpe-On', 'Brunnenpumpe-Off'],
                         ['Vorgarten', 'Garten', 'Oben'],
                      ],
                      resize_keyboard: true,
                      one_time_keyboard: true
                  }
              });    
              }
          });
          
          DutchmanD Offline
          DutchmanD Offline
          Dutchman
          Developer Most Active Administrators
          wrote on last edited by
          #6

          @homecineplexx

          darf ich dir feedback geben ?

          Sehr gut !!!! Du hast mein "Allgemeines" Beispiel und tips darin direkt umgesetzt auf deine persönliche situation.
          Chapeau, schnell verstanden und gemacht.... alles jetzt nach wünsch ?

          1 Reply Last reply
          0
          • H Offline
            H Offline
            homecineplexx
            wrote on last edited by
            #7

            natürlich darfst du und danke...ich arbeite ja auch schon etwas länger damit. nur oft fehlt einem einfach die idee, was es eventuell wo geben könnte.

            also bitte.....Verbesserungen sind jederzeit gern willkommen

            DutchmanD 1 Reply Last reply
            0
            • H homecineplexx

              natürlich darfst du und danke...ich arbeite ja auch schon etwas länger damit. nur oft fehlt einem einfach die idee, was es eventuell wo geben könnte.

              also bitte.....Verbesserungen sind jederzeit gern willkommen

              DutchmanD Offline
              DutchmanD Offline
              Dutchman
              Developer Most Active Administrators
              wrote on last edited by
              #8

              @homecineplexx said in JavaScript restart, Telegram Output wird überflutet:

              also bitte.....Verbesserungen sind jederzeit gern willkommen

              Gibt nix zu verbessern hast alles richtig gemacht 🙂

              1 Reply Last reply
              0
              • H Offline
                H Offline
                homecineplexx
                wrote on last edited by
                #9

                hatte gerade wieder ein problem...obwohl ichs jetzt so gemacht habe, kommen die "bitte button wählen" dennoch doppelt. hab ich dann das jeweilige skript gestoppt und gestartet hat es gepaßt.
                irgendwie kommts mir so vor wie wenn die skripte dann teilweise dennoch doppelt laufen

                1 Reply Last reply
                0
                • DutchmanD Dutchman

                  @homecineplexx said in JavaScript restart, Telegram Output wird überflutet:

                  @Dutchman said in JavaScript restart, Telegram Output wird überflutet:

                  Also baue es bitte um zu einem trigger,

                  Danke vorerst mal für die Hilfe.
                  Wenn du ein gutes hast, wäre ich natürlich nicht abgeneigt, denn ich bin mit sicherheit nicht der einzige der danach fragen wird.
                  BITTESCHÖN

                  gutes weis ich nicht aber lass es uns probieren ok !

                  also dein code senden eine message wen das script gestartet wird :

                  sendTo('telegram.0', {
                          user: 'Christian',
                          text: 'Bitte wähle einen Button',
                          reply_markup: {
                              keyboard: [
                                 ['Hauptmenü'],
                                 ['Bewässerung-Info'],
                                 ['Brunnenpumpe-On', 'Brunnenpumpe-Off'],
                                 ['Vorgarten', 'Garten', 'Oben'],
                              ],
                              resize_keyboard: true,
                              one_time_keyboard: true
                          }
                      });
                  

                  jetzt erstellen wir uns ein object (ich mache es hier im script, geht auch Manuel !

                  createState("mein_trigger", function () {
                  });
                  

                  jetzt mochten ich einen event auslösen wen dieser state sich ändert :

                    on({id: "javascript.0.mein_trigger"/*mein_trigger*/, change: "ne"}, function (obj) {
                      var value = obj.state.val;
                      var oldValue = obj.oldState.val;
                    });
                  

                  so und jetzt mal der code wo ich den trigger kombinieren mit deinem code um die Nachricht zu schicken.
                  Ich :

                  • erstelle erst den state
                  • warte dan auf ein event (Änderung des states)
                  • schicke die Nachricht
                  createState("mein_trigger", function () {
                  });
                  
                  on({id: "javascript.0.mein_trigger"/*mein_trigger*/, change: "ne"}, function (obj) {
                      var value = obj.state.val;
                      var oldValue = obj.oldState.val;
                      sendTo('telegram.0', {
                          user: 'Christian',
                          text: 'Bitte wähle einen Button',
                          reply_markup: {
                              keyboard: [
                                 ['Hauptmenü'],
                                 ['Bewässerung-Info'],
                                 ['Brunnenpumpe-On', 'Brunnenpumpe-Off'],
                                 ['Vorgarten', 'Garten', 'Oben'],
                              ],
                              resize_keyboard: true,
                              one_time_keyboard: true
                          }
                      });
                  });
                  

                  so hoffe das hilft dem Verständnis, ab jetzt kann das script nämlich immer an bleiben und nur wen der state sich ändert wird der Inhalt ausgeufert. Ein restart, script start usw wird es nicht mehr auslosen !

                  Tip : ich sehe das dies ein telegram menu ist, du kannst auch den state "request" von telegram umerwachten, da kommt nämlich die nachreicht rein die du zum bot schickst, und diese dan auswerten

                  NegaleinN Offline
                  NegaleinN Offline
                  Negalein
                  Global Moderator
                  wrote on last edited by
                  #10

                  @Dutchman said in JavaScript restart, Telegram Output wird überflutet:

                  gutes weis ich nicht aber lass es uns probieren ok !

                  Hallo Dutchman!

                  Sehe ich das richtig, dass dieser Code eigentlich in jedes Script sollte, das eine ausführbare Funktion hat?

                  createState("mein_trigger", function () {
                  });
                   
                  on({id: "javascript.0.mein_trigger"/*mein_trigger*/, change: "ne"}, function (obj) {
                      var value = obj.state.val;
                      var oldValue = obj.oldState.val;
                  

                  und dies gehört dann bei jedem Script angepasst?

                  createState("mein_trigger", function () {
                  });
                  

                  mein_trigger nenn ich dann zB Pelletsofen

                  Für jedes Script also ein eigenes Objekt erstellen?

                  ° Node.js: 20.17.0 NPM: 10.8.2
                  ° Proxmox, Ubuntu 22.04.3 LTS
                  ° Fixer ---> iob fix

                  DutchmanD 1 Reply Last reply
                  0
                  • NegaleinN Negalein

                    @Dutchman said in JavaScript restart, Telegram Output wird überflutet:

                    gutes weis ich nicht aber lass es uns probieren ok !

                    Hallo Dutchman!

                    Sehe ich das richtig, dass dieser Code eigentlich in jedes Script sollte, das eine ausführbare Funktion hat?

                    createState("mein_trigger", function () {
                    });
                     
                    on({id: "javascript.0.mein_trigger"/*mein_trigger*/, change: "ne"}, function (obj) {
                        var value = obj.state.val;
                        var oldValue = obj.oldState.val;
                    

                    und dies gehört dann bei jedem Script angepasst?

                    createState("mein_trigger", function () {
                    });
                    

                    mein_trigger nenn ich dann zB Pelletsofen

                    Für jedes Script also ein eigenes Objekt erstellen?

                    DutchmanD Offline
                    DutchmanD Offline
                    Dutchman
                    Developer Most Active Administrators
                    wrote on last edited by Dutchman
                    #11

                    @Negalein said in JavaScript restart, Telegram Output wird überflutet:

                    Sehe ich das richtig, dass dieser Code eigentlich in jedes Script sollte, das eine ausführbare Funktion hat?

                    ja, also damit erstellt man sich einen state (wie gesagt geht auch Manuel) und löst das script aus wen sich der state ändert 😉

                    das hier nicht vergessen zu ändern 🙂 :

                    id: "javascript.0.mein_trigger"/*mein_trigger*/
                    

                    @Negalein said in JavaScript restart, Telegram Output wird überflutet:

                    Für jedes Script also ein eigenes Objekt erstellen?

                    jup, Vorteil du kannst es von alles aus auslösen (script, Alexa, yahka, was du möchtest)

                    1 Reply Last reply
                    1
                    • F Offline
                      F Offline
                      Freaknet
                      wrote on last edited by
                      #12

                      Hey,
                      hab das selbe Problem, das mich Telegram mit Meldungen überflutet 😞

                      Bin dadurch auf diesen Tread gestoßen und hab versucht meine Scripte damit anzupassen, leider ohne Erfolgt.

                      Ich habe die Scripte wie folgt angepasst (Beispiel):

                      createState("Hue Lampen", function () {
                      });

                      on({id: "javascript.0.Hue Lampen", change: "ne"}, function (obj) {
                      var value = obj.state.val;
                      var oldValue = obj.oldState.val;
                      sendTo('telegram.0', {
                      text: 'Bitte Hue Lampe wählen',
                      reply_markup: {
                      keyboard: [
                      ['Hue Küche An', 'Hue Küche Aus'],
                      ['Hue Esszimmer An', 'Hue Esszimmer Aus'],
                      ['Hue Wohnzimmer An', 'Hue Wohnzimmer Aus'],
                      ['Hue Haustür An', 'Hue Haustür Aus'],
                      ['Hue Erker An', 'Hue Erker Aus'],
                      ['Stehlampe An', 'Stehlampe Aus'],
                      ['Übersicht', ''],
                      ],
                      resize_keyboard: true,
                      one_time_keyboard: false
                      }
                      });
                      });

                      Leider wird nur einmal Hue Lampen vom Telegram akzeptiert und komme ins Menü, danach komme ich nicht mehr in das Sub-Menü, sobald ich auf Übersicht wieder gewechselt bin.

                      Kann es sein, dass ich in text2command etwas anderes einstellen muss damit der State von Hue Lampe bei jedem drücken auf den Button wechselt?
                      Hab aktuell als Objekt-ID den erzeugten State von Hue Lampe mit "Schreibe Text in Zustand" ausgewählt. Vorher hatte ich das Javascript von der Lampe drin mit "Schalte irgendwas ein oder aus".

                      Vielleicht kann mir jemand sagen was ich noch ändern muss ausser dem Script.
                      Danke schonmal im Voraus

                      Grüße
                      Freaknet

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      628

                      Online

                      32.4k

                      Users

                      81.4k

                      Topics

                      1.3m

                      Posts
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                      ioBroker Community 2014-2025
                      logo
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Recent
                      • Tags
                      • Unread 0
                      • Categories
                      • Unreplied
                      • Popular
                      • GitHub
                      • Docu
                      • Hilfe