Ich habe auf einem PC (AMD Quadcore, 8 gb Ram) Firefox mit der Live Ansicht laufen lassen. Leider hängt sich diese manchmal auf. Früher mit dem alten ActiveX bzw. Java Plugin war das noch schlimmer. Aber so 100% stabil läuft es halt auch nicht.
Ich habe auf die Webstation eine kleine Homepage angelegt. DSM 5.0 SS 6.3 und 6 Kameras. (Bei meiner DS412+ wo DSM 4.3 SS 6 mit 4 Kameras läuft ist die Session ID kürzer)
Leider habe ich das per VPN remote gemacht und bin erst Freitag vor Ort und kann dann mal testen ob das auch schnell genug aktualisiert und ob es auf einem Raspberry Pi oder über den Browser in einem Smart TV läuft.
Ich habe auch vorhher noch nie etwas mit php/html oder ähnliches geschrieben. Daher sind auch Verbesserungsvorschläge gern gesehen.
Das einzige was nicht funktioniert ist das ausloggen. (über den Browser geht es, aber über das Skript nicht)
Als erstes müsst ihr die Kamera IDs rausfinden (Da die SS die Kameras fortlaufend nummeriert, aber nicht freigewurdene IDs wieder verwendet)
Rich (BBCode):
https://DEINE_DS_IP:5001/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=2&account=DEIN_DS_BENUTZER&DEIN_DS_PASSWORT&session=SurveillanceStation
Die Session ID rauskopiern und hier einfügen:
Rich (BBCode):
https://DEINE_DS_IP:5001/webapi/SurveillanceStation/camera.cgi?api=SYNO.SurveillanceStation.Camera&version=3&method=List&_sid=SESSION_ID
Dann seht ihr eine Liste mit euren Kameras und die IDs dahinter.
Hier die Homepage für 6 Kameras mit den IDs (1-6). Habe mal versucht überall eine Erklärung zuzuschreiben.
PHP:
<table bgcolor="black" width="1920" cellpadding="0" cellspacing="0" border="1">
<?php
//Seite automatisch aktualisieren alle 3 Sekunden
header("Refresh:3;url=index.php");
//Variablen
$DSip="DS_IP"; //IP der DiskStation
$DSport="5001"; //Port des WebIF (https: 5001)
$user="DS_User";
$password="DS_Password";
//in SS einloggen und SID auslesen
$openURL = "https://".$DSip.":".$DSport."/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=2&account=".$user."&passwd=".$password."&session=SurveillanceStation";
$contents = file_get_contents($openURL);
$sidoutput = htmlentities($contents);
//SID ausschneiden
$SID = substr("$sidoutput",41,23);
// Kamera ID von 1 bis 6
for ($i = 1; $i <= 6; $i++) {
${snapshot.$i} = "https://".$DSip.":".$DSport."/webapi/SurveillanceStation/camera.cgi?api=SYNO.SurveillanceStation.Camera&version=1&method=getSnapshot&cameraId=".$i."&_sid=".$SID;
}
//Kamerabilder in Tabelle plotten (ggf. Reihenfolge anpassen)
echo "<tr><td><a href='$snapshot1'><img src='$snapshot1' style='width:720px' /></td><td><a href='$snapshot2'><img src='$snapshot2' style='width:720px' /></td><td><a href='$snapshot5'><img src='$snapshot5' style='width:720px' /></td></tr>"."\r\n";
echo "<tr><td><a href='$snapshot3'><img src='$snapshot3' style='height:540px' /></td><td><a href='$snapshot4'><img src='$snapshot4' style='height:540px' /></td><td><a href='$snapshot6'><img src='$snapshot6' style='height:540px' /></td></tr>"."\r\n";
//Logout
wait(1);
$closeURL = "https://".$DSip.":".$DSport."/webapi/auth.cgi?api=SYNO.API.Auth&method=Logout&version=2&session=SurveillanceStation&_sid=".$SID;
$contents = file_get_contents($closeURL);
?>
</table>
</body>
Bei meiner DS412+ wo DSM 4.3 SS 6 mit 4 Kameras läuft ist die Session ID kürzer. Da muss Zeile 18 (SID ausschneiden) geändert werden.
PHP:
//SID ausschneiden
$SID = substr("$sidoutput",41,13);
Vielleicht hat ja jemand Tipps um es ein bisschen zu optimieren. Mit den 6 Kameras in meiner Signatur an der DS3612xs funktioniert das super. Man kann auf die Screenshot draufklicken und sich die volle Auflösung anzeigen lassen. Bei den DCS2230 an der DS412+ kommen aber die Screenshots nur in 640px × 360px. (Videoauflösung ist aber 1920px x 1080px) Ich weiß nicht, ob das eine Einstellung in der SS ist oder in der Api...