Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Javascript Expression Logic Hilfe

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Javascript Expression Logic Hilfe

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @moskito_91 last edited by paul53

      Antwort gelöscht.

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

        @paul53 das wollte ich auch gerade fragen

        M 1 Reply Last reply Reply Quote 0
        • M
          moskito_91 @blauholsten last edited by

          @blauholsten https://forum.iobroker.net/topic/6163/on-mit-mehreren-state-trigger/48?lang=en-GB&page=2
          Da isser.
          Hintergrund:
          Ich habe mehrere Trigger Objekte, die immer die selbe Funktion aufrufen sollen. Nur die Übergabevariable variiert.
          Das läuft wie folgt -> Objekt wird gesetzt -> Trigger kommt -> Objekt ruft dann über den Trigger die Funktion auf und übergibt sich selber als Variable.
          Danke und Gruß

          blauholsten paul53 2 Replies Last reply Reply Quote 0
          • blauholsten
            blauholsten Developer @moskito_91 last edited by

            @moskito_91 hallo,

            Der zitierte Beitrag ist ja doch schon Recht alt und mit der Umstellung des Forums ist dieser jetzt auch schwer zu lesen.

            Ich denke aber das was du willst ist einfach zu lösen.

            Kannst du dein Code etwas besser beschreiben, dann kann die besser geholfen werden.

            M 1 Reply Last reply Reply Quote 0
            • paul53
              paul53 @moskito_91 last edited by paul53

              @moskito_91 sagte in Javascript Expression Logic Hilfe:

              Nur die Übergabevariable variiert.

              Welche Übergabevariable ?

              @moskito_91 sagte in Javascript Expression Logic Hilfe:

              Objekt wird gesetzt -> Trigger kommt -> Objekt ruft dann über den Trigger die Funktion auf und übergibt sich selber als Variable.

              Meinst Du so ?

              const liste = [ "sonos.0.root.192_168_2_6.state_simple", 
                              "sonos.0.root.192_168_2_7.state_simple", 
                              "sonos.0.root.192_168_2_8.state_simple", 
                              "sonos.0.root.192_168_2_9.state_simple",
                              "sonos.0.root.192_168_2_10.state_simple"];
              
              function meineFunktion(dp) {
                  // hier können alle Datenpunkt-Eigenschaften ausgewertet werden
                  log(dp.common.name + ': ' + dp.state.val); // z.B. der Name und der Wert
              }
              
              on(liste, meineFunktion); // triggert bei Wertänderung 
              
              1 Reply Last reply Reply Quote 0
              • M
                moskito_91 @blauholsten last edited by

                Der Trigger kommt leider bei deinem Example nicht. Mache ich was falsch?
                Weiter unten, dass was ich eigentlich möchte.

                var State_Variable;
                const StateArray = [
                    "Jarvis.Jalousie_Trigger.JaKid1Ru",
                    "Jarvis.Jalousie_Trigger.JaKid1Ho"];
                    console.log(StateArray.length);
                //*for(var i=0; i<StateArray.length+1;i++){
                //    createState(StateArray[i],false,{name:"Trigger_JaKid1Ru",type:"boolean",role :"state"});
                //}
                
                function State_Reset(dp) {
                    // hier können alle Datenpunkt-Eigenschaften ausgewertet werden
                    //log(dp.common.name + ': ' + dp.state.val); // z.B. der Name und der Wert
                    console.log('Test');
                }
                 
                on(StateArray, State_Reset); // triggert bei Wertänderung 
                
                /**
                 * Das hier möchte ich, mit allen Elementen aus meinem Array StateArray.
                 * 
                 * 
                on({id: 'javascript.0.Jarvis.Jalousie_Trigger.JaKid1Ho', change: "gt"}, function (obj) {
                  var value = obj.state.val;
                  var oldValue = obj.oldState.val;
                State_Reset('javascript.0.Jarvis.Jalousie_Trigger.JaKid1Ho');
                });
                
                
                function State_Reset(State_Variable) {
                 setStateDelayed(State_Variable,false,300);
                }
                */
                
                paul53 1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @moskito_91 last edited by paul53

                  @moskito_91 sagte:

                  Weiter unten, dass was ich eigentlich möchte.

                  const liste = [ "sonos.0.root.192_168_2_6.state_simple", 
                                  "sonos.0.root.192_168_2_7.state_simple", 
                                  "sonos.0.root.192_168_2_8.state_simple", 
                                  "sonos.0.root.192_168_2_9.state_simple",
                                  "sonos.0.root.192_168_2_10.state_simple"];
                   
                  function State_Reset(dp) {
                      setStateDelayed(dp.id, false, 300);
                  }
                   
                  on({id: liste, change: 'gt'}, State_Reset); // triggert bei Wertänderung auf größer
                  

                  oder

                  on({id: liste, change: 'gt'}, function(dp) { // triggert bei Wertänderung auf größer
                      setStateDelayed(dp.id, false, 300);
                  });   
                  

                  Blockly:

                  Blockly_temp.JPG

                  M 1 Reply Last reply Reply Quote 0
                  • M
                    moskito_91 @paul53 last edited by

                    @paul53
                    Hallo Paul,
                    danke für deine Hilfe. Das ganze sieht demnach so aus:

                    var State_Variable;
                    const StateArray = [
                        "Jarvis.Jalousie_Trigger.JaKid1Ru",
                        "Jarvis.Jalousie_Trigger.JaKid1Ho"];
                        console.log(StateArray.length);
                    //*for(var i=0; i<StateArray.length+1;i++){
                    //    createState(StateArray[i],false,{name:"Trigger_JaKid1Ru",type:"boolean",role :"state"});
                    //}
                    
                    function State_Reset(dp) {
                        setStateDelayed(dp.id, false, 300);
                        console.log('trigger');
                    }
                     
                    on({id: StateArray, change: 'gt'}, State_Reset); // triggert bei Wertänderung auf größer
                    
                    

                    Trotzdem gibt er mir die Debug Ausgabe trigger nicht, demnach funktioniert dieser nicht? Kannst du mir noch einen Tip geben?

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

                      @moskito_91 sagte:

                      const StateArray = [ "Jarvis.Jalousie_Trigger.JaKid1Ru", "Jarvis.Jalousie_Trigger.JaKid1Ho"];

                      Das sind keine vollständigen Datenpunkt-IDs. Damit erfolgt kein Trigger.

                      M 1 Reply Last reply Reply Quote 0
                      • M
                        moskito_91 @paul53 last edited by

                        @paul53
                        Das stimmt,
                        dankeschön.
                        Man lernt eben nur richtig wenn man ausprobiert und selber dahinter kommt.

                        Vielen dank für die schnelle Hilfe!

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        419
                        Online

                        31.8k
                        Users

                        80.0k
                        Topics

                        1.3m
                        Posts

                        javascript
                        3
                        11
                        378
                        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