Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. On()-Funktion - Reagieren auf _SHORT oder _LONG

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    On()-Funktion - Reagieren auf _SHORT oder _LONG

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

      @Bluefox:

      Ich gehe davon aus, dass du mit dem Skript weiterarbeiten willst. :lol: `

      Aber du hast verstanden was ich meine;)?
      518_script_editor.gif

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

        Habe das folgende Script mit der Javascript-Adapter Version 1.1.1 getestet:

        on({id: /^hm-rpc\.0\.BidCoS-RF\.1\.PRESS_.*$/, val:true}, function(dp) { 
            log(dp.id);
        });
        
        

        und es funktioniert. Log:
        ` > javascript-0 2015-12-16 21:15:51 info script.js._Multistate-Test: hm-rpc.0.BidCoS-RF.1.PRESS_LONG

        javascript-0 2015-12-16 21:15:31 info script.js._Multistate-Test: hm-rpc.0.BidCoS-RF.1.PRESS_SHORT `

        1 Reply Last reply Reply Quote 0
        • A
          AndyUM61 last edited by

          Na ist doch klasse:).

          …und wie würde das für die Variablen "klingel" und "klingel_long" aussehen?

          Geht das denn mit Variablen?

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

            @AndyUM61:

            …und wie würde das für die Variablen "klingel" und "klingel_long" aussehen? `
            Sollen die Variablen als Auslöser dienen:

            on({id: /^javascript\.0\.klingel.*$/, val:true}, function(dp) {
                log(dp.id);
            });
            
            1 Reply Last reply Reply Quote 0
            • A
              AndyUM61 last edited by

              Das hast du falsch verstanden.

              Ich habe zur Vereinfachung halber die Actoren, also z.B. "hm-rpc.1.J…......" in Variablen, also z.B. "klingel" gepackt.

              Diese verwende ich halt in den on()-Funktionen.

              Ich mag meine Scripts möglichst universell, und brauche so eben nur jeweils den "Kopf" ändern.

              Bei dem Klingelscript ist das nicht wirklich notwendig, aber bei meinen MQTT-Sensoren macht das schon Sinn.

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

                Das Script mit den "hm-rpc.1.J…......" als Auslöser habe ich bereits gepostet.

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

                  @AndyUM61:

                  @Bluefox:

                  Ich gehe davon aus, dass du mit dem Skript weiterarbeiten willst. :lol: `

                  Aber du hast verstanden was ich meine;)? `
                  Nein. Habe ich nicht so verstanden.

                  Schiebe das Febster ein mal nach oben. Der wird dann die Position merken.

                  1 Reply Last reply Reply Quote 0
                  • A
                    AndyUM61 last edited by

                    @Bluefox:

                    Kannst mir glauben, das Fenster habe ich Heute bestimmt 1000x nach oben geschoben.

                    …immer wieder neu;).

                    Sonst hätte ich ja auch nichts dazu geschrieben;).

                    Benutze übrigens Firefox.

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

                      @Bluefox:

                      Du hast "status()" geschrieben. Und ich ohne Klammern.

                      Bei dir wolltest du das Ergebnis von Funktion status nutzen (Vermutlich "undefined") und ich habe die Funktionen eingegeben. `
                      Mit dem Ergebnis der Funktion hat es nichts zu tun.

                      Es sollte lediglich ein Funktionsaufruf ohne Parameterübergabe sein. Macht man einen solchen Funktionsaufruf in einer extra Zeile - z.B. innerhalb einer Verbundanweisung, sind die Klammern erfoderlich.

                      { funcXYZ();
                      }
                      ````funktioniert
                      

                      { funcXYZ;
                      }

                      
                      EDIT: Habe noch etwas recherchiert: Callback-Funktionen müssen offenbar als anonyme Funktion (mit oder ohne Argumente)
                      

                      on(id, function(arg1, ...argN) {
                      Funktion(en);
                      });

                      oder als Funktionsreferenz (ohne Argumente)
                      

                      on(id, FunktionXYZ);

                      angegeben werden.
                      1 Reply Last reply Reply Quote 0
                      • Bluefox
                        Bluefox last edited by

                        @AndyUM61:

                        @Bluefox:

                        Kannst mir glauben, das Fenster habe ich Heute bestimmt 1000x nach oben geschoben.

                        …immer wieder neu;).

                        Sonst hätte ich ja auch nichts dazu geschrieben;).

                        Benutze übrigens Firefox. `
                        Versuche Cache zu löschen. Komplett

                        1 Reply Last reply Reply Quote 0
                        • R
                          rascal last edited by

                          Hey,

                          frage von einem totalen JavaScript noob: Er schaltet mir die Var output2 nicht, was mache ich falsch?

                          log("Test","info");
                          
                          //var input1 = "ping.0.input1";/*input1 bool*/ 
                          //var input2 = "ping.0.input2";/*input2 zahl*/
                          //var output1 = "ping.0.output1";/*output1 bool*/
                          //var output2 = "ping.0.output2";/*output2 zahl*/
                          
                          function testfunc1() 
                          {
                              setState("ping.0.output1", true);
                          }
                          
                          function testfunc2() 
                          {
                              setState("ping.0.output1", false);
                          }
                          
                          on({id: "ping.0.input1", val: true}, testfunc1);
                          on({id: "ping.0.input1", val: false}, testfunc2);
                          
                          

                          305_heizungsscript_220_b14_temp.txt

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          1.1k
                          Online

                          31.7k
                          Users

                          79.7k
                          Topics

                          1.3m
                          Posts

                          5
                          34
                          2442
                          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