Guten Abend!
Da ich heute ja am URL-sniffen usw. war, wegen einer anderen Baustelle, ist mir ein anderes Thema von meiner 2do-Liste eingefallen:
>> Einen Kamera-Stream von der „Synology Surveillance Station“ im WebFront einbinden
Kurz gesnifft, im Forum gesucht, eine gute Vorarbeit von Christian (c.radi) gefunden, diese etwas korrigiert, ein wenig erweitert und das ist das Ergebnis
> Bitte nicht auf die Cam-Qualität und den Bildausschnitt achten, ich bin grad am „spielen“ und deshalb ist das Bild im Moment eher „suboptimal“
Sooo…ihr wollt das nachbauen? Kein Problem, hier kommt ein Beispiel-Skript mit einer kleinen Anleitung
Surveillance Station v7 und v8 >> Dieses Skript anpassen (user, pass, ip, …) und unter „/webfront/user/synology_cam1.php“ abspeichern:
<?
// Konfiguration
$user = "user"; // Synology Benutzer mit Berechtigung die Kamera anzuzeigen
$pass = "pass"; // Passwort zu eben eingegebenem Benutzer
$ip = "192.168.1.11"; // IP-Adresse eures Synology-NAS
$port = "5000"; // default Port der Surveillance Station
$cameraID = "1"; // ID der Kamera, welche angezeigt werden soll
// *** Eventuell müsst ihr die URLs von HTTP auf HTTPS anpassen, sofern ihr HTTPS aktiviert habt!
// Authentifizierung an Synology Surveillance Station WebAPI und auslesen der SID
$json = Sys_GetURLContent('http://'.$ip.':'.$port.'/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=3&account='.$user.'&passwd='.$pass.'&session=SurveillanceStation&format=sid');
$obj = json_decode($json, true);
@$sid = $obj["data"]["sid"];
$Cam_Stream_URL = 'http://'.$ip.':'.$port.'/webapi/SurveillanceStation/videoStreaming.cgi?api=SYNO.SurveillanceStation.VideoStream&version=1&method=Stream&cameraId='.$cameraID.'&format=mjpeg&_sid='.$sid;
echo '<div class=\"centered\"><img src=$Cam_Stream_URL style=\"width:auto;height:auto;\" /></div>';
?>
Surveillance Station v6 >> Dieses Skript anpassen (user, pass, ip, …) und unter „/webfront/user/synology_cam1.php“ abspeichern:
<?
// Konfiguration
$user = "user"; // Synology Benutzer mit Berechtigung die Kamera anzuzeigen
$pass = "pass"; // Passwort zu eben eingegebenem Benutzer
$ip = "192.168.1.11"; // IP-Adresse eures Synology-NAS
$port = "5000"; // default Port der Surveillance Station
$cameraID = "1"; // ID der Kamera, welche angezeigt werden soll
// Authentifizierung an Synology Surveillance Station WebAPI und auslesen der SID
$json = Sys_GetURLContent('http://'.$ip.':'.$port.'/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=3&account='.$user.'&passwd='.$pass.'&session=SurveillanceStation&format=sid');
$obj = json_decode($json, true);
@$sid = $obj["data"]["sid"];
$Cam_Stream_URL = 'http://'.$ip.':'.$port.'/webapi/SurveillanceStation/camera.cgi?api=SYNO.SurveillanceStation.Streaming&method=LiveStream&version=1&cameraId='.$cameraID.'&_sid='.$sid;
// Wenn die 1. URL nicht funktioniert, dann mal auskommentieren und die folgende testen:
//$Cam_Stream_URL = 'http://'.$ip.':'.$port.'/webapi/SurveillanceStation/camera.cgi?api=SYNO.SurveillanceStation.Streaming&method=LiveStream&version=1&cameraId='.$cameraID;
echo '<div class=\"centered\"><img src=$Cam_Stream_URL style=\"width:auto;height:auto;\" /></div>';
?>
Entweder könnt ihr direkt diese Seite noch selbst weiter gestalten und einfach als „externe Webseite“ im WebFront einbinden, ODER ihr legt euch eine String-Variable mit dem Profil „HTMLBox“ an mit folgendem Inhalt. Hier müsst ihr noch IP und PORT eures IPS-Server eintragen und könnt „width“ und „height“ auf euer WebFront anpassen:
<iframe width="400pixel" height="300pixel" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://IPS-IP:PORT/user/synology_cam1.php"></iframe>
…oder ihr arbeitet über einen WebHook in IPS (ab IPS v5) und passt das Script entsprechend an.
Danach nur noch die Variable an die gewünschte Stelle im WebFront verlinken und dann sollte das bei euch so ähnlich aussehen wie auf dem Screenshot oben im Beitrag
Zur Unterstützung bei der Fehlersuche, hier noch die Fehlercodes mit Erklärung (bei Authentifizierung):
100 Unknown error.
101 The account parameter is not specified.
400 Invalid password.
401 Guest or disabled account.
402 Permission denied.
403 One time password not specified.
404 One time password authenticate failed.
>> Hinweis >> Da immer wieder User den Fehler 400 haben, trotz richtigem Passwort >> Es liegt dann meist an den Sonderzeichen im Passwort! Also mal ein „einfacheres“ Passwort testen.
Man kann auf diesem Wege auch einen Snapshot des Kamera-Bildes auslesen und z.B. per E-Mail verschicken oder einfach nur abspeichern. Wer da noch Infos braucht > bitte melden, dann würde ich das, bei Bedarf, auch noch basteln.
Ebenfalls kann man Informationen über die Kamera auslesen (Modell, Auflösung, …). Zu mehr bin ich noch nicht gekommen, aber für den Anfang sollte das ausreichend sein
Hab ich etwas vergessen? Ich hoffe nicht Falls doch, einfach melden (mach ihr ja eh ).
Grüße,
Chris
INFO - funktioniert auch mit aktueller SS 8.x