Zuletzt erstelltes Bild vom FTP Server im IPS anzeigen lassen???

Hallo zusammen,

ich muss auf Grund von fehlenden Streaminformationen unserer Clarer D200-SW IP Cam einen Umweg gehen und kann leider kein Image Grabber anwenden.

Die Kamera speichert die „motion detect“ Bilder auf dem NAS der Fritzbox 7490. Per IPS (Symbox) möchte ich auf den FTP schauen und mir immer das zuletzt gespeicherte Bild anzeigen lassen.

Ich habe nur leider keinen Plan wie ich an die Sache herangehen soll.

Hatte eventuell schon jemand ein ähnliches Problem und ein Skript in der Schublade?

Viele Grüße

Moin!

Da fallen mir verschiedene Lösungswege ein…

Welche Namen haben die Dateien denn? Mit Datum/Uhrzeit und die neuste Datei immer am Ende?
>> Dann einfach die Dateien auflisten, in ein Array schreiben, Array mit „rsort“ einfach „umdrehen“ und den Dateinamen in $array[0] zum Download verwenden.

Dateinamen ohne Datum/Uhrzeit?
>> Dann vlt. alle Dateien runterladen (Alternativ könntest du auch einfach einen Ordner auf deinem System mit dem FritzBox NAS syncen), originalen Timestamp der Datei dabei behalten und dann mit einem Shell-/Batch-Script auf deinem IPS-Server herausfinden welche die neuste Datei ist. Wie, das kommt dann drauf an, ob du IPS auf einem Windows oder Linux laufen hast.

Grüße,
Chris

Beispiel von mir


$URL = 'fritz.box';
$URL = 'ftp://'.$Username.':'.$Password.'@'.$URL;
$array = scandir($URL.$pattern,1);	
if( empty($array) ) {  
	IPS_LogMessage( IPS_GetName($_IPS['SELF']), "Es ist ein Fehler beim Laden des Verzeichnisses aufgetreten.");   
	return false;  
}
$file = file_get_contents( $URL.$array[0] );	// aktuell nur die letzte Datei verwenden
if( empty($file) ) {  
	IPS_LogMessage( IPS_GetName($_IPS['SELF']), "Es ist ein Fehler beim Laden der letzte Datei aufgetreten.");   
return false;  
}

Das ist aus einem Modul von mir, ich habe es „etwas“ reduziert und es sollte eigentlich so laufen, allerdings für „Text“-Datei. Bezüglich Bild musst du noch ein wenig am Ende anpassen.

Vielen Dank für die Ansätze. Ich habe das jetzt so gelöst, dass ich mir eine Art Gallerie per Skript anzeigen lasse, so dass ich mir die detektierten Bilder auswählen und dann anschauen kann.



<ul id="galerie">
<?php
// Ordnername 
$ordner = "ftp://benutzer:passwort@fritz.box/Bilderordner"; //auch komplette Pfade möglich ($ordner = "download/files";)
 
// Ordner auslesen und Array in Variable speichern
$allebilder = scandir($ordner); // Sortierung A-Z
// Sortierung Z-A mit scandir($ordner, 1)               
 
// Schleife um Array "$alledateien" aus scandir Funktion auszugeben
// Einzeldateien werden dabei in der Variabel $datei abgelegt
foreach ($allebilder as $bild) {
 
 // Zusammentragen der Dateiinfo
 $bildinfo = pathinfo($ordner."/".$bild); 
 //Folgende Variablen stehen nach pathinfo zur Verfügung
 // $dateiinfo['filename'] =Dateiname ohne Dateiendung  *erst mit PHP 5.2
 // $dateiinfo['dirname'] = Verzeichnisname
 // $dateiinfo['extension'] = Dateityp -/endung
 // $dateiinfo['basename'] = voller Dateiname mit Dateiendung
 
 // Größe ermitteln für Ausgabe
 $size = ceil(filesize($ordner."/".$bild)/1024); 
 //1024 = kb | 1048576 = MB | 1073741824 = GB
 
 // scandir liest alle Dateien im Ordner aus, zusätzlich noch "." , ".." als Ordner
 // Nur echte Dateien anzeigen lassen und keine "Punkt" Ordner
 // _notes ist eine Ergänzung für Dreamweaver Nutzer, denn DW legt zur besseren Synchronisation diese Datei in den Orndern ab
 // Thumbs.db ist eine Ergänzung unsichtbare Dateiergänzung die von ACDSee kommt
 // um weitere ungewollte Dateien von der Anzeige auszuschließen kann man die if Funktion einfach entsprechend erweitern
 if ($bild != "." && $bild != ".."  && $bild != "_notes" && $bildinfo['basename'] != "Thumbs.db") { 
 ?>
    <li>
        <a href="<?php echo $bildinfo['dirname']."/".$bildinfo['basename'];?>">
        <img src="<?php echo $bildinfo['dirname']."/".$bildinfo['basename'];?>" width="200" alt="Vorschau" /></a> 
        <span><?php echo $bildinfo['filename']; ?> (<?php echo $size ; ?>kb)</span>
    </li>
<?php
 };
 };
?>
</ul>

Grüße,
Felix

Hallo Felix, sowas brauche ich auch. Danke für die Arbeit.

Wie schaut das dann in deinem Objektbaum genau aus?

Gruß
Ringo