NEWS
[Gelöst] [Blockly] Rollladen mit Lux wert fahren
-
Hallo Leute wollte mich mal kurz mit einklinken, ich hab meins so gelöst funktioniert soweit ganz gut.
Eine Sache, bekomme diese Warnung vielleicht kann mir da jemand weiter helfen.
javascript.0
2018-03-04 11:45:58.288
warn
at Object. (script.js.Rollladen_.Jalousien_schalten_script_Lux:53:5)
javascript.0
2018-03-04 11:45:58.287
warn
at Jalousie_runter (script.js.Rollladen_.Jalousien_schalten_script_Lux:165:5)
Beste Grüße
Steffen
-
// ----------------------------------------------- // 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"/*Sonnenstand.Helligkeitssensor*/, change: "ne", valLe: 4, oldValGt: 4, logic: "and" }, function (obj) { log("Sonnenstand unter 4 Lux: Fahre Jalousien runter."); Jalousie_runter(); }); // ----------------------------------------------- // 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); }
-
ich möchte meine Rollos nur runterfahren und das ganze darf nur einmalig getriggert werden damit wenn ich nochmal hochfahre die Rollos dann nicht wieder runterfahren.
Ich verstehe auch nicht warum ich mit der Variable "Jalousie runter" wenn sie wahr ist nicht den Trigger starten kann. `
Man kann nicht auf eine Skriptvariable triggern, sondern nur auf einen Datenpunkt.
@cvidal:Dieses Skript funktioniert leider überhaupt nicht, wüsste gerne warum das so ist. `
Weil der Datenpunkt, der im 2. Teil als Trigger dient, nicht aktualisiert wird.Anstelle der Skriptvariablen Jalousie_runter verwende im 1. Teil den Datenpunkt "Rolladen_Hoch/Runter" mit dem der 2. Teil getriggert wird.
on({id: 'hm-rpc.0.OEQ0228737.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.0.OEQ0228737.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.0.OEQ0228737.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 } });
Im 2. Teil muss auf Änderung getriggert werden, um wiederholtes Senden zu verhindern (duty cycle) und dann auf wahr geprüft werden.
-
Hallo Paul,
hab es auch so probiert wie du es beschrieben hast das script wird auch ausgelöst nur leider fahren die Jalousien nicht.
Muss ich noch etwas anderes ändern. ?
Grüße Steffen
-
@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 !
-
// ----------------------------------------------- // 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); }
-
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)
-
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(); });
-
@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.
-
// 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(); }); } });
-
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)
-
@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.
-
@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 !
-
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:
-
// 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(); }); }
-
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; } });
-
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
-
@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(); });
-
Hab meine Velux Rollladen über einen HM-LC-Sw4-WM am laufen.
Kann ich den als Schalter so stehen lassen. ?
-
Hallo Paul,
das Script löst jetzt bei jeder Aktualisierung des Helligkeitsensor immer wieder aus und die Aktoren schalten dann jedes mal.
Gruß Steffen