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. On()-Funktion - Reagieren auf _SHORT oder _LONG

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.0k

On()-Funktion - Reagieren auf _SHORT oder _LONG

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
34 Beiträge 5 Kommentatoren 2.8k Aufrufe
  • Ä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.
  • BluefoxB Offline
    BluefoxB Offline
    Bluefox
    schrieb am zuletzt editiert von
    #21

    @AndyUM61:

    Also da ich ja für die ID's variablen verwende ist diese Variante für mich sehr gut nachvollziehbar.

    Auch wenn es eben 2 on()-Funktionen sind.

    Könnte man eigentlich der Funktion klingeln() eine Variable übergeben? `
    Ja natürlich:

    function klingeln(number) {
        // mache irgendwas
        log('Klingeklingelin ' + number);
    }
    on({id: hm-rpc.1.JEQ1234567.7.PRESS_SHORT, val: true}, function (){klingeln(1);});
    on({id: hm-rpc.1.JEQ1234567.7.PRESS_LONG, val: true}, function (){klingeln(2);});
    
    

    @AndyUM61:

    @Bluefox:

    Ist das normal, dass wenn man ein Script zum Editieren aufruft, das Editor-Fenster so weit unten geöffnet wird, dass man immer erst runter Scrollen muss? Ist ein wenig stressig, beim Experimentieren.

    Vielleicht mal beim nächsten Update…;) `

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

    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #22

      @Bluefox:

      BTW: Fehler mit RegExp habe ich gefixt. `
      @AndyUM61: Hast Du die RegExp-Variante nach Update des Javascript-Adapters auf Version 1.1.1 nochmal getestet ?

      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
      • A Offline
        A Offline
        AndyUM61
        schrieb am zuletzt editiert von
        #23

        @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:)!

        Internette Grüße
        Andy

        RaspberryMatic (Raspberry Pi3), CUxD, ioBroker (Synology/ Docker)

        1 Antwort Letzte Antwort
        0
        • A Offline
          A Offline
          AndyUM61
          schrieb am zuletzt editiert von
          #24

          @Bluefox:

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

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

          Internette Grüße
          Andy

          RaspberryMatic (Raspberry Pi3), CUxD, ioBroker (Synology/ Docker)

          1 Antwort Letzte Antwort
          0
          • paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #25

            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 `

            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
            • A Offline
              A Offline
              AndyUM61
              schrieb am zuletzt editiert von
              #26

              Na ist doch klasse:).

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

              Geht das denn mit Variablen?

              Internette Grüße
              Andy

              RaspberryMatic (Raspberry Pi3), CUxD, ioBroker (Synology/ Docker)

              1 Antwort Letzte Antwort
              0
              • paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #27

                @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);
                });
                

                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
                • A Offline
                  A Offline
                  AndyUM61
                  schrieb am zuletzt editiert von
                  #28

                  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.

                  Internette Grüße
                  Andy

                  RaspberryMatic (Raspberry Pi3), CUxD, ioBroker (Synology/ Docker)

                  1 Antwort Letzte Antwort
                  0
                  • paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #29

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

                    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
                    • BluefoxB Offline
                      BluefoxB Offline
                      Bluefox
                      schrieb am zuletzt editiert von
                      #30

                      @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 Antwort Letzte Antwort
                      0
                      • A Offline
                        A Offline
                        AndyUM61
                        schrieb am zuletzt editiert von
                        #31

                        @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.

                        Internette Grüße
                        Andy

                        RaspberryMatic (Raspberry Pi3), CUxD, ioBroker (Synology/ Docker)

                        1 Antwort Letzte Antwort
                        0
                        • paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von
                          #32

                          @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.

                          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
                          • BluefoxB Offline
                            BluefoxB Offline
                            Bluefox
                            schrieb am zuletzt editiert von
                            #33

                            @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 Antwort Letzte Antwort
                            0
                            • R Offline
                              R Offline
                              rascal
                              schrieb am zuletzt editiert von
                              #34

                              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 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

                              341

                              Online

                              32.4k

                              Benutzer

                              81.5k

                              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