Hallo Leute,
modere Webcams/IPCams besitzen häufig eine integrierte Motion Detection (Bewegungserkennung). Ich habe ein wenig mit dieser Funktion herumexperimentiert und habe einigermaßen brauchbare Ergebnisse bekommen, wie man damit Steuerungen auslösen kann. Die Lösung ist zwar nicht elegant, aber sie funktioniert. Nachfolgende Beispiele wurden mit einer Foscam FI9805W und einer Foscam FI9831W getestet.
Als erstes lädt man sich das passende CGI SDK / User Guide vom Kamerahersteller herunter, bei meinem Beispiel:
http://www.foscam.es/descarga/Foscam-IPCamera-CGI-User-Guide-AllPlatforms-2015.11.06.pdf
Dann sucht man sich den Befehl, aus dem man den Status der Motion Detection auslesen kann. Am besten probiert man das erst vorab mit dem Webbrowser aus.
http://192.168.XXX.XXX:YY/cgi-bin/CGIProxy.fcgi?cmd=getDevState&usr=AAA&pwd=BBB
XXX = IP-Adresse der Webcam
YY = Portnummer
AAA = Username
BBB = Passwort,
die man bei der Einrichtung entsprechend konfiguriert hat. Dann sieht man folgendes Ergebnis im Webbrowser:
<CGI_Result>
<result>0</result>
<IOAlarm>0</IOAlarm>
<motionDetectAlarm>1</motionDetectAlarm>
<soundAlarm>0</soundAlarm>
<record>0</record>
<sdState>0</sdState>
<sdFreeSpace>0k</sdFreeSpace>
<sdTotalSpace>0k</sdTotalSpace>
<ntpState>1</ntpState>
<ddnsState>1</ddnsState>
<url>http%3A%2F%blabla.myfoscam.org%3A88</url>
<upnpState>0</upnpState>
<isWifiConnected>1</isWifiConnected>
<wifiConnectedAP>Irgendwas</wifiConnectedAP>
<infraLedState>0</infraLedState>
</CGI_Result>
Beim Beispiel Foscam gibt es folgende Bedeutungen laut CGI SDK:
<motionDetectAlarm>
--> 1 bedeutet keine MotionDetection
--> 2 bedeutet MotionDetection festgestellt
Man kann dies gut testen, indem man vor der Kamera herumspaziert. Dann ändern sich die Werte zwischen 1 und 2, wenn man die Webpage öfters neu lädt.
Der Parametername kann natürlich bei anderen Herstellern und Modellen völlig anders lauten. Also alles weitere sinngemäß anwenden.
Nun folgenden HTTPMOD konfigurieren (die Platzhalter entsprechend an eure Kamera anpassen).
define ipcam1_status HTTPMOD http://192.168.XXX.XXX:YY/cgi-bin/CGIProxy.fcgi?cmd=getDevState&usr=AAA&pwd=BBB 5
attr ipcam1_status reading01Name motionDetectAlarm
attr ipcam1_status reading01Regex <motionDetectAlarm>?([\d])
Nun sollte man in FHEM schon sehen, wie sich die Readings entsprechend ändern, wenn man vor der Kamera auf und ab geht.
Nun als Vorlage für weitere Experimente
define house_armed dummy
attr house_armed setList on off
define Alarm DOIF ([house_armed] eq "on" and [ipcam1_status:motionDetectAlarm] == 2) (set Terrassenlicht on-for-timer 20)
attr Alarm do always
Wenn man den Dummy house_armed auf on setzt, funktioniert die Auslösung (in meinem Beispiel das Terrassenlicht) recht gut, wenn man vor der Webcam herumläuft. Man kann sich nun auch über das IPCAM-Modul entsprechende Bilder von der Kamera abholen.
Wermutstropfen: Der HTTPMOD pingt in meinem Beispiel aller 5 Sekunden die Webcam an.
Ich mache das umgekehrt, ich habe bei der Kamera eine Aktion eingetragen, nämlich beim Auslösen eines Motionalarms wird über einen HTTP request ein Sttaus in einem Dummy gesetzt, den Event kann ich dann weiterverwenden. Damit erspare ich mir das pollen. Das habe ich bei den Foscam webcams und auch bei den Maginon billig dingern vom Hofer(Aldi) in Betrieb, allerdings muss man schon klar sagen, die Erkennungsrate ist in keinem Vergleich zu einem Bewegungsmelder, aber besser als nichts.
Sent from my iPad using Tapatalk
Hallo zusammen,
habt ihr eine Idee, wie man von FHEM gesteuert auch Aufnahmen triggern kann? Ich habe eine Webcam von D-Link (DCS-2210L) und da ist das mit der Doku der Kommandos so eine Sache...recht dürftig, was D-Link da liefert - zumindest habe ich nichts im Netz gefunden... :-[
Alternativ könnte man den Stream der Kamera irgendwie wegschreiben. Hat das schon mal jemand gemacht?
Viele Grüße
Michael
Zitat von: schka17 am 09 Januar 2017, 22:33:03
Ich mache das umgekehrt, ich habe bei der Kamera eine Aktion eingetragen, nämlich beim Auslösen eines Motionalarms wird über einen HTTP request ein Sttaus in einem Dummy gesetzt, den Event kann ich dann weiterverwenden. Damit erspare ich mir das pollen. Das habe ich bei den Foscam webcams und auch bei den Maginon billig dingern vom Hofer(Aldi) in Betrieb, allerdings muss man schon klar sagen, die Erkennungsrate ist in keinem Vergleich zu einem Bewegungsmelder, aber besser als nichts.
Sent from my iPad using Tapatalk
Hallo schka17
benutzt du auch eine Foscam?
Kannst du bitte kurz beschreiben wie die den HTTP request bei der Kamera gesetzt hast?
MfG Ingo
Zitat von: Ingo298 am 28 August 2017, 12:24:38
Hallo schka17
benutzt du auch eine Foscam?
Kannst du bitte kurz beschreiben wie die den HTTP request bei der Kamera gesetzt hast?
MfG Ingo
Habe mittlerweile alles auf Zoneminder umgestellt und fast alle Kameras getauscht.
Bei den Maginon einfach den URL für den "motion-dummy" gesetzt, z.b.:
http://hal9000.homelinux.net:8083/fhem?cmd.Motion_WZ=set%20Motion_WZ%20motion
Bei meinen jetztigen HD Foscams habe ich gerade gesehen dass das so nicht mehr geht, ist mir nicht aufgefallen da ich auf Beweldungsmelder und Zoneminder umgestiegen bin.