bis gestern zum Update auf die aktuelle Beta 4.0 hat mein ImageGrabber Skript problemlos funktioniert.
Doch nun wird das Bild im Cams Ordner nicht mehr aktualisiert. Gibt es hierzu irgendwas zu beachten?
Folgend das Skript:
<?
//file_get_contents("http://root:quattro@192.168.1.100/cgi-bin/admin/setvi.cgi?vi0=1(200)0");
//IG_UpdateImage(20952 /*[Kamera\Image Grabber_Haustür]*/ );
// Bild für aktuelle Position sichern
IG_UpdateImage(20952 /*[Kamera\Image Grabber_Haustür]*/ );
$sek=date('s',time());
$min=date('i',time());
$std=date('H',time());
$day=date('d',time());
$month=date('m',time());
$year=date('Y',time());
$name=$year.$month.$day.'_'.$std.$min.$sek;
$name = $name.".jpg";
// Ab Version 4.0
//print_r(IPS_GetMedia(48661 /*[Kamera\Image Grabber_Haustür\Image]*/));
copy("C:/IP-Symcon/Cams/20952.jpg","C:/IP-Symcon/Cams/1/History/".$name);
//copy("C:/IP-Symcon/Cams/20952.jpg","C:/IP-Symcon/Cams/1/History/"."tesT");
//Schnappschuss
//file_get_contents("http://root:quattro@192.168.1.100/cgi-bin/viewer/video.jpg");
//file_get_contents("http://192.168.1.100:554/cgi-bin/viewer/video.jpg?channel=[1]&resolution=[1200]x[1200]");
?>
Mit false auf das MediaObjekt anwenden.
Sonst bleibt das Bild nur im RAM und nicht auf der Festplatte.
Oder:
Anstatt die Datei direkt zu kopieren, mit GetMediaContent das Bild aus dem RAM holen und dann weg speichern.
steh gerade etwas auf dem Schlauch. Wie kann ich die von dir beschriebenen Funktionen denn dann nutzen, um das Bild vom ImageGrabber auf meine Festplatte zu speichern?
Direkt gar nicht…Hast du die Beschreibung von IPS_SetMediaCached gelesen ?
Du hast unterhalb des ImageGrabber ein MediaObjekt mit deinem Bild.
Alle neuen MdeiaObjekte werden erstmal mit aktiven Cache erstellt, so auch Dieses.
Dadurch ändert sich die Datei auf der Festplatte nur noch beim runterfahren vom Dienst.
Sonst wird das Bild nur im RAM gehalten.
Also mußt du, wenn du das Bild noch woanders hin kopieren möchtest:
[ul]
[li]Das Caching mit IPS_SetMediaCached(<ID vom MediaObjekt, false); abschalten[/li][li]Und dann funktioniert auch dein Script wieder.[/li][/ul]
Oder:
[ul]
[li]IPS_GetMediaContent(<ID vom MediaObjekt>) die Daten direkt aus dem MediaObjekt holen[/li][li]Dann mit base64_decode dekodieren[/li][li]Und dann mit file_put_contents abspeichern.[/li][/ul]
Ich hab mir mal notiert, dass wir da vielleicht die Funktion erweitern, sodass man entweder direkt ein Media Objekt verwenden kann, oder beliebige Inhalt als Anhang senden kann.
ich wäre auch stark daran interessiert, die Bilder meiner Cams direkt per Mail verschicken zu können, ohne sie erst noch einmal in einer Datei abspeichern zu müssen.
Kann ich mit einer solchen Funktion rechnen oder muss ich den Umweg über das Speichern gehen?
Viele Grüße aus Jena
Frank
PS: Super wäre natürlich dann auch, wenn man mehrere Bilder in einer Mail versenden könnte.
Ja, das wäre gut. Seit dem Update auf 4.0 werden keine Bilder bei Bewegung mit den alten Scripten mehr vermailt. Hatte ich jedoch erst erwas später bemerkt. Gehe nun auch über den ImageGrabber, den hatte ich noch gar nicht entdeckt. Macht aber einen guten Eindruck.
Kann man die Bilder auch außerhalb von „C:\IP-Symcon“ speichern, z.B. auf einem NAS? Ist mir bisher nicht gelungen. Mit copy ginge das wohl, allerdings muss das NAS permanent mit einem Laufwerksbuchstaben eingehängt haben, oder?