HTTP-Befehle an Kamera senden

Hallo zusammen,

ich möchte gerne HTTP-Befehle an mein IP-Kamera senden. In dem Befehl muss ich Benutzername und Passwort mitgeben.

Ich möchte gerne an eine IP-Adresse einen Befehl á la:

http://IP-der-Cam/cgi-bin/user/Serial.cgi?action=write&device=MASTER&channel=1&data=.........

senden.

Wie mache ich das?

Gruß + Danke

Jimmy


file_get_contents("http://username:passwort@ip/cgi-bin/user/Serial.");

Danke paresy, klappt.

Danke für die schnelle Hilfe.

Thread kann geschlossen werden. Ich denke, hier bedarf es keinerlei Anmerkung mehr.

Gruß

Jimmy

Hallo,

ich benutze den Befehl file_get_contents auch um Sensordaten aus meier EzControl auszulesen.

Wie aber steuere ich damit eine Aktor an?

		<a href="<?php $on = file_get_contents("http://192.168.1.242/control?callback=cname&cmd=set_state_actuator&number=1&function=1"); ?>" name="ON" title="ON">ON</a><br />
		<a href="<?php $off = file_get_contents("http://192.168.1.242/control?callback=cname&cmd=set_state_actuator&number=1&function=2"); ?>" name="OFF" title="OFF">OFF</a><br />

so geht der aktor kurz an und danach wieder aus…

Wenn Du das so in einem Script hast, ist es klar dass es Ein und wieder Aus geht.

wieso? es sollte doch nur ausgeführt werden wenn der link auch gedrückt ist…

weil das schon der Server macht, bevor er den Link zum Browser schickt.
Warum überhaupt mit php und file_get_contents? Das war doch nur nötig, um Username/password mitgeben zu können.
Ein einfacher Link ohne schnickschnack für jede URL sollte es doch genauso tun.
Tommi

ja aber dann öffnet sich ja eine neue seite… oder wie umgeh ich das?

z.b. mit target=_self oder unsichtbarer iframe oder ajax
Tommi

hmmm
also es gibt keine funktion dafür in php?

ich möchte ja nur den link ausführen, ohne rückmeldung, ohne etwas zu öffnen oder etwas anzuzeigen…

warum schaltest Du nicht über Webfront.

Erstell dafür doch 2 Skripte in IPS und dann jeweils die file_get_contents Zeile rein. Dann hast du auch 2 Makro’s im WebFront und alles sieht gut aus und funktioniert einfach :slight_smile:

paresy

Das geht schon, aber PHP wird auf dem SERVER und VOR der Rückgabe an den Browser ausgeführt, der Link im Script aber erst mit dem Ergebniss der PHP-Ausgabe als Webseite im Browser angezeigt. Demzufolge sollte als Link (<a href) ein seperates PHP-Script stehen, welches mit einem Übergabeparameter genau die eine gewünschte Schaltfunktion ausführt und als Ergebnis die gleiche Seite mit dem Link wieder zurück gibt.

Tommi

Hallo,

ich würde gerne die Alarmfunktion meiner Instar Cams über WebFront ein- und ausschalten.

Instar schreibt dazu

"Wenn Sie den Alarm mit einem Kurzbefehl deakivieren und aktivieren möchten dann können Sie folgende Befehle nutzen:

Geben Sie zum Beispiel folgendes ein:
http://192.168.1.196/set_alarm.cgi?motion_armed=1&user=admin&pwd=

(Alarm aktiviert)

http://192.168.1.196/set_alarm.cgi?motion_armed=0&user=admin&pwd=

(Alarm deaktiviert)"

Wie kann ich das jetzt am elegantesten und einfachsten einbauen? Also am liebsten wäre mir ein Link-Button im WebFront.

Besten Dank für eure Hilfe

Hallo dpoessl,

ich habe mir dazu eine kleine Funktion geschrieben:

//*************************************************************************************************************
// Diese Funktion setzt verschiedene Parameter der IP-Cam
function IP_Cam_Parameter($ip, $user, $passwort, $port, $BewegungsmelderSensibilitaet, $BewegungsmelderStatus, $MailversandStatus)
{
$BewegungsmelderSensibilitaet = 10 - $BewegungsmelderSensibilitaet;
$BewegungsmelderStatusInt = (int)$BewegungsmelderStatus;
$MailversandStatusInt = (int)$MailversandStatus;

file_get_contents("http://$ip:$port/set_alarm.cgi?motion_armed=$BewegungsmelderStatusInt&mail=$MailversandStatusInt&motion_sensitivity=$BewegungsmelderSensibilitaet&motion_compensation=1&user=$user&pwd=$passwort");

return;
}

Da die anderen Parameter „irgendwie dazugehören“ werden sie auch gleich mit gesetzt. Einschalten ist „1“, Ausschalten ist „0“…

Joachim

Hi Joachim,

vielen Dank für deine Antwort.

Kannst du mir vielleicht noch ganz kurz erklären, wo und wie ich meine Daten eingeben muss?


//*************************************************************************************************************
// Diese Funktion setzt verschiedene Parameter der IP-Cam
function IP_Cam_Parameter($ip, $user, $passwort, $port, $BewegungsmelderSensibilitaet, $BewegungsmelderStatus, $MailversandStatus)
{
$BewegungsmelderSensibilitaet = 10 - $BewegungsmelderSensibilitaet;
$BewegungsmelderStatusInt = (int)$BewegungsmelderStatus;
$MailversandStatusInt = (int)$MailversandStatus;

file_get_contents("http://$192.168.x.x:$xx/set_alarm.cgi?motion_armed=1$BewegungsmelderStatusInt&mail=1$MailversandStatusInt&motion_sensitivity=$BewegungsmelderSensibilitaet&motion_compensation=1&user=xxx$user&pwd=xxx$passwort");

return;
} 

würde das so gehen? Also sind meine „xxx“ und meine „1“ richtig gesetzt?

Nein, knapp daneben…:wink:

Es ist ein Funktion, Du führst sie z.B. nach dem Klick auf einen Deiner Button aus.

IP_Cam_Parameter("192.168.178.xxx", "admin", "DeinPasswort", 80, 5, 1, 1)

Auf Deine Daten anpassen! Das schaltet den Bewegungsmelder mit der Intesität 5 und den Mailversand ein.

IP_Cam_Parameter("192.168.178.xxx", "admin", "DeinPasswort", 80, 5, 0, 0)

Schaltet Mailversand und Bewegungsmelder aus.

Joachim

Hallo,

sorry für meine vielen fragen, aber ich hoffe, dass ich nochmal eure/deine Hilfe bekomme.

Hier meine bisherigen Schritte

  1. Kategorie erstellt „Haus verlassen“
  2. Boolean Variable in der Katgeorie erstellt --> Typ „Switch“
  3. Habe dieser Variable das Skript als Aktion zugewiesen

//*************************************************************************************************************
// Diese Funktion setzt verschiedene Parameter der IP-Cam
function IP_Cam_Parameter($ip, $user, $passwort, $port, $BewegungsmelderSensibilitaet, $BewegungsmelderStatus, $MailversandStatus)
{
$BewegungsmelderSensibilitaet = 10 - $BewegungsmelderSensibilitaet;
$BewegungsmelderStatusInt = (int)$BewegungsmelderStatus;
$MailversandStatusInt = (int)$MailversandStatus;

file_get_contents("http://$ip:$port/set_alarm.cgi?motion_armed=$BewegungsmelderStatusInt&mail=$MailversandStatusInt&motion_sensitivity=$BewegungsmelderSensibilitaet&motion_compensation=1&user=$user&pwd=$passwort");

return;
} 

Was muss ich jetzt noch machen?

Wie und wo muss ich das einbauen?


 IP_Cam_Parameter("192.168.178.xxx", "admin", "DeinPasswort", 80, 5, 1, 1)  

Hallo dpoessl,

da Du ja fünf Kameras betreibst solltest Du es vielleicht so machen:

  1. Erstelle ein Skript nur mit dem Inhalt der von mir gepostet Funktion
  2. Speichere es unter einem Dateinnamen ab, den Du Dir merken kannst z.B. „f_IP-Cam.ips.php“
  3. In Deinem Aktionskript das Du mit dem Button-Klick aufruftst muss oben dann folgendes stehen
include ('f_IP-Cam.ips.php'); 

, das bewirkt, dass diese Funktion teil des Skriptes wird.
4. Danach rufst Du die Funktion auf

IP_Cam_Parameter("192.168.178.xxx", "admin", "DeinPasswort", 80, 5, GetValueBoolean(DeinButton), GetValueBoolean(DeinButton));

Damit wird dann beides ein- bzw. ausgeschaltet.

Bei Unklarheiten bitte fragen - dafür ist das Forum da!

Joachim

OK.

Wie genau muss ich den 4. Punkt verstehen?

Habe jetzt

  1. Boolean --> Switch
  2. Skript erstellt mit deinem Inhalt
  3. noch ein Skript erstellt mit dem include Inhalt
  4. Boolean mit dem include Skript verknüpft
  5. jetzt muss ich nur noch irgendwie diese Funktion aufrufen

 IP_Cam_Parameter("192.168.178.xxx", "admin", "DeinPasswort", 80, 5, GetValueBoolean(DeinButton), GetValueBoolean(DeinButton));  

Weiß aber leider nicht, wie ich das jetzt noch bauen soll.