Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [fixed] on ID - Ausführung doppelt ?

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [fixed] on ID - Ausführung doppelt ?

    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      looxer01 last edited by

      Hi,

      ich habe gerade festgestellt, dass bei mir die Ausführung des folgenden Codes doppelt erfolgt

      on({id: "hm-rpc.0.JEQ0036xxx.1.STATE", val: true }, function(obj) {

      log("Gruppe10 wurde ausgeführt"), "info";

      }); // ende on id

      Hat jemand eine Erklaerung dafür ?

      vG Looxer

      1 Reply Last reply Reply Quote 0
      • Bluefox
        Bluefox last edited by

        @looxer01:

        Hi,

        ich habe gerade festgestellt, dass bei mir die Ausführung des folgenden Codes doppelt erfolgt

        on({id: "hm-rpc.0.JEQ0036xxx.1.STATE", val: true }, function(obj) {

        log("Gruppe10 wurde ausgeführt"), "info";

        }); // ende on id

        Hat jemand eine Erklaerung dafür ?

        vG Looxer `
        Kann das sein, dass ein mal mit ack und ein mal ohne ack kommt?

        on({id: "hm-rpc.0.JEQ0036xxx.1.STATE", val: true  }, function(obj)    {  
            log("Gruppe10 wurde ausgeführt, Ack: " + obj.state.ack);   
        }); // ende on id
        
        1 Reply Last reply Reply Quote 0
        • S
          soef last edited by

          Hallo,

          versuche es einmal mit 'change: "gt"' statt 'val: true'. Dann wird 'on' auf jeden Fall nur aufgerufen,

          wenn val zuvor false war und nicht mehr, wenn val schon true ist.

          Eine andere Möglichkeit könnte sein, das obj.newState.ack einmal true (=tatsächliche Änderung des Zustandes)

          und einmal false sein könnte.

          Viele Grüße.
          9821_fernzugriff.png
          9821_login.png
          9821_position_andy.png
          9821_proaccount.png

          1 Reply Last reply Reply Quote 0
          • L
            looxer01 last edited by

            jap, danke euch. Das ist es.

            Ich habe ack nicht abgefangen und die Quittung bekommen 😄

            super, danke nochmals.

            vG Looxer

            1 Reply Last reply Reply Quote 0
            • P
              Phantomio last edited by

              Hallo,

              hat einer von euch auch eine Idee warum bei dem folgenden Script die e-Mail immer zweimal versendet wird?

              var FbT11             = "hm-rpc.0.KEQ1004134.11.INSTALL_TEST";  // Fernbedienung 1OG:11.INSTALL_TEST
              
              on ({id: FbT11, change: "any"}, fTaste11);
              
              function fTaste11 (){
                  ZeitBadRechts      = (getState("javascript.0.BadFensterRechtsOffen.Tag").val);
                  ZeitBadLinks       = (getState("javascript.0.BadFensterLinksOffen.Tag").val);
                  ZeitBadBeide       = Number(ZeitBadRechts) + Number(ZeitBadLinks);
                  if (ZeitBadBeide > 0.01 && ZeitBadBeide < 30 ) {
                      fEMail("test@domain.de", "Die Badezimmer Fenster waren heute erst " + ZeitBadBeide + " auf!", "");
                  }
              }
              
              function fEMail (strTo, strBetreff, strText){
                  sendTo("email", {
                  from:    "test@domain.de",
                  to:      strTo,
                  subject: strBetreff,
                  html: '
              
              **Werte:** 
              
              '
                        ,
                  });
              }
              
              

              Das Script läuft eigentlich Zeitgesteuert.

              Die Taste habe ich nur zum Testen eingebaut 8-)

              Im Log bekomme ich auch noch eine Fehlermeldung:

              ! 2016-02-17 21:30:22.507 - info: javascript.0 sendTo "send" to system.adapter.email from system.adapter.javascript.0: {"from":"","to":"","subject":"Die Ba$
              ! 2016-02-17 21:30:22.580 - error: WARNING: cannot find message with id = 4881
              ! 2016-02-17 21:30:22.572 - info: email.0 Send email: {"from":"","to":"","subject":"Die Badezimmer Fenster waren heute erst 10.32 auf!","html":"
              ! Werte$
              ! 2016-02-17 21:30:22.580 - info: email.0 Send email: {"from":"
              ","to":"","subject":"Die Badezimmer Fenster waren heute erst 10.32 auf!","html":"
              ! Werte$
              ! 2016-02-17 21:30:23.432 - info: email.0 sent to ***
              ! 2016-02-17 21:30:23.438 - info: email.0 sent to ***
              ! 2016-02-17 21:30:23.493 - info: email.0 sent to ***
              Gruß
              ! Phantomio

              1 Reply Last reply Reply Quote 0
              • Jey Cee
                Jey Cee Developer last edited by

                Spontan würde ich sagen das es an "change: any" liegt. Wenn der status von deinem Objekt von true auf false und gleich wieder zurück wechselt wird das script 2 mal ausgeführt.

                Gesendet von meinem Tab2A7-10F mit Tapatalk

                1 Reply Last reply Reply Quote 0
                • P
                  Phantomio last edited by

                  Wow schnelle Reaktion 🙂

                  normalerweise wird das aber mit der schedule Funktion ausgelöst:

                  schedule("00 16 * * *", function () {
                      ZeitBadRechts      = (getState("javascript.0.BadFensterRechtsOffen.Tag").val);
                      ZeitBadLinks       = (getState("javascript.0.BadFensterLinksOffen.Tag").val);
                      ZeitBadBeide       = Number(ZeitBadRechts) + Number(ZeitBadLinks);
                      if (ZeitBadBeide === 0 )                       {fgEMail("test@domain.de", "Die Badezimmer Fenster waren noch nicht auf!", "");}
                      if (ZeitBadBeide > 0.01 && ZeitBadBeide < 30 ) {fgEMail("test@domain.de", "Die Badezimmer Fenster waren heute erst " + ZeitBadBeide + " auf!", "");}
                  });
                  
                  

                  fgEMail ist eine Globale Funktion.

                  auch hier wird die e-Mail doppelt gesendet.

                  Gruß

                  Phantomio
                  10529_bildschirmfoto_2019-01-26_um_11.14.40.png

                  1 Reply Last reply Reply Quote 0
                  • Jey Cee
                    Jey Cee Developer last edited by

                    Also wenn aus zu schließen ist das die globale Funktion das Problem ist, hab ich grad keine Idee was es sein könnte.

                    Gesendet von meinem Tab2A7-10F mit Tapatalk

                    1 Reply Last reply Reply Quote 0
                    • P
                      Phantomio last edited by

                      Da ich diese globale Funktion auch für andere Sachen benutze,

                      und diese nur eine e-Mail senden würde ich das erst mal ausschließen.

                      Die globale Funktion ist genau wie die Mail Funktion aufgebaut. Liegt halt nur in einem Globalen Script.

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      717
                      Online

                      31.6k
                      Users

                      79.5k
                      Topics

                      1.3m
                      Posts

                      5
                      9
                      2059
                      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