Befehle an IP Kamera per IPS schicken?

Hallo,

ich kann Befehle per Webbrowser an meine Überwachungskamera schicken um z.B. die Bewegungserkennung ein und auszuschalten:
http://IP/cgi-bin/configManager.cgi?action=setConfig&MotionDetect[0].Enable=true
http://IP/cgi-bin/configManager.cgi?action=setConfig&MotionDetect[0].Enable=false
Hierfür muss ich im Webbrowser aber die Zugangsdaten eingeben.

Ist es möglich diese Befehle auch per IPS an die Kamera mit Authentifizierung zu schicken?

Grüße

Ja, das sieht bei mir zB so aus:

$url = "http://user:password@192.168.xx.xx/cgi-bin/hi3510/param.cgi?cmd=preset&-act=goto&-status=1&-number=0";

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_exec($ch); 
curl_close($ch);

muss halt auf deine Cam angepasst werden und das wird dann mit irgendwas getriggert

Falls das zufällig eine INSTAR sein sollte, kannst Du auch die Beta als Modul mal ausprobieren und Rückmeldung geben. Läuft aber erst ab IPS 5.2

Hallo,

danke für das Skript. Leider funktioniert es bei mir nicht, warum auch immer.
Es handelt sich um eine Dahua IPC-HDW5231R-Z Kamera, weiß nicht ob diese mit den INSTAR Modul klarkommt. Habe noch IPS 5.1 installiert.

Grüße

Die Kamera Befehle sind spezifisch also wird das nicht mit dem Modul funktionieren. Funktioniert denn der Befehl wenn Du diesen im Browser eingibst? Hast Du es einfach mal mit file_get_contents probiert?

Hi Fonzo,
kann deine INSTAR ONVIF? Wenn ja dann wäre ONVIF vielleicht der schönere/flexiblere Weg.

Ralf

Ja grundsätzlich kann diese auch ONVIF, mit den spezifischen Kamera Befehlen ist aber ein wesentlich größerer Funktionsumfang abgedeckt, daher nutze ich diese. Aber für die wichtigsten Funktionen von unterschiedlichen Kameras wäre vielleicht ja mal ein grundsätzlicher Ansatz über ONVIF sicher hilfreich, dann muss man nicht pro Kamera einzelne Befehle nutzten sondern könnte zumindest die Grundsteuerung immer gleich bei allen Kameras nutzten, die das unterstützten. Ich habe mich allerdings noch nie mit ONVIF im Detail beschäftigt.

Hallo,

wenn ich den Befehl ohne user:password im Browser eingebe dann kommt eine Abfrage für User und das PW, anschließend wird der Befehl korrekt gesendet.
Wenn ich den Befehl mit user:password im Browser eingebe dann kommt nur die Meldung „Diese Webseite ist nicht erreichbar“.

Was meinst du genau mit file_get_contents? Kann damit so nichts anfangen:/

Dann probiere es halt mal so


$url = 'http://[camera command]'; // Befehl Kamera
$result = SendCommand('meinbenutzername', 'tollespasswort', $url);
var_dump($result);

function SendCommand($user, $password, $url)
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_TIMEOUT, 30); //timeout after 30 seconds
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
        curl_setopt($ch, CURLOPT_USERPWD, "$user:$password");
        $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);   //get status code
        var_dump($status_code);
        $result = curl_exec($ch);
        curl_close($ch);
        return $result;
    }

file_get_contents

Das kann aber nur funktionieren wenn es im Browser mit vorangestellten User und Passwort funktioniert. Wenn es da warum auch immer schon nicht geht wird das mit file_get_contents auch nichts.

Geil, das funktioniert!
Besten Dank, für das Skript :slight_smile: