meine Alarmanlage funktioniert derzeit mit hue-Bewegungsmeldern.
Zusätzlich werden noch Kameras hinzukommen und ausgewertet.
Generell ist mein Workflow aber Mist, da er immer wieder von vorne beginnt, wenn der Bewegungsmelder mehrfach getriggert wird und der Workflow dann von neuem beginnt.
Ich dachte mir daher, dass man mit einem Trigger-Level arbeitet und den über ein Zeitdauer wieder runtersetzt.
Beispiel Hintergrund: Ein Blatt fällt runter, der Alarm wird getriggert - aber sollte nicht ausgelöst werden, wenn nicht ein zweiter Bewegungsalarm ausgelöst werden.
Bevor ich jetzt mit dem Advanced Workflow loslege, habe ihr vielleicht gute Konzepte in petto?
Ich habe das richtig verstanden ?
Du hast mehrere Bewegungsmelder im Aussenbereich. Du willst aber nur den Flow auslösen, wenn alle Bewegungsmelder gleichzeitig oder hintereinander anschlagen ?
Du kannst eine Zahlenvariable z.B. “Bewegungsmelder” erstellen. Wir nehmen mal an, dass du zwei Bewegungsmelder hast:
Der erste Bewegungsmelder löst aus und berechnet diese Variable auf einen Wert mit folgender Formel
{{Tag-Variable-“Bewegungsmelder”+1}}
Der zweite Bewegungsmelder löst aus und berechnet diese Variable auf einen Wert mit folgender Formel
{{Tag-Variable-“Bewegungsmelder”+1}}
Was passiert jetzt ?
Der erste Melder löst aus und setzt die Variable von 0 auf 1
Der zweite Melder löst aus und setzt die Variable von 1 auf 2
Jetzt folgender Flow:
Wenn:
(Logic) Eine Variable hat sich geändert
Und:
(Logic) eine Variable ( Tag “Bewegungsmelder”) ist exakt 2
Dann:
löse Alarm aus
Der Alarm erfolgt jetzt nur, wenn beide Bewegungsmelder eine Bewegung registriert haben.
Zum Schluss brauchst du noch Flows, die die Variable “Bewegungsmelder” auf 0 zurück setzen, um das Ganze wieder scharf zu schalten.
Wenn:
(Logic) Eine Variable hat sich geändert
Und:
(Logic) eine Variable ( Tag “Bewegungsmelder”) ist größer als 0
Dann:
Starte Timer Bewegungsmelder(Chronograph) mit der Dauer von (5) Minuten
Wenn:
Timer Bewegungsmelder ist abgelaufen
Und:
Bewegungsmelder 1 ist aus
Bewegungsmelder 2 ist aus
Dann:
(Logic)
Eine numerische Variable setzen " Bewegungsmelder 0
Sonst:
Starte Timer Bewegungsmelder(Chronograph) mit der Dauer von (5) Minuten
Die Variable wird also nur zurück gesetzt, sofern beide Bewegungsmelder nach (5) Minuten keine Bewegung mehr anzeigen.
Die Idee ist, dass es nicht nur bei einem Bewegungsmelder angeht.
Idealerweise vergebe ich Punkte. Geht einer außen an und einer Innen, dann kommt der Rambazamba.
Das ist genau das, was ich oben dargestellt habe. Es spielt nicht wirklich eine Rolle, wo der Bewegungsmelder ist.
Das Prinzip ist, dass die Zahlenvariable hochgezählt wird und beim erreichen der Zahl x auslöst.
Jeder Bewegungsmelder setzt mit der Auslösung die Zahl um +1 höher
Durch den Timer wird die Variable mindestens 5 Minuten erhalten, bevor sie sich selbst auf 0 zurück setzt.
quote=“Matthias76, post:3, topic:76528”]
Wäre das so richtig, den Alarm bei drei Auslösern zu triggern?
[/quote]
Nicht ganz, der ober Teil stimmt nicht. Die Und-Bedingung bitte entfernen.
Wenn:
Im 1. Abschnitt müssen alle 3 Bewegungsmelder einzeln stehen.
Dann:
Berechne Variable +1
Jetzt zieh je eine Linie von allen 3 Bewegungsmeldern zur Dann-Berechnung.
Teil 2 löst aus.
Jetzt aber nicht vergessen, die Variable wieder per Flow z.B. nach 5 Minuten wieder auf 0 zu setzen, sonst löst der Flow aus, wenn ein einzelner Bewegungsmelder 3x eine Bewegung erfasst hat.
Ich komm gerade nicht an mein Laptop ran, sonst hätte ich dir ein Beispiel geschrieben.
R18_Alarmschwelle +1 berechnen, alleine genügt, +2 bitte entfernen.
Egal, welcher Bewegungsmelder jetzt auslöst, er wird den ursprünglichen Wert der Variable um + 1 erhöhen. Ist die Zahl 3 erreicht, wird ausgelöst.
Bei deinem ursprünglichen Flow, Löst der HS18 aus und setzt die Variable auf +1. Küche und Büro, setzten die Variable gleich auf + 2. Vielleicht ist es auch so von dir gewollt, dass der Alarm sofort ausgelöst wird, wenn sich auf der Straße und wahlweise in Küche oder im Büro, ausgelöst wird.
Wenn ja, passt das so.
Um die Variable wieder auf null zu setzen, gibt es verschiedene Möglichkeiten. Es muss für dich praktikabel sein. Natürlich kannst du die Zeit auch kürzer oder länger machen.
Du musst dir eine praktikable Lösung überlegen, wie du deine Variable auf 0 zurück setzen willst.
Der Alarm soll ja erst auslösen, wenn im Aussenbereich und Innenbereich, eine Bewegung registriert wird, die sich im Zeitraum x ereignet.
Folgende Idee, die das Ganze etwas einfacher machen würde:
Was hoch zählt, kann auch runter zählen.
Angenommen, dein Bewegungsmelder aussen schlägt an und zählt die Variable +1.
Gleichzeitig startet jetzt ein Timer von xx Minuten.
In einem 2. Flow, wenn der Timer abgelaufen ist, wird geprüft, ob immer noch eine Bewegung registriert wird. Wenn nein, wird die Variable mit -1, wieder herunter gesetzt.
Innen und aussen angewendet, würde sich so die Variable automatisch ändern.
Letztlich bräuchtest du nur einen Schalter oder eine Fernbedienung, die das Ganze scharf oder unscharf stellt.
Korrekt.
Ich exportiere relevante Statistikdaten mit dem MySQL-Client in eine Datenbank (bie mir Energieverbrauchsdaten). Das wäre ggf. eine Alternative.
Ach, man muss Logik auswählen, um die Variable zu finden - Danke!
Wenn ich die Zeit zählen möchte, solange der Wert z.B. größer als 2 ist, dann stelle ich einfach einen Timer und setze den wieder auf 0, wenn die Zeit runtergeht, oder?
Ja, das wäre der einfachste Ansatz.
Beim Auslösen Timer starten, bei “Entwarnung” Timer löschen. Bei Timer-Ablauf Alarm - oder so ähnlich. Ich habe die letzten Beiträge nicht im Detail verfolgt.
PS: Die Variablen sollte überall wo Tags auswählbar sind, auch verfügbar sein. “Logik” ist die Gruppe, weil es dafür kein Gerät für die Gruppierung gibt.
Vorschlag meinerseits. Einen Flow für den externen Bewegungsmelder erstellen, der einen Timer mit einer vorgegebenen Zeit startet. Jedes Mal wenn der externe BM getriggert wird, wird der Timer neu gestartet. Wenn dann einer der inneren BM anschlägt und der Timer läuft noch, dann Alarmflow starten: