Kamera-Stream aus "Synology Surveillance Station" in WebFront einbinden

Guten Abend,
und erstmal herzlichen Dank für dieses Skript.

Habe das Skript übernommen, uns beim Test kommt auch keine Fehlermeldung, jedoch kommt leider auch kein Bild.

Kann mir jemand weiter Helfen?

Vielen Dank im Voraus und frohe Ostern.

Marcus.

Hi Marcus!

Hast du die aktuelle DSM und Surveillance Station Version?

Fehlermeldung? Was passiert? Was nicht? …?

Habe eine Component Class für IPSCam geschrieben, da geht alles bis auf PTZ. Setzt du IPSCam ein?

Grüße,
Chris

Guten Abend Chris,
danke für die schnelle Antwort.

Synology-Seitig ist alles aktuell.

Mein Skript ist dein Skript, nur die Daten individualisiert. Was ich nicht getan habe ist das Skript so zu benennen wie Du es vorschlägst.

Im WebFront erscheint beim Anklicken des Skriptes ein PupUp-Fentser, welches leer ist.

IPSCm setzte ich bisher nicht ein.

PW, Zugänge habe ich alle neu angelegt, hier sollten und dürften keine Probleme liegen.

Vielen Dank im Voraus.
Marcus.

Wozu schreibe ich eine Anleitung, wenn sich keiner daran hält? :rolleyes:

In meiner Anleitung steht etwas von String-Variable ins WebFront verlinken und nichts mit Script verlinken ins WebFront…

Hast du auch wirklich überall dann deinen Dateinamen angepasst? Da vlt. etwas falsch gemacht? Weil wenn da etwas nicht stimmt mit den Dateinamen, bzw. nicht überall übereinstimmt, dann kann natürlich nichts funktionieren…

Der User hat entsprechende Rechte und ich glaube Sonderzeichen mag das Ding auch irgendwie nicht. Einer hat hier im Thread mal was dazu geschrieben.

Was passiert, wenn du dich im Browser an der Surveillance Station anmeldest und dann IM GLEICHEN BROWSER FENSTER diese URL aufrufst? Ausgabe?

___http://IP:PORT/webapi/SurveillanceStation/videoStreaming.cgi?api=SYNO.SurveillanceStation.VideoStream&version=1&method=Stream&cameraId=1&format=mjpeg
> vorne das „___“ weg lassen und evtl. noch bei „cameraId“ eine höhere Zahl probieren, je nachdem wie deine Kamera(s) in der SS eingerichtet sind…

Grüße,
Chris

Ohh, sorry ich bin auf dem ganze Gebiet überhaupt nicht bewandert, aber möchte die Idee hier unbedingt umsetzen.

Das habe ich bis jetzt gemacht:

  1. Einen Ordner webfront/user erstellt.
    (Mir war nicht so richtig klar wo dieser Ordner liegen muss. Im root-Verzeichnis, oder unter /volume1/.
    Derzeit liegt er dort wo auch mein Multimedia,etc. Ordner liegt. Ist das richtig?
    )

  2. Das Script unter webfront/user/ kopiert und entsprechend angepasst.
    Ist der Standardport der SS 5000, oder wie im Netz auch zu finden 9900/9901?

  3. Wenn bis hierher alles richtig ist, weiß ich nicht wie ich nun das Bild auf eine HTML Seite bekomme, da ich mit diesen Angaben überhaupt nix anfangen kann.

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:

PHP-Code:
<iframe width="400pixel" height="300pixel" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://IPS-IP:PORT/user/synology_cam1.php"></iframe> 

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

Wenn ich eine einfache html Website in den Web-Ordner packe und auf dieser Seite der Stream zu sehen sein soll, was habe ich denn dann dort einzufügen? Was meinst du mit „diese Seite“?

Das ist mir echt ein wenig peinlich hier diese Fragen zu stellen, aber ich möchte diese Lösung hier sehr gern übernehmen, auch wenn ich nur 0.5% Ahnung von Webseiten habe.

Beste Grüße,
Woodz;)

Achso, ich nutze v7

:smiley: hust Erstmal > Willkommen im IPS Forum!

/webfront/user >> Schau mal in dein IP-Symcon Verzeichnis :wink: :smiley: z.B. C:\IP-Symcon\webfront\user…

Default-Port von SS ist 5000.

Mit diesem geheimen Wissen nochmal der Anleitung folgen und dann klappt es auch mit dem NAS und dem Stream :slight_smile:

Grüße,
Chris

ich glaube, woodz hat gar kein ips :wink:

Ich habe auch den Verdacht, aber da wir im IPS-Forum sind habe ich es mal angenommen und warte eine weitere Rückmeldung ab :smiley:

Aber selbst ohne IPS funktioniert es…dann braucht man allerdings einen eigenen Webserver (Apache, …) und muss die „SYS_GetURLContent“ Befehle durch z.B. durch „curl“ oder was auch immer ersetzen :slight_smile: Und hier und da eine URL ändern… :smiley:

Grüße,
Chris

Wow, das ging ja schon einmal echt schnell mit den Antworten.
Ihr habt natürlich vollkommen Recht mit der Annahme, dass ich kein IPS hab. Das war mir wohl irgendwie entgangen in meiner Naivität.

Ach Herrje, was muss ich denn nun genau machen? Sorry wenn ich mich echt so blöd anstelle, aber vllt. ist es ja eine gute Gelegenheit diese Sache auch anderen Leuten wie mir darzulegen wie das Ganze zu realisieren ist.

Beste Grüße,
Woodz:)

Moin!

Wie gesagt handelt es sich hier um das IPS-Forum und dementsprechend gibt es auch Skripte für IPS :wink:

Und da mir die Telekom vorzeitig den Anschluss gekündigt hat, ohne mir vorher Bescheid zu sagen, habe ich die nächsten Wochen nur noch auf der Arbeit ein brauchbares Internet und dementsprechend wenig Zeit für andere meine Skripte umzubauen…

Also würde ich vorschlagen, dass du entweder IPS-Kunde wirst :smiley: …oder du musst selbst die paar Punkte ändern/erledigen, was sicher auch den besten Lerneffekt hätte :slight_smile:

Grüße,
Chris

Hat jemand zufällig die URL für QNAP Surveillance Stations (Login + Stream)?

Im Netz finde ich dazu leider nichts…

@bayaro
mit was hast du gesnifft?
WireShark?

Das blöde bei der QNAP Surveillance Station ist, sobald man sich einloggt, und auf „Monitor“ klickt geht eine Seite auf, die erst mal ein ActiveX Steuerelemt + Qmon.Exe installieren möchte…

Das macht das ganze für den Abruf auf einem Smartphone untauglich…

P.S. Das war eh meine erste und letzte QNAP NAS 221 Station… so ein buggy software murks. (nach stromausfall generell Raid kaputt, nach stromausfall muss jede Software eingerichtet werden, Energiezeitplan mit geplantem Ausschalten nachts - zerstört die NAS = Neu Installation…)
Meine alte Synology läuft bei Bekannten seit Jahren anstandslos und zuverlässig.

Moin!

Hab das teilweise mit Fiddler gesnifft, teilweise gab es auch ein paar dokumentierte Sachen zur API und dann noch ein wenig über Google gefunden…

Wollte das hier immer mal umbauen auf eine korrekte Anmeldung am NAS und Pfade dynamisch auslesen usw, aber Zeit ist wie immer Mangelware…

> Wäre das nicht auch in einem eigenen Thread besser aufgehoben gewesen? :slight_smile: QNAP != Synology :wink: :stuck_out_tongue:

Grüße,
Chris

Noch als Ergänzung:

wollte den Stream der zweiten Cam auch abfragen. Dabei gestaltete sich die Suche der „cameraId“ für

$Cam_Stream_URL = 'http://'.$ip.':'.$port.'/webapi/SurveillanceStation/camera.cgi?api=SYNO.SurveillanceStation.Streaming&method=LiveStream&version=1&cameraId='.$cameraID.'&_sid='.$sid;

etwas schwierig. Durch Probieren konnte ich sie finden. Zweite Kamera bedeutet nicht ID 2!

Zu finden sind die IDs so:

<?

$ip = "A.B.C.D";
$port = "5000";
$user = "user";
$pass = "pass";


// Anmeldung
$json = file_get_contents('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"];

// Konfig lesen
$json = file_get_contents('http://'.$ip.':'.$port.'/webapi/entry.cgi?api=SYNO.SurveillanceStation.Camera&method=List&version=3&_sid='.$sid);
$obj = json_decode($json, true);

$cams = count($obj["data"]["cameras"]); // Anzahl der Kameras ermitteln
for ($i=0; $i<$cams; $i++)
	{
	$cam_id = $obj["data"]["cameras"][$i]["id"];
	$cam_model = $obj["data"]["cameras"][$i]["model"];
	$cam_vendor = $obj["data"]["cameras"][$i]["detailInfo"]["camVendor"];
	$cam_ip = $obj["data"]["cameras"][$i]["detailInfo"]["camIP"];
	echo "Die Kamara ".$cam_model." von ".$cam_vendor." mit der IP-Adresse ".$cam_ip." hat die ID ".$cam_id.".
";
	}

// Abmeldung
$json = file_get_contents('http://'.$ip.':'.$port.'/webapi/auth.cgi?api=SYNO.API.Auth&method=Logout');
?>

Nachdem ich die 2. ID gefunden hatte, läuft bisher alles ganz gut. Nun auch endlich auf meinem Androiden und in der App. (Auch hatte ich seit dem letzten Firefoxupdate keinen VLC-Stream mehr, mit dessen Hilfe ich die Darstellung im Webfrionmt machte.) Allerdings etwas ruckelig, aber für den schnellen Blick reicht es.

Aktivierung:

    // Aktivieren von Cam1
	$json = file_get_contents('http://192.168.123.123:5000/webapi/entry.cgi?api=SYNO.SurveillanceStation.Camera&method=Enable&version=3&cameraIds=4&_sid='.$sid);

Deaktivierung:

	// Deaktivieren von Cam1
	$json = file_get_contents('http://192.168.123.123:5000/webapi/entry.cgi?api=SYNO.SurveillanceStation.Camera&method=Disable&version=3&cameraIds=4&_sid='.$sid);

cameraIds anpassen - s. einen Post vorher

Super Sache - Funktioniert wie ne eins auf meinem RasPi!! :smiley:

Hallo zusammen,

hab eine Syno SS Version 6.1-2983

hab eine neue Foscam FI9900P (ja ich hab der Petze das petzen abgewöhnt).

Da die nicht direkt in die Syno SS integrieren kann hab ich über ONVIF Port 888 hinbekommen.

ich hab gedacht ich fang mal klein an und lass mir erst mal die ID der Kamera anzeigen. Post #53

Leider bekomm ich bei jeder Abfrage/Aufruf den Fehler 404 Not Found.

Bsp mit dem Script um die IDs der Kameras herauszufinden:

<?

$ip = $SynoIP;  // IP-Adresse eures Synology-NAS
$port = "5000";
$user = $SynoAdmin;  // Synology Benutzer mit Berechtigung die Kamera anzuzeigen
$pass = $SynoAdminPW;  // Passwort zu eben eingegebenem Benutzer


// Anmeldung
$json = file_get_contents('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"];
//print_r($json);

// Konfig lesen
$json = file_get_contents('http://'.$ip.':'.$port.'/webapi/entry.cgi?api=SYNO.SurveillanceStation.Camera&method=List&version=2&_sid='.$sid); // hier bekomm ich den Fehler
$obj = json_decode($json, true);
//print_r($json);

$cams = count($obj["data"]["cameras"]); // Anzahl der Kameras ermitteln
for ($i=0; $i<$cams; $i++)
    {
    $cam_id = $obj["data"]["cameras"][$i]["id"];
    $cam_model = $obj["data"]["cameras"][$i]["model"];
    $cam_vendor = $obj["data"]["cameras"][$i]["detailInfo"]["camVendor"];
    $cam_ip = $obj["data"]["cameras"][$i]["detailInfo"]["camIP"];
    echo "Die Kamara ".$cam_model." von ".$cam_vendor." mit der IP-Adresse ".$cam_ip." hat die ID ".$cam_id.".
";
    }

// Abmeldung
$json = file_get_contents('http://'.$ip.':'.$port.'/webapi/auth.cgi?api=SYNO.API.Auth&method=Logout');
?>

Das Login funktioniert.

Hat jemand einen Tipp?

Hab den Threat von Anfang an gelesen und scheine das selbe Problem wie chrissiboy zu haben. Hab die Anleitung von BY, explizit, leider erfolglos, befolgt.

Anbei noch die Ergebnisse die von BY in Post #21 gewünscht wurden.

https://192.168.178.16:5001/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=3&account=admin&passwd=pw&session=SurveillanceStation&format=sid
=> {"data":{"sid":"znyPxQMcbzj6Y"},"success":true}

http://192.168.178.16:5000/webapi/query.cgi?api=SYNO.API.Info&method=Query&version=1&query=SYNO.SurveillanceStation.Camera
=> {"data":{"SYNO.SurveillanceStation.Camera":{"maxVersion":5,"minVersion":1,"path":"SurveillanceStation/camera.cgi"}},"success":true}

http://192.168.178.16:5000/webapi/query.cgi?api=SYNO.API.Info&method=Query&version=1&query=SYNO.SurveillanceStation.VideoStream
=> {"data":{"SYNO.SurveillanceStation.VideoStream":{"maxVersion":1,"minVersion":1,"path":"SurveillanceStation/videoStreaming.cgi"}},"success":true}

http://192.168.178.16:5000/webapi/query.cgi?api=SYNO.API.Info&method=Query&version=1&query=SYNO.SurveillanceStation.Stream
=> {"data":{},"success":true}

http://192.168.178.16:5000/webapi/query.cgi?api=SYNO.API.Info&method=Query&version=1&query=SYNO.SurveillanceStation.Streaming
=> {"data":{"SYNO.SurveillanceStation.Streaming":{"maxVersion":2,"minVersion":1,"path":"SurveillanceStation/streaming.cgi"}},"success":true}

http://192.168.178.16:5000/webapi/query.cgi?api=SYNO.API.Info&method=Query&version=1&query=SYNO.SurveillanceStation.SnapShot
=> {"data":{},"success":true}

http://192.168.178.16:5000/webapi/query.cgi?api=SYNO.API.Info&method=Query&version=1&query=SYNO.SurveillanceStation.PTZ
=> {"data":{"SYNO.SurveillanceStation.PTZ":{"maxVersion":2,"minVersion":1,"path":"SurveillanceStation/ptz.cgi"}},"success":true}

Hast du http und https beachtet? Hat der User genügen Berechtigung am NAS? …am besten erstmal mit einem Admin Profil testen.

Hallo qwik,

danke für die Hinweise. http/https hab ich beide versucht. leider ohne Erfolg.
Der übergebene User ist admin.

@all sonst noch jemand eine Idee?

Abend!

Du hast auf Seite 1 gesehen, dass es für die SS6 anders läuft als bei der SS7?

Hat dein Passwort zufällig ein Sonderzeichen oder sowas? Kannst zum Test ja mal ein einfaches Passwort nehmen, meine mich zu erinnern, dass es da Probleme gab…

Grüße,
Chris

Hallp BY,

ich verwende Dein V6 Script aus Post 1.

Und nein, habe nur Buchstaben und Zahlen.

@all sonst noch jemand eine Idee?

Über vlc funktioniert der rtsp Stream übrigens auch. Könnte man den irgend wie einbinden?