Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Script mit mehreren "on" wird 2x ausgeführt -> warum?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Script mit mehreren "on" wird 2x ausgeführt -> warum?

    This topic has been deleted. Only users with topic management privileges can see it.
    • bahnuhr
      bahnuhr Forum Testing Most Active last edited by

      Hallo,

      zur ausprobieren habe ich mal folgendes Script erstellt:

      ! function weiter() {
      ! log ("weiter");
      ! }
      ! on("hm-rega.0.2042", function() { //Urlaub
      ! log("Auslöser Urlaub");
      ! weiter();
      ! });
      ! on("hm-rega.0.1503", function() { //Sommer
      ! log("Auslöser Sommer");
      ! weiter();
      ! });
      ! on("hm-rega.0.1504", function() { //Wochenende
      ! log("Auslöser Wochenende");
      ! weiter();
      ! });
      ! on("hm-rega.0.32078", function() { //Anwesenheit
      ! log("Auslöser Anwesenheit");
      ! weiter();
      ! });
      ! on("hm-rega.0.2905", function() { //Feiertag
      ! log("Auslöser Feiertag");
      ! weiter();
      ! });

      Dies sind alles Systemvariablen auf ccu2.

      Wenn ich nun eine ändere, z.B. Urlaub

      wird das Script 2 x durchlaufen. So steht es im log.

      filename="bild1.jpg" index="0">~~

      1x sofort nach Änderung der SV.

      Und das 2x ein paar Sekunden später.

      Warum ?

      mfg

      Dieter

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

        @bahnuhr:

        Wenn ich nun eine ändere, z.B. Urlaub, wird das Script 2 x durchlaufen. `
        Um das zu ermitteln, erweitere mal das Log:

        on("hm-rega.0.2042", function(dp) { //Urlaub
        log("Auslöser Urlaub " + dp.state.val + " Ack: " + dp.state.ack);
        weiter();
        });
        
        1 Reply Last reply Reply Quote 0
        • frankjoke
          frankjoke last edited by

          Kann es sein dass die CCU die Variablke nach einigen Sekunden zurücksetzt und du deshalb das Script 2xdurchläuft?

          Du sulltest beim on nicht dur die id angeben sonst auch die anderen Bedingungen:

          on({id: "hm-rega.0.1504", change: "ne", val: true}, function() { //Wochenende

          log("Auslöser Wochenende");

          weiter();

          });

          Damit wird das script nur aufgerufen wenn sich der Wert von "hm-rega.0.1504" auf true ändert.

          1 Reply Last reply Reply Quote 0
          • bahnuhr
            bahnuhr Forum Testing Most Active last edited by

            Hallo,

            ich will aber nicht nur trigger auf true, sondern auch auf false.

            Also müsste doch nur "ne" richtig sein.

            Und dies dachte ich muss man nicht mit angeben.

            mfg

            P.S.

            Ich probiers aber mal.

            1 Reply Last reply Reply Quote 0
            • bahnuhr
              bahnuhr Forum Testing Most Active last edited by

              Die andere Vermutung mit dem Zurückspielen von der ccu2 hatte ich auch.

              1 Reply Last reply Reply Quote 0
              • bahnuhr
                bahnuhr Forum Testing Most Active last edited by

                @paul53:

                Um das zu ermitteln, erweitere mal das Log:

                on("hm-rega.0.2042", function(dp) { //Urlaub
                log("Auslöser Urlaub " + dp.state.val + " Ack: " + dp.state.ack);
                weiter();
                });
                ```` `  
                

                Hab ich gemacht. Das Ergebnis:
                filename="bild1.jpg" index="0">~~

                mfg

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

                  Dann solltest Du den Auslöser erweitern:

                  on({id: "hm-rega.0.2042", change: "ne", ack: true}, function() { //Urlaub
                  
                  
                  1 Reply Last reply Reply Quote 0
                  • bahnuhr
                    bahnuhr Forum Testing Most Active last edited by

                    Hatte es jetzt so gelöst:
                    filename="bild1.jpg" index="0">~~

                    Aber deine Lösung gefällt mir besser.

                    Werde ich wieder ändern.

                    Danke.

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    416
                    Online

                    31.9k
                    Users

                    80.2k
                    Topics

                    1.3m
                    Posts

                    3
                    8
                    739
                    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