Push Mitteilung bei Offenen Fenster nach 5min

Ich bin bei den Kontaktsensoren komplett auf genau EIN Homeyscript (Quelle Beispiel + Beschreibung: Homey Web App (Soon) - #28 by RonnyW) umgestiegen. Voraussetzung sind sehr geringe Programmierkenntnisse (Copy des Scipt + Eintrag der eigenen Sensoren, ggf. eigene Anpassungen). Als Benefit erhält man maximale Möglichkeiten bei minimalem Wartungsaufwand.

Hier meine angepasste Version:

// Fensterprüfung
let devices = await Homey.devices.getDevices();
let windowText = "";
let currentText = "";
let logText = "";
let windowOpen = false;
_.some(devices, device => {
if(device.class == 'sensor')
{
if(device.capabilitiesObj &&
device.capabilitiesObj.alarm_contact &&
device.capabilitiesObj.alarm_contact.value)
{
currentText = "";
if(device.name.includes("Fenster") || device.name.includes("Oberlicht")){
  if(device.name.includes("Schlafzimmer")) currentText = "Schlafzimmer";
  if(device.name.includes("Bad")) currentText = "Bad";
  if(device.name.includes("Küche") || device.name.includes("Terrassentür")) currentText = "Küche Oberlicht";
  if(device.name.includes("Gäste WC")) currentText = "Gäste WC";
  if(device.name.includes("Kamin")) currentText = "Kamin Oberlicht";
}
if(currentText != ""){
windowOpen = true;
if(windowText=="")
windowText = currentText;
else if(!windowText.includes(currentText))
windowText = windowText + " und " + currentText;
}
}
}
});
if(windowOpen == true)
windowText = "Fenster geöffnet: " + windowText;
else
windowText = "Fenster geschlossen";
console.log(windowText);
//Homey.logic.updateVariable( id = "Fensterpruefung", variable=windowText);
await tag("windowText", windowText);
return windowOpen;

Bei mir muss der Sensorname Fenster oder Oberlicht enthalten (Sensorname = Fenster Schlafzimmer).
if(device.name.includes("Fenster") || device.name.includes("Oberlicht"))

D.h. auf Basis dieses Scripts muss euer Sensorname z.B. wie folgt lauten:
Fenster abc
Oberlicht abc
abc Fenster
abc Oberlicht
Fenster Schlafzimmer
Oberlicht Küche
Küche Oberlicht
Schlafzimmer Fenster

Diese Zeile jeweils pro Kontaktsensor kopieren:
if(device.name.includes("Schlafzimmer")) currentText = "Schlafzimmer";

Hier als Sensornamensanteil den Zimmernamen eintragen: device.name.includes("Schlafzimmer")

Hier den Text für die Pushnachricht oder Sprachsausgabe eintragen: currentText = "Schlafzimmer";

Es wird ein TAG generiert, der alle offenen Fenster kumuliert beinhaltet.
Den TAG könnt ihr dann im THEN Anteil des Flows verwenden für Push oder Sprachausgabe.

Das Homeyscript selbst wird im AND Bereich verwendet. Es wird TRUE oder FALSE zurückgegeben und in THEN oder else verzweigt:

Im WHEN Bereich kann man natürlich auch "Dieser Flow wird gestartet "verwenden und als Favorit speichern. Auf dem Smartphone dann als Shortcut speichern und vor dem Einschlafen ausführen. :wink:

2 Likes