Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Gelöst] [Blockly] Rollladen mit Lux wert fahren

    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

    [Gelöst] [Blockly] Rollladen mit Lux wert fahren

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

      @Homer1976:

      Muss ich noch etwas anderes ändern. ? `
      Poste bitte Dein Blockly und/oder den erzeugten Javascript (in Code tags ohne die letzte Zeile). Andernfalls kann ich nur Vermutungen anstellen.

      Auch einen Export immer in Spoiler <u>und</u> Code tags posten !

      1 Reply Last reply Reply Quote 0
      • Homer.J.
        Homer.J. last edited by

        // -----------------------------------------------
        // Trigger
        // -----------------------------------------------
        
        schedule({hour: 6, minute: 30}, function () {
            // werktags, kein Feiertag -> unten hoch
            if(!isWeekend() || getState("hm-rega.0.54978"/*Feiertag_heute*/).val === false) {
                log("Werktag, Kein Feiertag: Fahre Jalousie hoch");
                Jalousie_unten_hoch();
            }
        });
        schedule({hour: 8, minute: 0}, function () {
            // wochenende oder Feiertag -> unten hoch
            if(isWeekend() || getState("hm-rega.0.54978"/*Feiertag_heute*/).val === true) {
                log("Wochende bzw. Feiertag: Fahre Jalousie hoch");
                Jalousie_unten_hoch();
            }
        });
        schedule({hour: 6, minute: 30}, function () {
            // werktags, kein Urlaub, kein Feiertag, -> oben hoch
            if (!isWeekend() && getState("hm-rega.0.55182"/*Urlaub*/).val === false && getState("hm-rega.0.54978"/*Feiertag_heute*/).val === false) {
                log("Werktag, kein Urlaub, kein Feiertag: Fahre Jalousie hoch");
                Jalousie_oben_hoch();
            }
        });
        schedule({hour: 8, minute: 0}, function () {
            // wochenende -> oben hoch
            if (isWeekend()) {
                log("Wochenende: Fahre Jalousie hoch");
                Jalousie_oben_hoch();
            }
            // Feiertag, werktags -> oben hoch
            if (!isWeekend() && getState("hm-rega.0.54978"/*Feiertag_heute*/).val === true) {
                log("Werktag, Feiertag: Fahre Jalousie hoch");
                Jalousie_oben_hoch();
            }
            // Urlaub, werktags -> oben hoch
            if (!isWeekend() && getState("hm-rega.0.55182"/*Urlaub*/).val === true) {
                log("Werktag, Urlaub: Fahre Jalousie hoch");
                Jalousie_oben_hoch();
            }
        });
        
        // Bei Sonnenuntergang (kleiner 4 Lux)
        
        on({id: 'hm-rpc.1.NEQ0322210.1.LUX', change: "ne"}, function (obj) {
           var value = obj.state.val;
           var oldValue = obj.oldState.val;
           console.log('*** Lux hat sich aktualisiert');
           if (getState("hm-rpc.1.NEQ0322210.1.LUX").val < 4 ) {
              console.log('*** Jalousie runter auf wahr setzen');
              setState('javascript.0.Rollladen_Hoch/Runter', true, true);  // aktualisiere Rolladen_Hoch/Runter mit wahr
           } else if (getState("hm-rpc.1.NEQ0322210.1.LUX").val > 100) {
              console.log('*** Jalousie runter auf unwahr setzen');
              setState('javascript.0.Rollladen_Hoch/Runter', false, true);  // aktualisiere Rolladen_Hoch/Runter mit unwahr
           }
        });
        
        // -----------------------------------------------
        // Aktionen
        // -----------------------------------------------
        
        function Jalousie_oben_hoch() {
            // Abbruch bei deaktivierter Automatik
            if (getState("hm-rega.0.55181"/*Jalousie Automatik*/).val === false) { return; }
        
            log("Jalousie oben hoch");
        
            // Status setzen (Standard)
            lvJalBad = 100;
            lvJalFlur = 100;
            lvJalWohnrechts = 100;
            lvJalWohnlinks = 100;
            lvJalKueche = 100;
        
            // Status setzen (Ausnahmen)
            if (getState("javascript.0.Jalousie.Sonnenschutz"/*Jalousie.Sonnenschutz*/).val === true) {
                lvJalWohnrechts = 0;
                lvJalWohnlinks = 0;
            }
        
            // Ausführen
            setState("hm-rpc.1.MEQ0735410.1.LEVEL"/*Rollladen Badezimmer.LEVEL*/, lvJalBad);
            setState("hm-rpc.1.MEQ0735420.1.LEVEL"/*Rollladen Flur .LEVEL*/, lvJalFlur);
            setState("hm-rpc.1.MEQ0735434.1.LEVEL"/*Rollladen Wohnzimmer rechts .LEVEL*/, lvJalWohnrechts);
            setState("hm-rpc.1.MEQ0735459.1.LEVEL"/*Rollladen Wohnzimmer links .LEVEL*/, lvJalWohnlinks);
            setState("hm-rpc.1.MEQ0735469.1.LEVEL"/*Rollladen Fenster Küche .LEVEL*/, lvJalKueche);
        
        }
        
        function Jalousie_unten_hoch() {
            // Abbruch bei deaktivierter Automatik
            if (getState("hm-rega.0.55181"/*Jalousie Automatik*/).val === false) { return; }
        
            log("Jalousie unten hoch");
        
            // Status setzen (Standard)
            lvJalKZ = 100;
            lvJalHWR = 100;
            lvJalBad = 100;
            lvJalFlur = 100;
            lvJalWohnrechts = 100;
            lvJalWohnlinks = 100;
            lvJalBalkontuer = 100;
            lvJalSZ = 100;
            lvJalKueche = 100;
            lvJalBadoben = 1;
        
            // Status setzen (Ausnahmen)
            if (getState("javascript.0.Jalousie.Sonnenschutz"/*Jalousie.Sonnenschutz*/).val === true) {
                lvJalWohnrechts = 40;
                lvJalWohnlinks = 40;
                if(getState("hm-rpc.2.0007D7099CF99C.1.STATE"/*Tür Flur.STATE*/).val == 2) {
                    lvJalFlur = 60;
                } else {
                    lvJalWohnrechts = 40;
                }
                lvJalWohnlinks = 40;
            }
        
            // Ausführen
            setState("hm-rpc.1.MEQ0735305.1.LEVEL"/*Rollladen Kinderzimmer .LEVEL*/, lvJalKZ);
            setState("hm-rpc.1.MEQ0735367.1.LEVEL"/*Rollladen Abstellraum .LEVEL*/, lvJalHWR);
            setState("hm-rpc.1.MEQ0735410.1.LEVEL"/*Rollladen Badezimmer.LEVEL*/, lvJalBad);
            setState("hm-rpc.1.MEQ0735420.1.LEVEL"/*Rollladen Flur .LEVEL*/, lvJalFlur);
            setState("hm-rpc.1.MEQ0735434.1.LEVEL"/*Rollladen Wohnzimmer rechts .LEVEL*/, lvJalWohnrechts);
            setState("hm-rpc.1.MEQ0735459.1.LEVEL"/*Rollladen Wohnzimmer links .LEVEL*/, lvJalWohnlinks);
            setState("hm-rpc.1.MEQ0735466.1.LEVEL"/*Rollladen Balkontür Küche .LEVEL*/, lvJalBalkontuer);
            setState("hm-rpc.1.MEQ0735467.1.LEVEL"/*Rollladen Schlafzimmer .LEVEL*/, lvJalSZ);
            setState("hm-rpc.1.MEQ0735469.1.LEVEL"/*Rollladen Fenster Küche .LEVEL*/, lvJalKueche);
            setState("hm-rpc.1.LEQ1211399.3.STATE"/*Rollladen Fenster Bad oben .STATE*/, lvJalBadoben);
        }
        
        function Jalousie_runter () {
            // Abbruch bei deaktivierter Automatik
            if (getState("hm-rega.0.55181"/*Jalousie Automatik*/).val === false) { return; }
        
            log("Jalousie runter");
        
            // Status setzen (Standard)
            lvJalKZ = 0;
            lvJalHWR = 0;
            lvJalBad = 0;
            lvJalFlur = 0;
            lvJalWohnrechts = 0;
            lvJalWohnlinks = 0;
            lvJalBalkontuer = 0;
            lvJalSZ = 0;
            lvJalKueche = 0;
            lvJalBadoben = 1;
        
            // Status setzen (Ausnahmen)
            // Tür Flur Sperre (0 = geschlossen, 1 = gekippt, 2 = offen)
            if(getState("hm-rpc.2.0007D7099CF99C.1.STATE"/*Tür Flur.STATE*/).val == 2) {
                lvJalFlur = 100;
            }
        
            // Ausführen
            setState("hm-rpc.1.MEQ0735305.1.LEVEL"/*Rollladen Kinderzimmer .LEVEL*/, lvJalKZ);
            setState("hm-rpc.1.MEQ0735367.1.LEVEL"/*Rollladen Abstellraum .LEVEL*/, lvJalHWR);
            setState("hm-rpc.1.MEQ0735410.1.LEVEL"/*Rollladen Badezimmer .LEVEL*/, lvJalBad);
            setState("hm-rpc.1.MEQ0735420.1.LEVEL"/*Rollladen Flur .LEVEL*/, lvJalFlur);
            setState("hm-rpc.1.MEQ0735434.1.LEVEL"/*Rollladen Wohnzimmer rechts .LEVEL*/, lvJalWohnrechts);
            setState("hm-rpc.1.MEQ0735459.1.LEVEL"/*Rollladen Wohnzimmer links .LEVEL*/, lvJalWohnlinks);
            setState("hm-rpc.1.MEQ0735466.1.LEVEL"/*Rollladen Balkontür Küche .LEVEL*/, lvJalBalkontuer);
            setState("hm-rpc.1.MEQ0735467.1.LEVEL"/*Rollladen Schlafzimmer .LEVEL*/, lvJalSZ);
            setState("hm-rpc.1.MEQ0735469.1.LEVEL"/*Rollladen Fenster Küche .LEVEL*/, lvJalKueche);
            setState("hm-rpc.1.LEQ1211399.2.STATE"/*Rollladen Fenster Bad oben .STATE*/, lvJalBadoben);
        
        }
        
        1 Reply Last reply Reply Quote 0
        • Homer.J.
          Homer.J. last edited by

          Das ist dann die Ausgabe.

          15:44:00.415

          [info]

          javascript.0 Stop script script.js.Rollladen_.Jalousien_ändern_script_Lux

          15:44:00.442

          [info]

          javascript.0 Start javascript script.js.Rollladen_.Jalousien_ändern_script_Lux

          15:44:00.443

          [info]

          javascript.0 script.js.Rollladen_.Jalousien_ändern_script_Lux: registered 1 subscription and 4 schedules

          15:46:17.837

          [info]

          javascript.0 script.js.Rollladen_.Jalousien_ändern_script_Lux: *** Lux hat sich aktualisiert

          15:48:51.619

          [info]

          javascript.0 script.js.Rollladen_.Jalousien_ändern_script_Lux: *** Lux hat sich aktualisiert

          15:48:51.620

          [info]

          javascript.0 script.js.Rollladen_.Jalousien_ändern_script_Lux: *** Jalousie runter auf wahr setzen

          15:48:51.621

          [warn]

          javascript.0 at Object. (script.js.Rollladen_.Jalousien_ändern_script_Lux:52:7)

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

            Die Funktion Jalousie_runter() wird nirgends aufgerufen. Es fehlt der Trigger mit dem Funktionsaufruf (als letztes im Skript):

            on('javascript.0.Rollladen_Hoch/Runter', function(dp) {
               if(dp.state.val) Jalousie_runter();
            });
            
            1 Reply Last reply Reply Quote 0
            • paul53
              paul53 last edited by

              @Homer1976:

              [warn]

              javascript.0 at Object. (script.js.Rollladen_.Jalousien_ändern_script_Lux:52:7) `
              Es wird das setState() in Zeile 52 angemeckert. Gibt es denn den Datenpunkt 'javascript.0.Rollladen_Hoch/Runter' vom Typ Logikwert (boolean) ?

              Es kann auch sein, dass der Schrägstrich in der ID stört.

              1 Reply Last reply Reply Quote 0
              • Homer.J.
                Homer.J. last edited by

                // Bei Sonnenuntergang (kleiner 4 Lux)
                
                on({id: 'hm-rpc.1.NEQ0322210.1.LUX', change: "ne"}, function (obj) {
                   var value = obj.state.val;
                   var oldValue = obj.oldState.val;
                   console.log('*** Lux hat sich aktualisiert');
                   if (getState("hm-rpc.1.NEQ0322210.1.LUX").val < 4 ) {
                      console.log('*** Jalousie runter auf wahr setzen');
                      setState('javascript.0.Rollladen_Hoch/Runter', true, true);  // aktualisiere Rolladen_Hoch/Runter mit wahr
                    } else if (getState("hm-rpc.1.NEQ0322210.1.LUX").val > 100) {
                      console.log('*** Jalousie runter auf unwahr setzen');
                      setState('javascript.0.Rollladen_Hoch/Runter', false, true);  // aktualisiere Rolladen_Hoch/Runter mit unwahr
                      on('javascript.0.Rollladen_Hoch/Runter', function(dp) {
                      if(dp.state.val) Jalousie_runter();
                });
                
                   }
                });
                
                
                1 Reply Last reply Reply Quote 0
                • Homer.J.
                  Homer.J. last edited by

                  Hab es jetzt so weiß nicht ob es jetzt so richtig ist.

                  Funktioniert noch nicht und das kommt in der Ausgabe.

                  16:03:27.379

                  [info]

                  javascript.0 script.js.Rollladen_.Jalousien_ändern_script_Lux: *** Lux hat sich aktualisiert

                  16:03:27.380

                  [info]

                  javascript.0 script.js.Rollladen_.Jalousien_ändern_script_Lux: *** Jalousie runter auf wahr setzen

                  16:03:27.380

                  [warn]

                  javascript.0 at Object. (script.js.Rollladen_.Jalousien_ändern_script_Lux:52:7)

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

                    @Homer1976:

                        // Status setzen (Standard)
                        lvJalBad = 100;
                        lvJalFlur = 100;
                        lvJalWohnrechts = 100;
                        lvJalWohnlinks = 100;
                        lvJalKueche = 100;
                    ```` `  
                    

                    Man sollte keine Variablen ohne das Schlüsselwort var deklarieren. Richtig:

                        // Status setzen (Standard)
                        var lvJalBad = 100,
                        lvJalFlur = 100,
                        lvJalWohnrechts = 100,
                        lvJalWohnlinks = 100,
                        lvJalKueche = 100;
                    

                    Das gilt auch für die anderen Funktionen.

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

                      @Homer1976:

                            setState('javascript.0.Rollladen_Hoch/Runter', false, true);  // aktualisiere Rolladen_Hoch/Runter mit unwahr
                            on('javascript.0.Rollladen_Hoch/Runter', function(dp) {
                            if(dp.state.val) Jalousie_runter();
                      });
                         
                         }
                      });
                      ```` `  
                      

                      Nein, den Trigger mit dem Funktionsaufruf ganz an das Ende des Skripts setzen !

                      1 Reply Last reply Reply Quote 0
                      • Homer.J.
                        Homer.J. last edited by

                        Für mich ist das alles absolutes Neuland nutze es erst 1 Monat.

                        Hab es jetzt mal so angepasst wie ich es jetzt verstanden habe.

                        Wenn es nicht passt nimm es mir nicht übel. :shock:

                        1 Reply Last reply Reply Quote 0
                        • Homer.J.
                          Homer.J. last edited by

                          // Bei Sonnenuntergang (kleiner 4 Lux)
                          
                          on({id: 'hm-rpc.1.NEQ0322210.1.LUX', change: "ne"}, function (obj) {
                             var value = obj.state.val;
                             var oldValue = obj.oldState.val;
                             console.log('*** Lux hat sich aktualisiert');
                             if (getState("hm-rpc.1.NEQ0322210.1.LUX").val < 4 ) {
                                console.log('*** Jalousie runter auf wahr setzen');
                                setState('javascript.0.Rollladen_Hoch/Runter', true, true);  // aktualisiere Rolladen_Hoch/Runter mit wahr
                              } else if (getState("hm-rpc.1.NEQ0322210.1.LUX").val > 100) {
                                console.log('*** Jalousie runter auf unwahr setzen');
                                setState('javascript.0.Rollladen_Hoch/Runter', false, true);  // aktualisiere Rolladen_Hoch/Runter mit unwahr
                          
                             }
                          });
                          
                          // -----------------------------------------------
                          // Aktionen
                          // -----------------------------------------------
                          
                          function Jalousie_oben_hoch() {
                              // Abbruch bei deaktivierter Automatik
                              if (getState("hm-rega.0.55181"/*Jalousie Automatik*/).val === false) { return; }
                          
                              log("Jalousie oben hoch");
                          
                              // Status setzen (Standard)
                              var lvJalBad = 100;
                              var lvJalFlur = 100;
                              var lvJalWohnrechts = 100;
                              var lvJalWohnlinks = 100;
                              var lvJalKueche = 100;
                          
                              // Status setzen (Ausnahmen)
                              if (getState("javascript.0.Jalousie.Sonnenschutz"/*Jalousie.Sonnenschutz*/).val === true) {
                                  lvJalWohnrechts = 0;
                                  lvJalWohnlinks = 0;
                              }
                          
                              // Ausführen
                              setState("hm-rpc.1.MEQ0735410.1.LEVEL"/*Rollladen Badezimmer.LEVEL*/, lvJalBad);
                              setState("hm-rpc.1.MEQ0735420.1.LEVEL"/*Rollladen Flur .LEVEL*/, lvJalFlur);
                              setState("hm-rpc.1.MEQ0735434.1.LEVEL"/*Rollladen Wohnzimmer rechts .LEVEL*/, lvJalWohnrechts);
                              setState("hm-rpc.1.MEQ0735459.1.LEVEL"/*Rollladen Wohnzimmer links .LEVEL*/, lvJalWohnlinks);
                              setState("hm-rpc.1.MEQ0735469.1.LEVEL"/*Rollladen Fenster Küche .LEVEL*/, lvJalKueche);
                          
                          }
                          
                          function Jalousie_unten_hoch() {
                              // Abbruch bei deaktivierter Automatik
                              if (getState("hm-rega.0.55181"/*Jalousie Automatik*/).val === false) { return; }
                          
                              log("Jalousie unten hoch");
                          
                              // Status setzen (Standard)
                              var lvJalKZ = 100;
                              var lvJalHWR = 100;
                              var lvJalBad = 100;
                              var lvJalFlur = 100;
                              var lvJalWohnrechts = 100;
                              var lvJalWohnlinks = 100;
                              var lvJalBalkontuer = 100;
                              var lvJalSZ = 100;
                              var lvJalKueche = 100;
                              var lvJalBadoben = 1;
                          
                              // Status setzen (Ausnahmen)
                              if (getState("javascript.0.Jalousie.Sonnenschutz"/*Jalousie.Sonnenschutz*/).val === true) {
                                   lvJalWohnrechts = 40;
                                   lvJalWohnlinks = 40;
                                  if(getState("hm-rpc.2.0007D7099CF99C.1.STATE"/*Tür Flur.STATE*/).val == 2) {
                                   lvJalFlur = 60;
                                  } else {
                                      lvJalWohnrechts = 40;
                                  }
                                      lvJalWohnlinks = 40;
                              }
                          
                              // Ausführen
                              setState("hm-rpc.1.MEQ0735305.1.LEVEL"/*Rollladen Kinderzimmer .LEVEL*/, lvJalKZ);
                              setState("hm-rpc.1.MEQ0735367.1.LEVEL"/*Rollladen Abstellraum .LEVEL*/, lvJalHWR);
                              setState("hm-rpc.1.MEQ0735410.1.LEVEL"/*Rollladen Badezimmer.LEVEL*/, lvJalBad);
                              setState("hm-rpc.1.MEQ0735420.1.LEVEL"/*Rollladen Flur .LEVEL*/, lvJalFlur);
                              setState("hm-rpc.1.MEQ0735434.1.LEVEL"/*Rollladen Wohnzimmer rechts .LEVEL*/, lvJalWohnrechts);
                              setState("hm-rpc.1.MEQ0735459.1.LEVEL"/*Rollladen Wohnzimmer links .LEVEL*/, lvJalWohnlinks);
                              setState("hm-rpc.1.MEQ0735466.1.LEVEL"/*Rollladen Balkontür Küche .LEVEL*/, lvJalBalkontuer);
                              setState("hm-rpc.1.MEQ0735467.1.LEVEL"/*Rollladen Schlafzimmer .LEVEL*/, lvJalSZ);
                              setState("hm-rpc.1.MEQ0735469.1.LEVEL"/*Rollladen Fenster Küche .LEVEL*/, lvJalKueche);
                              setState("hm-rpc.1.LEQ1211399.3.STATE"/*Rollladen Fenster Bad oben .STATE*/, lvJalBadoben);
                          }
                          
                          function Jalousie_runter () {
                              // Abbruch bei deaktivierter Automatik
                              if (getState("hm-rega.0.55181"/*Jalousie Automatik*/).val === false) { return; }
                          
                              log("Jalousie runter");
                          
                              // Status setzen (Standard)
                              var lvJalKZ = 0;
                              var lvJalHWR = 0;
                              var lvJalBad = 0;
                              var lvJalFlur = 0;
                              var lvJalWohnrechts = 0;
                              var lvJalWohnlinks = 0;
                              var lvJalBalkontuer = 0;
                              var lvJalSZ = 0;
                              var lvJalKueche = 0;
                              var lvJalBadoben = 1;
                          
                              // Status setzen (Ausnahmen)
                              // Tür Flur Sperre (0 = geschlossen, 1 = gekippt, 2 = offen)
                              if(getState("hm-rpc.2.0007D7099CF99C.1.STATE"/*Tür Flur.STATE*/).val == 2) {
                               lvJalFlur = 100;
                              }
                          
                              // Ausführen
                              setState("hm-rpc.1.MEQ0735305.1.LEVEL"/*Rollladen Kinderzimmer .LEVEL*/, lvJalKZ);
                              setState("hm-rpc.1.MEQ0735367.1.LEVEL"/*Rollladen Abstellraum .LEVEL*/, lvJalHWR);
                              setState("hm-rpc.1.MEQ0735410.1.LEVEL"/*Rollladen Badezimmer .LEVEL*/, lvJalBad);
                              setState("hm-rpc.1.MEQ0735420.1.LEVEL"/*Rollladen Flur .LEVEL*/, lvJalFlur);
                              setState("hm-rpc.1.MEQ0735434.1.LEVEL"/*Rollladen Wohnzimmer rechts .LEVEL*/, lvJalWohnrechts);
                              setState("hm-rpc.1.MEQ0735459.1.LEVEL"/*Rollladen Wohnzimmer links .LEVEL*/, lvJalWohnlinks);
                              setState("hm-rpc.1.MEQ0735466.1.LEVEL"/*Rollladen Balkontür Küche .LEVEL*/, lvJalBalkontuer);
                              setState("hm-rpc.1.MEQ0735467.1.LEVEL"/*Rollladen Schlafzimmer .LEVEL*/, lvJalSZ);
                              setState("hm-rpc.1.MEQ0735469.1.LEVEL"/*Rollladen Fenster Küche .LEVEL*/, lvJalKueche);
                              setState("hm-rpc.1.LEQ1211399.2.STATE"/*Rollladen Fenster Bad oben .STATE*/, lvJalBadoben);
                          
                                on('javascript.0.Rollladen_Hoch/Runter', function(dp) {
                                if(dp.state.val) Jalousie_runter();
                          });
                          }
                          
                          1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 last edited by

                            Oder mache es ohne den Datenpunkt 'javascript.0.Rollladen_Hoch/Runter', sondern mit einer Skriptvariablen Rollos_unten

                            // Bei Sonnenuntergang (kleiner 4 Lux)
                            var Rollos_unten = false;
                            
                            on({id: 'hm-rpc.1.NEQ0322210.1.LUX', change: "ne"}, function (obj) {
                               var value = obj.state.val;
                               var oldValue = obj.oldState.val;
                               console.log('*** Lux hat sich aktualisiert');
                               if (getState("hm-rpc.1.NEQ0322210.1.LUX").val < 4 ) {
                                  console.log('*** Jalousie runter auf wahr setzen');
                                  if(!Rollos_unten) Jalousie_runter();  // Funktionsaufruf zum Runterfahren der Rollos
                                  Rollos_unten = true;
                               } else if (getState("hm-rpc.1.NEQ0322210.1.LUX").val > 100) {
                                  console.log('*** Jalousie runter auf unwahr setzen');
                                  Rollos_unten = false;
                               }
                            });
                            
                            
                            1 Reply Last reply Reply Quote 0
                            • Homer.J.
                              Homer.J. last edited by

                              Hallo Paul,

                              so wie als letztes beschrieben funktioniert es Klasse.

                              Ich Danke Dir ein weiteres mal, auf dich ist wie immer Verlass.

                              Wünsche Dir noch einen schönen Sonntag

                              Grüße Steffen

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

                                @Homer1976:

                                so wie als letztes beschrieben funktioniert es Klasse. `
                                Das freut mich für Dich.
                                @Homer1976:

                                Wenn es nicht passt nimm es mir nicht übel. `
                                Warum sollte ich ? Jeder hat mal angefangen.
                                @Homer1976:

                                    setState("hm-rpc.1.LEQ1211399.2.STATE"/*Rollladen Fenster Bad oben .STATE*/, lvJalBadoben);
                                
                                      on('javascript.0.Rollladen_Hoch/Runter', function(dp) {
                                      if(dp.state.val) Jalousie_runter();
                                });
                                }
                                ```` `  
                                

                                Für den Fall, dass es woanders gebraucht wird: Der Trigger muss außerhalb der Funktion, die aufgerufen wird, deklariert werden.

                                    setState("hm-rpc.1.LEQ1211399.2.STATE"/*Rollladen Fenster Bad oben .STATE*/, lvJalBadoben);
                                
                                } // Ende der Funktion
                                
                                on('javascript.0.Rollladen_Hoch/Runter', function(dp) {
                                   if(dp.state.val) Jalousie_runter();
                                });
                                
                                
                                1 Reply Last reply Reply Quote 0
                                • Homer.J.
                                  Homer.J. last edited by

                                  Hab meine Velux Rollladen über einen HM-LC-Sw4-WM am laufen.

                                  Kann ich den als Schalter so stehen lassen. ?

                                  1 Reply Last reply Reply Quote 0
                                  • Homer.J.
                                    Homer.J. last edited by

                                    Hallo Paul,

                                    das Script löst jetzt bei jeder Aktualisierung des Helligkeitsensor immer wieder aus und die Aktoren schalten dann jedes mal.

                                    Gruß Steffen

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

                                      @Homer1976:

                                      das Script löst jetzt bei jeder Aktualisierung des Helligkeitsensor immer wieder aus und die Aktoren schalten dann jedes mal. `
                                      Ganau das soll durch die Skriptvariable Rollos_unten verhindert werden, solange die Helligkeit nicht wieder über 100 steigt.

                                            if(!Rollos_unten) Jalousie_runter();  // Funktionsaufruf zum Runterfahren der Rollos
                                            Rollos_unten = true;
                                      
                                      

                                      Oder verwendest du die Variante mit dem Datenpunkt 'javascript.0.Rollladen_Hoch/Runter' ? Dann soll dies die Triggerung "bei Änderung" verhindern.

                                      1 Reply Last reply Reply Quote 0
                                      • Homer.J.
                                        Homer.J. last edited by

                                        // Bei Sonnenuntergang (kleiner 4 Lux)
                                        
                                        var Rollos_unten = false;
                                        
                                        on({id: 'hm-rpc.1.NEQ0322210.1.LUX', change: "ne"}, function (obj) {
                                           var value = obj.state.val;
                                           var oldValue = obj.oldState.val;
                                           console.log('*** Lux hat sich aktualisiert');
                                           if (getState("hm-rpc.1.NEQ0322210.1.LUX").val < 3 ) {
                                              console.log('*** Jalousie runter auf wahr setzen');
                                              if(!Rollos_unten) Jalousie_runter();  // Funktionsaufruf zum Runterfahren der Rollos
                                              Rollos_runter = true;
                                           } else if (getState("hm-rpc.1.NEQ0322210.1.LUX").val > 100) {
                                              console.log('*** Jalousie runter auf unwahr setzen');
                                              Rollos_unten = false;
                                           }
                                        });
                                        
                                        // -----------------------------------------------
                                        // Aktionen
                                        // -----------------------------------------------
                                        
                                        function Jalousie_oben_hoch() {
                                            // Abbruch bei deaktivierter Automatik
                                            if (getState("hm-rega.0.55181"/*Jalousie Automatik*/).val === false) { return; }
                                        
                                            log("Jalousie oben hoch");
                                        
                                            // Status setzen (Standard)
                                            var lvJalBad = 100;
                                            var lvJalFlur = 100;
                                            var lvJalWohnrechts = 100;
                                            var lvJalWohnlinks = 100;
                                            var lvJalKueche = 100;
                                        
                                            // Status setzen (Ausnahmen)
                                            if (getState("javascript.0.Jalousie.Sonnenschutz"/*Jalousie.Sonnenschutz*/).val === true) {
                                                lvJalWohnrechts = 0;
                                                lvJalWohnlinks = 0;
                                            }
                                        
                                            // Ausführen
                                            setState("hm-rpc.1.MEQ0735410.1.LEVEL"/*Rollladen Badezimmer.LEVEL*/, lvJalBad);
                                            setState("hm-rpc.1.MEQ0735420.1.LEVEL"/*Rollladen Flur .LEVEL*/, lvJalFlur);
                                            setState("hm-rpc.1.MEQ0735434.1.LEVEL"/*Rollladen Wohnzimmer rechts .LEVEL*/, lvJalWohnrechts);
                                            setState("hm-rpc.1.MEQ0735459.1.LEVEL"/*Rollladen Wohnzimmer links .LEVEL*/, lvJalWohnlinks);
                                            setState("hm-rpc.1.MEQ0735469.1.LEVEL"/*Rollladen Fenster Küche .LEVEL*/, lvJalKueche);
                                        
                                        }
                                        
                                        function Jalousie_unten_hoch() {
                                            // Abbruch bei deaktivierter Automatik
                                            if (getState("hm-rega.0.55181"/*Jalousie Automatik*/).val === false) { return; }
                                        
                                            log("Jalousie unten hoch");
                                        
                                            // Status setzen (Standard)
                                            var lvJalKZ = 100;
                                            var lvJalHWR = 100;
                                            var lvJalBad = 100;
                                            var lvJalFlur = 100;
                                            var lvJalWohnrechts = 100;
                                            var lvJalWohnlinks = 100;
                                            var lvJalBalkontuer = 100;
                                            var lvJalSZ = 100;
                                            var lvJalKueche = 100;
                                            var lvJalBadoben = 1;
                                        
                                            // Status setzen (Ausnahmen)
                                            if (getState("javascript.0.Jalousie.Sonnenschutz"/*Jalousie.Sonnenschutz*/).val === true) {
                                                 lvJalWohnrechts = 40;
                                                 lvJalWohnlinks = 40;
                                                if(getState("hm-rpc.2.0007D7099CF99C.1.STATE"/*Tür Flur.STATE*/).val == 2) {
                                                 lvJalFlur = 60;
                                                } else {
                                                    lvJalWohnrechts = 40;
                                                }
                                                    lvJalWohnlinks = 40;
                                            }
                                        
                                            // Ausführen
                                            setState("hm-rpc.1.MEQ0735305.1.LEVEL"/*Rollladen Kinderzimmer .LEVEL*/, lvJalKZ);
                                            setState("hm-rpc.1.MEQ0735367.1.LEVEL"/*Rollladen Abstellraum .LEVEL*/, lvJalHWR);
                                            setState("hm-rpc.1.MEQ0735410.1.LEVEL"/*Rollladen Badezimmer.LEVEL*/, lvJalBad);
                                            setState("hm-rpc.1.MEQ0735420.1.LEVEL"/*Rollladen Flur .LEVEL*/, lvJalFlur);
                                            setState("hm-rpc.1.MEQ0735434.1.LEVEL"/*Rollladen Wohnzimmer rechts .LEVEL*/, lvJalWohnrechts);
                                            setState("hm-rpc.1.MEQ0735459.1.LEVEL"/*Rollladen Wohnzimmer links .LEVEL*/, lvJalWohnlinks);
                                            setState("hm-rpc.1.MEQ0735466.1.LEVEL"/*Rollladen Balkontür Küche .LEVEL*/, lvJalBalkontuer);
                                            setState("hm-rpc.1.MEQ0735467.1.LEVEL"/*Rollladen Schlafzimmer .LEVEL*/, lvJalSZ);
                                            setState("hm-rpc.1.MEQ0735469.1.LEVEL"/*Rollladen Fenster Küche .LEVEL*/, lvJalKueche);
                                            setState("hm-rpc.1.LEQ1211399.3.STATE"/*Rollladen Fenster Bad oben .STATE*/, lvJalBadoben);
                                        }
                                        
                                        function Jalousie_runter () {
                                            // Abbruch bei deaktivierter Automatik
                                            if (getState("hm-rega.0.55181"/*Jalousie Automatik*/).val === false) { return; }
                                        
                                            log("Jalousie runter");
                                        
                                            // Status setzen (Standard)
                                            var lvJalKZ = 0;
                                            var lvJalHWR = 0;
                                            var lvJalBad = 0;
                                            var lvJalFlur = 0;
                                            var lvJalWohnrechts = 0;
                                            var lvJalWohnlinks = 0;
                                            var lvJalBalkontuer = 0;
                                            var lvJalSZ = 0;
                                            var lvJalKueche = 0;
                                            var lvJalBadoben = 1;
                                        
                                            // Status setzen (Ausnahmen)
                                            // Tür Flur Sperre (0 = geschlossen, 1 = gekippt, 2 = offen)
                                            if(getState("hm-rpc.2.0007D7099CF99C.1.STATE"/*Tür Flur.STATE*/).val == 2) {
                                             lvJalFlur = 100;
                                            }
                                        
                                            // Ausführen
                                            setState("hm-rpc.1.MEQ0735305.1.LEVEL"/*Rollladen Kinderzimmer .LEVEL*/, lvJalKZ);
                                            setState("hm-rpc.1.MEQ0735367.1.LEVEL"/*Rollladen Abstellraum .LEVEL*/, lvJalHWR);
                                            setState("hm-rpc.1.MEQ0735410.1.LEVEL"/*Rollladen Badezimmer .LEVEL*/, lvJalBad);
                                            setState("hm-rpc.1.MEQ0735420.1.LEVEL"/*Rollladen Flur .LEVEL*/, lvJalFlur);
                                            setState("hm-rpc.1.MEQ0735434.1.LEVEL"/*Rollladen Wohnzimmer rechts .LEVEL*/, lvJalWohnrechts);
                                            setState("hm-rpc.1.MEQ0735459.1.LEVEL"/*Rollladen Wohnzimmer links .LEVEL*/, lvJalWohnlinks);
                                            setState("hm-rpc.1.MEQ0735466.1.LEVEL"/*Rollladen Balkontür Küche .LEVEL*/, lvJalBalkontuer);
                                            setState("hm-rpc.1.MEQ0735467.1.LEVEL"/*Rollladen Schlafzimmer .LEVEL*/, lvJalSZ);
                                            setState("hm-rpc.1.MEQ0735469.1.LEVEL"/*Rollladen Fenster Küche .LEVEL*/, lvJalKueche);
                                            setState("hm-rpc.1.LEQ1211399.2.STATE"/*Rollladen Fenster Bad oben .STATE*/, lvJalBadoben);
                                        
                                        }
                                        
                                        1 Reply Last reply Reply Quote 0
                                        • Homer.J.
                                          Homer.J. last edited by

                                          So ist es jetzt.

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

                                            Da warst Du zu schnell: Ich hatte einen Fehler gepostet, den ich vielleicht 1 Minute später korrigiert habe: Zeile 11

                                                  Rollos_runter = true;
                                            

                                            ändern in

                                                  Rollos_unten = true;
                                            
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            902
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            48
                                            3826
                                            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