Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. On mit mehreren State Trigger

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    On mit mehreren State Trigger

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      Marty56 last edited by

      Sorry, eine totale Anfängerfrage:

      mir ist nicht klar wie ich man eine Subscription mit mehreren state Triggern erzeugt.

      
       on("hm-rpc.0.JEQ0092995.1.STATE" or "hm-rpc.0.KEQ0165510.1.STATE" , function (obj) {
                ....
          });
      
      
      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 last edited by

        Mit RegExp kann man es lösen:

        on(/^hm-rpc\.0\.(JEQ0123456|KEQ1234567|KEQ2345678)\.1\.STATE$/, function(obj) {
           ...
        });
        
        1 Reply Last reply Reply Quote 0
        • M
          Marty56 last edited by

          Danke,

          sieht kompliziert aus. Eine einfache Auflistung aller states ist nicht irgendwie möglich?

          Wenn der zweite Kanal kein Homematic sensor ist, wie würde es dann aussehen?

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

            @Marty56:

            Eine einfache Auflistung aller states ist nicht irgendwie möglich? `
            Doch. Schau mal nach https://github.com/ioBroker/ioBroker.javascript#–-selector.
            @Marty56:

            Wenn der zweite Kanal kein Homematic sensor ist, wie würde es dann aussehen? `
            Ich habe gerade meine Glaskugel verlegt :lol: Das hängt davon ab, wie die ID des Nicht-HM-Datenpunktes aussieht.

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

              Ich habe es bei mir so gelöst das ich ein Array mit allen Datenpunkten generiert habe wo es auslösen soll und dann eine Schleife mit dem "on"-Befehl drin. Damit kann ich einfach oben das Array erweitern wenn einer dazukommt und muss mir keine Regex-Magie ausdenken und fertig. 🙂

              Also so als (trockenes) Beispiel:

              var liste = ["ID1", "ID2" ...]
              
              for (var i=0; i<liste.length;i++) {/on(liste[id],/function()/});/}/<e=""></liste.length;i++)>
              

              Die IDs bekommt man im JS-Adapter oben Rechts durc "ID Select" Button

              1 Reply Last reply Reply Quote 0
              • M
                Marty56 last edited by

                Danke für die tolle Unterstützung.

                Der letzte Ansatz gefällt mir gut.

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

                  Eigentlich möglich währe auch so:

                  var id1 = 'ID1';
                  var id2 = 'ID2';
                  
                  function onChange() {
                     var val1 = getState(id1).val;
                     var val2 = getState(id2).val;
                     console.log(id1 +  ' = ' + val1 + '; ' + id2 + ' = ' + val2);
                  }
                  
                  on(id1, onChange);
                  on(id2, onChange);
                  
                  
                  1 Reply Last reply Reply Quote 0
                  • apollon77
                    apollon77 last edited by

                    @Bluefox: Wäre es nicht eine IDee bei "on" auch anstelle nur eines Strings oder Regex auch ein Array zu akzeptieren und neben "state-obj" als Parameter für Callback auch die "id" als zweiten Parameter zu übergeben?

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

                      @apollon77:

                      neben "state-obj" als Parameter für Callback auch die "id" als zweiten Parameter zu übergeben? `
                      Die id wird im Objekt übergeben.

                      function onChange(dp) {
                          var idnow = dp.id;
                      }
                      
                      on(..., onChange);
                      
                      1 Reply Last reply Reply Quote 0
                      • apollon77
                        apollon77 last edited by

                        Stimmt, dann bleibt die Array-Idee 🙂

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

                          https://github.com/ioBroker/ioBroker.ja … 2017-05-19

                          3.3.7 (2017-05-19)
                          
                          (bluefox) Accept for subscribes arrays of IDs
                          
                          1 Reply Last reply Reply Quote 0
                          • Dutchman
                            Dutchman Developer Most Active Administrators last edited by

                            @Bluefox:

                            https://github.com/ioBroker/ioBroker.ja … 2017-05-19

                            3.3.7 (2017-05-19)
                            
                            (bluefox) Accept for subscribes arrays of IDs
                            ```` `  
                            

                            Und wieder ist der blaue Fux schneller als die Eisenbahn :respect:

                            –-----------------------

                            Send from mobile device

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

                              Tut bei mir nur leider nicht … aber er weiss es schon 🙂

                              1 Reply Last reply Reply Quote 0
                              • M
                                Marty56 last edited by

                                So eine schnelle Reaktion habe ich noch nie erlebt. Ich bin beeindruckt.

                                Die Syntax, die jetzt möglich ist, von meinem Beispiel am Anfang ist dann

                                
                                 on(["hm-rpc.0.JEQ0092995.1.STATE","hm-rpc.0.KEQ0165510.1.STATE"] , function (obj) {
                                          ....
                                    });
                                
                                

                                Ist mein Verständnis korrekt?

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

                                  Genau. Und on({id: […], change: "ne"}, function (obj) { sollte auch tun, aber das hat bei mir nicht geklappt. Aber wie geschrieben schaut duh das Bluefox schon an.

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

                                    Ich habe Array Subscribe auf Github gefixt. wird dann 3.3.8

                                    Bitte testen wer mag

                                    1 Reply Last reply Reply Quote 0
                                    • blauholsten
                                      blauholsten Developer last edited by

                                      @apollon77:

                                      Ich habe Array Subscribe auf Github gefixt. wird dann 3.3.8

                                      Bitte testen wer mag `
                                      Klappt!

                                      nice

                                      1 Reply Last reply Reply Quote 0
                                      • M
                                        Marty56 last edited by

                                        Ich würde auch gern testen, mir ist aber nicht ganz klar, wie ich an die Pre Release herankomme.

                                        Auf meinem Mac mache ich das Update der Platform mit

                                        sudo ./iobroker stop
                                        sudo ./iobroker update
                                        sudo ./iobroker upgrade self
                                        sudo ./iobroker upgrade
                                        sudo ./iobroker start
                                        
                                        

                                        Damit bekomme ich die Production Version.

                                        Vermutlich benötige ich bei einem der Befehle eine "– xxxx " extension.

                                        Noch eine (dumme) Frage:

                                        Zur Ausgabe eines Mp3 Files muss man sein File unter Linux wohl in das OPT Verzeichnis kopieren, in dem auch die Sprachausgabe ihr Mp3 Files ablegt. Wo liegt dieses Verzeichnis auf dem MAC?

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

                                          @Marty56:

                                          Ich würde auch gern testen, mir ist aber nicht ganz klar, wie ich an die Pre Release herankomme. `

                                          Geht in der Admin UI.

                                          Oben sind kleine Buttons und das dritte von Links ist ein Github-Symbol. Da drauf - ist "Custom Install" und dort im ersten tab den Adapter wählen den Du willst (in dem Fall hier "Javascript") und dann updated er direkt vom Github.

                                          @Marty56:

                                          Noch eine (dumme) Frage:

                                          Zur Ausgabe eines Mp3 Files muss man sein File unter Linux wohl in das OPT Verzeichnis kopieren, in dem auch die Sprachausgabe ihr Mp3 Files ablegt. Wo liegt dieses Verzeichnis auf dem MAC? `
                                          Machst DU dazu bitte nen extra Thread auf ?! Wollen nicht zuviele Themen mischen 🙂

                                          1 Reply Last reply Reply Quote 0
                                          • M
                                            Marty56 last edited by

                                            Ich sehe kein "Custom install", wenn ich das GitHub Symbol anklicke.

                                            Muss ich da noch eine URL eintragen?
                                            2722_bildschirmfoto_2017-05-23_um_09.22.19.png
                                            2722_bildschirmfoto_2017-05-23_um_09.23.26.png

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            543
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            9
                                            48
                                            11169
                                            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