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.6k

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

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

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.
  • paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von
    #17

    @AndyUM61:

    Das gefällt mir sehr gut!!! `
    Das ist die Variante mit 2 mal on().

    Die verkürzte Schreibweise ohne geschweifte Klammern ist möglich, da nur eine einzelne Anweisung (Funktion: klingeln) ausgeführt werden muss.

    http://forum.iobroker.de/viewtopic.php?f=21&t=1305&p=10889&sid=8d66987961ab8b9ec660c280b994fba5&sid=8d66987961ab8b9ec660c280b994fba5#p10889 hatte ich allerdings schon mal die Erfahrung gemacht, dass es verkürzt nicht funktioniert. Das hat sich anscheinend inzwischen geändert !?

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

      @paul53:

      @AndyUM61:

      Das gefällt mir sehr gut!!! `
      Das ist die Variante mit 2 mal on().

      Die verkürzte Schreibweise ohne geschweifte Klammern ist möglich, da nur eine einzelne Anweisung (Funktion: klingeln) ausgeführt werden muss.

      http://forum.iobroker.de/viewtopic.php?f=21&t=1305&p=10889&sid=8d66987961ab8b9ec660c280b994fba5&sid=8d66987961ab8b9ec660c280b994fba5#p10889 hatte ich allerdings schon mal die Erfahrung gemacht, dass es verkürzt nicht funktioniert. Das hat sich anscheinend inzwischen geändert !? `
      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.

      BTW: Fehler mit RegExp habe ich gefixt.

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

        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?

        Dann bräuchte ich nur eine Funktion, die in Abhängigkeit dieser Variable entsprechendes ausführt.

        Da wir zwei Klingeln haben, habe ich jetzt 4 on()-Funktionen, die hätte ich ja dann auch, und 2 klingeln()-Funktionen.

        Bin halt noch nicht soooo Weit mit dem Scripten, aber ich arbeite daran;).

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

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

          @Bluefox:

          Du hast "status()" geschrieben. Und ich ohne Klammern. `
          Und nur ohne Klammern funktioniert der Funktionsaufruf ?

          Javascript wird mir langsam unheimlich :roll:

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

                                      692

                                      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