Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. On()-Funktion - Reagieren auf _SHORT oder _LONG

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    927

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

On()-Funktion - Reagieren auf _SHORT oder _LONG

Scheduled Pinned Locked Moved Skripten / Logik
34 Posts 5 Posters 3.0k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    AndyUM61
    wrote on last edited by
    #1

    Hallo,

    Ich habe da ein kleines Problem:

    Kann ich bei einer on()-Funktion 2 States gleichzeitig abfragen?

    Konkret geht es bei mir um die Haus-Klingeln, einer drückt nur kurz drauf, und einer eben länger.

    Mein Homematic-Actor unterscheidet aber eben _SHORT oder _LONG.

    Ich möchte in einer on()-Funktion auf beides reagieren.

    Probiert habe ich:

    var idKlingel = "hm-rpc.1.????.7.PRESS_SHORT",
       	 idKlingel_long = "hm-rpc.1.????.7.PRESS_LONG";
    
    on( {id: idKlingel,val: true} || {id: idKlingel_long,val:true}, function (obj) {...
    

    was aber nicht zu funktionieren scheint.

    Er reagiert dabei nur auf _SHORT.

    Internette Grüße
    Andy

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

    1 Reply Last reply
    0
    • Jey CeeJ Online
      Jey CeeJ Online
      Jey Cee
      Developer
      wrote on last edited by
      #2

      Wenn du sagst er reagiert nur auf short, hast du dann schon mal die reihenfolge der bedingungen geändert?

      Gesendet von meinem Jolla mit Tapatalk
      7713_zigbee_adapter.png
      7713_zigbee_settings.png

      Persönlicher Support
      Spenden -> paypal.me/J3YC33

      1 Reply Last reply
      0
      • A Offline
        A Offline
        AndyUM61
        wrote on last edited by
        #3

        @Jey Cee:

        Wenn du sagst er reagiert nur auf short, hast du dann schon mal die reihenfolge der bedingungen geändert? `

        Na ja, aber was soll das bringen?

        Internette Grüße
        Andy

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

        1 Reply Last reply
        0
        • Jey CeeJ Online
          Jey CeeJ Online
          Jey Cee
          Developer
          wrote on last edited by
          #4

          Erst mal nur die Sicherheit das es wirklich an on() liegt. Ich hab auch eine oder verknüpfung in on() und das geht.

          Gesendet von meinem Jolla mit Tapatalk

          Persönlicher Support
          Spenden -> paypal.me/J3YC33

          1 Reply Last reply
          0
          • paul53P Offline
            paul53P Offline
            paul53
            wrote on last edited by
            #5

            @Jey Cee:

            Ich hab auch eine oder verknüpfung in on() und das geht. `
            Wirklich ? Wie sieht die funktionierende on-Zeile aus ?

            Ansonsten zwei mal on() oder RegExp verwenden.

            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 Reply Last reply
            0
            • A Offline
              A Offline
              AndyUM61
              wrote on last edited by
              #6

              @paul53:

              @Jey Cee:

              Ich hab auch eine oder verknüpfung in on() und das geht. `
              Wirklich ? Wie sieht die funktionierende on-Zeile aus ?

              Ansonsten zwei mal on() oder RegExp verwenden. `

              Das würde ich auch gerne wissen;).

              Ich habe jetzt natürlich 2 Mal on() verwendet, nur dachte ich, es könnte auch einfacher gtehen.

              Was ist RegExp?

              Internette Grüße
              Andy

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

              1 Reply Last reply
              0
              • Jey CeeJ Online
                Jey CeeJ Online
                Jey Cee
                Developer
                wrote on last edited by
                #7

                on({

                id: "harmony.0.Wohnzimmer-Hub.activities.Tv_Schauen"/activity:Tv_Schauen/,

                val: 0

                }

                ||

                {

                id: "harmony.0.Wohnzimmer-Hub.hubConnected"/Wohnzimmer-Hub:hubConnected/,

                val: false

                }
                9527_log_1.11..pdf
                9527_log_2.11..pdf
                9527_log_3.11..pdf
                9527_log_4.11..pdf
                9527_log_30.10..pdf
                9527_log29.10..pdf

                Persönlicher Support
                Spenden -> paypal.me/J3YC33

                1 Reply Last reply
                0
                • A Offline
                  A Offline
                  AndyUM61
                  wrote on last edited by
                  #8

                  @Jey Cee:

                  on({

                  id: "harmony.0.Wohnzimmer-Hub.activities.Tv_Schauen"/activity:Tv_Schauen/,

                  val: 0

                  }

                  ||

                  {

                  id: "harmony.0.Wohnzimmer-Hub.hubConnected"/Wohnzimmer-Hub:hubConnected/,

                  val: false

                  } `

                  Na ja, das entspricht ja genau dem, was ich eingehend geschrieben habe.

                  Internette Grüße
                  Andy

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

                  1 Reply Last reply
                  0
                  • paul53P Offline
                    paul53P Offline
                    paul53
                    wrote on last edited by
                    #9

                    @AndyUM61:

                    Was ist RegExp? `
                    Regulärer Ausdruck, ist in der readme des Javascript-Adapters aufgeführt.

                    Habe selbst damit keine Erfahrung, deshalb ohne Gewähr auf Richtigkeit:

                    on({id: /^hm-rpc\.1\.JEQ1234567\.7\.PRESS_.*$/, val:true}, function() { 
                    	...
                    });
                    

                    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 Reply Last reply
                    0
                    • A Offline
                      A Offline
                      AndyUM61
                      wrote on last edited by
                      #10

                      @paul53:

                      on({id: /^hm-rpc.1.JEQ1234567.7.PRESS_.*$/, val:true}, function() {

                      …

                      });

                      Das hat bei mir eine Fehlermeldung gebracht:

                      error	script.js.Klingel: TypeError: Object /^hm-rpc\.1\.JEQ0713213\.7\.PRESS_*$/ has no method 'split'
                      

                      Internette Grüße
                      Andy

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

                      1 Reply Last reply
                      0
                      • paul53P Offline
                        paul53P Offline
                        paul53
                        wrote on last edited by
                        #11

                        @AndyUM61:

                        Das hat bei mir eine Fehlermeldung gebracht: `
                        Hast Du es mal mit dem Punkt vor dem Sternchen versucht ?

                        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 Reply Last reply
                        0
                        • A Offline
                          A Offline
                          AndyUM61
                          wrote on last edited by
                          #12

                          @paul53:

                          Hast Du es mal mit dem Punkt vor dem Sternchen versucht ? `
                          Ich hatte es exakt von dir kopiert.

                          Keine Ahnung, warum in der Fehlermeldung der "." fehlt.

                          Internette Grüße
                          Andy

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

                          1 Reply Last reply
                          0
                          • paul53P Offline
                            paul53P Offline
                            paul53
                            wrote on last edited by
                            #13

                            @AndyUM61:

                            Ich hatte es exakt von dir kopiert. `
                            Sorry. Da warst Du mit dem Kopieren schneller als ich mit dem Einfügen des Punktes vor dem Sternchen.

                            Funktioniert es mit dem zusätzlichen Punkt ?

                            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 Reply Last reply
                            0
                            • A Offline
                              A Offline
                              AndyUM61
                              wrote on last edited by
                              #14

                              …funktioniert so nicht.

                              Gleiche Fehlermeldung.

                              Internette Grüße
                              Andy

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

                              1 Reply Last reply
                              0
                              • BluefoxB Offline
                                BluefoxB Offline
                                Bluefox
                                wrote on last edited by
                                #15

                                @AndyUM61:

                                @paul53:

                                on({id: /^hm-rpc.1.JEQ1234567.7.PRESS_.*$/, val:true}, function() {

                                …

                                });

                                Das hat bei mir eine Fehlermeldung gebracht:

                                error	script.js.Klingel: TypeError: Object /^hm-rpc\.1\.JEQ0713213\.7\.PRESS_*$/ has no method 'split'
                                ```` `  `  
                                

                                Diese Fehler werde ich heute fixen.

                                Ich kann aber anbieten:

                                function klingeln() {
                                    // mache irgendwas
                                    log('Klingeklingelin');
                                }
                                on({id: hm-rpc.1.JEQ1234567.7.PRESS_SHORT, val: true}, klingeln);
                                on({id: hm-rpc.1.JEQ1234567.7.PRESS_LONG, val: true}, klingeln);
                                
                                
                                1 Reply Last reply
                                0
                                • A Offline
                                  A Offline
                                  AndyUM61
                                  wrote on last edited by
                                  #16

                                  @Bluefox:

                                  Ich kann aber anbieten:

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

                                  Das gefällt mir sehr gut!!!

                                  Und funktioniert einwandfrei:).

                                  DANKESCHÖN!

                                  Internette Grüße
                                  Andy

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

                                  1 Reply Last reply
                                  0
                                  • paul53P Offline
                                    paul53P Offline
                                    paul53
                                    wrote on last edited by
                                    #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 Reply Last reply
                                    0
                                    • BluefoxB Offline
                                      BluefoxB Offline
                                      Bluefox
                                      wrote on last edited by
                                      #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 Reply Last reply
                                      0
                                      • A Offline
                                        A Offline
                                        AndyUM61
                                        wrote on last edited by
                                        #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 Reply Last reply
                                        0
                                        • paul53P Offline
                                          paul53P Offline
                                          paul53
                                          wrote on last edited by
                                          #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 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          421

                                          Online

                                          32.6k

                                          Users

                                          82.2k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe