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. Javascript Expression Logic Hilfe

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.6k

Javascript Expression Logic Hilfe

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
11 Beiträge 3 Kommentatoren 775 Aufrufe 2 Watching
  • Ä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.
  • M moskito_91

    Hallo,
    ich versuche gerade folgenden Codeschnippsel von @blauholsten zu nutzen.
    Ich komme nicht aus der Java - Gruppierung.
    Habe Probleme damit die Ausdrücke und Operatoren zu verstehen.
    Googlen hat mich bis jetzt nicht weiter gebracht.
    Wäre es möglich dass mir jemand die Zeilen 9&10 erklärt?
    Insbesondere, die / Operatoren und das Ende setstate....

    `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"];
     
    const zaehlen = function() {
      var c = 0;
       for (var i=0; i <liste.length;i++) {/if/(getstate(liste[i]).val)/{c="c" +/1;}/}/setstate('javascript.0.sonos.playing',/c);/};/on(liste,/(dp)="">{
        zaehlen();
    });</liste.length;i++)>` 
     
    geht vielleicht noch kürzer.....[/i]
    

    Vielen dank!

    paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von paul53
    #2

    Antwort gelöscht.

    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

    blauholstenB 1 Antwort Letzte Antwort
    0
    • paul53P paul53

      Antwort gelöscht.

      blauholstenB Offline
      blauholstenB Offline
      blauholsten
      Developer
      schrieb am zuletzt editiert von
      #3

      @paul53 das wollte ich auch gerade fragen

      Entwickler vom: - Viessman Adapter
      - Alarm Adapter

      M 1 Antwort Letzte Antwort
      0
      • blauholstenB blauholsten

        @paul53 das wollte ich auch gerade fragen

        M Offline
        M Offline
        moskito_91
        schrieb am zuletzt editiert von
        #4

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

        blauholstenB paul53P 2 Antworten Letzte Antwort
        0
        • M moskito_91

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

          blauholstenB Offline
          blauholstenB Offline
          blauholsten
          Developer
          schrieb am zuletzt editiert von
          #5

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

          Entwickler vom: - Viessman Adapter
          - Alarm Adapter

          M 1 Antwort Letzte Antwort
          0
          • M moskito_91

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

            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von paul53
            #6

            @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 
            

            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
            • blauholstenB blauholsten

              @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 Offline
              M Offline
              moskito_91
              schrieb am zuletzt editiert von
              #7

              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);
              }
              */
              
              paul53P 1 Antwort Letzte Antwort
              0
              • M moskito_91

                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);
                }
                */
                
                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von paul53
                #8

                @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

                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

                M 1 Antwort Letzte Antwort
                0
                • paul53P 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 Offline
                  M Offline
                  moskito_91
                  schrieb am zuletzt editiert von
                  #9

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

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • M moskito_91

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

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #10

                    @moskito_91 sagte:

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

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

                    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

                    M 1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @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 Offline
                      M Offline
                      moskito_91
                      schrieb am zuletzt editiert von
                      #11

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

                      608

                      Online

                      32.7k

                      Benutzer

                      82.4k

                      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