NEWS
[gelöst] Rollo Script / Wie kann ich das Script kürzen?
-
Hallo zusammen,
ich versuche mich gerade an meinem Rollo Sonnenschutz Script.
An einer stelle habe ich folgende Function:
function hochOst (Anwesenheit){ var timer = 0; if (Anwesenheit === "anwesend") { if(getState(idRGaesteBad).val !== 100){setStateDelayed(idRGaesteBad,100,timer);timer = timer + 2000;} if(getState(idRArbeitenFenster).val !== 100){setStateDelayed(idRArbeitenFenster,100,timer);timer = timer + 2000;} if(getState(idRBad).val !== 100){setStateDelayed(idRBad,100,timer);timer = timer + 2000;} if(getState(idRLenn).val !== 100){setStateDelayed(idRLenn,100,timer);timer = timer + 2000;} } if (Anwesenheit === "abwesend") { if(getState(idRGaesteBad).val !== 100 && getState(idKGaesteBad).val === false){setStateDelayed(idRGaesteBad,100,timer);timer = timer + 2000;} if(getState(idRArbeitenFenster).val !== 100 && getState(idKArbeitenFenster).val === false){setStateDelayed(idRArbeitenFenster,100,timer);timer = timer + 2000;} if(getState(idRBad).val !== 100 && getState(idKBad).val === 0){setStateDelayed(idRBad,100,timer);timer = timer + 2000;} if(getState(idRLenn).val !== 100 && getState(idKLenn).val === 0){setStateDelayed(idRLenn,100,timer);timer = timer + 2000;} } setState(idStatusOst,false); setState(idTimerOst,false); }
Also in Abhängigkeit der Abwesenheit soll noch der Fensterkontakt abgefragt werden.
Jetzt die Frage an die Experten: Habt Ihr noch Idee wie man das alles kürzer scripten kann ?
Gruß
Michael
-
So ?
var rollosR = [idRGaesteBad, idRArbeitenFenster, idRBad, idRLenn]; var rollosK = [idKGaesteBad, idKArbeitenFenster, idKBad, idKLenn]; function hochOst(Anwesenheit){ var timer = 0; if (Anwesenheit === "anwesend") { for (var r = 0; r < rollosR.length; r++) { if (getState(rollosR[r]).val !== 100) setStateDelayed(rollosR[r], 100, (timer += 2000)); } } else if (Anwesenheit === "abwesend") { for (var r = 0; r < rollosR.length; r++) { if (getState(rollosR[r]).val !== 100 && !getState(rollosK[r]).val === false) setStateDelayed(rollosR[r], 100, (timer += 2000)); } } setState(idStatusOst, false); setState(idTimerOst, false); }
-
Danke funktioniert super.