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
-
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