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

      @paul53:

      @AndyUM61: Hast Du die RegExp-Variante nach Update des Javascript-Adapters auf Version 1.1.1 nochmal getestet ? `

      Nein, noch nicht.

      Ich müsste ja einen Regulären Ausdruck für meine Variablennamen finden, so das natürlich geht.

      Muss ich mir erst einmal ausprobieren.

      Das mit diesen RegExp fiel mir - ehrlich gesagt - bei anderen Programmiersprachen schon immer sehr schwer;).

      Ist ja auch wirklich recht unübersichtlich.

      Aber ich werde es mit Sicherheit bei anderen Scripten mal versuchen.

      Dankeschön trotzdem für den Tip:)!

      1 Reply Last reply Reply Quote 0
      • 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