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.
    • Jey Cee
      Jey Cee Developer last edited by

      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

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

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

        1 Reply Last reply Reply Quote 0
        • Jey Cee
          Jey Cee Developer last edited by

          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

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

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

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

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

              1 Reply Last reply Reply Quote 0
              • Jey Cee
                Jey Cee Developer last edited by

                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

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

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

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

                    @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() { 
                    	...
                    });
                    
                    1 Reply Last reply Reply Quote 0
                    • A
                      AndyUM61 last edited by

                      @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'
                      
                      1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 last edited by

                        @AndyUM61:

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

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

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

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

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

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

                              …funktioniert so nicht.

                              Gleiche Fehlermeldung.

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

                                @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 Reply Quote 0
                                • A
                                  AndyUM61 last edited by

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

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

                                    @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 !?

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

                                      @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 Reply Quote 0
                                      • A
                                        AndyUM61 last edited by

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

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

                                          @Bluefox:

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

                                          Javascript wird mir langsam unheimlich :roll:

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

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