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

Hallo Leute,

ich möchte aus Survillance Station bewegung an IPS Senden. Bei bewegung eine Variable auf true.
Irgendwie stelle ich mich da ziemlich blöd an.

In Survillance Station ist eine Aktionsregel erstellt.
Wie kann ich jetzt mittels http(s) IPS Variable schalten?

Kann mir jemand Tipps geben?

Gruß

Script in IPS anlegen.
Webhook Instanz einen Hook anlegen und auf das Script zeigen lassen.
Im Script den Payload ($_GET oder php://input) auswerten.
Michael

Hallo Michael,

habe genau so gemacht wie du es beschrieben hast.

Im Script steht nur:

SetValue(12345, true);
IPS_Sleep(2000);
SetValue(12345, false);

Und das funktioniert sogar. :loveips:

Ist das würklich so einfach oder habe ich nur glück das es Funktioniert?

Ich habe das so vestanden:
Mein Link „http://…/hook/Bewegung“ Triggert ein Script. Richtig?

Gruß

Jup. Und über Get-Parameter in der URL kannst du auch mehrere Cams mit einem Hook umsetzen.
Michael

Ja geht. Nur das Webfront läd manchmal nicht den Stream. Liegt aber vielleicht nicht an der SS. Nutze nur bei einer Cam die Darstellung weil ich nicht direkt von der Cam was brauchbares bekommen habe. Auch damit die SS nicht dauerhaft noch Streamen muss.

Hallo Sewo

Kannst du mir vieleicht sagen wie deine Aktionsregel auf der SS aussieht? Irgendwie stehe ich hier auf dem schlauch…:confused:

Gruss

Hy alle zusammen,
habe gesehen, das Chris eine IPS_Component Cam für die Surveillance Station erstellt hat.
Kann mir einer einen Tipp geben, wie ich in der IPS_Cam Configuration den Array für die SS erstelle?

Meine sieht folgender maßen aus:

0 => array(IPSCAM_PROPERTY_NAME => ‚Kueche‘,
IPSCAM_PROPERTY_TYPE => IPSCAM_TYPE_MOVABLECAM,
IPSCAM_PROPERTY_COMPONENT => ‚IPSComponentCam_SynologySurveillanceStation7x,ipdiskstation:5000,username,passwort,kameranummer‘,
),

Hi raspsym!

Dein Fehler 400 bedeutet „falsches Passwort“…hier im Thread hatten schon andere User berichtet, dass ein Passwort mit Sonderzeichen sowas verursachen kann (Login über Script nicht ok, Login im Browser ok).

  • Also mal zum Test auf ein einfaches Passwort ohne Sonderzeichen wechseln.

Habe das Script von SS v7.x auch mal bei mir unter der aktuellen 8.x getestet >> funktioniert.

Viele Grüße,
Chris

Genau, benutzt alle immer Passwörter ohne Sonderzeichen :banghead:

Warum nicht einfach den Fehler beheben ?

$json = Sys_GetURLContent('http://'.$ip.':'.$port.'/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=3&account='.urlencode($user).'&passwd='.urlencode($pass).'&session=SurveillanceStation&format=sid');

Michael

Ruhig Blut :slight_smile: Das Script ist aus meinen Anfangszeiten und jedem steht frei das anzupassen :slight_smile:
Außerdem hat man für sowas doch eh einen eigenen Benutzer mit entsprechend eingeschränkten Rechten, Fail2Ban (kann die Synology), … und stellt das NAS nicht „frei“ ins Internet.

Aber um dich komplett zu beruhigen - ich weiß zufällig, dass da grad jemand sehr fähiges ( nicht ich :smiley: ) dran ist das hier komplett neu und ordentlich zu machen :wink:

Viele Grüße,
Chris

Letztendlich waren Sonderzeichen nicht das Problem, sondern ein in der DSM gesperrter IPS Server :slight_smile:

Aber danke für den Hinweis, ich ändere das.

Gruß Burkhard

hallo leute,

ich bin gerade dabei mein kamera/klingel konzept ein wenig in einen rahmen zu packen und frage mich gerade, nachdem ich den stream erfolgreich nutzen kann, ob es möglich ist, die funktion „schnappschuss“, welche man in der surveillance ausführen kann auch in ips nutzbar zu machen. hat da jemand schon erfahrung, oder gesehen, dass jemand auf dem weg war sowas umzusetzen?

sven

Hallo
Ich benutze so etwas. Und zwar speichere ich beim „Haustuerklingeln“ das Bild von der
Tuerkamera aus Surveillance als Bild in einen Ordner. Und schick mir das per email.
Reicht sowas ?

ja das wäre ja die idee.
ich möchte das aus meiner visu heraus über einen button triggern.

wie machst du das denn?

Hier der wichtige Teil meines Scripts. Hab noch die Abfrage aller KameraIDs hinzukopiert.
Einfach KameraID anpassen , Zielpfad aendern und ausfuehren.

<?php

	$httpformat="http"; //hier angeben ob http oder https
    $port="5000"; 		//port
    $loginname="xxxxx"; //Loginname an der Surveillance Station
    $passwd="xxxxx"; 	//passwort an der Surveillance Station
    $ip="192.168.xx.xx"; 	//ip adresse der Surveillance station im LAN
	$id=5;				// KameraID
	$file = IPS_GetKernelDir() . "cams\\".$id."\\Picture\\Ring.jpg";	// Wo soll das Bild hin
	
	$debug = true;
	

	$s = $httpformat."://".$ip.":".$port."/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=2&account=".$loginname."&passwd=".$passwd."&session=SurveillanceStation&format=sid";

	$json = file_get_contents($s);
    $obj = json_decode($json, true);
    $sid = $obj["data"]["sid"];	

	GetCamsIDs();

	
	$s = $httpformat."://".$ip.":".$port."/webapi/entry.cgi?api=SYNO.SurveillanceStation.Camera&method=GetSnapshot&version=1&cameraId=".$id."&preview=true&_sid=".$sid; 
	$contents = file_get_contents($s);
	if ( $contents === false )
		{
		if ( $debug ) echo"
Fehler beim holen : " .$file;
		return false;	
		}
	
	if ( $contents == '{"error":{"code":401},"success":false}')
		{
		if ( $debug ) echo"
Fehler beim holen : " .$file;
		return false;
		}
			
	
	echo "
Save File :".$file;		
	$savefile = fopen($file, "w");
	fwrite($savefile, $contents);
	fclose($savefile);	


//******************************************************************************
//	
//******************************************************************************
function GetCamsIDs()
	{
	GLOBAL $ip;
	GLOBAL $port;
	GLOBAL $sid;
	
	$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 "<br>Die Kamara ".$cam_model." von ".$cam_vendor." mit der IP-Adresse ".$cam_ip." hat die ID ".$cam_id.".
";
    	}

	}	

?>

Hey 1007!

Danke, das war genau das, was ich gesucht habe!
Ich habe den Filenamen noch durch Datum und Uhrzeit ersetzt, das funktionierte wunderbar, was mir jedoch fehlt ist das Verständnis, dass ich zwar in einen Ordner auf C schrieben kann, nicht aber auf ein Netzlaufwerk auf meiner NAS.
Wenn ich das noch hin bekomme, dann ist es perfekt!

Ansonsten soweit Danke!

Ich benutze bei sowas meistens einen FTP-Upload. Nach dem lokalem speichern einfach
irgend wohin uploaden.

	// per FTP irgenwohin laden
	$remote_file = '/FTP/Ring.jpg';
	$ftp_user_name = "xxxxx";
	$ftp_user_pass = "xxxxx";
	$ftp_server = "192.168.x.x";

	// Verbindung aufbauen
	$conn_id = ftp_connect($ftp_server);

	// Login mit Benutzername und Passwort
	$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

	// Verbindung überprüfen
	if ((!$conn_id) || (!$login_result)) 
		{
    	echo "FTP-Verbindung ist fehlgeschlagen!";
    	echo "Verbindungsaufbau zu $ftp_server mit Benutzername $ftp_user_name versucht.";
    	exit;
		} 
	else 
		{
    	echo "
Verbunden zu $ftp_server mit Benutzername $ftp_user_name";
		}

	// Datei hochladen
	if (ftp_put($conn_id, $remote_file, $file)) 
		{
 		echo "
$file erfolgreich hochgeladen
";
} 	else 
		{
 		echo "
Ein Fehler trat beim Hochladen von $file auf
";
		}

	// Verbindung schließen
	ftp_close($conn_id);

Hey 1007,

danke für die Vorlage. leider habe ich das gleiche Problem wie vorher auch. Ich habe es ja bereits im ersten Versuch probiert direkt auf die NAS zu speichern. auch mit dem ftp fopen bekomme ich zwar die verbindung direkt hin, aber er findet die den pfad nicht.

failed to open stream: No such file or directory

egal welchen pfad ich angebe. er findet einfach nichts. ich habe veruscht mich mit file_exists ein wenig lang zu hangeln, aber leider gleiches ergebnis.

Sven

Hallo
Welches NAS? Hab eine Synology.
FTP ueberhaupt aktiviert im NAS?
Mal mit Filezilla testen.

Gesendet von iPad mit Tapatalk

Ich habe eine Synology 716+ und ich habe den FTP auch aktiviert, muss aber sagen, dass ich davon nicht 100% alles verstehe!

Muss ich in der NAS irgendwelche Einstellungen machen, damit das geht?
Das sind meine Einstellungen.

Ich bekomme ja eine Verbindung aktiv aufgebaut. Es hapert, so wie ich das verstehe nur am Pfad.