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. Telegram Nachrichten doppelt

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    983

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

Telegram Nachrichten doppelt

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
blockly
9 Beiträge 4 Kommentatoren 1.3k Aufrufe 2 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.
  • K Offline
    K Offline
    kluge86
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen!

    Ich nutze den Telegram-Adapter um zum einen Zustände wie Temperaturen, etc. abzufragen, das klappt super. Zum anderen läuft auch ein Skript, welches reagiert sobald die Haustür geöffnet wird (Aqara Tür-Fenster-Kontakt über Zigbee-Adapter - CC2531 Stick am Pi) und noch ein Fenster (ebenfalls Aqara TFK) offen ist. Als Reaktion habe ich im Skript die Ausgabe einer Nachricht über den Telegram-Adapter erstellt.

    Jetzt mein Problem, ich bekomme die Push-Nachrichten in Telegram immer doppelt im selben Moment. Trotz nachträglich eingebautem time out, kommen die Nachrichten weiterhin doppelt an.

    Skript mit blockly erstellt:

    /* -- do not edit following lines - START --
    {
      "expert": true,
      "engineType": "Blockly",
      "debug": false,
      "verbose": false
    }
    -- do not edit previous lines - END --*/
    var timeout;
    
    
    on({id: 'zigbee.0.00158d00025811ae.opened', change: "ne"}, function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
      if (getState("zigbee.0.00158d0002580ef4.opened").val == true || getState("zigbee.0.00158d00025811cc.opened").val == true || getState("zigbee.0.00158d0002e6b5d2.opened").val == true) {
        sendTo("telegram", "send", {
            text: (['ACHTUNG!','\n','Fenster oben offen!'].join(''))
        });
      }
      timeout = setTimeout(function () {
      }, 60000);
    });
    

    Ihr habt doch sicher eine Idee woran es liegt, bzw. wie ich es abstellen kann?

    Lieben Dank vorab!

    thewhoboxT paul53P T 3 Antworten Letzte Antwort
    0
    • K kluge86

      Hallo zusammen!

      Ich nutze den Telegram-Adapter um zum einen Zustände wie Temperaturen, etc. abzufragen, das klappt super. Zum anderen läuft auch ein Skript, welches reagiert sobald die Haustür geöffnet wird (Aqara Tür-Fenster-Kontakt über Zigbee-Adapter - CC2531 Stick am Pi) und noch ein Fenster (ebenfalls Aqara TFK) offen ist. Als Reaktion habe ich im Skript die Ausgabe einer Nachricht über den Telegram-Adapter erstellt.

      Jetzt mein Problem, ich bekomme die Push-Nachrichten in Telegram immer doppelt im selben Moment. Trotz nachträglich eingebautem time out, kommen die Nachrichten weiterhin doppelt an.

      Skript mit blockly erstellt:

      /* -- do not edit following lines - START --
      {
        "expert": true,
        "engineType": "Blockly",
        "debug": false,
        "verbose": false
      }
      -- do not edit previous lines - END --*/
      var timeout;
      
      
      on({id: 'zigbee.0.00158d00025811ae.opened', change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
        if (getState("zigbee.0.00158d0002580ef4.opened").val == true || getState("zigbee.0.00158d00025811cc.opened").val == true || getState("zigbee.0.00158d0002e6b5d2.opened").val == true) {
          sendTo("telegram", "send", {
              text: (['ACHTUNG!','\n','Fenster oben offen!'].join(''))
          });
        }
        timeout = setTimeout(function () {
        }, 60000);
      });
      

      Ihr habt doch sicher eine Idee woran es liegt, bzw. wie ich es abstellen kann?

      Lieben Dank vorab!

      thewhoboxT Offline
      thewhoboxT Offline
      thewhobox
      schrieb am zuletzt editiert von thewhobox
      #2

      @kluge86 Dein Timeout ist eine leere Funktion und bringt rein gar nichts...
      Das löschen vom Timeout geht wesentlich leichter.

      var timeout;
      
      on({id: 'zigbee.0.00158d00025811ae.opened', change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        log("Neuer Wert: " + value);
        clearTimeout(timeout);
      
        timeout = setTimeout(() => {
          if (getState("zigbee.0.00158d0002580ef4.opened").val == true || getState("zigbee.0.00158d00025811cc.opened").val == true || getState("zigbee.0.00158d0002e6b5d2.opened").val == true) {
            sendTo("telegram", "send", {
              text: 'ACHTUNG!\nFenster oben offen!'
            });
          }
        }, 6000);
      });
      

      Kann es vll sein, dass der State "opened" kurz auf true gestellt wird und sofort wieder auf false?
      Ich hab mal ein debug eingebaut, der den Wert ausgibt.

      Meine Adapter: emby | discovery
      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      1 Antwort Letzte Antwort
      0
      • K Offline
        K Offline
        kluge86
        schrieb am zuletzt editiert von
        #3

        Ich probiere es nachher aus. Mal gucken was im log zu sehen ist.

        Die Time-Out-Funktion war so gedacht, dass innerhalb z.B. einer Minute nicht das Öffnen und Schließen der Tür das Skript triggert. Also quasi als Block für Leerlaufzeit. Habe ich dabei einen Denkfehler?

        paul53P 1 Antwort Letzte Antwort
        0
        • K kluge86

          Ich probiere es nachher aus. Mal gucken was im log zu sehen ist.

          Die Time-Out-Funktion war so gedacht, dass innerhalb z.B. einer Minute nicht das Öffnen und Schließen der Tür das Skript triggert. Also quasi als Block für Leerlaufzeit. Habe ich dabei einen Denkfehler?

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von paul53
          #4

          @kluge86 sagte:

          als Block für Leerlaufzeit. Habe ich dabei einen Denkfehler?

          Dann muss auch die Variable timeout abgefragt werden

          falls nicht timeout
          

          und nach Ablauf der Zeit in der Timer-Callback-Funktion zurück gesetzt werden

          setze timeout auf null
          

          Etwa so
          Blockly_temp.JPG

          Übrigens: Da die Haustür selbst nicht abgefragt wird, wird sowohl beim Öffnen als auch beim Schließen der Haustür gesendet.

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Antwort Letzte Antwort
          0
          • K kluge86

            Hallo zusammen!

            Ich nutze den Telegram-Adapter um zum einen Zustände wie Temperaturen, etc. abzufragen, das klappt super. Zum anderen läuft auch ein Skript, welches reagiert sobald die Haustür geöffnet wird (Aqara Tür-Fenster-Kontakt über Zigbee-Adapter - CC2531 Stick am Pi) und noch ein Fenster (ebenfalls Aqara TFK) offen ist. Als Reaktion habe ich im Skript die Ausgabe einer Nachricht über den Telegram-Adapter erstellt.

            Jetzt mein Problem, ich bekomme die Push-Nachrichten in Telegram immer doppelt im selben Moment. Trotz nachträglich eingebautem time out, kommen die Nachrichten weiterhin doppelt an.

            Skript mit blockly erstellt:

            /* -- do not edit following lines - START --
            {
              "expert": true,
              "engineType": "Blockly",
              "debug": false,
              "verbose": false
            }
            -- do not edit previous lines - END --*/
            var timeout;
            
            
            on({id: 'zigbee.0.00158d00025811ae.opened', change: "ne"}, function (obj) {
              var value = obj.state.val;
              var oldValue = obj.oldState.val;
              (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
              if (getState("zigbee.0.00158d0002580ef4.opened").val == true || getState("zigbee.0.00158d00025811cc.opened").val == true || getState("zigbee.0.00158d0002e6b5d2.opened").val == true) {
                sendTo("telegram", "send", {
                    text: (['ACHTUNG!','\n','Fenster oben offen!'].join(''))
                });
              }
              timeout = setTimeout(function () {
              }, 60000);
            });
            

            Ihr habt doch sicher eine Idee woran es liegt, bzw. wie ich es abstellen kann?

            Lieben Dank vorab!

            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von paul53
            #5

            @kluge86 :
            So sollte es auch ohne doppeltes Senden funktionieren:

            on({id: 'zigbee.0.00158d00025811ae.opened', change: "ne", val: true}, function () {
              if (getState("zigbee.0.00158d0002580ef4.opened").val || getState("zigbee.0.00158d00025811cc.opened").val || getState("zigbee.0.00158d0002e6b5d2.opened").val) {
                sendTo("telegram", "send", {
                    text: 'ACHTUNG!\nFenster oben offen!'
                });
              }
            });
            

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            K 2 Antworten Letzte Antwort
            0
            • paul53P paul53

              @kluge86 :
              So sollte es auch ohne doppeltes Senden funktionieren:

              on({id: 'zigbee.0.00158d00025811ae.opened', change: "ne", val: true}, function () {
                if (getState("zigbee.0.00158d0002580ef4.opened").val || getState("zigbee.0.00158d00025811cc.opened").val || getState("zigbee.0.00158d0002e6b5d2.opened").val) {
                  sendTo("telegram", "send", {
                      text: 'ACHTUNG!\nFenster oben offen!'
                  });
                }
              });
              
              K Offline
              K Offline
              kluge86
              schrieb am zuletzt editiert von
              #6

              @paul53 Danke!

              Ich probiere eure Vorschläge gerne nachher aus :)

              @paul53 said in Telegram Nachrichten doppelt:

              Übrigens: Da die Haustür selbst nicht abgefragt wird, wird sowohl beim Öffnen als auch beim Schließen der Haustür gesendet.

              Mein Problem ist nicht, dass beim zeitversetzen Schließen eine erneute Nachricht käme, diese kommt aktuell erst wenn der Zustand sich nach größer einer Minute wieder verändert. Die doppelte Nachricht kommt sofort, es kommt quasi zwei mal die gleiche im selben Moment.

              1 Antwort Letzte Antwort
              0
              • K kluge86

                Hallo zusammen!

                Ich nutze den Telegram-Adapter um zum einen Zustände wie Temperaturen, etc. abzufragen, das klappt super. Zum anderen läuft auch ein Skript, welches reagiert sobald die Haustür geöffnet wird (Aqara Tür-Fenster-Kontakt über Zigbee-Adapter - CC2531 Stick am Pi) und noch ein Fenster (ebenfalls Aqara TFK) offen ist. Als Reaktion habe ich im Skript die Ausgabe einer Nachricht über den Telegram-Adapter erstellt.

                Jetzt mein Problem, ich bekomme die Push-Nachrichten in Telegram immer doppelt im selben Moment. Trotz nachträglich eingebautem time out, kommen die Nachrichten weiterhin doppelt an.

                Skript mit blockly erstellt:

                /* -- do not edit following lines - START --
                {
                  "expert": true,
                  "engineType": "Blockly",
                  "debug": false,
                  "verbose": false
                }
                -- do not edit previous lines - END --*/
                var timeout;
                
                
                on({id: 'zigbee.0.00158d00025811ae.opened', change: "ne"}, function (obj) {
                  var value = obj.state.val;
                  var oldValue = obj.oldState.val;
                  (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
                  if (getState("zigbee.0.00158d0002580ef4.opened").val == true || getState("zigbee.0.00158d00025811cc.opened").val == true || getState("zigbee.0.00158d0002e6b5d2.opened").val == true) {
                    sendTo("telegram", "send", {
                        text: (['ACHTUNG!','\n','Fenster oben offen!'].join(''))
                    });
                  }
                  timeout = setTimeout(function () {
                  }, 60000);
                });
                

                Ihr habt doch sicher eine Idee woran es liegt, bzw. wie ich es abstellen kann?

                Lieben Dank vorab!

                T Offline
                T Offline
                tempestas
                schrieb am zuletzt editiert von
                #7

                @kluge86

                Ich meine, das hätte was mit ack = true zu tun.
                Das Thema gibt es hier schonmal, da wurde das imho als Lösung genannt.

                <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

                1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @kluge86 :
                  So sollte es auch ohne doppeltes Senden funktionieren:

                  on({id: 'zigbee.0.00158d00025811ae.opened', change: "ne", val: true}, function () {
                    if (getState("zigbee.0.00158d0002580ef4.opened").val || getState("zigbee.0.00158d00025811cc.opened").val || getState("zigbee.0.00158d0002e6b5d2.opened").val) {
                      sendTo("telegram", "send", {
                          text: 'ACHTUNG!\nFenster oben offen!'
                      });
                    }
                  });
                  
                  K Offline
                  K Offline
                  kluge86
                  schrieb am zuletzt editiert von
                  #8

                  @paul53 said in Telegram Nachrichten doppelt:

                  @kluge86 :
                  So sollte es auch ohne doppeltes Senden funktionieren:

                  on({id: 'zigbee.0.00158d00025811ae.opened', change: "ne", val: true}, function () {
                    if (getState("zigbee.0.00158d0002580ef4.opened").val || getState("zigbee.0.00158d00025811cc.opened").val || getState("zigbee.0.00158d0002e6b5d2.opened").val) {
                      sendTo("telegram", "send", {
                          text: 'ACHTUNG!\nFenster oben offen!'
                      });
                    }
                  });
                  

                  Funktioniert super, vielen Dank!

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • K kluge86

                    @paul53 said in Telegram Nachrichten doppelt:

                    @kluge86 :
                    So sollte es auch ohne doppeltes Senden funktionieren:

                    on({id: 'zigbee.0.00158d00025811ae.opened', change: "ne", val: true}, function () {
                      if (getState("zigbee.0.00158d0002580ef4.opened").val || getState("zigbee.0.00158d00025811cc.opened").val || getState("zigbee.0.00158d0002e6b5d2.opened").val) {
                        sendTo("telegram", "send", {
                            text: 'ACHTUNG!\nFenster oben offen!'
                        });
                      }
                    });
                    

                    Funktioniert super, vielen Dank!

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #9

                    @kluge86 sagte:

                    Funktioniert

                    Dann markiere bitte das Thema in der Überschrift als [gelöst].

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

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


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    798

                    Online

                    32.6k

                    Benutzer

                    82.2k

                    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