NEWS
[gelöst] Schaltzustand Verzögern
-
@Aphofis sagte:
Osmose Schwimmer ist false und Magnet Ventil läuft einfach weiter
Laufen die Wellen-Skripte, so dass der Computer vielleicht überlastet ist ?
-
@Aphofis
Sollte eigentlich nicht nötig sein, aber füge mal im Skript in Zeile 37 (s. Skript oben) ein:else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);@paul53 mach ich!
Mein Script sieht so aus
const idRestzeit = 'Osmose.Restzeit'; const text_ein = ['Filter Max unterschritten, Skimmer & Osmose','\n','wurden wieder eingeschaltet'].join(''); const text_aus = ['Filter Max erreicht, Skimmer & Osmose','\n','wurden abgeschaltet'].join(''); createState(idRestzeit, 300, {type: 'number', unit: 's'}); var Osmosefreigabe = !getState('sonoff.0.Aqua_Float.POWER4').val; var Schwimmer = getState("sonoff.0.Aqua_Float.POWER1").val; var Restzeit, timeout_aus, timeout_ein, Magnetventil_Kontrolle; function Magnetventil_Ein() { if (!Magnetventil_Kontrolle && Restzeit > 0 && Osmosefreigabe) { Magnetventil_Kontrolle = setInterval(function () { if (Restzeit > 0 && Schwimmer && Osmosefreigabe) { Restzeit--; setState(idRestzeit, 2 * Restzeit, true); } else { setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); clearInterval(Magnetventil_Kontrolle); Magnetventil_Kontrolle = null; } }, 2000); setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, true); } } // Skripstart setTimeout(function() { Restzeit = getState(idRestzeit).val / 2; if(Schwimmer && Osmosefreigabe) Magnetventil_Ein(); else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); }, 200); on({id: 'sonoff.0.Aqua_Float.POWER1', change: "ne"}, function (obj) { Schwimmer = obj.state.val; if(Schwimmer) Magnetventil_Ein(); }); schedule("0 0 * * *", function () { Restzeit = 150; setState(idRestzeit, 300, true); if(Schwimmer) Magnetventil_Ein(); }); on({id: 'sonoff.0.Aqua_Float.POWER4', change: "ne"}, function (obj) { if (obj.state.val) { timeout_aus = setTimeout(function () { Osmosefreigabe = false; setState("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, false); setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); }, 5000); if (timeout_ein) { clearTimeout(timeout_ein); timeout_ein = null; } } else { timeout_ein = setTimeout(function () { Osmosefreigabe = true; if(Schwimmer) Magnetventil_Ein(); setStateDelayed("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, true, 10000); }, 10000); if (timeout_aus) { clearTimeout(timeout_aus); timeout_aus = null; } } }); on({id: 'sonoff.0.Aqua_Power.POWER3', change: "ne"}, function (obj) { var txt; if (obj.state.val) txt = text_ein; else txt = text_aus; sendTo("telegram.0", "send", { text: txt }); log(txt); });Wo soll ich es hier einfügen ?
-
@paul53 mach ich!
Mein Script sieht so aus
const idRestzeit = 'Osmose.Restzeit'; const text_ein = ['Filter Max unterschritten, Skimmer & Osmose','\n','wurden wieder eingeschaltet'].join(''); const text_aus = ['Filter Max erreicht, Skimmer & Osmose','\n','wurden abgeschaltet'].join(''); createState(idRestzeit, 300, {type: 'number', unit: 's'}); var Osmosefreigabe = !getState('sonoff.0.Aqua_Float.POWER4').val; var Schwimmer = getState("sonoff.0.Aqua_Float.POWER1").val; var Restzeit, timeout_aus, timeout_ein, Magnetventil_Kontrolle; function Magnetventil_Ein() { if (!Magnetventil_Kontrolle && Restzeit > 0 && Osmosefreigabe) { Magnetventil_Kontrolle = setInterval(function () { if (Restzeit > 0 && Schwimmer && Osmosefreigabe) { Restzeit--; setState(idRestzeit, 2 * Restzeit, true); } else { setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); clearInterval(Magnetventil_Kontrolle); Magnetventil_Kontrolle = null; } }, 2000); setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, true); } } // Skripstart setTimeout(function() { Restzeit = getState(idRestzeit).val / 2; if(Schwimmer && Osmosefreigabe) Magnetventil_Ein(); else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); }, 200); on({id: 'sonoff.0.Aqua_Float.POWER1', change: "ne"}, function (obj) { Schwimmer = obj.state.val; if(Schwimmer) Magnetventil_Ein(); }); schedule("0 0 * * *", function () { Restzeit = 150; setState(idRestzeit, 300, true); if(Schwimmer) Magnetventil_Ein(); }); on({id: 'sonoff.0.Aqua_Float.POWER4', change: "ne"}, function (obj) { if (obj.state.val) { timeout_aus = setTimeout(function () { Osmosefreigabe = false; setState("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, false); setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); }, 5000); if (timeout_ein) { clearTimeout(timeout_ein); timeout_ein = null; } } else { timeout_ein = setTimeout(function () { Osmosefreigabe = true; if(Schwimmer) Magnetventil_Ein(); setStateDelayed("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, true, 10000); }, 10000); if (timeout_aus) { clearTimeout(timeout_aus); timeout_aus = null; } } }); on({id: 'sonoff.0.Aqua_Power.POWER3', change: "ne"}, function (obj) { var txt; if (obj.state.val) txt = text_ein; else txt = text_aus; sendTo("telegram.0", "send", { text: txt }); log(txt); });Wo soll ich es hier einfügen ?
-
@paul53
nach:if(Schwimmer) Magnetventil_Ein(); else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); -
ok
korrekt?on({id: 'sonoff.0.Aqua_Float.POWER1', change: "ne"}, function (obj) { Schwimmer = obj.state.val; if(Schwimmer) Magnetventil_Ein(); else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); }); -
@Aphofis sagte:
korrekt?
Ja, jedoch die Leerzeilen sind überflüssig: Sie entstehen beim Kopieren aus dem Forum.
@paul53
ist es so in Ordnung ?const idRestzeit = 'Osmose.Restzeit'; const text_ein = ['Filter Max unterschritten, Skimmer & Osmose','\n','wurden wieder eingeschaltet'].join(''); const text_aus = ['Filter Max erreicht, Skimmer & Osmose','\n','wurden abgeschaltet'].join(''); createState(idRestzeit, 300, {type: 'number', unit: 's'}); var Osmosefreigabe = !getState('sonoff.0.Aqua_Float.POWER4').val; var Schwimmer = getState("sonoff.0.Aqua_Float.POWER1").val; var Restzeit, timeout_aus, timeout_ein, Magnetventil_Kontrolle; function Magnetventil_Ein() { if (!Magnetventil_Kontrolle && Restzeit > 0 && Osmosefreigabe) { Magnetventil_Kontrolle = setInterval(function () { if (Restzeit > 0 && Schwimmer && Osmosefreigabe) { Restzeit--; setState(idRestzeit, 2 * Restzeit, true); } else { setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); clearInterval(Magnetventil_Kontrolle); Magnetventil_Kontrolle = null; } }, 2000); setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, true); } } // Skripstart setTimeout(function() { Restzeit = getState(idRestzeit).val / 2; if(Schwimmer && Osmosefreigabe) Magnetventil_Ein(); else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); }, 200); on({id: 'sonoff.0.Aqua_Float.POWER1', change: "ne"}, function (obj) { Schwimmer = obj.state.val; if(Schwimmer) Magnetventil_Ein(); else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); }); schedule("0 0 * * *", function () { Restzeit = 150; setState(idRestzeit, 300, true); if(Schwimmer) Magnetventil_Ein(); }); on({id: 'sonoff.0.Aqua_Float.POWER4', change: "ne"}, function (obj) { if (obj.state.val) { timeout_aus = setTimeout(function () { Osmosefreigabe = false; setState("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, false); setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); }, 5000); if (timeout_ein) { clearTimeout(timeout_ein); timeout_ein = null; } } else { timeout_ein = setTimeout(function () { Osmosefreigabe = true; if(Schwimmer) Magnetventil_Ein(); setStateDelayed("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, true, 10000); }, 10000); if (timeout_aus) { clearTimeout(timeout_aus); timeout_aus = null; } } }); on({id: 'sonoff.0.Aqua_Power.POWER3', change: "ne"}, function (obj) { var txt; if (obj.state.val) txt = text_ein; else txt = text_aus; sendTo("telegram.0", "send", { text: txt }); log(txt); log('Schwimmer: ' + Schwimmer); });so
-
@paul53
ist es so in Ordnung ?const idRestzeit = 'Osmose.Restzeit'; const text_ein = ['Filter Max unterschritten, Skimmer & Osmose','\n','wurden wieder eingeschaltet'].join(''); const text_aus = ['Filter Max erreicht, Skimmer & Osmose','\n','wurden abgeschaltet'].join(''); createState(idRestzeit, 300, {type: 'number', unit: 's'}); var Osmosefreigabe = !getState('sonoff.0.Aqua_Float.POWER4').val; var Schwimmer = getState("sonoff.0.Aqua_Float.POWER1").val; var Restzeit, timeout_aus, timeout_ein, Magnetventil_Kontrolle; function Magnetventil_Ein() { if (!Magnetventil_Kontrolle && Restzeit > 0 && Osmosefreigabe) { Magnetventil_Kontrolle = setInterval(function () { if (Restzeit > 0 && Schwimmer && Osmosefreigabe) { Restzeit--; setState(idRestzeit, 2 * Restzeit, true); } else { setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); clearInterval(Magnetventil_Kontrolle); Magnetventil_Kontrolle = null; } }, 2000); setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, true); } } // Skripstart setTimeout(function() { Restzeit = getState(idRestzeit).val / 2; if(Schwimmer && Osmosefreigabe) Magnetventil_Ein(); else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); }, 200); on({id: 'sonoff.0.Aqua_Float.POWER1', change: "ne"}, function (obj) { Schwimmer = obj.state.val; if(Schwimmer) Magnetventil_Ein(); else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); }); schedule("0 0 * * *", function () { Restzeit = 150; setState(idRestzeit, 300, true); if(Schwimmer) Magnetventil_Ein(); }); on({id: 'sonoff.0.Aqua_Float.POWER4', change: "ne"}, function (obj) { if (obj.state.val) { timeout_aus = setTimeout(function () { Osmosefreigabe = false; setState("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, false); setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); }, 5000); if (timeout_ein) { clearTimeout(timeout_ein); timeout_ein = null; } } else { timeout_ein = setTimeout(function () { Osmosefreigabe = true; if(Schwimmer) Magnetventil_Ein(); setStateDelayed("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, true, 10000); }, 10000); if (timeout_aus) { clearTimeout(timeout_aus); timeout_aus = null; } } }); on({id: 'sonoff.0.Aqua_Power.POWER3', change: "ne"}, function (obj) { var txt; if (obj.state.val) txt = text_ein; else txt = text_aus; sendTo("telegram.0", "send", { text: txt }); log(txt); log('Schwimmer: ' + Schwimmer); });so
-
@Aphofis sagte:
ist es so in Ordnung ?
Ja, aber wegen der besseren Lesbarkeit füge vorn in Zeile 35 (vor else) ein Leerzeichen ein; in Zeilen 51 und 61 vor if zwei Leerzeichen ein.
@paul53
So besser ?const idRestzeit = 'Osmose.Restzeit'; const text_ein = ['Filter Max unterschritten, Skimmer & Osmose','\n','wurden wieder eingeschaltet'].join(''); const text_aus = ['Filter Max erreicht, Skimmer & Osmose','\n','wurden abgeschaltet'].join(''); createState(idRestzeit, 300, {type: 'number', unit: 's'}); var Osmosefreigabe = !getState('sonoff.0.Aqua_Float.POWER4').val; var Schwimmer = getState("sonoff.0.Aqua_Float.POWER1").val; var Restzeit, timeout_aus, timeout_ein, Magnetventil_Kontrolle; function Magnetventil_Ein() { if (!Magnetventil_Kontrolle && Restzeit > 0 && Osmosefreigabe) { Magnetventil_Kontrolle = setInterval(function () { if (Restzeit > 0 && Schwimmer && Osmosefreigabe) { Restzeit--; setState(idRestzeit, 2 * Restzeit, true); } else { setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); clearInterval(Magnetventil_Kontrolle); Magnetventil_Kontrolle = null; } }, 2000); setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, true); } } // Skripstart setTimeout(function() { Restzeit = getState(idRestzeit).val / 2; if(Schwimmer && Osmosefreigabe) Magnetventil_Ein(); else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); }, 200); on({id: 'sonoff.0.Aqua_Float.POWER1', change: "ne"}, function (obj) { Schwimmer = obj.state.val; if(Schwimmer) Magnetventil_Ein(); else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); }); schedule("0 0 * * *", function () { Restzeit = 150; setState(idRestzeit, 300, true); if(Schwimmer) Magnetventil_Ein(); }); on({id: 'sonoff.0.Aqua_Float.POWER4', change: "ne"}, function (obj) { if (obj.state.val) { timeout_aus = setTimeout(function () { Osmosefreigabe = false; setState("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, false); setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); }, 5000); if (timeout_ein) { clearTimeout(timeout_ein); timeout_ein = null; } } else { timeout_ein = setTimeout(function () { Osmosefreigabe = true; if(Schwimmer) Magnetventil_Ein(); setStateDelayed("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, true, 10000); }, 10000); if (timeout_aus) { clearTimeout(timeout_aus); timeout_aus = null; } } }); on({id: 'sonoff.0.Aqua_Power.POWER3', change: "ne"}, function (obj) { var txt; if (obj.state.val) txt = text_ein; else txt = text_aus; sendTo("telegram.0", "send", { text: txt }); log(txt); log('Schwimmer: ' + Schwimmer); }); -
@paul53
So besser ?const idRestzeit = 'Osmose.Restzeit'; const text_ein = ['Filter Max unterschritten, Skimmer & Osmose','\n','wurden wieder eingeschaltet'].join(''); const text_aus = ['Filter Max erreicht, Skimmer & Osmose','\n','wurden abgeschaltet'].join(''); createState(idRestzeit, 300, {type: 'number', unit: 's'}); var Osmosefreigabe = !getState('sonoff.0.Aqua_Float.POWER4').val; var Schwimmer = getState("sonoff.0.Aqua_Float.POWER1").val; var Restzeit, timeout_aus, timeout_ein, Magnetventil_Kontrolle; function Magnetventil_Ein() { if (!Magnetventil_Kontrolle && Restzeit > 0 && Osmosefreigabe) { Magnetventil_Kontrolle = setInterval(function () { if (Restzeit > 0 && Schwimmer && Osmosefreigabe) { Restzeit--; setState(idRestzeit, 2 * Restzeit, true); } else { setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); clearInterval(Magnetventil_Kontrolle); Magnetventil_Kontrolle = null; } }, 2000); setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, true); } } // Skripstart setTimeout(function() { Restzeit = getState(idRestzeit).val / 2; if(Schwimmer && Osmosefreigabe) Magnetventil_Ein(); else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); }, 200); on({id: 'sonoff.0.Aqua_Float.POWER1', change: "ne"}, function (obj) { Schwimmer = obj.state.val; if(Schwimmer) Magnetventil_Ein(); else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); }); schedule("0 0 * * *", function () { Restzeit = 150; setState(idRestzeit, 300, true); if(Schwimmer) Magnetventil_Ein(); }); on({id: 'sonoff.0.Aqua_Float.POWER4', change: "ne"}, function (obj) { if (obj.state.val) { timeout_aus = setTimeout(function () { Osmosefreigabe = false; setState("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, false); setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); }, 5000); if (timeout_ein) { clearTimeout(timeout_ein); timeout_ein = null; } } else { timeout_ein = setTimeout(function () { Osmosefreigabe = true; if(Schwimmer) Magnetventil_Ein(); setStateDelayed("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, true, 10000); }, 10000); if (timeout_aus) { clearTimeout(timeout_aus); timeout_aus = null; } } }); on({id: 'sonoff.0.Aqua_Power.POWER3', change: "ne"}, function (obj) { var txt; if (obj.state.val) txt = text_ein; else txt = text_aus; sendTo("telegram.0", "send", { text: txt }); log(txt); log('Schwimmer: ' + Schwimmer); }); -
@Aphofis sagte:
So besser ?
Bedingt: Jetzt sind es zwei bzw. je ein Leerzeichen zuviel:
- else gehört linksbündig unter if
- if gehört linksbündig über die zugehörige schließende geschweifte Klammer in Zeilen 54, 64
@paul53 Ich schnalle die Struktur nicht so ganz!
const idRestzeit = 'Osmose.Restzeit'; const text_ein = ['Filter Max unterschritten, Skimmer & Osmose','\n','wurden wieder eingeschaltet'].join(''); const text_aus = ['Filter Max erreicht, Skimmer & Osmose','\n','wurden abgeschaltet'].join(''); createState(idRestzeit, 300, {type: 'number', unit: 's'}); var Osmosefreigabe = !getState('sonoff.0.Aqua_Float.POWER4').val; var Schwimmer = getState("sonoff.0.Aqua_Float.POWER1").val; var Restzeit, timeout_aus, timeout_ein, Magnetventil_Kontrolle; function Magnetventil_Ein() { if (!Magnetventil_Kontrolle && Restzeit > 0 && Osmosefreigabe) { Magnetventil_Kontrolle = setInterval(function () { if (Restzeit > 0 && Schwimmer && Osmosefreigabe) { Restzeit--; setState(idRestzeit, 2 * Restzeit, true); } else { setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); clearInterval(Magnetventil_Kontrolle); Magnetventil_Kontrolle = null; } }, 2000); setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, true); } } // Skripstart setTimeout(function() { Restzeit = getState(idRestzeit).val / 2; if(Schwimmer && Osmosefreigabe) Magnetventil_Ein(); else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); }, 200); on({id: 'sonoff.0.Aqua_Float.POWER1', change: "ne"}, function (obj) { Schwimmer = obj.state.val; if(Schwimmer) Magnetventil_Ein(); else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); }); schedule("0 0 * * *", function () { Restzeit = 150; setState(idRestzeit, 300, true); if(Schwimmer) Magnetventil_Ein(); }); on({id: 'sonoff.0.Aqua_Float.POWER4', change: "ne"}, function (obj) { if (obj.state.val) { timeout_aus = setTimeout(function () { Osmosefreigabe = false; setState("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, false); setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); }, 5000); if (timeout_ein) { clearTimeout(timeout_ein); timeout_ein = null; } } else { timeout_ein = setTimeout(function () { Osmosefreigabe = true; if(Schwimmer) Magnetventil_Ein(); setStateDelayed("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, true, 10000); }, 10000); if (timeout_aus) { clearTimeout(timeout_aus); timeout_aus = null; } } }); on({id: 'sonoff.0.Aqua_Power.POWER3', change: "ne"}, function (obj) { var txt; if (obj.state.val) txt = text_ein; else txt = text_aus; sendTo("telegram.0", "send", { text: txt }); log(txt); log('Schwimmer: ' + Schwimmer); }); -
@paul53 Ich schnalle die Struktur nicht so ganz!
const idRestzeit = 'Osmose.Restzeit'; const text_ein = ['Filter Max unterschritten, Skimmer & Osmose','\n','wurden wieder eingeschaltet'].join(''); const text_aus = ['Filter Max erreicht, Skimmer & Osmose','\n','wurden abgeschaltet'].join(''); createState(idRestzeit, 300, {type: 'number', unit: 's'}); var Osmosefreigabe = !getState('sonoff.0.Aqua_Float.POWER4').val; var Schwimmer = getState("sonoff.0.Aqua_Float.POWER1").val; var Restzeit, timeout_aus, timeout_ein, Magnetventil_Kontrolle; function Magnetventil_Ein() { if (!Magnetventil_Kontrolle && Restzeit > 0 && Osmosefreigabe) { Magnetventil_Kontrolle = setInterval(function () { if (Restzeit > 0 && Schwimmer && Osmosefreigabe) { Restzeit--; setState(idRestzeit, 2 * Restzeit, true); } else { setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); clearInterval(Magnetventil_Kontrolle); Magnetventil_Kontrolle = null; } }, 2000); setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, true); } } // Skripstart setTimeout(function() { Restzeit = getState(idRestzeit).val / 2; if(Schwimmer && Osmosefreigabe) Magnetventil_Ein(); else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); }, 200); on({id: 'sonoff.0.Aqua_Float.POWER1', change: "ne"}, function (obj) { Schwimmer = obj.state.val; if(Schwimmer) Magnetventil_Ein(); else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); }); schedule("0 0 * * *", function () { Restzeit = 150; setState(idRestzeit, 300, true); if(Schwimmer) Magnetventil_Ein(); }); on({id: 'sonoff.0.Aqua_Float.POWER4', change: "ne"}, function (obj) { if (obj.state.val) { timeout_aus = setTimeout(function () { Osmosefreigabe = false; setState("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, false); setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); }, 5000); if (timeout_ein) { clearTimeout(timeout_ein); timeout_ein = null; } } else { timeout_ein = setTimeout(function () { Osmosefreigabe = true; if(Schwimmer) Magnetventil_Ein(); setStateDelayed("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, true, 10000); }, 10000); if (timeout_aus) { clearTimeout(timeout_aus); timeout_aus = null; } } }); on({id: 'sonoff.0.Aqua_Power.POWER3', change: "ne"}, function (obj) { var txt; if (obj.state.val) txt = text_ein; else txt = text_aus; sendTo("telegram.0", "send", { text: txt }); log(txt); log('Schwimmer: ' + Schwimmer); }); -
-
@Aphofis
Nimm diese:
Osmose.js.txt
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login