Benachrichtungen / Auslösen eines Alarms

Nach intensiven einlesen und Versuchen komme ich nicht dahinter, wie ich das mit meinem Homey Pro 23 hinbekomme:

Unter Benutzung mehrerer Kontakt-Sensoren habe ich aktuell zwei Standard-Flows aktiv: Der erste Flow aktiviert (neben ein paar anderen einfachen Aktionen) den 2. Flow “Alarm”, welcher bei Auslösung alle Lichter einschaltet und eine Push-Benachrichtigung über die Auslösung eines Alarms versendet.

So weit funktioniert das hervorragend, allerdings mit den Einschränkungen, dass wenn nach Aktivieren des Alarms / Flows a) ein Fenster noch offen ist, keine Warnung ausgegeben wird und b) ich mit der Push-Mitteilung nicht weiß, welches Fenster z.B. bei einem Einbruch geöffnet wurde.

Ich habe mir auch die Heimdall App geladen und damit experimentiert, komme aber nicht dahinter, wie ich obiges hinkriege. Ich konnte die App zwar erfolgreich einrichten (Alarm und Surveillance Devices) und einen Flow erstellen, der zwar funktioniert und in die Timeline schreibt, wenn z.B. im Bad ein Alarm ausgelöst wurde.

Wie kann ich das realisieren, dass beim Aktivieren des Alarm-Flows zuerst geprüft wird, ob noch ein Fenster offen ist (“Kontakt-Alarm” an) und vor der tatsächlichen Aktivierung abbricht und eine Warnung/Push-Benachrichtigung anzeigt und b) bei Auslösen eines Alarms neben einer einfachen Push-Benachrichtigung auch anzeigt, bei welchem Fenster eingebrochen wurde? Geht das nur mit Advanced Flows? Alles in einem Flow, oder mehrere?

Hallo AnBo,

So etwas kann man für den Anfang nehmen
(Dafür wird keine App benötigt (außer Homeyscript)):

Über die “Und”-Karte → ‘Thuis’ ist die oberste Zone oder erste Zone, die somit alle anderen Zonen umfasst


Homeyscript script ‘deur_raam_nog_open’ (Tür Fenster noch geöffnet):

// Check if certain doors or windows is open?

let devices = await Homey.devices.getDevices();
let windowText = "";
let currentText = "";
let logText = "";
let windowOpen = false;

_.some(devices, device => 
{
if ( device.class == 'sensor' ) 
// device.class is found at https://tools.developer.homey.app/tools/devices
  {
  if( device.capabilitiesObj &&
  device.capabilitiesObj.alarm_contact &&
  device.capabilitiesObj.alarm_contact.value )
    {
    currentText = "";
    // to compare and see if there is no typing error
    //console.log(`- Open door/window script check: \nName: ${device.name} \nZone: ${device.zone} \n(ZoneName: ${device.zoneName}) \n[device.class: ${device.class} \ndevice.capabilities: ${device.capabilities}]`); 

      if(device.name != ""){
      windowOpen = true;
      if(windowText=="")
      windowText = device.name + "\t(Zone: " + device.zoneName + ")";
      
      else
      windowText = windowText + "\n" + device.name + "\t(Zone: " + device.zoneName + ")";
      }
    }
  }
});

if(windowOpen == true)
windowText = "\nThese doors or windows are still open:\n" + windowText + "\n";
else
// comment this out if you don't want a msg when all's fine:
windowText = "These doors or windows are closed";

Homey.flow.runFlowCardAction({
        uri: 'homey:manager:notifications',
        id: 'create_notification',
        args: {
          text: windowText + '\n[Peter Away - Raam/Deur Open Melding]'
        },
      });

//just to check
console.log("\nOutput:", windowText);

// Create / update HomeyScript variabele
await tag("door_windowText", windowText);

return (true);

// Initial script by RonnyW.

Hallo Peter,

danke, werde ich sofort probieren. Dazu folgende Frage: woher bekommst Du unter “And” die Karte "Not all “Contact alarm” are turned off?
Ich habe hier keine Auswahlmöglichkeit von “Contact Alarm” (nur Optionen wie Jeder Typ, Kaffemaschine, Ventilator, Heizung, Wasserkocher, Lampe, Steckdose, Solar Panel und TV)?

Hallo AnBo,

Kein Problem. Ja, ich verstehe deine Frage, die Karte ist ein bisschen versteckt.

Beginnen Sie mit dieser “Und” Karte
“Alle Alarme sind ausgeschaltet”

Wählen Sie dann den Typ “Kontaktalarm”

Und dann wählen Sie “Umgekehrt”. Jetzt haben Sie die Karte “nicht alle Kontaktalarme sind ausgeschaltet”

20240121_220305

1 Like

Hallo Peter,

herzlichen Dank, das hat hervorragend funktioniert, mittels des Scripts und einem Advanced Flow konnte ich nun zu Beginn die Abfrage, ob noch ein Fenster offen ist, integrieren - falls Ja, kommt nun die Meldung, welches Fenster konkret offen ist, falls Nein wird der Alarm scharfgestellt!

Du hast mir hier richtig geholfen, trotzdem noch die Frage: Kann man dieses Script auch dazu verwenden, dass wenn ein Fensteralarm ausgelöst wird, in der Meldung auch mitgeteilt wird, bei welchem Fenster konkret eingebrochen wird? Wenn ja, wie wäre das zu realisieren?

Kein Problem, AnBo!

Das ist ganz einfach, ohne Script;
Aber das ist genau das, was du wissen müsst:

Die beiden Tags in der Zeitleisten Benachrichtigung sind lokale Tags, die über die Trigger-Karte verfügbar sind:

Benachrichtigungen von ein paar Türen:

1 Like

Hallo Peter,

so hätte ich mir das auch vorgestellt… Ich habe versucht, das nach deinen Screens nachzustellen, funktioniert aber weder mit “Timeline” noch mit “Push-Message”:

  • Ich habe keine Tags mit “Name”, kann auch sonst in der (langen) Liste keine “lokale Tags” erkennen.

  • Einen Tag “Zone” gibt es zwar, da steht aber rechts bei mir nicht “e.g. Living Room” sondern “Flur”. Verwende ich den Tag “Zone” testweise, so steht in der Zeitleiste und Push-Message “Flur”, aber nicht die richtige Zone.

Im Prinzip möchte ich nur eine Nachricht / Timeline-Eintrag haben, wenn einer der (gut funktionierenden zigbee) Kontakt-Sensor auslöst und dann angezeigt wird, welcher Kontakt ausgelöst hat.

Hallo, das ist komisch.

Ich habe ein Video gemacht, vielleicht wird es dann etwas klarer
Ich zeige auch kurz den Unterschied zu einem Trigger karte ohne “Lokale Tags / Dieser Flow”:
Peek 2024-01-24 18-38

1 Like

Danke Peter, aber das ist erstaunlich, da es bei mir anders aussah!

Ich habe nun meinen Homey mal neu gestartet und den Flow nicht mit dem Browser, sondern der APP angelegt - und siehe da, plötzlich funktioniert es, mit dem Tag “Gerät” schreibt er nun in die Zeitleiste und Push-Benachrichtung den Namen des betroffenen Sensors sowie mit “Zone” auch den richtigen Bereich und nicht nur “Flur” wie zuvor!

Damit läuft nun alles wie gewünscht, herzlichen Dank nochmals für deine Hilfe!

1 Like

Super. Schön, dass es geklappt hat!