Ich habe 4 Kameras, von denen jeweils ein kleines Bild gezeigt wird + ein größeres Hauptfenster, welches wahlweise von einer der 4 Kameras bestückt wird.
Standbild erzeugen (getriggert durch Bewegungsmelder) :
<?
if(isset($IPS_EVENT))
{
$Event = IPS_GetEvent($IPS_EVENT);
$Event_Trigger_ID = $Event['TriggerVariableID'];
$Bewegung = GetValueBoolean(IPS_GetObjectIDByName('Bewegungsstatus', IPS_GetParent($Event_Trigger_ID)));
// $IP_Adresse_ID = IPS_GetObjectIDByName('IP-Adresse', IPS_GetParent($Event_Trigger_ID));
$Kamera_ID = GetValueString(IPS_GetObjectIDByName('Syn-ID', IPS_GetParent($Event_Trigger_ID)));
$Position_ID = IPS_GetObjectIDByName('Position', IPS_GetParent($Event_Trigger_ID));
$Standbild_ID = IPS_GetObjectIDByName('Standbild', IPS_GetParent($Event_Trigger_ID));
if ($Bewegung == true)
{
$json = Sys_GetURLContent('http://10.0.0.2:5000/webapi/auth.cgi?api=SYNO.API.Auth&version=2&method=Login&session=SurveillanceStation&account=XXX&passwd=XXX');
$obj = json_decode($json, true);
@$sid = $obj["data"]["sid"];
SetValueString($Standbild_ID,'<img src=http://10.0.0.2:5000/webapi/SurveillanceStation/camera.cgi?api=SYNO.SurveillanceStation.Camera&version=1&method=getSnapshot&cameraId='.$Kamera_ID.'&_sid='.$sid.' width="320" height="240">');
// WFC_SendPopup(54929 /*[Hauptansicht]*/, $Kamera_ID, GetValueString(29338 /*[ Test\HTTP-Parameter\URL]*/));
If (GetValueInteger($Position_ID) == GetValueInteger(22308 /*[Kameras\Hauptfenster-Auswahl]*/)) /* Auch im Hauptfenster ? */
SetValueString(35866,'<img src=http://10.0.0.2:5000/webapi/SurveillanceStation/camera.cgi?api=SYNO.SurveillanceStation.Camera&version=1&method=getSnapshot&cameraId='.$Kamera_ID.'&_sid='.$sid.' width="640" height="480">');
}
}
?>
Wechsel des Hauptfensters bei gleichzeitiger Aktualisierung:
<?
switch($IPS_SENDER)
{
case "WebFront":
SetValue($IPS_VARIABLE, $IPS_VALUE);
$ProfileArray = IPS_GetVariableProfile ('Kamera-Auswahl');
$Auswahlname = $ProfileArray['Associations'][$IPS_VALUE]['Name'];
$Kamera_ID = GetValueString(IPS_GetObjectIDByName('Syn-ID',IPS_GetObjectIDByName($Auswahlname, 57385 /*[Kameras]*/)));
// $IP_Adresse_ID = IPS_GetObjectIDByName('IP-Adresse', $Kamera_ID);
$Standbild_ID = IPS_GetObjectIDByName('Standbild', IPS_GetObjectIDByName($Auswahlname, 57385 /*[Kameras]*/));
IPS_SetName(29945 /*[Webfront-Links\Hauptansicht\Kamera 0\Terrasse]*/, $Auswahlname);
$json = Sys_GetURLContent('http://10.0.0.2:5000/webapi/auth.cgi?api=SYNO.API.Auth&version=2&method=Login&session=SurveillanceStation&account=XXX&passwd=XXX');
$obj = json_decode($json, true);
@$sid = $obj["data"]["sid"];
SetValueString($Standbild_ID,'<img src=http://10.0.0.2:5000/webapi/SurveillanceStation/camera.cgi?api=SYNO.SurveillanceStation.Camera&version=1&method=getSnapshot&cameraId='.$Kamera_ID.'&_sid='.$sid.' width="320" height="240">');
SetValueString(35866,'<img src=http://10.0.0.2:5000/webapi/SurveillanceStation/camera.cgi?api=SYNO.SurveillanceStation.Camera&version=1&method=getSnapshot&cameraId='.$Kamera_ID.'&_sid='.$sid.' width="640" height="480">');
}
?>
Aufnahme Starten/Stoppen:
<?
$json = Sys_GetURLContent('http://10.0.0.2:5000/webapi/auth.cgi?api=SYNO.API.Auth&version=2&method=Login&session=SurveillanceStation&account=XXX&passwd=XXX');
$obj = json_decode($json, true);
@$sid = $obj["data"]["sid"];
SetValueString(14336 /*[ Test\Teststream]*/,'<img src=http://10.0.0.2:5000/webapi/SurveillanceStation/extrecord.cgi?api=SYNO.SurveillanceStation.ExternalRecording&method=Record&version=1&cameraId=1&action=start&_sid='.$sid.' width="320" height="240">');
SetValueString(14336 /*[ Test\Teststream]*/,'<img src=http://10.0.0.2:5000/webapi/SurveillanceStation/extrecord.cgi?api=SYNO.SurveillanceStation.ExternalRecording&method=Record&version=1&cameraId=1&action=stop&_sid='.$sid.' width="320" height="240">');
?>
Soweit die gute Nachrichten… Nachwievor schaffe ich es nicht den Livestream anzuzeigen. Wenn ich das
__http://10.0.0.2:5000/webapi/streaming.cgi?api=SYNO.SurveillanceStation.Streaming&method=LiveStream&version=1&cameraId=1
auf der Browserseite der SS direkt eingeben, kommt eine Synology-Seite mit der Meldung, dass er die Seite nicht gefunden hat.
Ich habe eine SS6 und eine SS7. getestet habe ich das aber bisher nur auf der SS7.
Grüße Frank