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
paresy
19. April 2010 um 20:06
2
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
shotar
30. Dezember 2010 um 16:18
4
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…
RWN
30. Dezember 2010 um 16:24
5
Wenn Du das so in einem Script hast, ist es klar dass es Ein und wieder Aus geht.
shotar
30. Dezember 2010 um 16:31
6
wieso? es sollte doch nur ausgeführt werden wenn der link auch gedrückt ist…
tommi
30. Dezember 2010 um 17:53
7
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
shotar
30. Dezember 2010 um 22:29
8
ja aber dann öffnet sich ja eine neue seite… oder wie umgeh ich das?
tommi
31. Dezember 2010 um 11:05
9
z.b. mit target=_self oder unsichtbarer iframe oder ajax
Tommi
shotar
31. Dezember 2010 um 13:34
10
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…
RWN
31. Dezember 2010 um 13:35
11
warum schaltest Du nicht über Webfront.
paresy
31. Dezember 2010 um 14:34
12
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
paresy
tommi
31. Dezember 2010 um 14:42
13
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
dpoessl
27. Januar 2013 um 17:13
14
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
JPaeper
27. Januar 2013 um 18:14
15
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
dpoessl
27. Januar 2013 um 18:40
16
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?
JPaeper
27. Januar 2013 um 18:45
17
Nein, knapp daneben…
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
dpoessl
27. Januar 2013 um 19:42
18
Hallo,
sorry für meine vielen fragen, aber ich hoffe, dass ich nochmal eure/deine Hilfe bekomme.
Hier meine bisherigen Schritte
Kategorie erstellt „Haus verlassen“
Boolean Variable in der Katgeorie erstellt --> Typ „Switch“
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)
JPaeper
27. Januar 2013 um 19:51
19
Hallo dpoessl,
da Du ja fünf Kameras betreibst solltest Du es vielleicht so machen:
Erstelle ein Skript nur mit dem Inhalt der von mir gepostet Funktion
Speichere es unter einem Dateinnamen ab, den Du Dir merken kannst z.B. „f_IP-Cam.ips.php“
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
dpoessl
27. Januar 2013 um 19:59
20
OK.
Wie genau muss ich den 4. Punkt verstehen?
Habe jetzt
Boolean --> Switch
Skript erstellt mit deinem Inhalt
noch ein Skript erstellt mit dem include Inhalt
Boolean mit dem include Skript verknüpft
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.