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

    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 1 Antwort Letzte Antwort
    0
    • 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

                        588

                        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