Dieser Thread ist nicht mehr der neueste, aber die Lösung hilft vielleicht noch anderen:
Aufgabe: HM soll die Motion Detection in einer Kamera (Hikvision, Trendnet ist afaik baugleich) aktivieren und deaktivieren.
Ich habe dafür zwei xml-Dateien aus der Kamera geladen. Einmal mit Motion Dectection = on und die andere mit Motion Detection = off.
Hier der curl-Befehl für Windows oder Linux, um diese Dateien von der Kamera zu laden:
Code: Alles auswählen
curl http://Benutzername:Passwort001@192.168.12.34:80/ISAPI/System/Video/inputs/channels/1/motionDetectionext >MotionDetection1.xml
Benutzername, Passwort und IP-Adresse müssen natürlich angepaßt werden.
Der Rest habe ich in der CCU2 gemacht:
Systemvariable "Kamera01Status" angelegt, Variablentyp = Zeichenkette. Unter ->Einstellungen ->Benutzerwaltung habe ich diese Systemvariable auf der Startseite angelegt, damit ich die Rückmeldungen der Kamera sehen kann.
Auf der CCU2 zwei Ordner angelegt:
1. /usr/local/addons/cuxd/kameras/Cam01/MotionDetectionAn/
2. /usr/local/addons/cuxd/kameras/Cam01/MotionDetectionAus/
In diese beiden Ordner habe ich die jeweilige Datei "MotionDetection1.xml" gepackt.
Dann ein Programm erstellt, welches bei einer Systemvariable "Abwesenheit=wahr" das folgende Script ausführt, welches wiederum die Datei "MotionDetection1.xml" in die Kamera schiebt (ich habe hier einen freien Kanal eines bestehenden CUxD-Gerätes verwendet, ggfls. müßt ihr ein Gerät in CUxD anlegen):
string s_cuxd = "CUxD.
CUX2801301:2.";
string s_cmd = "/usr/local/addons/cuxd/extra/curl -T /usr/local/addons/cuxd/kameras/Cam01/MotionDetectionAn/MotionDetection1.xml http://
Benutzername:
Password@
192.168.12.34:80/ISAPI/System/Video/inputs/channels/1/motionDetectionext";
dom.GetObject (s_cuxd # "CMD_SETS").State (s_cmd);
dom.GetObject (s_cuxd # "CMD_QUERY_RET").State (1);
dom.GetObject ("
Kamera01Status").State (dom.GetObject (s_cuxd # "CMD_RETS").State());
Die grünen Werte müssen angepaßt werden.
Hier noch mal als Code:
Code: Alles auswählen
string s_cuxd = "CUxD.CUX2801301:2.";
string s_cmd = "/usr/local/addons/cuxd/extra/curl -T /usr/local/addons/cuxd/kameras/Cam01/MotionDetectionAn/MotionDetection1.xml http://Benutzername:Password@192.168.12.34:80/ISAPI/System/Video/inputs/channels/1/motionDetectionext";
dom.GetObject (s_cuxd # "CMD_SETS").State (s_cmd);
dom.GetObject (s_cuxd # "CMD_QUERY_RET").State (1);
dom.GetObject ("Kamera01Status").State (dom.GetObject (s_cuxd # "CMD_RETS").State());
Damit bei "Abwesenheit=falsch" das Motion Detection wieder deaktiviert wird, muß ein zweites Script im gleichen oder einem anderen Programm angelegt werden. In diesem Sript muß das Verzeichnis natürlich
/usr/local/addons/cuxd/kameras/Cam01/MotionDetection
Aus/MotionDetection1.xml
heißen.
Viel Spaß