Hallo zusammen,
ich habe mir gestern eine Webcam (Foscam) geleistet.
Funktioniert alles recht gut.
Im Webfront eine Kategorie externe Seite eingerichtet und Cam aufgerufen.
Zeigt mir schön das Bild an solange ich im Heimnetzwerk angemeldet bin.
Sobald ich aber von extern mein IPSymcon (über dyndns) aufrufe bekomme ich kein bild der Kamera.
Woran kann das liegen?
Ich bin leider mit der ganzen Materie nicht so vertraut und hoffe das mir jemand step by step helfen kann.
Dann komme ich aber auf die Anmeldeseite der Cam, eingabe von Benutzernamen und Passwort
Durch den Aufruf der Seite (xxx.xxx.xxx.31/videostream.cgi?user=admin&pwd***=&resolution=32)
komme ich direkt auf das aktuelle Kamerabild (aber nur im wenn ich zuhause im Heimnetzwerk bin)
Ich mach das über ein kleines Script, das das Webcam image alle paar Minuten in meine IPS ordner holt und eine kleine String Variable aktualisiert, die man dann per Link ins WF einbinden kann.
hier mal ein Beispiel:
<?
/* CONFIGRUATION --------------------------------------------------*/
// Skript um Bild von Webcam zu lesen (MJPG Stream)
// Url zum aktuellen Kamera bild.
$url = "http://192.168.178.70/jpg/image.jpg"; // IP und Port Anpassen, Port ggf. weglassen
$user = "admin";
$pwd = "KENNWORT";
$imageName = "webcam_1.jpg";
/* ENDE CONFIGRUATION --------------------------------------------------*/
/***** CODING here *******/
$url = str_replace('http://', '', $url);
$url_login = "http://$user:$pwd@$url";
$imagecont = @file_get_contents($url_login);
if(!$imagecont)return;
// Save to Media Folder
$localImage = IPS_GetKernelDir()."\\media\\$imageName";
file_put_contents($localImage,$imagecont);
$htmlID = CreateVariableByName($_IPS['SELF'], "$imageName", 3,"~HTMLBox");
$idWebcam = IPS_GetObjectIDByName($imageName, 0);
$localImageURL = '<img src="user/getimage.php?imageid='.$idWebcam.'"><br><small>Letzter Update: '.date("d.m.Y, H:i").' Uhr</small>';
SetValue($htmlID, $localImageURL);
/* ----------------------------------------------------------- */
function CreateVariableByName($id, $name, $type, $profile = "")
{
/* TYPE:
0 Legt eine Variable vom Typ Boolean an
1 Legt eine Variable vom Typ Integer an
2 Legt eine Variable vom Typ Float an
3 Legt eine Variable vom Typ String an
*/
$IPS_SELF = $_IPS['SELF'];
$vid = @IPS_GetVariableIDByName($name, $id);
if($vid === false)
{
$vid = IPS_CreateVariable($type);
IPS_SetParent($vid, $id);
IPS_SetName($vid, $name);
IPS_SetInfo($vid, "this variable was created by script #$IPS_SELF");
if($profile !== "") { IPS_SetVariableCustomProfile($vid, $profile); }
}
return $vid;
}
?>
ja,
indem du per string( html ) variable ein bild mit der lve url einbindest. allerdings musst du an deinem router korrektes portforwatding einstellen zb 8000 -> 80 von der webcam.
dann bindest du dein bild mit der dyndns adresse und port 8000 ein.
allererst muss du sicherstellen. dass du erstmal von aussen auf die webcam kommst