Alarmanlage - einen Sensor mehrfach nutzen (arm, disarm, cancel)

Begonnen von tmuecksch, 30 September 2016, 21:35:02

Vorheriges Thema - Nächstes Thema

tmuecksch

Liebe Community,

wie im Wiki beschrieben habe ich heute versucht eine Alarmanlage einzurichten.
Nun habe ich mir einen z-wave switch zugelegt, den ich ein oder ausschalten kann.

Dazu möchte ich die folgenden Regeln anlegen:

  • Wenn der switch angeschaltet wird, aktiviere die Alarmanlage (arm)
  • Wenn der switch ausgeschaltet wird, beende den Alarm (sofern aktiv) (cancel)
  • und schalte die Alarmanlage ab (disarm + cancel)

Leider habe ich in der aktuellen Konfiguration nur die Möglichkeit eine der drei Optionen zu wählen. So kann ich bspw. nur darauf reagieren, dass der Switch abgeschaltet wird -> cancel. Aber das Anschalten -> arm und das Abschalten -> disarm kann ich dann leider nicht mehr mit dem selben Switch steuern.

Gibt es hierfür eine Lösung im Rahmen des Plugins?

Vielen Dank im Voraus  ;D

jmike

Der Z-Wave Switch generiert ja Events beim drücken der Tasten.

Warum nicht einfach ein Notify/DOIF erstellen dass dann das AlarmLevel bedient?

z.b.

define ZWaveSwitchArm notify zWaveSwitch.on.* set AAA armed 1


um beim einschalten das Level 1 scharf zu schalten.


Ellert

Zitatund schalte die Alarmanlage ab (disarm + cancel)

Wie ist das gemeint? Kann der switch gleichzeitig an und aus sein?

tmuecksch

@jmike: Das sieht gut aus. Danke :)

@Ellert: Nein. Damit ist gemeint, dass wenn der Switch abgeschaltet wird, sollen sowohl der Alarm abegschaltet (sofern gerade ein Alarm aktiv ist) als auch die Alarmanlage unscharf geschaltet werden

Prof. Dr. Peter Henning

Das geht viel einfacher - denn selbstverständlich führt ein "disarm" auch ein automatisches "cancel" durch.

LG

pah

jmike

Zitat von: tmuecksch am 02 Oktober 2016, 07:44:59
@Ellert: Nein. Damit ist gemeint, dass wenn der Switch abgeschaltet wird, sollen sowohl der Alarm abegschaltet (sofern gerade ein Alarm aktiv ist) als auch die Alarmanlage unscharf geschaltet werden

... wie pah schon gesagt hat reicht:


define ZWaveSwitchArm notify zWaveSwitch.off.* set AAA disarmed 1


Aber ich denke soweit bist du selber schon gekommen :)

Ellert

Mit Bezug auf die Mehrfachnutzung eines Sensors und damit Du meine Frage nicht umsonst beantwortet hast, hier ein Vorschlag, um Taster = "on" zu toggeln, realisiert mit DOIF

define toggleArmDisarm DOIF (["^zWaveSwitch$:on"] and $cmd =~ "2|0")
   (set AAA armed 1)
DOELSEIF (["^zWaveSwitch$:on"] and $cmd == 1)
   (set AAA disarmed 1)


Damit kannst Du Taster = "off" für etwas anderes nuzten.

tmuecksch

#7
@Ellert: Auch wenn ich es noch nicht vollständig verstanden habe, ist das ein sehr interessanter Ansatz.  Das werde ich mir noch mal im Detail anschauen.

Damit beantwortest Du auf jeden Fall den eigentlichen Kern der Frage.

Vielen Dank  :D

Prof. Dr. Peter Henning

ZitatAuch wenn ich es noch nicht vollständig verstanden habe

Scheint so - denn die Frage wird damit nicht beantwortet, weil nur die beiden Kommandios "armed" und "disarmed" abgesetzt werden.

Den Zusammenhang mit "cancel" habe ich oben erklärt.

LG

pah

Ellert

Zitat von: tmuecksch am 05 Oktober 2016, 23:08:31
@Ellert: Auch wenn ich es noch nicht vollständig verstanden habe, ist das ein sehr interessanter Ansatz.  Das werde ich mir noch mal im Detail anschauen.

Damit beantwortest Du auf jeden Fall den eigentlichen Kern der Frage.

Vielen Dank  :D

Das DOIF kann 3 Zustände einnehmen
Bedingung 1 = wahr = $cmd = 1,
Bedingung 2 = wahr = $cmd = 2,
Zustand = Initialised = $cmd = 0,

Angenommen DOIF ist "Initialized" ($cmd = 0)und der Taster liefert "on" als Event, dann wird Bedingung 1 wahr und  Befehl 1 ausgeführt und $cmd wird 1.
Liefert der Taster nochmal "on" , dann wird die Bedingung 2 wahr und Befehl 2 ausgeführt und $cmd wird 2.
Beim nächsten "on, wird dann wieder die Bedingung 1 wahr und Befehl 1 ausgeführt und $cmd wird 1, usw..

JackKilby

#10
Ich fände es besser im Modul Alarm unter Sensoren Reiter einzuführen, die eine (Mehrfach-)Auswahl der Sensoren erlauben. Anschließend kann unter "Auslösung durch RegExp" der Auslöser beschrieben werden und dann der Zustand der eingenommen werden soll unter "Wirkung" definiert werden (Scharf, Unscharf...). Damit kann ich mit einem Schalter die Anlage Scharf, Unscharf, Widerrufen nur durch unterschiedliche RegExp schalten. Wenn ich mit doif arbeite geht das zwar elegant, besser ist aber eine Übersicht zu erhalten mit allen beteiligten Sensoren, auf der ich konfigurieren kann.

Weiterhin ist mir unklar warum ich ein device als actor definieren muss und dann trotzdem den fhem-Befehl komplett da reinschreiben muss. Besser leere Felder (z.B Aktion 1 ...) und dann dort den Befehl reinschreiben oder wenn ein Actor festgelegt ist dann dort die möglichen set-Befehle als Reiter zur Auswahl bereitstellen.

Weiterhin fehlt mir eine Auswahl "Aktion" wenn Alarmlevel aktiv, z. B. Wenn Alarmlevel 1 scharf --> dann "set Schalter on" ... mit mehreren Aktionen

Prof. Dr. Peter Henning

ZitatIch fände es besser im Modul Alarm
ZitatWeiterhin ist mir unklar
ZitatWeiterhin fehlt mir eine Auswahl

Prima, es steht jedem frei, seine eigene Software zu schreiben. Meine bleibt so, wie sie ist.

pah