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); }
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