NEWS
Warnung wegen offenen Fenstern
-
Hallo Forum,
ich versuche gerade eine Warnung zu versenden wenn ich das Haus verlasse und mal wieder Fenster oder Türen offen gelassen habe.
Leider habe ich keine Erfahrung mit dem Scripten und komme nicht weiter.
Vielleicht kann mir jemand einen Tipp geben und helfen.
ioBroker: 1.6.7
Homematic mit CCU1
Gruß,
Thorsten
-
Hallo,
habe mal was aus meinen Scripten zusammen kopiert.
Evtl. kannst Du ja was damit anfangen
var BadFensterLinks = "hm-rpc.0.LEQ1234567.1.STATE"; // Bad Drehgriff Fenster links:1.STATE var BadFensterRechts = "hm-rpc.0.LEQ2345678.1.STATE"; // Bad Drehgriff Fenster rechts:1.STATE var idSayIt = "sayit.0.tts.text"; // Hier die entsprechende SayIt Text ID var Haustuer = "hm-rpc.0.MEQ3456789.1.STATE"; // Haustuer:1.STATE var KindFenster = "hm-rpc.0.LEQ4567890.1.STATE"; // Kind-Drehgriff Fenster:1.STATE on ({id: Haustuer, change: "gt"}, fHaustuer); function fHaustuer (){ fFensterPruefen ("Haustuer", "00:00:00", "23:59:59", "00:00:00" ,"23:59:59", "Alle Fenster sind geschlossen. Auf Wiedersehen."); } function fFensterPruefen (Ausloeser, VonAuf, BisAuf, VonZu, BisZu, Sprachausgabe){ FensterAuf = 0; SprachausgabeOffen = " "; log(Ausloeser + " auf. Funktion Fenster Pruefen"); if (isTimeInRange(VonAuf, BisAuf)){ // wenn noch Fenster offen sind if (getState(KindFenster).val !== 0){ SprachausgabeOffen = "Das Fenster von Kind ist noch offen. "; FensterAuf = 1; } if (getState(BadFensterRechts).val !== 0 || getState(BadFensterLinks).val !== 0){ SprachausgabeOffen = SprachausgabeOffen + "Ein Fenster im Badezimmer ist noch offen. "; FensterAuf = 1; } if (Ausloeser === "Haustuer" && getState(Terrassentuer).val !== 0){ SprachausgabeOffen = SprachausgabeOffen + "Die Terrassentür ist noch offen. "; FensterAuf = 1; } setStateDelayed (idSayIt, SprachausgabeOffen, 1, false); } if (FensterAuf === 0 && isTimeInRange(VonZu, BisZu)){ // Wenn alle Fenster geschlossen sind setStateDelayed (idSayIt, Sprachausgabe, 1, false); } } function isTimeInRange(strLower, strUpper) { var now = new Date(); var lower = addTime(strLower); var upper = addTime(strUpper); var inRange = false; if (upper > lower) { // opens and closes in same day inRange = (now >= lower && now <= upper) ? true : false; } else { // closes in the following day inRange = (now >= upper && now <= lower) ? false : true; } return inRange; }
Hoffe das funktioniert so.
Habe bei mir noch diverse andere Abfragen wie Alarm usw. mit drinnen.
Gruß
Phantomio
-
-
Cool danke das schaue ich mir mal an.
Und Frohe Weihnachtstage noch.
Gruß,
Thorsten