Guten Abend Zusammen, ich benötige mal einen gedanklichen Schupser zu folgendem Problem:
Ist-Zustand
- Lupus IP-Cam (LE200) ist über WLAN eingebunden
- per Bewegungserkennung wird bei Auslösen ein 30 Sek. Video auf meiner NAS gespeichert
- per 'Aufnahme-Button' im Browser Plug-In kann ich manuell eine Aufnahme des Live Stream per FTP auf der NAS speichern
Aufgabenstellung
- bei Eintreten eines Ereignis soll
a) ein vordefinierter Fahrweg / "Rundfahrt" (Track genannt im Plug-In) gestartet werden
b) der Live Stream auf meiner NAS gespeichert werden ("Aufnahme")
- danach bei Eintreten eines Ereignis soll
c) die "Aufnahme" des Live Stream wieder gestoppt werden
d) die Kamera in eine definierte Position ("Haustuer") zurück fahren
Bisherige Ergebnisse
> zu Punkt a) kann ich die "Rundfahrt" per cgi-Komando im Browser starten
http://192.168.XXX.XXX:88/cgi-bin/CGIProxy.fcgi?cmd=ptzStartCruise&mapName=CheckAround&usr=myusername&pwd=mypassword
> zu Punkt b) bekomme ich den Live Stream per cgi-Kommando im Browser angezeigt
http://192.168.XXX.XXX:88/cgi-bin/CGIStream.cgi?cmd=GetMJStream&usr=myusername&pwd=mypassword
> zu Punkt d) bekomme ich die "Rundfahrt" gestoppt und die Kamera wieder in die Wunschposition gefahren
http://192.168.XXX.XXX:88/cgi-bin/CGIProxy.fcgi?cmd=ptzStopCruise&usr=myusername&pwd=mypassword
http://192.168.XXX.XXX:88/cgi-bin/CGIProxy.fcgi?cmd=ptzGotoPresetPoint&name=Haustuer4&usr=myusername&pwd=mypassword
> in FHEM habe ich ein entsprechendes IPCAM Device angelegt
define ipCamFloor IPCAM http://192.168.XXX.XXX:88/
attr ipCamFloor basicauth myusername:mypassword
attr ipCamFloor pathCmd cgi-bin/CGIProxy.fcgi
attr ipCamFloor cmd01 ptzStartCruise&mapName=CheckAround
attr ipCamFloor cmd02 ptzStopCruise
attr ipCamFloor pathPanTilt cgi-bin/CGIProxy.fcgi
attr ipCamFloor cmdPos01 command=Haustuer
attr ipCamFloor path cgi-bin/CGIStream.cgi?cmd=GetMJStream
attr ipCamFloor room Flur Eingang
attr ipCamFloor storage /opt/fhem/www/test
attr ipCamFloor verbose 5
Fragen
1.) Ich wühle mich seit drei Tagen durch's Wiki, die CommandRef, die Foren Threads.... aber ich kriege es nicht zusammen, dass das Modul das tut, was ich möchte
i. bei 'set ipCamFloor cmd 1' passiert erstmal garnix außer dass im Eventlog "2017-12-29 17:46:21 IPCAM ipCamFloor cmd 1" angezeigt wird. Im Logfile ist nichts zu sehen und die Kamera rührt sich auch nicht
ii. Gleiches bei 'set ipCamFloor cmd 2'
iii. und auch hier: im Eventlog steht '2017-12-29 17:55:47 IPCAM ipCamFloor pos 1' aber keine Cam-Reaktion und kein Log-Eintrag
Wo stehe ich da auf dem Schlauch? Was mache ich verkehrt bzw. was ist in der Konfig nicht korrekt?
2.) Mit 'get ipCamFloor image' mal eine Reaktion. Leider nicht die Gewünschte
> PERL WARNING: Use of uninitialized value in read at ./FHEM/49_IPCAM.pm line 452.
> IPCAM ipCamFloor Wrong or not supported image format: error while reading source image:
Das mit dem "not supported image format" habe ich schon häufiger hier im Forum gesehen. Aber die erste PERL Warnung lässt mich vermuten, dass da noch mehr nicht stimmt(?)
Geht das überhaupt so, wie ich mir das vorstelle - den Stream anstatt einzelne Snapshots zu speichern?
3.) Falls das alles so nix wird, hat jemand Erfahrung damit, wie man den Live-Stream in eine Datei 'umlenkt' und damit eine Aufnahme erzeugen kann? Dann wäre ich für Hinweise oder einen Gedankenanstoss dankbar.
Cool, dann beantworte ich mal einen Teil meiner Fragen selber ;)
Es gibt einige Änderungen, die ich zur obigen Konfiguration vorgenommen habe - damit klappt es dann:
> in der DEFinition musste das vorangestellte "http://" raus (also nur IP-Adresse und Port)
> mit gesetzten 'basicauth' Parametern scheint der Request nicht zu funktionieren; also raus damit und in den Aufruf verfrachtet
> 'cmd01' als vollständigen cgi-Pfad definiert, inklusive User & Passwort
define ipCamFloor IPCAM 192.168.XXX.XXX:88/
attr ipCamFloor pathCmd cgi-bin/CGIProxy.fcgi
attr ipCamFloor cmd01 cmd=ptzStartCruise&mapName=CheckAround&usr=myusername&pwd=mypassword
attr ipCamFloor room Flur Eingang
attr ipCamFloor verbose 3
Und genauso funktioniert dann auch das Stoppen der "Rundfahrt" sowie das Ansteuern der Defaultposition
attr ipCamFloor cmd02 cmd=ptzStopCruise&usr=myusername&pwd=mypassword
attr ipCamFloor cmd03 cmd=ptzGotoPresetPoint&name=Haustuer&usr=myusername&pwd=mypassword
Schon mal einen großen Schritt weiter...
Jetzt fehlt mir "nur" noch die Lösung, den aktuellen Stream auf die NAS zu speichern ('Recording').