Bewegungsmelder als Alarmanlage benutzen

Begonnen von stenny, 12 Mai 2013, 10:05:22

Vorheriges Thema - Nächstes Thema

stenny

Hallo

Ich versuche gerade mit einem Bewegungsmelder eine Alarmmeldung ausserhalb der Öffnungszeiten abzusetzen, wobei ich ein paar Problemme habe.

1. Nutze das Modul IPCAM - dieses setzt auch ein Bild ab, aber Überschreibt es nicht bei einem neuen Alarm
2. Ein Script gestart - Anruf für 20 Sekunden, Absetzen von Mail mit Bild (bei der Mail bricht die Verbindung zum HM-Lan ab), Bilder weden gelöscht
3. Dieses soll alles nur ausserhalb der Öffnungszeiten passieren.

FHEM läuft auf einer FB7390 mit dem image von der FHEM Homepage, einem HM-Lan , HM-SEC-MDIR. Andere Komponenten die bereits funktionieren....


Hier die hierfür genutzten Teile....


# Bilder Absetzen bei Kiosk_BM_1 motion

define ipcam_kiosk1 IPCAM 192.x.x.x:80
attr ipcam_kiosk1 path snapshot.cgi?user=xxx&pwd=xxx
attr ipcam_kiosk1 storage /var/InternerSpeicher/Bilder
define Motion_kiosk1.not.01 notify Kiosk_BM_1:motion.* get ipcam_kiosk1 image

# Bewegungsmelder Kiosk_BM_1 definieren

define Alarm_Kiosk_BM_1 notify Kiosk_BM_1:motion.* "/var/InternerSpeicher/fhem/FHEM/kiosk_mail.sh"




echo ATD0171xxx | nc 127.0.0.1 1011

sleep 20

echo ATH0 | nc 127.0.0.1 1011

/sbin/mailer -s Alarm -f xxx@googlemail.com -t xxx@googlemail.com -d /var/InternerSpeicher/Bilder/ipcam_kiosk1_snapshot.jpg

sleep 10

rm /var/InternerSpeicher/Bilder/*.jpg




Wie müste ich jetzt eintragen das MO-FR 7:00 bis 19:00, SA 7:00 bis 16:00 kein Alarm kommt?


stenny

stenny

Und ich wieder...


habe jetzt einen dummy für die Öffnungszeiten angelegt, der soweit auch geht....


define offen dummy
attr offen setList auf zu

define Offen_Mo_auf at *7:00:00 { if ($wday == 1) { fhem ("set offen auf") } }

define Offen_Mo_zu at *20:00:00 { if ($wday == 1) { fhem ("set offen zu") } }

define Offen_Di_auf at *7:00:00 { if ($wday == 2) { fhem ("set offen auf") } }

define Offen_Di_zu at *20:00:00 { if ($wday == 2) { fhem ("set offen zu") }

define Offen_Mi_auf at *7:00:00 { if ($wday == 3) { fhem ("set offen auf") } }

define Offen_Mi_zu at *20:00:00 { if ($wday == 3) { fhem ("set offen zu") } }

define Offen_Do_auf at *7:00:00 { if ($wday == 4) { fhem ("set offen auf") } }

define Offen_Do_zu at *20:00:00 { if ($wday == 4) { fhem ("set offen zu") } }

define Offen_Fr_auf at *7:00:00 { if ($wday == 5) { fhem ("set offen auf") } }

define Offen_Fr_zu at *20:00:00 { if ($wday == 5) { fhem ("set offen zu") } }

define Offen_Sa_auf at *7:00:00 { if ($wday == 6) { fhem ("set offen auf") } }

define Offen_Sa_zu at *18:00:00 { if ($wday == 6) { fhem ("set offen zu") } }

define Offen_So_auf at *0:01:00 { if ($wday == 0) { fhem ("set offen zu") } }

define Offen_So_zu at *23:59:00 { if ($wday == 0) { fhem ("set offen zu") } }



Jetzt versuche ich bereits seit heute Mittag einen dummy zu erstellen der aus dem Bewegungsmelder Meldung "Kiosk_BM_1:motion.*" und dem dummy "offen" einen dummy zum absetzen der Alarmeldung ergibt.

Ich komme nicht wirklich weiter.....



stenny

stenny


Und die Geschichte findet kein Ende....


Alarm absetzen geht ohne zusätzliche bedingung


define Alarm_Kiosk_BM_1 notify Kiosk_BM_1:motion.* "/var/InternerSpeicher/fhem/FHEM/kiosk_mail.sh"


Jetzt will ich immer noch einen Dummy "offen" mit "auf" oder "zu" als Bedingung einfügen...

Bisherige versuche...


define Alarm_Kiosk_BM_1 notify Kiosk_BM_1:motion.* { if ("offen" eq "zu") { system ( "/var/InternerSpeicher/fhem/FHEM/kiosk_mail.sh" ) } }



define Alarm_Kiosk_BM_1 notify Kiosk_BM_1:motion.* { if ("offen" eq "zu") } "/var/InternerSpeicher/fhem/FHEM/kiosk_mail.sh"


Was mache ich hier falsch....


Ralph

Bei dem obigen Problem können andere sicher besser helfen, einen Vorschlag habe ich trotzdem für Dich:

Warum schenkst Du Dir nicht den Kram mit den Öffnungszeiten und baust nicht einfach 2 sofort reagierende Türkontakte in die Kiosktür ein ?

Kontakt 1 meldet die korrekte Schließung des Türschlosses, den kann der Einbrecher nicht betätigen mangels Schlüssel.

Kontakt 2 meldet die Öffnung der Tür.

Kommen = 1 öffnet vor 2 = alles OK
Gehen = 2 schliesst vor 1 = alles ok

andere Abfolgen = Alarmgabe

So machen es die Profis mit sogenannten Blockschlössern.
FHEM auf RaspberryPi3 mit Geekworm USV und SignalDUINO 433MHz und HM-MOD-RPI-PCB mit 3 HM-Sec-SD-2, 5 FHT, 2 RM 100-2 Uni S, 2 HMS100, 6 CUL_WS, 6 CUL_FHTTK, 11 FS20 und 7 FS20V Spannungsüberwachungen

stenny

Hallo

Im Moment kann ich da noch nichts umbauen.....

Diese Lösung ist erst einmal für die nächsten Wochen. Dort soll in der nächsten Zeit noch einiges Umgebaut werden....


Wenn das durch ist kommt was richtiges hin.



stenny

Also ich bekomme es einfach nicht hin mit dem if/else und den Klammer.... Meine Programmierkenntnisse sind unterirdisch  und in dem Forum schon viel herrausgezogen und angepasst (ALLES OHNE ERFOLG)


Das Ergebnis soll ein Wert Alarm_Meldung sein

Es bildet sich aus dem Dummy offen (Werte auf/zu) und dem Bewegungsmelder Kiosk_BM_1:motion.*

Im Moment habe ich in den Logs keine Fehler aber auch kein Ergebnis mit


define Alarm_Watch at +*00:01 {if (Value("offen") eq "zu" && Value("Kiosk_BM_1:motion.*") ) { fhem("set Alarm_Meldung on-for-timer 30")}}





broadway

Versuch mal, noch eine Klammer(paar) zu spendieren:

define Alarm_Watch at +*00:01 {if ((Value("offen") eq "zu") && Value("Kiosk_BM_1:motion.*") ) { fhem("set Alarm_Meldung on-for-timer 30")}}

Ansonsten vielleicht mal nur loggen, was vom Bew.melder kommt. So etwa:

my $test = Value("Kiosk_BM_1:motion.*");
Log 1, $test;

Müsstest du nicht eher ein notify für den Melder verwenden? Bin mir nicht sicher, was dir in dem Fall Value() liefert.
Linksys NSLU2 debian + CUL | FHT80B, FS20, Elro

Icebear

Hi .. Bin jetz auch nicht der PERL kenner aber nur zum verständnis .. du prüfst einmal pro sekunde (define Alarm_Watch at +*00:01 {if ((Value("offen") eq "zu") und wenn zu ist prüfst du ob eine Bewegung stattfindet ..

Ich würd das auch umgekehrt angehen ..

Einen Notify auf die Bewegung

define Bewegung notify Kiosk_BM_1:motion {if (Value("offen") eq "zu") {fhem("set Alarm_Meldung on-for-timer 3")}}

Ich kenne deinen Bewegungsmelder nicht, aber mit etwas pech speichert des das ja nicht im State (wer sollte es auch resetten) sondern löst nur nen Notify aus. Probiers mal.

Für die Richtigkeit des Perl-Einzeilers möge sich jemand anderes kümmern, kann leider kein Perl :))
Raspberry PI mod B (Wheezy), Fhem 5.4, CUL868, CUL433 , RfxTrx, HM-USB-CFG2, Wlan, HomeEasy, IT, FS20, TFA, HomeMatic, Oregon Scientific, HMLand auf Fritzbox
Raspberry PI mod B (RaspBMC)

stenny

Ich mal wieder.

Nach langem suchen und lesen habe ich eine Lösung gefunden.

Ich habe einen Dummy "Alarm_Meldung" angelegt.
Hier wird der Bewegungsmelder abgefragt und nur für kurze Zeit eingeschaltet wenn das Geschäft geschlossen ist (dieses geht aber bei Dummys nicht über on-for-timer)



define Alarm_Meldung dummy
attr Alarm_Meldung setList state:on,off


define Bewegung notify BM_Kiosk_1:motion.* {if (Value("offen") eq "zu") {fhem("set Alarm_Meldung on ;; define Alarm_Meldung_off at +00:00:10 set Alarm_Meldung off")}}


Der Rest ich im Prinzip wie oben beschrieben....

Zrrronggg!

ZitatNach langem suchen und lesen habe ich eine Lösung gefunden.

Wikiartikel "Alarmanlage" gesehen? Ich denke da wird das so ähnlich gemacht.
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