FHEM als Alarmanlagensteuerung - Ein/Ausschalten, wenn ein Alarme auslösen..

Begonnen von zenzi123, 14 Februar 2013, 12:53:53

Vorheriges Thema - Nächstes Thema

zenzi123

Hallo Forenkollegen!
Ich bin noch recht neu hier und habe mich nun einige Zeit mit FHEM beschäftigt.
Ich habe FHEM auf einer Fritzbox 7390 und HomeMatic Sensoren/Aktoren, angesteuert über HM-LAN-CFG.
Dzt. habe ich
- 2 Rauchmelder (sind untereinander gekoppelt und mit FHEM gekoppelt)
- 1 Bewegungsmelder
- 1 Schalter (Zwischensteckdose)
- 4 Sensoren Tür/Fesnter (Schließkontakte)

Ich möchte gerne eine Alarmfunktion proggen und hab mir dabei folgendes überlegt - leider hatte ich noch nicht die Möglichkeit zu testen, ob das so funktioniert:

Grundsätzlich will ich die Alarmfunktion über Schalter in FHEM aktivieren/deaktivieren. (bei jedem schaltvorgang ein kurzes Infomail)
Wenn Alarmfunktion deaktiviert: Bei "open" eines Schliesskontaktes oder "motion" des Bewegungssensors keine Aktion, bzw. nur Mailversand (zum test).
Wenn Alarmfunktion aktiviert: Bei "open" eines Schliesskontaktes oder "motion" des Bewegungssensors => Alarm auslösen + Mailversand.

Bei Alarm Auslösen soll folgendes geschehen:
Rauchmelder auf "AlarmOn" setzen
Schalter(Zwischenstecker) auf "on" setzen (daran will ich eine Sirene anschließen, zum Test kanns auch ein Licht sein ;-)

Alarm abschalten:
Über einen Schalter in FHEM soll das Alarmsignal deaktivierbar sein, also
Rauchmelder auf "AlarmOff" setzen
Schalter1 auf "off" setzen


Das würde ich mir wünschen..
Überlegt habe ich mir dazu folgenden code - hat jemand, der mit FHEM vertraut ist evtl. Zeit und Lust drüberzuschauen, ob das so funktionieren würde und wenn nicht - was anders gemacht werden muss und warum?

# TEST - Schalter für Alarmanlage Aktivieren/Deaktivieren
# TESTRAUM = LABOR

define AlarmAktiv dummy
 attr AlarmAktiv room LABOR
 attr AlarmAktiv eventMap /on:Activ/off:Inactiv/
 attr AlarmAktiv webCmd on:off
 
define EMA dummy
 attr EMA room LABOR
 attr EMA eventMap /on:Activ/off:Inactiv/
 attr EMA webCmd on:off
 
define Alarm_zu_Hause notify AlarmAktiv:on { use FritzBoxUtils;; FB_mail('mail@@domain.com' (@@domain.com'),'Alarm aktiviert','Alarmanlage wurde eingeschaltet!!') }
define Alarm_zu_Hause notify AlarmAktiv:off { use FritzBoxUtils;; FB_mail('mail@@domain.com' (@@domain.com'),'Alarm deaktiviert','Alarmanlage wurde ausgeschaltet!!') }
 attr Alarm_zu_Hause room LABOR
 
define Dummy_Schalten notify EMA:.* {\
 if ("%" eq "on") {\
 fhem ("deleteattr Alarm_zu_Hause disable");;\
 }else {\
 fhem ("attr Alarm_zu_Hause disable 1");;\
 }\
 }
 attr Dummy_Schalten room LABOR
 
# Alarmsignal auslösen - Tür offen
# wenn AlarmAktiv:on .... define Alarmsignal notify ...
define Offen_Schliesskontakt notify Kontakt1:open {\
 if ( Value ("AlarmAktiv") eq "on") {\
 use FritzBoxUtils;; FB_mail('mail@@domain.com' (@@domain.com'),'Alarm ausgeloest an Terrassentuer','Alarm wurde an Terrassentuer ausgeloest');;\
 fhem ("set Rauchmelder AlarmOn");;\
 fhem ("set Schalter on")\
 }else {\
 use FritzBoxUtils;; FB_mail('mail@@domain.com' (@@domain.com'),'Terrassentuer geoeffnet, kein Alarm aktiv','Terrassentuer geoeffnet, kein Alarm aktiv')\
 }\
 }
# Alarmsignal ... alle weiteren auslöser hier abfragen
# Alarmsignal auslösen - Bewegung erkannt - was ist hier abzufragen? define xxx notify Bewegungssensor { if (Value ("motion")..??

 
# Alarmsignal abschalten
define AlarmAus dummy
 attr AlarmAus room LABOR
 attr AlarmAus webCmd on:off
define AlarmSignalAus notify AlarmAus:.* {\
 use FritzBoxUtils;; FB_mail('mail@@domain.com' (@@domain.com'),'AlarmSignal ausgeschaltet','AlarmSignal ausgeschaltet');;\
 fhem ("set Rauchmelder AlarmOff");;\
 fhem ("set Schalter off")\
 }




... nochmal überlegt.. wäre natürlich schön, wenn der Alarm nach XX Minuten auch wieder ausgeht... weil wenn dann immer noch niemand reagiert hat und die sirene immer noch läuft wenn sie nicht ausgeschalten wurde (z.b. weil niemand zuhause ist...) wird's eher ungut..
Wo müßte ich da einen timer einbauen und wie?
oder wäre das z.b. ein weiterer notifier .. define alarmsignaltimer notify schalter ... (also bei auslösen des Schalters würde der timer zählen und nach xx min dann set schalter off?

Zrrronggg!

FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Markus

Hallo

Hast du dieses Beispiel im WIKI schon gesehen?

Schaut ziemlich Professionell aus, wenn ich mal wieder mehr zeit habe werde ich mich auch daran setzen...


Gruß Markus

edit: jetzt hab ich zu lange im Wiki gesucht :-)
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

zenzi123

Oh.. Danke für den Link, ich hab zwar schon einiges im Wiki gestöbert, aber dass dort gleich eine ganze Alarmanlagenfunktion beschrieben ist wusste ich nicht... werd ich mir mal reinziehen..

da meine "Codeidee" aber meine erste Umsetzung ist würde mich dennoch interessieren, ob die überlegungen und auch Syntax etc. hier auch etwa passen würden (hab ich das Prinzip richtig verstanden oder hab ich noch irgendwo Verständnisprobleme..)

Dennis D.

Also ich habe die aus dem Wiki bei mir implementiert, für meine Bedürfnisse erweitert und angepasst und bin begeistert. Die Anpassung gestaltet sich recht einfach.
 
Die Alarmanlage wird per Fernbedienung (mit der ich auch die Keymatic steuere) scharf und unscharf geschaltet. Abgesichert ist die komplette Gebäudehülle durch Fensterkontakte (Bewegungsmelder folgen später mal). Öffnen eines Fensters löst sofort Alarm aus, öffnen der Haustür löst nach 5 Sekunden den internen Alarm (Feuermelder jaulen los) und den Blitzer des externen Kombialarmgebers aus und nach weiteren 5 Sekunden geht die externe Sirene an.

Die Meldegruppen lasse ich mir auf dem Homematic 16-Kanal LED-Display anzeigen, ebenso wie den Anlagen- und Alarmstatus.

Gruß
Dennis
FHEM 5.5 auf RPi Rev. B 512 mit HMLAN (HM-CFG-LAN)

CUL_HM: HM-LC-Bl1PBU-FM,HM-LC-SW1-BA-PCB,HM-LC-SW4-SM,HM-LC-Sw1PBU-FM,HM-OU-LED16,HM-PB-2-WM55,HM-RC-KEY3-B,HM-SEC-KEY,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SD,HM-WDS10-TH-O,HM-WDS40-TH-I

OWDevice: DS18B20,DS2438

zenzi123

Ich seh mir das gerade an, Aktiv/Inaktiv schalten möchte ich aber nicht über physikalischen Taster sondern über Smartphone und einen Dummy-Schalter, auch die Anzeige über den Alarmstatus will ich dann über die App "AndFHEM" auslesen und nicht mit Display darstellen..
Da muss ich mich noch ein wenig reindenken, was ich da wie umschreiben muss..

Dennis D.

das ist recht einfach. du legst einen dummy-device als schalter an und ersetzt die devicenamen im alarmanlagenschript , welche die alarmanlage ein und ausschalten, durch den dummydevicenamen. habe ich auch so gemacht. so habe ich zum beispiel ein notify hinzugefügt, welches auf die fernbedienung reagiert und die anlage ein bzw. ausschaltet. gleiches mit zwei physikalischen schalter und einem virtuellen dummy-schalter in fhem. also quasi alle drei varianten.
und wenn der dummy in fhem ist, kannst du den ja auch mit andfhem übers smartphone schalten.

benachrichtigung aufs handy per e-mail habe ich ebenfalls drin.

aber reindenken musste ich mich auch erstmal ;)

Gruß,
Dennis
FHEM 5.5 auf RPi Rev. B 512 mit HMLAN (HM-CFG-LAN)

CUL_HM: HM-LC-Bl1PBU-FM,HM-LC-SW1-BA-PCB,HM-LC-SW4-SM,HM-LC-Sw1PBU-FM,HM-OU-LED16,HM-PB-2-WM55,HM-RC-KEY3-B,HM-SEC-KEY,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SD,HM-WDS10-TH-O,HM-WDS40-TH-I

OWDevice: DS18B20,DS2438