NEWS
Storensteuerung
-
Hallo zusammen
Ich habe für meinen Wohnzimmerstoren ein Skrypt (in Blockly) gemacht. Grundsätzlich funktioniert es, doch teilweise erhalte ich alle 15min eine Meldung das der Storen auf 100% geöffnet wurde und dann wieder auf 30%... dies wollte ich eigentlich mit der Variabel Auto_ausgelöst verhindern..Seht ihr bei meinem Skript fehler / Optimierungsmöglichkeiten
Danke und Gruss
als code:
var timeout5, timeout3, timeout, timeout2, timeout6, Auto_ausgel_C3_B6st, timeout4; /** * Beschreibe diese Funktion … */ function Beschattungsprozess() { setState("shelly.0.SHSW-25#BA6DC5#1.Shutter.Position"/*Position*/, 29); timeout5 = setTimeout(function () { setState("shelly.0.SHSW-25#BA6DC5#1.Shutter.Position"/*Position*/, 30); console.log((['Der linker Storen ist zu: ',getState("shelly.0.SHSW-25#BA6DC5#1.Shutter.Position").val,'geöffnet'].join(''))); Telegrammeldung(); timeout4 = setTimeout(function () { Auto_ausgel_C3_B6st = 1; (function () {if (timeout4) {clearTimeout(timeout4); timeout4 = null;}})(); }, 1800000); (function () {if (timeout5) {clearTimeout(timeout5); timeout5 = null;}})(); }, 60000); } /** * Beschreibe diese Funktion … */ function Telegrammeldung() { // Mitteilung an Telegram timeout3 = setTimeout(function () { sendTo("telegram", "send", { text: (['Der linke Storen ist zu: ',getState("shelly.0.SHSW-25#BA6DC5#1.Shutter.Position").val,'% geöffnet!'].join('')) }); (function () {if (timeout3) {clearTimeout(timeout3); timeout3 = null;}})(); }, 40000); } /** * Beschreibe diese Funktion … */ function Aufmachen_voll() { setState("shelly.0.SHSW-25#BA6DC5#1.Shutter.Position"/*Position*/, 100); console.log((['Der linker Storen ist zu: ',getState("shelly.0.SHSW-25#BA6DC5#1.Shutter.Position").val,'geöffnet!'].join(''))); Telegrammeldung(); timeout6 = setTimeout(function () { Auto_ausgel_C3_B6st = 0; (function () {if (timeout6) {clearTimeout(timeout6); timeout6 = null;}})(); }, 600000); } // Manuelle Steuerung on({id: "EigeneDatenpunkte.0.Storensteuerung"/*Storensteuerung*/, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if ((obj.state ? obj.state.val : "") != getState("shelly.0.SHSW-25#BA6DC5#1.Shutter.Position").val) { setStateDelayed("shelly.0.SHSW-25#BA6DC5#1.Shutter.Position"/*Position*/, (obj.state ? obj.state.val : ""), 2000, false); Telegrammeldung(); } }); // Automatische Steuerung bei Sonnenlicht on({id: "deconz.0.Sensors.25.lux"/*LightLevel 25 lux*/, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if ((obj.state ? obj.state.val : "") > 60000 && getState("shelly.0.SHSW-25#BA6DC5#1.Shutter.Position").val >= 100 && compareTime("13:30", "18:00", "between") && getState("deconz.0.Sensors.10.temperature").val > 18 && getState("deconz.0.Sensors.13.temperature").val > 23) { timeout = setTimeout(function () { if ((obj.state ? obj.state.val : "") > 55000 && getState("shelly.0.SHSW-25#BA6DC5#1.Shutter.Position").val >= 100 && getState("deconz.0.Sensors.13.temperature").val > 23) { Beschattungsprozess(); (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})(); } else { (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})(); } }, 300000); } }); // Automatische Steuerung auf on({id: "deconz.0.Sensors.25.lux"/*LightLevel 25 lux*/, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (Auto_ausgel_C3_B6st == 1 && (obj.state ? obj.state.val : "") < 45000 && getState("shelly.0.SHSW-25#BA6DC5#1.Shutter.Position").val != 100) { timeout2 = setTimeout(function () { if ((obj.state ? obj.state.val : "") < 45000 && getState("shelly.0.SHSW-25#BA6DC5#1.Shutter.Position").val != 100 || compareTime("18:31", "null", ">=")) { Aufmachen_voll(); (function () {if (timeout2) {clearTimeout(timeout2); timeout2 = null;}})(); } else { (function () {if (timeout2) {clearTimeout(timeout2); timeout2 = null;}})(); } }, 1200000); } });
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden