mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-10 09:16:53 +00:00
49_SSCam: HTTPS Support, buttons for refresh SSCamSTRM-devices
git-svn-id: https://svn.fhem.de/fhem/trunk@16938 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
16a007fff5
commit
956526a012
@ -1,5 +1,6 @@
|
|||||||
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
|
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
|
||||||
# Do not insert empty lines here, update check depends on it.
|
# Do not insert empty lines here, update check depends on it.
|
||||||
|
- feature: 49_SSCam: HTTPS Support, buttons for refresh SSCamSTRM-devices
|
||||||
- changed: 14_Hideki: standard battery readings
|
- changed: 14_Hideki: standard battery readings
|
||||||
- changed: 14_SD_WS: standard battery readings
|
- changed: 14_SD_WS: standard battery readings
|
||||||
- changed: 14_SD_WS07: standard battery readings
|
- changed: 14_SD_WS07: standard battery readings
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
#########################################################################################################################
|
#########################################################################################################################
|
||||||
# Versions History:
|
# Versions History:
|
||||||
#
|
#
|
||||||
|
# 6.0.0 03.07.2018 HTTPS Support, buttons for refresh SSCamSTRM-devices
|
||||||
# 5.3.0 29.06.2018 changes regarding to "createStreamDev ... generic", refresh reading parentState of all
|
# 5.3.0 29.06.2018 changes regarding to "createStreamDev ... generic", refresh reading parentState of all
|
||||||
# SSCamSTRM devices with PARENT=SSCam-device, control elements for runView within fhemweb,
|
# SSCamSTRM devices with PARENT=SSCam-device, control elements for runView within fhemweb,
|
||||||
# new CamLive.*-Readings, minor fixes
|
# new CamLive.*-Readings, minor fixes
|
||||||
@ -243,7 +244,7 @@ use Time::HiRes;
|
|||||||
use HttpUtils;
|
use HttpUtils;
|
||||||
# no if $] >= 5.017011, warnings => 'experimental';
|
# no if $] >= 5.017011, warnings => 'experimental';
|
||||||
|
|
||||||
my $SSCamVersion = "5.3.0";
|
my $SSCamVersion = "6.0.0";
|
||||||
|
|
||||||
# Aufbau Errorcode-Hashes (siehe Surveillance Station Web API)
|
# Aufbau Errorcode-Hashes (siehe Surveillance Station Web API)
|
||||||
my %SSCam_errauthlist = (
|
my %SSCam_errauthlist = (
|
||||||
@ -361,12 +362,14 @@ sub SSCam_Define($@) {
|
|||||||
my $camname = $a[2];
|
my $camname = $a[2];
|
||||||
my $serveraddr = $a[3];
|
my $serveraddr = $a[3];
|
||||||
my $serverport = $a[4] ? $a[4] : 5000;
|
my $serverport = $a[4] ? $a[4] : 5000;
|
||||||
|
my $proto = $a[5] ? $a[5] : "http";
|
||||||
|
|
||||||
$hash->{SERVERADDR} = $serveraddr;
|
$hash->{SERVERADDR} = $serveraddr;
|
||||||
$hash->{SERVERPORT} = $serverport;
|
$hash->{SERVERPORT} = $serverport;
|
||||||
$hash->{CAMNAME} = $camname;
|
$hash->{CAMNAME} = $camname;
|
||||||
$hash->{VERSION} = $SSCamVersion;
|
$hash->{VERSION} = $SSCamVersion;
|
||||||
$hash->{MODEL} = ($camname =~ m/^SVS$/i)?"SVS":"CAM"; # initial, CAM wird später ersetzt durch CamModel
|
$hash->{MODEL} = ($camname =~ m/^SVS$/i)?"SVS":"CAM"; # initial, CAM wird später ersetzt durch CamModel
|
||||||
|
$hash->{PROTOCOL} = $proto;
|
||||||
|
|
||||||
# benötigte API's in $hash einfügen
|
# benötigte API's in $hash einfügen
|
||||||
$hash->{HELPER}{APIINFO} = "SYNO.API.Info"; # Info-Seite für alle API's, einzige statische Seite !
|
$hash->{HELPER}{APIINFO} = "SYNO.API.Info"; # Info-Seite für alle API's, einzige statische Seite !
|
||||||
@ -966,7 +969,8 @@ sub SSCam_Set($@) {
|
|||||||
$hash->{HELPER}{RUNVIEW} = "live_fw_hls";
|
$hash->{HELPER}{RUNVIEW} = "live_fw_hls";
|
||||||
$hash->{HELPER}{ACTSTRM} = "HLS Livestream"; # sprechender Name des laufenden Streamtyps für SSCamSTRM
|
$hash->{HELPER}{ACTSTRM} = "HLS Livestream"; # sprechender Name des laufenden Streamtyps für SSCamSTRM
|
||||||
} elsif ($prop eq "lastsnap_fw") {
|
} elsif ($prop eq "lastsnap_fw") {
|
||||||
$hash->{HELPER}{LSNAPBYSTRMDEV} = 1 if ($prop1); # $prop1 wird mitgegeben durch lastsnap_fw by SSCamSTRM-Device
|
$hash->{HELPER}{LSNAPBYSTRMDEV} = 1 if($prop1); # Anzeige durch SSCamSTRM-Device ausgelöst
|
||||||
|
$hash->{HELPER}{LSNAPBYDEV} = 1 if(!$prop1); # Anzeige durch SSCam ausgelöst
|
||||||
$hash->{HELPER}{OPENWINDOW} = 0;
|
$hash->{HELPER}{OPENWINDOW} = 0;
|
||||||
$hash->{HELPER}{WLTYPE} = "base64img";
|
$hash->{HELPER}{WLTYPE} = "base64img";
|
||||||
$hash->{HELPER}{ALIAS} = " ";
|
$hash->{HELPER}{ALIAS} = " ";
|
||||||
@ -987,6 +991,13 @@ sub SSCam_Set($@) {
|
|||||||
if (!$hash->{CREDENTIALS}) {return "Credentials of $name are not set - make sure you've set it with \"set $name credentials username password\"";}
|
if (!$hash->{CREDENTIALS}) {return "Credentials of $name are not set - make sure you've set it with \"set $name credentials username password\"";}
|
||||||
SSCam_hlsactivate($hash);
|
SSCam_hlsactivate($hash);
|
||||||
|
|
||||||
|
} elsif ($opt eq "refresh" && SSCam_IsModelCam($hash)) {
|
||||||
|
# ohne SET-Menüeintrag
|
||||||
|
if($prop =~ /STRM/) {
|
||||||
|
# Event in allen SSCamSTRM-Devices erzeugen um Contentwiedergabe aufzufrischen
|
||||||
|
SSCam_refresh($hash,0,0,1); # kein Room-Refresh, kein SSCam-state-Event, SSCamSTRM-Event
|
||||||
|
}
|
||||||
|
|
||||||
} elsif ($opt eq "extevent" && !SSCam_IsModelCam($hash)) {
|
} elsif ($opt eq "extevent" && !SSCam_IsModelCam($hash)) {
|
||||||
if (!$hash->{CREDENTIALS}) {return "Credentials of $name are not set - make sure you've set it with \"set $name credentials username password\"";}
|
if (!$hash->{CREDENTIALS}) {return "Credentials of $name are not set - make sure you've set it with \"set $name credentials username password\"";}
|
||||||
|
|
||||||
@ -1036,7 +1047,7 @@ sub SSCam_Get($@) {
|
|||||||
my $getlist;
|
my $getlist;
|
||||||
|
|
||||||
if(SSCam_IsModelCam($hash)) {
|
if(SSCam_IsModelCam($hash)) {
|
||||||
# selist für Cams
|
# getlist für Cams
|
||||||
$getlist = "Unknown argument $opt, choose one of ".
|
$getlist = "Unknown argument $opt, choose one of ".
|
||||||
"caminfoall:noArg ".
|
"caminfoall:noArg ".
|
||||||
"caminfo:noArg ".
|
"caminfo:noArg ".
|
||||||
@ -1052,7 +1063,7 @@ sub SSCam_Get($@) {
|
|||||||
"scanVirgin:noArg "
|
"scanVirgin:noArg "
|
||||||
;
|
;
|
||||||
} else {
|
} else {
|
||||||
# setlist für SVS Devices
|
# getlist für SVS Devices
|
||||||
$getlist = "Unknown argument $opt, choose one of ".
|
$getlist = "Unknown argument $opt, choose one of ".
|
||||||
"caminfoall:noArg ".
|
"caminfoall:noArg ".
|
||||||
($hash->{HELPER}{APIHMMAXVER}?"homeModeState:noArg ": "").
|
($hash->{HELPER}{APIHMMAXVER}?"homeModeState:noArg ": "").
|
||||||
@ -3039,6 +3050,7 @@ sub SSCam_getapisites($) {
|
|||||||
my $apistm = $hash->{HELPER}{APISTM};
|
my $apistm = $hash->{HELPER}{APISTM};
|
||||||
my $apihm = $hash->{HELPER}{APIHM};
|
my $apihm = $hash->{HELPER}{APIHM};
|
||||||
my $apilog = $hash->{HELPER}{APILOG};
|
my $apilog = $hash->{HELPER}{APILOG};
|
||||||
|
my $proto = $hash->{PROTOCOL};
|
||||||
my $url;
|
my $url;
|
||||||
my $param;
|
my $param;
|
||||||
|
|
||||||
@ -3058,7 +3070,7 @@ sub SSCam_getapisites($) {
|
|||||||
Log3($name, 5, "$name - HTTP-Call will be done with httptimeout-Value: $httptimeout s");
|
Log3($name, 5, "$name - HTTP-Call will be done with httptimeout-Value: $httptimeout s");
|
||||||
|
|
||||||
# URL zur Abfrage der Eigenschaften der API's
|
# URL zur Abfrage der Eigenschaften der API's
|
||||||
$url = "http://$serveraddr:$serverport/webapi/query.cgi?api=$apiinfo&method=Query&version=1&query=$apiauth,$apiextrec,$apicam,$apitakesnap,$apiptz,$apipreset,$apisvsinfo,$apicamevent,$apievent,$apivideostm,$apiextevt,$apistm,$apihm,$apilog,$apiaudiostm,$apivideostms";
|
$url = "$proto://$serveraddr:$serverport/webapi/query.cgi?api=$apiinfo&method=Query&version=1&query=$apiauth,$apiextrec,$apicam,$apitakesnap,$apiptz,$apipreset,$apisvsinfo,$apicamevent,$apievent,$apivideostm,$apiextevt,$apistm,$apihm,$apilog,$apiaudiostm,$apivideostms";
|
||||||
|
|
||||||
Log3($name, 4, "$name - Call-Out now: $url");
|
Log3($name, 4, "$name - Call-Out now: $url");
|
||||||
|
|
||||||
@ -3480,6 +3492,7 @@ sub SSCam_getcamid ($) {
|
|||||||
my $apicampath = $hash->{HELPER}{APICAMPATH};
|
my $apicampath = $hash->{HELPER}{APICAMPATH};
|
||||||
my $apicammaxver = $hash->{HELPER}{APICAMMAXVER};
|
my $apicammaxver = $hash->{HELPER}{APICAMMAXVER};
|
||||||
my $sid = $hash->{HELPER}{SID};
|
my $sid = $hash->{HELPER}{SID};
|
||||||
|
my $proto = $hash->{PROTOCOL};
|
||||||
|
|
||||||
my $url;
|
my $url;
|
||||||
|
|
||||||
@ -3495,9 +3508,9 @@ sub SSCam_getcamid ($) {
|
|||||||
my $httptimeout = AttrVal($name,"httptimeout", 4);
|
my $httptimeout = AttrVal($name,"httptimeout", 4);
|
||||||
Log3($name, 5, "$name - HTTP-Call will be done with httptimeout-Value: $httptimeout s");
|
Log3($name, 5, "$name - HTTP-Call will be done with httptimeout-Value: $httptimeout s");
|
||||||
|
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apicampath?api=$apicam&version=$apicammaxver&method=List&basic=true&streamInfo=true&camStm=true&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apicampath?api=$apicam&version=$apicammaxver&method=List&basic=true&streamInfo=true&camStm=true&_sid=\"$sid\"";
|
||||||
if ($apicammaxver >= 9) {
|
if ($apicammaxver >= 9) {
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apicampath?api=$apicam&version=$apicammaxver&method=\"List\"&basic=true&streamInfo=true&camStm=0&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apicampath?api=$apicam&version=$apicammaxver&method=\"List\"&basic=true&streamInfo=true&camStm=0&_sid=\"$sid\"";
|
||||||
}
|
}
|
||||||
|
|
||||||
Log3($name, 4, "$name - Call-Out now: $url");
|
Log3($name, 4, "$name - Call-Out now: $url");
|
||||||
@ -3687,6 +3700,7 @@ sub SSCam_camop ($) {
|
|||||||
my $sid = $hash->{HELPER}{SID};
|
my $sid = $hash->{HELPER}{SID};
|
||||||
my $OpMode = $hash->{OPMODE};
|
my $OpMode = $hash->{OPMODE};
|
||||||
my $camid = $hash->{CAMID};
|
my $camid = $hash->{CAMID};
|
||||||
|
my $proto = $hash->{PROTOCOL};
|
||||||
my ($exturl,$winname,$attr,$room,$param);
|
my ($exturl,$winname,$attr,$room,$param);
|
||||||
my ($url,$snapid,$httptimeout,$expmode,$motdetsc);
|
my ($url,$snapid,$httptimeout,$expmode,$motdetsc);
|
||||||
|
|
||||||
@ -3698,19 +3712,19 @@ sub SSCam_camop ($) {
|
|||||||
Log3($name, 5, "$name - HTTP-Call will be done with httptimeout-Value: $httptimeout s");
|
Log3($name, 5, "$name - HTTP-Call will be done with httptimeout-Value: $httptimeout s");
|
||||||
|
|
||||||
if ($OpMode eq "Start") {
|
if ($OpMode eq "Start") {
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apiextrecpath?api=$apiextrec&method=Record&version=$apiextrecmaxver&cameraId=$camid&action=start&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apiextrecpath?api=$apiextrec&method=Record&version=$apiextrecmaxver&cameraId=$camid&action=start&_sid=\"$sid\"";
|
||||||
if($apiextrecmaxver >= 3) {
|
if($apiextrecmaxver >= 3) {
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apiextrecpath?api=$apiextrec&method=Record&version=$apiextrecmaxver&cameraIds=$camid&action=start&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apiextrecpath?api=$apiextrec&method=Record&version=$apiextrecmaxver&cameraIds=$camid&action=start&_sid=\"$sid\"";
|
||||||
}
|
}
|
||||||
} elsif ($OpMode eq "Stop") {
|
} elsif ($OpMode eq "Stop") {
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apiextrecpath?api=$apiextrec&method=Record&version=$apiextrecmaxver&cameraId=$camid&action=stop&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apiextrecpath?api=$apiextrec&method=Record&version=$apiextrecmaxver&cameraId=$camid&action=stop&_sid=\"$sid\"";
|
||||||
if($apiextrecmaxver >= 3) {
|
if($apiextrecmaxver >= 3) {
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apiextrecpath?api=$apiextrec&method=Record&version=$apiextrecmaxver&cameraIds=$camid&action=stop&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apiextrecpath?api=$apiextrec&method=Record&version=$apiextrecmaxver&cameraIds=$camid&action=stop&_sid=\"$sid\"";
|
||||||
}
|
}
|
||||||
|
|
||||||
} elsif ($OpMode eq "Snap") {
|
} elsif ($OpMode eq "Snap") {
|
||||||
# ein Schnappschuß wird ausgelöst
|
# ein Schnappschuß wird ausgelöst
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apitakesnappath?api=\"$apitakesnap\"&dsId=\"0\"&method=\"TakeSnapshot\"&version=\"$apitakesnapmaxver\"&camId=\"$camid\"&blSave=\"true\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apitakesnappath?api=\"$apitakesnap\"&dsId=\"0\"&method=\"TakeSnapshot\"&version=\"$apitakesnapmaxver\"&camId=\"$camid\"&blSave=\"true\"&_sid=\"$sid\"";
|
||||||
readingsSingleUpdate($hash,"state", "snap", 1);
|
readingsSingleUpdate($hash,"state", "snap", 1);
|
||||||
readingsSingleUpdate($hash, "LastSnapId", "", 0);
|
readingsSingleUpdate($hash, "LastSnapId", "", 0);
|
||||||
|
|
||||||
@ -3720,22 +3734,22 @@ sub SSCam_camop ($) {
|
|||||||
my $imgsize = $hash->{HELPER}{SNAPIMGSIZE};
|
my $imgsize = $hash->{HELPER}{SNAPIMGSIZE};
|
||||||
my $keyword = $hash->{HELPER}{KEYWORD};
|
my $keyword = $hash->{HELPER}{KEYWORD};
|
||||||
Log3($name,4, "$name - Call getsnapinfo with params: Image numbers => $limit, Image size => $imgsize, Keyword => $keyword");
|
Log3($name,4, "$name - Call getsnapinfo with params: Image numbers => $limit, Image size => $imgsize, Keyword => $keyword");
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apitakesnappath?api=\"$apitakesnap\"&method=\"List\"&version=\"$apitakesnapmaxver\"&keyword=\"$keyword\"&imgSize=\"$imgsize\"&limit=\"$limit\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apitakesnappath?api=\"$apitakesnap\"&method=\"List\"&version=\"$apitakesnapmaxver\"&keyword=\"$keyword\"&imgSize=\"$imgsize\"&limit=\"$limit\"&_sid=\"$sid\"";
|
||||||
|
|
||||||
} elsif ($OpMode eq "getsnapfilename") {
|
} elsif ($OpMode eq "getsnapfilename") {
|
||||||
# der Filename der aktuellen Schnappschuß-ID wird ermittelt
|
# der Filename der aktuellen Schnappschuß-ID wird ermittelt
|
||||||
$snapid = ReadingsVal("$name", "LastSnapId", " ");
|
$snapid = ReadingsVal("$name", "LastSnapId", " ");
|
||||||
Log3($name, 4, "$name - Get filename of present Snap-ID $snapid");
|
Log3($name, 4, "$name - Get filename of present Snap-ID $snapid");
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apitakesnappath?api=\"$apitakesnap\"&method=\"List\"&version=\"$apitakesnapmaxver\"&imgSize=\"0\"&idList=\"$snapid\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apitakesnappath?api=\"$apitakesnap\"&method=\"List\"&version=\"$apitakesnapmaxver\"&imgSize=\"0\"&idList=\"$snapid\"&_sid=\"$sid\"";
|
||||||
|
|
||||||
} elsif ($OpMode eq "gopreset") {
|
} elsif ($OpMode eq "gopreset") {
|
||||||
# Preset wird angefahren
|
# Preset wird angefahren
|
||||||
$apiptzmaxver = ($apiptzmaxver >= 5)?4:$apiptzmaxver;
|
$apiptzmaxver = ($apiptzmaxver >= 5)?4:$apiptzmaxver;
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apiptzpath?api=\"$apiptz\"&version=\"$apiptzmaxver\"&method=\"GoPreset\"&position=\"$hash->{HELPER}{ALLPRESETS}{$hash->{HELPER}{GOPRESETNAME}}\"&cameraId=\"$camid\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apiptzpath?api=\"$apiptz\"&version=\"$apiptzmaxver\"&method=\"GoPreset\"&position=\"$hash->{HELPER}{ALLPRESETS}{$hash->{HELPER}{GOPRESETNAME}}\"&cameraId=\"$camid\"&_sid=\"$sid\"";
|
||||||
|
|
||||||
} elsif ($OpMode eq "getPresets") {
|
} elsif ($OpMode eq "getPresets") {
|
||||||
# Liste der Presets abrufen
|
# Liste der Presets abrufen
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apipresetpath?api=\"$apipreset\"&version=\"$apipresetmaxver\"&method=\"Enum\"&cameraId=\"$camid\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apipresetpath?api=\"$apipreset\"&version=\"$apipresetmaxver\"&method=\"Enum\"&cameraId=\"$camid\"&_sid=\"$sid\"";
|
||||||
|
|
||||||
} elsif ($OpMode eq "setPreset") {
|
} elsif ($OpMode eq "setPreset") {
|
||||||
# einen Preset setzen
|
# einen Preset setzen
|
||||||
@ -3743,65 +3757,65 @@ sub SSCam_camop ($) {
|
|||||||
my $pname = $hash->{HELPER}{PNAME};
|
my $pname = $hash->{HELPER}{PNAME};
|
||||||
my $pspeed = $hash->{HELPER}{PSPEED};
|
my $pspeed = $hash->{HELPER}{PSPEED};
|
||||||
if ($pspeed) {
|
if ($pspeed) {
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apipresetpath?api=\"$apipreset\"&version=\"$apipresetmaxver\"&method=\"SetPreset\"&position=$pnumber&name=\"$pname\"&speed=\"$pspeed\"&cameraId=\"$camid\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apipresetpath?api=\"$apipreset\"&version=\"$apipresetmaxver\"&method=\"SetPreset\"&position=$pnumber&name=\"$pname\"&speed=\"$pspeed\"&cameraId=\"$camid\"&_sid=\"$sid\"";
|
||||||
} else {
|
} else {
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apipresetpath?api=\"$apipreset\"&version=\"$apipresetmaxver\"&method=\"SetPreset\"&position=$pnumber&name=\"$pname\"&cameraId=\"$camid\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apipresetpath?api=\"$apipreset\"&version=\"$apipresetmaxver\"&method=\"SetPreset\"&position=$pnumber&name=\"$pname\"&cameraId=\"$camid\"&_sid=\"$sid\"";
|
||||||
}
|
}
|
||||||
|
|
||||||
} elsif ($OpMode eq "delPreset") {
|
} elsif ($OpMode eq "delPreset") {
|
||||||
# einen Preset löschen
|
# einen Preset löschen
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apipresetpath?api=\"$apipreset\"&version=\"$apipresetmaxver\"&method=\"DelPreset\"&position=\"$hash->{HELPER}{ALLPRESETS}{$hash->{HELPER}{DELPRESETNAME}}\"&cameraId=\"$camid\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apipresetpath?api=\"$apipreset\"&version=\"$apipresetmaxver\"&method=\"DelPreset\"&position=\"$hash->{HELPER}{ALLPRESETS}{$hash->{HELPER}{DELPRESETNAME}}\"&cameraId=\"$camid\"&_sid=\"$sid\"";
|
||||||
|
|
||||||
} elsif ($OpMode eq "setHome") {
|
} elsif ($OpMode eq "setHome") {
|
||||||
# aktuelle Position als Home setzen
|
# aktuelle Position als Home setzen
|
||||||
if($hash->{HELPER}{SETHOME} eq "---currentPosition---") {
|
if($hash->{HELPER}{SETHOME} eq "---currentPosition---") {
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apipresetpath?api=\"$apipreset\"&version=\"$apipresetmaxver\"&method=\"SetHome\"&cameraId=\"$camid\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apipresetpath?api=\"$apipreset\"&version=\"$apipresetmaxver\"&method=\"SetHome\"&cameraId=\"$camid\"&_sid=\"$sid\"";
|
||||||
} else {
|
} else {
|
||||||
my $bindpos = $hash->{HELPER}{ALLPRESETS}{$hash->{HELPER}{SETHOME}};
|
my $bindpos = $hash->{HELPER}{ALLPRESETS}{$hash->{HELPER}{SETHOME}};
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apipresetpath?api=\"$apipreset\"&version=\"$apipresetmaxver\"&method=\"SetHome\"&bindPosition=\"$bindpos\"&cameraId=\"$camid\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apipresetpath?api=\"$apipreset\"&version=\"$apipresetmaxver\"&method=\"SetHome\"&bindPosition=\"$bindpos\"&cameraId=\"$camid\"&_sid=\"$sid\"";
|
||||||
}
|
}
|
||||||
|
|
||||||
} elsif ($OpMode eq "startTrack") {
|
} elsif ($OpMode eq "startTrack") {
|
||||||
# Object Tracking einschalten
|
# Object Tracking einschalten
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apiptzpath?api=\"$apiptz\"&version=\"$apiptzmaxver\"&method=\"ObjTracking\"&cameraId=\"$camid\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apiptzpath?api=\"$apiptz\"&version=\"$apiptzmaxver\"&method=\"ObjTracking\"&cameraId=\"$camid\"&_sid=\"$sid\"";
|
||||||
|
|
||||||
} elsif ($OpMode eq "stopTrack") {
|
} elsif ($OpMode eq "stopTrack") {
|
||||||
# Object Tracking stoppen
|
# Object Tracking stoppen
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apiptzpath?api=\"$apiptz\"&version=\"$apiptzmaxver\"&method=\"ObjTracking\"&moveType=\"Stop\"&cameraId=\"$camid\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apiptzpath?api=\"$apiptz\"&version=\"$apiptzmaxver\"&method=\"ObjTracking\"&moveType=\"Stop\"&cameraId=\"$camid\"&_sid=\"$sid\"";
|
||||||
|
|
||||||
} elsif ($OpMode eq "runpatrol") {
|
} elsif ($OpMode eq "runpatrol") {
|
||||||
# eine Überwachungstour starten
|
# eine Überwachungstour starten
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apiptzpath?api=\"$apiptz\"&version=\"$apiptzmaxver\"&method=\"RunPatrol\"&patrolId=\"$hash->{HELPER}{ALLPATROLS}{$hash->{HELPER}{GOPATROLNAME}}\"&cameraId=\"$camid\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apiptzpath?api=\"$apiptz\"&version=\"$apiptzmaxver\"&method=\"RunPatrol\"&patrolId=\"$hash->{HELPER}{ALLPATROLS}{$hash->{HELPER}{GOPATROLNAME}}\"&cameraId=\"$camid\"&_sid=\"$sid\"";
|
||||||
|
|
||||||
} elsif ($OpMode eq "goabsptz") {
|
} elsif ($OpMode eq "goabsptz") {
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apiptzpath?api=\"$apiptz\"&version=\"$apiptzmaxver\"&method=\"AbsPtz\"&cameraId=\"$camid\"&posX=\"$hash->{HELPER}{GOPTZPOSX}\"&posY=\"$hash->{HELPER}{GOPTZPOSY}\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apiptzpath?api=\"$apiptz\"&version=\"$apiptzmaxver\"&method=\"AbsPtz\"&cameraId=\"$camid\"&posX=\"$hash->{HELPER}{GOPTZPOSX}\"&posY=\"$hash->{HELPER}{GOPTZPOSY}\"&_sid=\"$sid\"";
|
||||||
|
|
||||||
} elsif ($OpMode eq "movestart") {
|
} elsif ($OpMode eq "movestart") {
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apiptzpath?api=\"$apiptz\"&version=\"$apiptzmaxver\"&method=\"Move\"&cameraId=\"$camid\"&direction=\"$hash->{HELPER}{GOMOVEDIR}\"&speed=\"3\"&moveType=\"Start\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apiptzpath?api=\"$apiptz\"&version=\"$apiptzmaxver\"&method=\"Move\"&cameraId=\"$camid\"&direction=\"$hash->{HELPER}{GOMOVEDIR}\"&speed=\"3\"&moveType=\"Start\"&_sid=\"$sid\"";
|
||||||
|
|
||||||
} elsif ($OpMode eq "movestop") {
|
} elsif ($OpMode eq "movestop") {
|
||||||
Log3($name, 4, "$name - Stop Camera $hash->{CAMNAME} moving to direction \"$hash->{HELPER}{GOMOVEDIR}\" now");
|
Log3($name, 4, "$name - Stop Camera $hash->{CAMNAME} moving to direction \"$hash->{HELPER}{GOMOVEDIR}\" now");
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apiptzpath?api=\"$apiptz\"&version=\"$apiptzmaxver\"&method=\"Move\"&cameraId=\"$camid\"&direction=\"$hash->{HELPER}{GOMOVEDIR}\"&moveType=\"Stop\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apiptzpath?api=\"$apiptz\"&version=\"$apiptzmaxver\"&method=\"Move\"&cameraId=\"$camid\"&direction=\"$hash->{HELPER}{GOMOVEDIR}\"&moveType=\"Stop\"&_sid=\"$sid\"";
|
||||||
|
|
||||||
} elsif ($OpMode eq "Enable") {
|
} elsif ($OpMode eq "Enable") {
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apicampath?api=$apicam&version=$apicammaxver&method=Enable&cameraIds=$camid&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apicampath?api=$apicam&version=$apicammaxver&method=Enable&cameraIds=$camid&_sid=\"$sid\"";
|
||||||
if($apicammaxver >= 9) {
|
if($apicammaxver >= 9) {
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apicampath?api=\"$apicam\"&version=$apicammaxver&method=\"Enable\"&idList=\"$camid\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apicampath?api=\"$apicam\"&version=$apicammaxver&method=\"Enable\"&idList=\"$camid\"&_sid=\"$sid\"";
|
||||||
}
|
}
|
||||||
|
|
||||||
} elsif ($OpMode eq "Disable") {
|
} elsif ($OpMode eq "Disable") {
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apicampath?api=$apicam&version=$apicammaxver&method=Disable&cameraIds=$camid&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apicampath?api=$apicam&version=$apicammaxver&method=Disable&cameraIds=$camid&_sid=\"$sid\"";
|
||||||
if($apicammaxver >= 9) {
|
if($apicammaxver >= 9) {
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apicampath?api=\"$apicam\"&version=$apicammaxver&method=\"Disable\"&idList=\"$camid\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apicampath?api=\"$apicam\"&version=$apicammaxver&method=\"Disable\"&idList=\"$camid\"&_sid=\"$sid\"";
|
||||||
}
|
}
|
||||||
|
|
||||||
} elsif ($OpMode eq "sethomemode") {
|
} elsif ($OpMode eq "sethomemode") {
|
||||||
my $sw = $hash->{HELPER}{HOMEMODE}; # HomeMode on,off
|
my $sw = $hash->{HELPER}{HOMEMODE}; # HomeMode on,off
|
||||||
$sw = ($sw eq "on")?"true":"false";
|
$sw = ($sw eq "on")?"true":"false";
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apihmpath?on=$sw&api=$apihm&method=Switch&version=$apihmmaxver&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apihmpath?on=$sw&api=$apihm&method=Switch&version=$apihmmaxver&_sid=\"$sid\"";
|
||||||
|
|
||||||
} elsif ($OpMode eq "gethomemodestate") {
|
} elsif ($OpMode eq "gethomemodestate") {
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apihmpath?api=$apihm&method=GetInfo&version=$apihmmaxver&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apihmpath?api=$apihm&method=GetInfo&version=$apihmmaxver&_sid=\"$sid\"";
|
||||||
|
|
||||||
} elsif ($OpMode eq "getsvslog") {
|
} elsif ($OpMode eq "getsvslog") {
|
||||||
my $sev = $hash->{HELPER}{LISTLOGSEVERITY}?$hash->{HELPER}{LISTLOGSEVERITY}:"";
|
my $sev = $hash->{HELPER}{LISTLOGSEVERITY}?$hash->{HELPER}{LISTLOGSEVERITY}:"";
|
||||||
@ -3815,14 +3829,14 @@ sub SSCam_camop ($) {
|
|||||||
Log3($name,4, "$name - get logList with params: severity => $hash->{HELPER}{LISTLOGSEVERITY}, limit => $lim, matchcode => $hash->{HELPER}{LISTLOGMATCH}");
|
Log3($name,4, "$name - get logList with params: severity => $hash->{HELPER}{LISTLOGSEVERITY}, limit => $lim, matchcode => $hash->{HELPER}{LISTLOGMATCH}");
|
||||||
use warnings;
|
use warnings;
|
||||||
|
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apilogpath?api=$apilog&version=\"2\"&method=\"List\"&time2String=\"no\"&level=\"$sev\"&limit=\"$lim\"&keyword=\"$mco\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apilogpath?api=$apilog&version=\"2\"&method=\"List\"&time2String=\"no\"&level=\"$sev\"&limit=\"$lim\"&keyword=\"$mco\"&_sid=\"$sid\"";
|
||||||
|
|
||||||
delete($hash->{HELPER}{LISTLOGSEVERITY});
|
delete($hash->{HELPER}{LISTLOGSEVERITY});
|
||||||
delete($hash->{HELPER}{LISTLOGLIMIT});
|
delete($hash->{HELPER}{LISTLOGLIMIT});
|
||||||
delete($hash->{HELPER}{LISTLOGMATCH});
|
delete($hash->{HELPER}{LISTLOGMATCH});
|
||||||
|
|
||||||
} elsif ($OpMode eq "getsvsinfo") {
|
} elsif ($OpMode eq "getsvsinfo") {
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apisvsinfopath?api=\"$apisvsinfo\"&version=\"$apisvsinfomaxver\"&method=\"GetInfo\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apisvsinfopath?api=\"$apisvsinfo\"&version=\"$apisvsinfomaxver\"&method=\"GetInfo\"&_sid=\"$sid\"";
|
||||||
|
|
||||||
} elsif ($OpMode eq "setoptpar") {
|
} elsif ($OpMode eq "setoptpar") {
|
||||||
my $mirr = $hash->{HELPER}{MIRROR}?$hash->{HELPER}{MIRROR}:ReadingsVal("$name","CamVideoMirror","");
|
my $mirr = $hash->{HELPER}{MIRROR}?$hash->{HELPER}{MIRROR}:ReadingsVal("$name","CamVideoMirror","");
|
||||||
@ -3831,33 +3845,33 @@ sub SSCam_camop ($) {
|
|||||||
my $ntp = $hash->{HELPER}{NTPSERV}?$hash->{HELPER}{NTPSERV}:ReadingsVal("$name","CamNTPServer","");
|
my $ntp = $hash->{HELPER}{NTPSERV}?$hash->{HELPER}{NTPSERV}:ReadingsVal("$name","CamNTPServer","");
|
||||||
my $clst = $hash->{HELPER}{CHKLIST}?$hash->{HELPER}{CHKLIST}:"";
|
my $clst = $hash->{HELPER}{CHKLIST}?$hash->{HELPER}{CHKLIST}:"";
|
||||||
$apicammaxver = ($apicammaxver >= 9)?8:$apicammaxver;
|
$apicammaxver = ($apicammaxver >= 9)?8:$apicammaxver;
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apicampath?api=\"$apicam\"&version=\"$apicammaxver\"&method=\"SaveOptimizeParam\"&vdoMirror=$mirr&vdoRotation=$rot&vdoFlip=$flip&timeServer=\"$ntp\"&camParamChkList=$clst&cameraIds=\"$camid\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apicampath?api=\"$apicam\"&version=\"$apicammaxver\"&method=\"SaveOptimizeParam\"&vdoMirror=$mirr&vdoRotation=$rot&vdoFlip=$flip&timeServer=\"$ntp\"&camParamChkList=$clst&cameraIds=\"$camid\"&_sid=\"$sid\"";
|
||||||
|
|
||||||
} elsif ($OpMode eq "Getcaminfo") {
|
} elsif ($OpMode eq "Getcaminfo") {
|
||||||
$apicammaxver = ($apicammaxver >= 9)?8:$apicammaxver;
|
$apicammaxver = ($apicammaxver >= 9)?8:$apicammaxver;
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apicampath?api=\"$apicam\"&version=\"$apicammaxver\"&method=\"GetInfo\"&cameraIds=\"$camid\"&deviceOutCap=\"true\"&streamInfo=\"true\"&ptz=\"true\"&basic=\"true\"&camAppInfo=\"true\"&optimize=\"true\"&fisheye=\"true\"&eventDetection=\"true\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apicampath?api=\"$apicam\"&version=\"$apicammaxver\"&method=\"GetInfo\"&cameraIds=\"$camid\"&deviceOutCap=\"true\"&streamInfo=\"true\"&ptz=\"true\"&basic=\"true\"&camAppInfo=\"true\"&optimize=\"true\"&fisheye=\"true\"&eventDetection=\"true\"&_sid=\"$sid\"";
|
||||||
|
|
||||||
} elsif ($OpMode eq "getStmUrlPath") {
|
} elsif ($OpMode eq "getStmUrlPath") {
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apicampath?api=\"$apicam\"&version=\"$apicammaxver\"&method=\"GetStmUrlPath\"&cameraIds=\"$camid\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apicampath?api=\"$apicam\"&version=\"$apicammaxver\"&method=\"GetStmUrlPath\"&cameraIds=\"$camid\"&_sid=\"$sid\"";
|
||||||
if($apicammaxver >= 9) {
|
if($apicammaxver >= 9) {
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apicampath?api=\"$apicam\"&method=\"GetLiveViewPath\"&version=$apicammaxver&idList=\"$camid\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apicampath?api=\"$apicam\"&method=\"GetLiveViewPath\"&version=$apicammaxver&idList=\"$camid\"&_sid=\"$sid\"";
|
||||||
}
|
}
|
||||||
|
|
||||||
} elsif ($OpMode eq "geteventlist") {
|
} elsif ($OpMode eq "geteventlist") {
|
||||||
# Abruf der Events einer Kamera
|
# Abruf der Events einer Kamera
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apieventpath?api=\"$apievent\"&version=\"$apieventmaxver\"&method=\"List\"&cameraIds=\"$camid\"&locked=\"0\"&blIncludeSnapshot=\"false\"&reason=\"\"&limit=\"2\"&includeAllCam=\"false\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apieventpath?api=\"$apievent\"&version=\"$apieventmaxver\"&method=\"List\"&cameraIds=\"$camid\"&locked=\"0\"&blIncludeSnapshot=\"false\"&reason=\"\"&limit=\"2\"&includeAllCam=\"false\"&_sid=\"$sid\"";
|
||||||
|
|
||||||
} elsif ($OpMode eq "Getptzlistpreset") {
|
} elsif ($OpMode eq "Getptzlistpreset") {
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apiptzpath?api=$apiptz&version=$apiptzmaxver&method=ListPreset&cameraId=$camid&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apiptzpath?api=$apiptz&version=$apiptzmaxver&method=ListPreset&cameraId=$camid&_sid=\"$sid\"";
|
||||||
|
|
||||||
} elsif ($OpMode eq "Getcapabilities") {
|
} elsif ($OpMode eq "Getcapabilities") {
|
||||||
# Capabilities einer Cam werden abgerufen
|
# Capabilities einer Cam werden abgerufen
|
||||||
$apicammaxver = ($apicammaxver >= 9)?8:$apicammaxver;
|
$apicammaxver = ($apicammaxver >= 9)?8:$apicammaxver;
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apicampath?api=$apicam&version=$apicammaxver&method=\"GetCapabilityByCamId\"&cameraId=$camid&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apicampath?api=$apicam&version=$apicammaxver&method=\"GetCapabilityByCamId\"&cameraId=$camid&_sid=\"$sid\"";
|
||||||
|
|
||||||
} elsif ($OpMode eq "Getptzlistpatrol") {
|
} elsif ($OpMode eq "Getptzlistpatrol") {
|
||||||
# PTZ-ListPatrol werden abgerufen
|
# PTZ-ListPatrol werden abgerufen
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apiptzpath?api=$apiptz&version=$apiptzmaxver&method=ListPatrol&cameraId=$camid&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apiptzpath?api=$apiptz&version=$apiptzmaxver&method=ListPatrol&cameraId=$camid&_sid=\"$sid\"";
|
||||||
|
|
||||||
} elsif ($OpMode eq "ExpMode") {
|
} elsif ($OpMode eq "ExpMode") {
|
||||||
if ($hash->{HELPER}{EXPMODE} eq "auto") {
|
if ($hash->{HELPER}{EXPMODE} eq "auto") {
|
||||||
@ -3870,7 +3884,7 @@ sub SSCam_camop ($) {
|
|||||||
$expmode = "2";
|
$expmode = "2";
|
||||||
}
|
}
|
||||||
$apicammaxver = ($apicammaxver >= 9)?8:$apicammaxver;
|
$apicammaxver = ($apicammaxver >= 9)?8:$apicammaxver;
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apicampath?api=\"$apicam\"&version=\"$apicammaxver\"&method=\"SaveOptimizeParam\"&cameraIds=\"$camid\"&expMode=\"$expmode\"&camParamChkList=32&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apicampath?api=\"$apicam\"&version=\"$apicammaxver\"&method=\"SaveOptimizeParam\"&cameraIds=\"$camid\"&expMode=\"$expmode\"&camParamChkList=32&_sid=\"$sid\"";
|
||||||
|
|
||||||
} elsif ($OpMode eq "MotDetSc") {
|
} elsif ($OpMode eq "MotDetSc") {
|
||||||
# Hash für Optionswerte sichern für Logausgabe in Befehlsauswertung
|
# Hash für Optionswerte sichern für Logausgabe in Befehlsauswertung
|
||||||
@ -3878,7 +3892,7 @@ sub SSCam_camop ($) {
|
|||||||
|
|
||||||
if ($hash->{HELPER}{MOTDETSC} eq "disable") {
|
if ($hash->{HELPER}{MOTDETSC} eq "disable") {
|
||||||
$motdetsc = "-1";
|
$motdetsc = "-1";
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apicameventpath?api=\"$apicamevent\"&version=\"$apicameventmaxver\"&method=\"MDParamSave\"&camId=\"$camid\"&source=$motdetsc&keep=true&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apicameventpath?api=\"$apicamevent\"&version=\"$apicameventmaxver\"&method=\"MDParamSave\"&camId=\"$camid\"&source=$motdetsc&keep=true&_sid=\"$sid\"";
|
||||||
} elsif ($hash->{HELPER}{MOTDETSC} eq "camera") {
|
} elsif ($hash->{HELPER}{MOTDETSC} eq "camera") {
|
||||||
$motdetsc = "0";
|
$motdetsc = "0";
|
||||||
|
|
||||||
@ -3886,7 +3900,7 @@ sub SSCam_camop ($) {
|
|||||||
$motdetoptions{OBJECTSIZE} = $hash->{'HELPER'}{'MOTDETSC_PROP2'} if ($hash->{'HELPER'}{'MOTDETSC_PROP2'});
|
$motdetoptions{OBJECTSIZE} = $hash->{'HELPER'}{'MOTDETSC_PROP2'} if ($hash->{'HELPER'}{'MOTDETSC_PROP2'});
|
||||||
$motdetoptions{PERCENTAGE} = $hash->{'HELPER'}{'MOTDETSC_PROP3'} if ($hash->{'HELPER'}{'MOTDETSC_PROP3'});
|
$motdetoptions{PERCENTAGE} = $hash->{'HELPER'}{'MOTDETSC_PROP3'} if ($hash->{'HELPER'}{'MOTDETSC_PROP3'});
|
||||||
|
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apicameventpath?api=\"$apicamevent\"&version=\"$apicameventmaxver\"&method=\"MDParamSave\"&camId=\"$camid\"&source=$motdetsc&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apicameventpath?api=\"$apicamevent\"&version=\"$apicameventmaxver\"&method=\"MDParamSave\"&camId=\"$camid\"&source=$motdetsc&_sid=\"$sid\"";
|
||||||
|
|
||||||
if ($hash->{HELPER}{MOTDETSC_PROP1} || $hash->{HELPER}{MOTDETSC_PROP2} || $hash->{HELPER}{MOTDETSC_PROP13}) {
|
if ($hash->{HELPER}{MOTDETSC_PROP1} || $hash->{HELPER}{MOTDETSC_PROP2} || $hash->{HELPER}{MOTDETSC_PROP13}) {
|
||||||
# umschalten und neue Werte setzen
|
# umschalten und neue Werte setzen
|
||||||
@ -3921,7 +3935,7 @@ sub SSCam_camop ($) {
|
|||||||
$motdetoptions{THRESHOLD} = $hash->{'HELPER'}{'MOTDETSC_PROP2'} if ($hash->{'HELPER'}{'MOTDETSC_PROP2'});
|
$motdetoptions{THRESHOLD} = $hash->{'HELPER'}{'MOTDETSC_PROP2'} if ($hash->{'HELPER'}{'MOTDETSC_PROP2'});
|
||||||
|
|
||||||
# nur Umschaltung, alte Werte beibehalten
|
# nur Umschaltung, alte Werte beibehalten
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apicameventpath?api=\"$apicamevent\"&version=\"$apicameventmaxver\"&method=\"MDParamSave\"&camId=\"$camid\"&source=$motdetsc&keep=true&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apicameventpath?api=\"$apicamevent\"&version=\"$apicameventmaxver\"&method=\"MDParamSave\"&camId=\"$camid\"&source=$motdetsc&keep=true&_sid=\"$sid\"";
|
||||||
|
|
||||||
if ($hash->{HELPER}{MOTDETSC_PROP1}) {
|
if ($hash->{HELPER}{MOTDETSC_PROP1}) {
|
||||||
# der Wert für Bewegungserkennung SVS -> Empfindlichkeit ist gesetzt
|
# der Wert für Bewegungserkennung SVS -> Empfindlichkeit ist gesetzt
|
||||||
@ -3939,29 +3953,29 @@ sub SSCam_camop ($) {
|
|||||||
$hash->{HELPER}{MOTDETOPTIONS} = \%motdetoptions;
|
$hash->{HELPER}{MOTDETOPTIONS} = \%motdetoptions;
|
||||||
|
|
||||||
} elsif ($OpMode eq "getmotionenum") {
|
} elsif ($OpMode eq "getmotionenum") {
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apicameventpath?api=\"$apicamevent\"&version=\"$apicameventmaxver\"&method=\"MotionEnum\"&camId=\"$camid\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apicameventpath?api=\"$apicamevent\"&version=\"$apicameventmaxver\"&method=\"MotionEnum\"&camId=\"$camid\"&_sid=\"$sid\"";
|
||||||
|
|
||||||
} elsif ($OpMode eq "extevent") {
|
} elsif ($OpMode eq "extevent") {
|
||||||
Log3($name, 4, "$name - trigger external event \"$hash->{HELPER}{EVENTID}\"");
|
Log3($name, 4, "$name - trigger external event \"$hash->{HELPER}{EVENTID}\"");
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apiextevtpath?api=$apiextevt&version=$apiextevtmaxver&method=Trigger&eventId=$hash->{HELPER}{EVENTID}&eventName=$hash->{HELPER}{EVENTID}&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apiextevtpath?api=$apiextevt&version=$apiextevtmaxver&method=Trigger&eventId=$hash->{HELPER}{EVENTID}&eventName=$hash->{HELPER}{EVENTID}&_sid=\"$sid\"";
|
||||||
|
|
||||||
} elsif ($OpMode eq "runliveview" && $hash->{HELPER}{RUNVIEW} !~ m/snap|^live_.*hls$/) {
|
} elsif ($OpMode eq "runliveview" && $hash->{HELPER}{RUNVIEW} !~ m/snap|^live_.*hls$/) {
|
||||||
if ($hash->{HELPER}{RUNVIEW} =~ m/live/) {
|
if ($hash->{HELPER}{RUNVIEW} =~ m/live/) {
|
||||||
$hash->{HELPER}{AUDIOLINK} = "http://$serveraddr:$serverport/webapi/$apiaudiostmpath?api=$apiaudiostm&version=$apiaudiostmmaxver&method=Stream&cameraId=$camid&_sid=$sid";
|
$hash->{HELPER}{AUDIOLINK} = "$proto://$serveraddr:$serverport/webapi/$apiaudiostmpath?api=$apiaudiostm&version=$apiaudiostmmaxver&method=Stream&cameraId=$camid&_sid=$sid";
|
||||||
# externe URL in Reading setzen
|
# externe URL in Reading setzen
|
||||||
$exturl = AttrVal($name, "livestreamprefix", "http://$serveraddr:$serverport");
|
$exturl = AttrVal($name, "livestreamprefix", "$proto://$serveraddr:$serverport");
|
||||||
$exturl .= "/webapi/$apivideostmspath?api=$apivideostms&version=$apivideostmsmaxver&method=Stream&cameraId=$camid&format=mjpeg&_sid=$sid";
|
$exturl .= "/webapi/$apivideostmspath?api=$apivideostms&version=$apivideostmsmaxver&method=Stream&cameraId=$camid&format=mjpeg&_sid=$sid";
|
||||||
readingsSingleUpdate($hash,"LiveStreamUrl", $exturl, 1) if(AttrVal($name, "showStmInfoFull", undef));
|
readingsSingleUpdate($hash,"LiveStreamUrl", $exturl, 1) if(AttrVal($name, "showStmInfoFull", undef));
|
||||||
# interne URL
|
# interne URL
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apivideostmspath?api=$apivideostms&version=$apivideostmsmaxver&method=Stream&cameraId=$camid&format=mjpeg&_sid=$sid";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apivideostmspath?api=$apivideostms&version=$apivideostmsmaxver&method=Stream&cameraId=$camid&format=mjpeg&_sid=$sid";
|
||||||
} else {
|
} else {
|
||||||
# Abspielen der letzten Aufnahme (EventId)
|
# Abspielen der letzten Aufnahme (EventId)
|
||||||
# externe URL in Reading setzen
|
# externe URL in Reading setzen
|
||||||
$exturl = AttrVal($name, "livestreamprefix", "http://$serveraddr:$serverport");
|
$exturl = AttrVal($name, "livestreamprefix", "$proto://$serveraddr:$serverport");
|
||||||
$exturl .= "/webapi/$apistmpath?api=$apistm&version=$apistmmaxver&method=EventStream&eventId=$hash->{HELPER}{CAMLASTRECID}×tamp=1&_sid=$sid";
|
$exturl .= "/webapi/$apistmpath?api=$apistm&version=$apistmmaxver&method=EventStream&eventId=$hash->{HELPER}{CAMLASTRECID}×tamp=1&_sid=$sid";
|
||||||
readingsSingleUpdate($hash,"LiveStreamUrl", $exturl, 1) if(AttrVal($name, "showStmInfoFull", undef));
|
readingsSingleUpdate($hash,"LiveStreamUrl", $exturl, 1) if(AttrVal($name, "showStmInfoFull", undef));
|
||||||
# interne URL
|
# interne URL
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apistmpath?api=$apistm&version=$apistmmaxver&method=EventStream&eventId=$hash->{HELPER}{CAMLASTRECID}×tamp=1&_sid=$sid";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apistmpath?api=$apistm&version=$apistmmaxver&method=EventStream&eventId=$hash->{HELPER}{CAMLASTRECID}×tamp=1&_sid=$sid";
|
||||||
}
|
}
|
||||||
|
|
||||||
# Liveview-Link in Hash speichern
|
# Liveview-Link in Hash speichern
|
||||||
@ -3996,20 +4010,20 @@ sub SSCam_camop ($) {
|
|||||||
my $limit = 1; # nur 1 Snap laden, für lastsnap_fw
|
my $limit = 1; # nur 1 Snap laden, für lastsnap_fw
|
||||||
my $imgsize = 2; # full size image, für lastsnap_fw
|
my $imgsize = 2; # full size image, für lastsnap_fw
|
||||||
my $keyword = $hash->{CAMNAME}; # nur Snaps von $camname selektieren, für lastsnap_fw
|
my $keyword = $hash->{CAMNAME}; # nur Snaps von $camname selektieren, für lastsnap_fw
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apitakesnappath?api=\"$apitakesnap\"&method=\"List\"&version=\"$apitakesnapmaxver\"&keyword=\"$keyword\"&imgSize=\"$imgsize\"&limit=\"$limit\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apitakesnappath?api=\"$apitakesnap\"&method=\"List\"&version=\"$apitakesnapmaxver\"&keyword=\"$keyword\"&imgSize=\"$imgsize\"&limit=\"$limit\"&_sid=\"$sid\"";
|
||||||
|
|
||||||
} elsif (($OpMode eq "runliveview" && $hash->{HELPER}{RUNVIEW} =~ m/^live_.*hls$/) || $OpMode eq "activate_hls") {
|
} elsif (($OpMode eq "runliveview" && $hash->{HELPER}{RUNVIEW} =~ m/^live_.*hls$/) || $OpMode eq "activate_hls") {
|
||||||
# HLS Livestreaming aktivieren
|
# HLS Livestreaming aktivieren
|
||||||
$httptimeout = $httptimeout+90; # aktivieren HLS dauert lange !
|
$httptimeout = $httptimeout+90; # aktivieren HLS dauert lange !
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apivideostmspath?api=$apivideostms&version=$apivideostmsmaxver&method=Open&cameraId=$camid&format=hls&_sid=$sid";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apivideostmspath?api=$apivideostms&version=$apivideostmsmaxver&method=Open&cameraId=$camid&format=hls&_sid=$sid";
|
||||||
|
|
||||||
} elsif ($OpMode eq "stopliveview_hls" || $OpMode eq "reactivate_hls") {
|
} elsif ($OpMode eq "stopliveview_hls" || $OpMode eq "reactivate_hls") {
|
||||||
# HLS Livestreaming deaktivieren
|
# HLS Livestreaming deaktivieren
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apivideostmspath?api=$apivideostms&version=$apivideostmsmaxver&method=Close&cameraId=$camid&format=hls&_sid=$sid";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apivideostmspath?api=$apivideostms&version=$apivideostmsmaxver&method=Close&cameraId=$camid&format=hls&_sid=$sid";
|
||||||
|
|
||||||
} elsif ($OpMode eq "getstreamformat") {
|
} elsif ($OpMode eq "getstreamformat") {
|
||||||
# aktuelles Streamformat abfragen
|
# aktuelles Streamformat abfragen
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apivideostmspath?api=$apivideostms&version=$apivideostmsmaxver&method=Query&cameraId=$camid&_sid=$sid";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apivideostmspath?api=$apivideostms&version=$apivideostmsmaxver&method=Query&cameraId=$camid&_sid=$sid";
|
||||||
}
|
}
|
||||||
|
|
||||||
Log3($name, 4, "$name - Call-Out now: $url");
|
Log3($name, 4, "$name - Call-Out now: $url");
|
||||||
@ -4043,6 +4057,7 @@ sub SSCam_camop_parse ($) {
|
|||||||
my $apivideostmsmaxver = $hash->{HELPER}{APIVIDEOSTMSMAXVER};
|
my $apivideostmsmaxver = $hash->{HELPER}{APIVIDEOSTMSMAXVER};
|
||||||
my $apicammaxver = $hash->{HELPER}{APICAMMAXVER};
|
my $apicammaxver = $hash->{HELPER}{APICAMMAXVER};
|
||||||
my $sid = $hash->{HELPER}{SID};
|
my $sid = $hash->{HELPER}{SID};
|
||||||
|
my $proto = $hash->{PROTOCOL};
|
||||||
my ($rectime,$data,$success);
|
my ($rectime,$data,$success);
|
||||||
my ($error,$errorcode);
|
my ($error,$errorcode);
|
||||||
my ($snapid,$camLiveMode,$update_time);
|
my ($snapid,$camLiveMode,$update_time);
|
||||||
@ -4452,8 +4467,11 @@ sub SSCam_camop_parse ($) {
|
|||||||
SSCam_refresh($hash,0,0,1); # kein Room-Refresh, kein SSCam-state-Event, SSCamSTRM-Event
|
SSCam_refresh($hash,0,0,1); # kein Room-Refresh, kein SSCam-state-Event, SSCamSTRM-Event
|
||||||
delete $hash->{HELPER}{SNAPBYSTRMDEV};
|
delete $hash->{HELPER}{SNAPBYSTRMDEV};
|
||||||
delete $hash->{HELPER}{LSNAPBYSTRMDEV};
|
delete $hash->{HELPER}{LSNAPBYSTRMDEV};
|
||||||
|
} elsif ($hash->{HELPER}{LSNAPBYDEV}) {
|
||||||
|
SSCam_refresh($hash,0,1,0); # kein Room-Refresh, SSCam-state-Event, kein SSCamSTRM-Event
|
||||||
|
delete $hash->{HELPER}{LSNAPBYDEV};
|
||||||
} else {
|
} else {
|
||||||
SSCam_refresh($hash,0,1,1); # kein Room-Refresh, SSCam-state-Event, SSCamSTRM-Event
|
SSCam_refresh($hash,0,0,0); # kein Room-Refresh, SSCam-state-Event, SSCamSTRM-Event
|
||||||
}
|
}
|
||||||
|
|
||||||
Log3($name, $verbose, "$name - Snapinfos of camera $camname retrieved");
|
Log3($name, $verbose, "$name - Snapinfos of camera $camname retrieved");
|
||||||
@ -4462,11 +4480,11 @@ sub SSCam_camop_parse ($) {
|
|||||||
# HLS Streaming wurde aktiviert
|
# HLS Streaming wurde aktiviert
|
||||||
$hash->{HELPER}{HLSSTREAM} = "active";
|
$hash->{HELPER}{HLSSTREAM} = "active";
|
||||||
# externe LivestreamURL setzen
|
# externe LivestreamURL setzen
|
||||||
my $exturl = AttrVal($name, "livestreamprefix", "http://$serveraddr:$serverport");
|
my $exturl = AttrVal($name, "livestreamprefix", "$proto://$serveraddr:$serverport");
|
||||||
$exturl .= "/webapi/$apivideostmspath?api=$apivideostms&version=$apivideostmsmaxver&method=Stream&cameraId=$camid&format=hls&_sid=$sid";
|
$exturl .= "/webapi/$apivideostmspath?api=$apivideostms&version=$apivideostmsmaxver&method=Stream&cameraId=$camid&format=hls&_sid=$sid";
|
||||||
readingsSingleUpdate($hash,"LiveStreamUrl", $exturl, 1) if(AttrVal($name, "showStmInfoFull", undef));
|
readingsSingleUpdate($hash,"LiveStreamUrl", $exturl, 1) if(AttrVal($name, "showStmInfoFull", undef));
|
||||||
|
|
||||||
my $url = "http://$serveraddr:$serverport/webapi/$apivideostmspath?api=$apivideostms&version=$apivideostmsmaxver&method=Stream&cameraId=$camid&format=hls&_sid=$sid";
|
my $url = "$proto://$serveraddr:$serverport/webapi/$apivideostmspath?api=$apivideostms&version=$apivideostmsmaxver&method=Stream&cameraId=$camid&format=hls&_sid=$sid";
|
||||||
# Liveview-Link in Hash speichern und Aktivitätsstatus speichern
|
# Liveview-Link in Hash speichern und Aktivitätsstatus speichern
|
||||||
$hash->{HELPER}{LINK} = $url;
|
$hash->{HELPER}{LINK} = $url;
|
||||||
Log3($name, 4, "$name - HLS Streaming of camera \"$name\" activated, Streaming-URL: $url") if(AttrVal($name,"verbose",3) == 4);
|
Log3($name, 4, "$name - HLS Streaming of camera \"$name\" activated, Streaming-URL: $url") if(AttrVal($name,"verbose",3) == 4);
|
||||||
@ -5214,6 +5232,7 @@ sub SSCam_login ($$) {
|
|||||||
my $apiauth = $hash->{HELPER}{APIAUTH};
|
my $apiauth = $hash->{HELPER}{APIAUTH};
|
||||||
my $apiauthpath = $hash->{HELPER}{APIAUTHPATH};
|
my $apiauthpath = $hash->{HELPER}{APIAUTHPATH};
|
||||||
my $apiauthmaxver = $hash->{HELPER}{APIAUTHMAXVER};
|
my $apiauthmaxver = $hash->{HELPER}{APIAUTHMAXVER};
|
||||||
|
my $proto = $hash->{PROTOCOL};
|
||||||
my $lrt = AttrVal($name,"loginRetries",3);
|
my $lrt = AttrVal($name,"loginRetries",3);
|
||||||
my ($url,$param);
|
my ($url,$param);
|
||||||
|
|
||||||
@ -5254,11 +5273,11 @@ sub SSCam_login ($$) {
|
|||||||
my $sid = AttrVal($name, "noQuotesForSID", "0") == 1 ? "sid" : "\"sid\"";
|
my $sid = AttrVal($name, "noQuotesForSID", "0") == 1 ? "sid" : "\"sid\"";
|
||||||
|
|
||||||
if (AttrVal($name,"session","DSM") eq "SurveillanceStation") {
|
if (AttrVal($name,"session","DSM") eq "SurveillanceStation") {
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apiauthpath?api=$apiauth&version=$apiauthmaxver&method=Login&account=$username&passwd=$password&session=SurveillanceStation&format=$sid";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apiauthpath?api=$apiauth&version=$apiauthmaxver&method=Login&account=$username&passwd=$password&session=SurveillanceStation&format=$sid";
|
||||||
$urlwopw = "http://$serveraddr:$serverport/webapi/$apiauthpath?api=$apiauth&version=$apiauthmaxver&method=Login&account=$username&passwd=*****&session=SurveillanceStation&format=$sid";
|
$urlwopw = "$proto://$serveraddr:$serverport/webapi/$apiauthpath?api=$apiauth&version=$apiauthmaxver&method=Login&account=$username&passwd=*****&session=SurveillanceStation&format=$sid";
|
||||||
} else {
|
} else {
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apiauthpath?api=$apiauth&version=$apiauthmaxver&method=Login&account=$username&passwd=$password&format=$sid";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apiauthpath?api=$apiauth&version=$apiauthmaxver&method=Login&account=$username&passwd=$password&format=$sid";
|
||||||
$urlwopw = "http://$serveraddr:$serverport/webapi/$apiauthpath?api=$apiauth&version=$apiauthmaxver&method=Login&account=$username&passwd=*****&format=$sid";
|
$urlwopw = "$proto://$serveraddr:$serverport/webapi/$apiauthpath?api=$apiauth&version=$apiauthmaxver&method=Login&account=$username&passwd=*****&format=$sid";
|
||||||
}
|
}
|
||||||
|
|
||||||
AttrVal($name, "showPassInLog", "0") == 1 ? Log3($name, 4, "$name - Call-Out now: $url") : Log3($name, 4, "$name - Call-Out now: $urlwopw");
|
AttrVal($name, "showPassInLog", "0") == 1 ? Log3($name, 4, "$name - Call-Out now: $url") : Log3($name, 4, "$name - Call-Out now: $urlwopw");
|
||||||
@ -5369,6 +5388,7 @@ sub SSCam_logout ($) {
|
|||||||
my $apiauthpath = $hash->{HELPER}{APIAUTHPATH};
|
my $apiauthpath = $hash->{HELPER}{APIAUTHPATH};
|
||||||
my $apiauthmaxver = $hash->{HELPER}{APIAUTHMAXVER};
|
my $apiauthmaxver = $hash->{HELPER}{APIAUTHMAXVER};
|
||||||
my $sid = $hash->{HELPER}{SID};
|
my $sid = $hash->{HELPER}{SID};
|
||||||
|
my $proto = $hash->{PROTOCOL};
|
||||||
my $url;
|
my $url;
|
||||||
my $param;
|
my $param;
|
||||||
my $httptimeout;
|
my $httptimeout;
|
||||||
@ -5382,9 +5402,9 @@ sub SSCam_logout ($) {
|
|||||||
Log3($name, 5, "$name - HTTP-Call will be done with httptimeout-Value: $httptimeout s");
|
Log3($name, 5, "$name - HTTP-Call will be done with httptimeout-Value: $httptimeout s");
|
||||||
|
|
||||||
if (AttrVal($name,"session","DSM") eq "SurveillanceStation") {
|
if (AttrVal($name,"session","DSM") eq "SurveillanceStation") {
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apiauthpath?api=$apiauth&version=$apiauthmaxver&method=Logout&session=SurveillanceStation&_sid=$sid";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apiauthpath?api=$apiauth&version=$apiauthmaxver&method=Logout&session=SurveillanceStation&_sid=$sid";
|
||||||
} else {
|
} else {
|
||||||
$url = "http://$serveraddr:$serverport/webapi/$apiauthpath?api=$apiauth&version=$apiauthmaxver&method=Logout&_sid=$sid";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apiauthpath?api=$apiauth&version=$apiauthmaxver&method=Logout&_sid=$sid";
|
||||||
}
|
}
|
||||||
|
|
||||||
$param = {
|
$param = {
|
||||||
@ -5505,7 +5525,14 @@ return($hash,$success,$myjson);
|
|||||||
######################################################################################################
|
######################################################################################################
|
||||||
sub SSCam_refresh($$$$) {
|
sub SSCam_refresh($$$$) {
|
||||||
my ($hash,$pload,$lpoll_scm,$lpoll_strm) = @_;
|
my ($hash,$pload,$lpoll_scm,$lpoll_strm) = @_;
|
||||||
my $name = $hash->{NAME};
|
my $name;
|
||||||
|
if (ref $hash ne "HASH")
|
||||||
|
{
|
||||||
|
($name,$pload,$lpoll_scm,$lpoll_strm) = split ",",$hash;
|
||||||
|
$hash = $defs{$name};
|
||||||
|
} else {
|
||||||
|
$name = $hash->{NAME};
|
||||||
|
}
|
||||||
my $fpr = 0;
|
my $fpr = 0;
|
||||||
|
|
||||||
# Kontext des SSCamSTRM-Devices speichern für Refresh
|
# Kontext des SSCamSTRM-Devices speichern für Refresh
|
||||||
@ -5840,6 +5867,7 @@ sub SSCam_StreamDev($$$) {
|
|||||||
my $apivideostmsmaxver = $hash->{HELPER}{APIVIDEOSTMSMAXVER};
|
my $apivideostmsmaxver = $hash->{HELPER}{APIVIDEOSTMSMAXVER};
|
||||||
my $camid = $hash->{CAMID};
|
my $camid = $hash->{CAMID};
|
||||||
my $sid = $hash->{HELPER}{SID};
|
my $sid = $hash->{HELPER}{SID};
|
||||||
|
my $proto = $hash->{PROTOCOL};
|
||||||
my ($cause,$ret,$link,$audiolink,$devWlink,$wlhash,$alias,$wlalias);
|
my ($cause,$ret,$link,$audiolink,$devWlink,$wlhash,$alias,$wlalias);
|
||||||
|
|
||||||
# Kontext des SSCamSTRM-Devices speichern für SSCam_refresh
|
# Kontext des SSCamSTRM-Devices speichern für SSCam_refresh
|
||||||
@ -5871,6 +5899,8 @@ sub SSCam_StreamDev($$$) {
|
|||||||
my $imgrecstop = "<img src=\"$FW_ME/www/images/sscam/black_btn_RECSTOP.png\">";
|
my $imgrecstop = "<img src=\"$FW_ME/www/images/sscam/black_btn_RECSTOP.png\">";
|
||||||
my $cmddosnap = "cmd=set $camname snap STRM"; # Snapshot auslösen mit Kennzeichnung "by STRM-Device"
|
my $cmddosnap = "cmd=set $camname snap STRM"; # Snapshot auslösen mit Kennzeichnung "by STRM-Device"
|
||||||
my $imgdosnap = "<img src=\"$FW_ME/www/images/sscam/black_btn_DOSNAP.png\">";
|
my $imgdosnap = "<img src=\"$FW_ME/www/images/sscam/black_btn_DOSNAP.png\">";
|
||||||
|
my $cmdrefresh = "cmd=set $camname refresh STRM"; # Refresh in SSCamSTRM-Devices
|
||||||
|
my $imgrefresh = "<img src=\"$FW_ME/www/images/default/Restart.png\">";
|
||||||
|
|
||||||
my $ha = AttrVal($camname, "htmlattr", 'width="500" height="325"'); # HTML Attribute der Cam
|
my $ha = AttrVal($camname, "htmlattr", 'width="500" height="325"'); # HTML Attribute der Cam
|
||||||
$ha = AttrVal($strmdev, "htmlattr", $ha); # htmlattr mit htmattr Streaming-Device übersteuern
|
$ha = AttrVal($strmdev, "htmlattr", $ha); # htmlattr mit htmattr Streaming-Device übersteuern
|
||||||
@ -5896,8 +5926,8 @@ sub SSCam_StreamDev($$$) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if($fmt =~ /mjpeg/) {
|
if($fmt =~ /mjpeg/) {
|
||||||
$link = "http://$serveraddr:$serverport/webapi/$apivideostmspath?api=$apivideostms&version=$apivideostmsmaxver&method=Stream&cameraId=$camid&format=mjpeg&_sid=$sid";
|
$link = "$proto://$serveraddr:$serverport/webapi/$apivideostmspath?api=$apivideostms&version=$apivideostmsmaxver&method=Stream&cameraId=$camid&format=mjpeg&_sid=$sid";
|
||||||
$audiolink = "http://$serveraddr:$serverport/webapi/$apiaudiostmpath?api=$apiaudiostm&version=$apiaudiostmmaxver&method=Stream&cameraId=$camid&_sid=$sid";
|
$audiolink = "$proto://$serveraddr:$serverport/webapi/$apiaudiostmpath?api=$apiaudiostm&version=$apiaudiostmmaxver&method=Stream&cameraId=$camid&_sid=$sid";
|
||||||
$ret .= "<td><img src=$link $ha><br>";
|
$ret .= "<td><img src=$link $ha><br>";
|
||||||
if(ReadingsVal($camname, "Record", "Stop") eq "Stop") {
|
if(ReadingsVal($camname, "Record", "Stop") eq "Stop") {
|
||||||
# Aufnahmebutton endlos Start
|
# Aufnahmebutton endlos Start
|
||||||
@ -5944,7 +5974,8 @@ sub SSCam_StreamDev($$$) {
|
|||||||
$ret .= "$htag";
|
$ret .= "$htag";
|
||||||
$ret .= "<br>";
|
$ret .= "<br>";
|
||||||
Log3($strmdev, 4, "$strmdev - generic Stream params:\n$htag");
|
Log3($strmdev, 4, "$strmdev - generic Stream params:\n$htag");
|
||||||
|
$ret .= "<a onClick=\"FW_cmd('$FW_ME$FW_subdir?XHR=1&$cmdrefresh')\">$imgrefresh </a>";
|
||||||
|
$ret .= $imgblank;
|
||||||
if(ReadingsVal($camname, "Record", "Stop") eq "Stop") {
|
if(ReadingsVal($camname, "Record", "Stop") eq "Stop") {
|
||||||
# Aufnahmebutton endlos Start
|
# Aufnahmebutton endlos Start
|
||||||
$ret .= "<a onClick=\"FW_cmd('$FW_ME$FW_subdir?XHR=1&$cmdrecendless')\">$imgrecendless </a>";
|
$ret .= "<a onClick=\"FW_cmd('$FW_ME$FW_subdir?XHR=1&$cmdrecendless')\">$imgrecendless </a>";
|
||||||
@ -6000,6 +6031,7 @@ sub SSCam_StreamDev($$$) {
|
|||||||
Iframes disabled
|
Iframes disabled
|
||||||
</iframe><br>";
|
</iframe><br>";
|
||||||
$ret .= "<a onClick=\"FW_cmd('$FW_ME$FW_subdir?XHR=1&$cmdstop')\">$imgstop </a>";
|
$ret .= "<a onClick=\"FW_cmd('$FW_ME$FW_subdir?XHR=1&$cmdstop')\">$imgstop </a>";
|
||||||
|
$ret .= "<a onClick=\"FW_cmd('$FW_ME$FW_subdir?XHR=1&$cmdrefresh')\">$imgrefresh </a>";
|
||||||
$ret .= "</td>";
|
$ret .= "</td>";
|
||||||
if($hash->{HELPER}{AUDIOLINK} && ReadingsVal($camname, "CamAudioType", "Unknown") !~ /Unknown/) {
|
if($hash->{HELPER}{AUDIOLINK} && ReadingsVal($camname, "CamAudioType", "Unknown") !~ /Unknown/) {
|
||||||
$ret .= '</tr>';
|
$ret .= '</tr>';
|
||||||
@ -6042,6 +6074,7 @@ sub SSCam_StreamDev($$$) {
|
|||||||
Your browser does not support the video tag
|
Your browser does not support the video tag
|
||||||
</video><br>";
|
</video><br>";
|
||||||
$ret .= "<a onClick=\"FW_cmd('$FW_ME$FW_subdir?XHR=1&$cmdstop')\">$imgstop </a>";
|
$ret .= "<a onClick=\"FW_cmd('$FW_ME$FW_subdir?XHR=1&$cmdstop')\">$imgstop </a>";
|
||||||
|
$ret .= "<a onClick=\"FW_cmd('$FW_ME$FW_subdir?XHR=1&$cmdrefresh')\">$imgrefresh </a>";
|
||||||
$ret .= "<a onClick=\"FW_cmd('$FW_ME$FW_subdir?XHR=1&$cmdhlsreact')\">$imghlsreact </a>";
|
$ret .= "<a onClick=\"FW_cmd('$FW_ME$FW_subdir?XHR=1&$cmdhlsreact')\">$imghlsreact </a>";
|
||||||
$ret .= $imgblank;
|
$ret .= $imgblank;
|
||||||
if(ReadingsVal($camname, "Record", "Stop") eq "Stop") {
|
if(ReadingsVal($camname, "Record", "Stop") eq "Stop") {
|
||||||
@ -6303,23 +6336,21 @@ sub SSCam_experror {
|
|||||||
The scope of application of set/get-commands is denoted to every particular command (valid for CAM, SVS, CAM/SVS).
|
The scope of application of set/get-commands is denoted to every particular command (valid for CAM, SVS, CAM/SVS).
|
||||||
<br><br>
|
<br><br>
|
||||||
|
|
||||||
A camera-device is defined by: <br><br>
|
A <b>camera</b> is defined by: <br><br>
|
||||||
<ul>
|
<ul>
|
||||||
<b><code>define <name> SSCAM <camera name in SVS> <ServerAddr> [Port] </code></b> <br><br>
|
<b><code>define <Name> SSCAM <camera name in SVS> <ServerAddr> [Port] [Protocol]</code></b> <br><br>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
At first the devices have to be set up and has to be operable in Synology Surveillance Station 7.0 and above. <br><br>
|
At first the devices have to be set up and has to be operable in Synology Surveillance Station 7.0 and above. <br><br>
|
||||||
|
|
||||||
A SVS-device to control functions of the Surveillance Station (SVS) is defined by: <br><br>
|
A <b>SVS-device</b> to control functions of the Surveillance Station (SVS) is defined by: <br><br>
|
||||||
<ul>
|
<ul>
|
||||||
<b><code>define <name> SSCAM SVS <ServerAddr> [Port] </code></b> <br><br>
|
<b><code>define <Name> SSCAM SVS <ServerAddr> [Port] [Protocol] </code></b> <br><br>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
In that case the term <camera name in SVS> become replaced by <b>SVS</b> only. <br><br>
|
In that case the term <camera name in SVS> become replaced by <b>SVS</b> only. <br><br>
|
||||||
|
|
||||||
The Modul SSCam ist based on functions of Synology Surveillance Station API. <br>
|
The Modul SSCam ist based on functions of Synology Surveillance Station API. <br><br>
|
||||||
|
|
||||||
Currently the HTTP-protocol is supported to call Synology Disk Station. <br><br>
|
|
||||||
|
|
||||||
The parameters are in detail:
|
The parameters are in detail:
|
||||||
<br>
|
<br>
|
||||||
@ -6327,21 +6358,24 @@ sub SSCam_experror {
|
|||||||
|
|
||||||
<table>
|
<table>
|
||||||
<colgroup> <col width=15%> <col width=85%> </colgroup>
|
<colgroup> <col width=15%> <col width=85%> </colgroup>
|
||||||
<tr><td>name: </td><td>the name of the new device to use in FHEM</td></tr>
|
<tr><td><b>Name</b> </td><td>the name of the new device to use in FHEM</td></tr>
|
||||||
<tr><td>Cameraname: </td><td>camera name as defined in Synology Surveillance Station if camera-device, "SVS" if SVS-Device. Spaces are not allowed in camera name. </td></tr>
|
<tr><td><b>Cameraname</b> </td><td>camera name as defined in Synology Surveillance Station if camera-device, "SVS" if SVS-Device. Spaces are not allowed in camera name. </td></tr>
|
||||||
<tr><td>ServerAddr: </td><td>IP-address of Synology Surveillance Station Host. <b>Note:</b> avoid using hostnames because of DNS-Calls are not unblocking in FHEM </td></tr>
|
<tr><td><b>ServerAddr</b> </td><td>IP-address of Synology Surveillance Station Host. <b>Note:</b> avoid using hostnames because of DNS-Calls are not unblocking in FHEM </td></tr>
|
||||||
<tr><td>Port: </td><td>optional - the port of synology surveillance station, if not set the default of 5000 (HTTP only) is used</td></tr>
|
<tr><td><b>Port</b> </td><td>optional - the port of synology disc station. If not set, the default "5000" is used</td></tr>
|
||||||
|
<tr><td><b>Protocol</b> </td><td>optional - the protocol (http or https) to access the synology disc station. If not set, the default "http" is used</td></tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<br><br>
|
<br><br>
|
||||||
|
|
||||||
<b>Example:</b>
|
<b>Examples:</b>
|
||||||
<pre>
|
<pre>
|
||||||
<code>define CamCP SSCAM Carport 192.168.2.20 [5000]</code>
|
<code>define CamCP SSCAM Carport 192.168.2.20 [5000] [http]</code>
|
||||||
creates a new camera device CamCP
|
<code>define CamCP SSCAM Carport 192.168.2.20 [5001] [https]</code>
|
||||||
|
# creates a new camera device CamCP
|
||||||
|
|
||||||
<code>define DS1 SSCAM SVS 192.168.2.20 [5000]</code>
|
<code>define DS1 SSCAM SVS 192.168.2.20 [5000] [http]</code>
|
||||||
creares a new SVS device DS1
|
<code>define DS1 SSCAM SVS 192.168.2.20 [5001] [https]</code>
|
||||||
|
# creares a new SVS device DS1
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
When a new Camera is defined, as a start the recordingtime of 15 seconds will be assigned to the device.<br>
|
When a new Camera is defined, as a start the recordingtime of 15 seconds will be assigned to the device.<br>
|
||||||
@ -7551,23 +7585,22 @@ attr <name> genericStrmHtmlTag <video $HTMLATTR controls autoplay>
|
|||||||
Der Gültigkeitsbereich von set/get-Befehlen ist nach dem jeweiligen Befehl angegeben "gilt für CAM, SVS, CAM/SVS".
|
Der Gültigkeitsbereich von set/get-Befehlen ist nach dem jeweiligen Befehl angegeben "gilt für CAM, SVS, CAM/SVS".
|
||||||
<br><br>
|
<br><br>
|
||||||
|
|
||||||
Eine Kamera wird definiert durch: <br><br>
|
Eine <b>Kamera</b> wird definiert mit: <br><br>
|
||||||
<ul>
|
<ul>
|
||||||
<b><code>define <name> SSCAM <Kameraname in SVS> <ServerAddr> [Port] </code></b> <br><br>
|
<b><code>define <Name> SSCAM <Kameraname in SVS> <ServerAddr> [Port] [Protocol]</code></b> <br><br>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
Zunächst muß diese Kamera in der Synology Surveillance Station 7.0 oder höher eingebunden sein und entsprechend
|
Zunächst muß diese Kamera in der Synology Surveillance Station 7.0 oder höher eingebunden sein und entsprechend
|
||||||
funktionieren. <br><br>
|
funktionieren. <br><br>
|
||||||
|
|
||||||
Ein SVS-Device zur Steuerung von Funktionen der Surveillance Station wird definiert mit: <br><br>
|
Ein <b>SVS-Device</b> zur Steuerung von Funktionen der Surveillance Station wird definiert mit: <br><br>
|
||||||
<ul>
|
<ul>
|
||||||
<b><code>define <name> SSCAM SVS <ServerAddr> [Port] </code></b> <br><br>
|
<b><code>define <Name> SSCAM SVS <ServerAddr> [Port] [Protocol]</code></b> <br><br>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
In diesem Fall wird statt <Kameraname in SVS> nur <b>SVS</b> angegeben. <br><br>
|
In diesem Fall wird statt <Kameraname in SVS> nur <b>SVS</b> angegeben. <br><br>
|
||||||
|
|
||||||
Das Modul SSCam basiert auf Funktionen der Synology Surveillance Station API. <br>
|
Das Modul SSCam basiert auf Funktionen der Synology Surveillance Station API. <br><br>
|
||||||
Momentan wird nur das HTTP-Protokoll unterstützt um die Web-Services der Synology DS aufzurufen. <br><br>
|
|
||||||
|
|
||||||
Die Parameter beschreiben im Einzelnen:
|
Die Parameter beschreiben im Einzelnen:
|
||||||
<br>
|
<br>
|
||||||
@ -7575,21 +7608,24 @@ attr <name> genericStrmHtmlTag <video $HTMLATTR controls autoplay>
|
|||||||
|
|
||||||
<table>
|
<table>
|
||||||
<colgroup> <col width=15%> <col width=85%> </colgroup>
|
<colgroup> <col width=15%> <col width=85%> </colgroup>
|
||||||
<tr><td>name: </td><td>der Name des neuen Gerätes in FHEM</td></tr>
|
<tr><td><b>Name</b> </td><td>der Name des neuen Gerätes in FHEM</td></tr>
|
||||||
<tr><td>Kameraname: </td><td>Kameraname wie er in der Synology Surveillance Station angegeben ist für Kamera-Device, "SVS" für SVS-Device. Leerzeichen im Namen sind nicht erlaubt. </td></tr>
|
<tr><td><b>Kameraname</b> </td><td>Kameraname wie er in der Synology Surveillance Station angegeben ist für Kamera-Device, "SVS" für SVS-Device. Leerzeichen im Namen sind nicht erlaubt. </td></tr>
|
||||||
<tr><td>ServerAddr: </td><td>die IP-Addresse des Synology Surveillance Station Host. Hinweis: Es sollte kein Servername verwendet werden weil DNS-Aufrufe in FHEM blockierend sind.</td></tr>
|
<tr><td><b>ServerAddr</b> </td><td>die IP-Addresse des Synology Surveillance Station Host. Hinweis: Es sollte kein Servername verwendet werden weil DNS-Aufrufe in FHEM blockierend sind.</td></tr>
|
||||||
<tr><td>Port: </td><td>optional - der Port der Synology Surveillance Station. Wenn nicht angegeben wird der Default-Port 5000 (nur HTTP) gesetzt </td></tr>
|
<tr><td><b>Port</b> </td><td>optional - der Port der Synology Disc Station. Wenn nicht angegeben, wird der Default-Port "5000" genutzt </td></tr>
|
||||||
|
<tr><td><b>Protocol</b> </td><td>optional - das Protokoll (http oder https) zum Funktionsaufruf. Wenn nicht angegeben, wird der Default "http" genutzt </td></tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<br><br>
|
<br><br>
|
||||||
|
|
||||||
<b>Beispiel:</b>
|
<b>Beispiel:</b>
|
||||||
<pre>
|
<pre>
|
||||||
<code>define CamCP SSCAM Carport 192.168.2.20 [5000] </code>
|
<code>define CamCP SSCAM Carport 192.168.2.20 [5000] [http] </code>
|
||||||
erstellt ein neues Kamera-Device CamCP
|
<code>define CamCP SSCAM Carport 192.168.2.20 [5001] [https]</code>
|
||||||
|
# erstellt ein neues Kamera-Device CamCP
|
||||||
|
|
||||||
<code>define DS1 SSCAM SVS 192.168.2.20 [5000] </code>
|
<code>define DS1 SSCAM SVS 192.168.2.20 [5000] [http] </code>
|
||||||
erstellt ein neues SVS-Device DS1
|
<code>define DS1 SSCAM SVS 192.168.2.20 [5001] [https] </code>
|
||||||
|
# erstellt ein neues SVS-Device DS1
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
Wird eine neue Kamera definiert, wird diesem Device zunächst eine Standardaufnahmedauer von 15 zugewiesen. <br>
|
Wird eine neue Kamera definiert, wird diesem Device zunächst eine Standardaufnahmedauer von 15 zugewiesen. <br>
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
#########################################################################################################################
|
#########################################################################################################################
|
||||||
# Versions History:
|
# Versions History:
|
||||||
#
|
#
|
||||||
|
# 1.2.3 03.07.2018 behavior changed if device is disabled
|
||||||
# 1.2.2 26.06.2018 make changes for generic stream dev
|
# 1.2.2 26.06.2018 make changes for generic stream dev
|
||||||
# 1.2.1 23.06.2018 no name add-on if MODEL is snapgallery
|
# 1.2.1 23.06.2018 no name add-on if MODEL is snapgallery
|
||||||
# 1.2.0 20.06.2018 running stream as human readable entry for SSCamSTRM-Device
|
# 1.2.0 20.06.2018 running stream as human readable entry for SSCamSTRM-Device
|
||||||
@ -45,7 +46,7 @@ package main;
|
|||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
|
||||||
my $SSCamSTRMVersion = "1.2.2";
|
my $SSCamSTRMVersion = "1.2.3";
|
||||||
|
|
||||||
################################################################
|
################################################################
|
||||||
sub SSCamSTRM_Initialize($) {
|
sub SSCamSTRM_Initialize($) {
|
||||||
@ -78,8 +79,6 @@ sub SSCamSTRM_Define($$) {
|
|||||||
$hash->{VERSION} = $SSCamSTRMVersion;
|
$hash->{VERSION} = $SSCamSTRMVersion;
|
||||||
$hash->{LINK} = $link;
|
$hash->{LINK} = $link;
|
||||||
|
|
||||||
$attr{$name}{comment} = "when using the device in a Dashboard, set \"attr $name alias <span></span>\" ";
|
|
||||||
|
|
||||||
readingsSingleUpdate($hash,"state", "initialized", 1); # Init für "state"
|
readingsSingleUpdate($hash,"state", "initialized", 1); # Init für "state"
|
||||||
|
|
||||||
return undef;
|
return undef;
|
||||||
@ -100,7 +99,7 @@ sub SSCamSTRM_Attr($$$$) {
|
|||||||
$do = ($aVal) ? 1 : 0;
|
$do = ($aVal) ? 1 : 0;
|
||||||
}
|
}
|
||||||
$do = 0 if($cmd eq "del");
|
$do = 0 if($cmd eq "del");
|
||||||
$val = ($do == 1 ? "Stream-device of \"$hash->{PARENT}\" disabled" : "initialized");
|
$val = ($do == 1 ? "disabled" : "initialized");
|
||||||
|
|
||||||
readingsSingleUpdate($hash, "state", $val, 1);
|
readingsSingleUpdate($hash, "state", $val, 1);
|
||||||
}
|
}
|
||||||
@ -114,7 +113,7 @@ sub SSCamSTRM_FwFn($$$$) {
|
|||||||
my $hash = $defs{$d};
|
my $hash = $defs{$d};
|
||||||
my $link = $hash->{LINK};
|
my $link = $hash->{LINK};
|
||||||
|
|
||||||
return undef if(IsDisabled($d));
|
# return undef if(IsDisabled($d));
|
||||||
|
|
||||||
$link = AnalyzePerlCommand(undef, $link) if($link =~ m/^{(.*)}$/s);
|
$link = AnalyzePerlCommand(undef, $link) if($link =~ m/^{(.*)}$/s);
|
||||||
my $show = $defs{$hash->{PARENT}}->{HELPER}{ACTSTRM} if($hash->{MODEL} =~ /switched/);
|
my $show = $defs{$hash->{PARENT}}->{HELPER}{ACTSTRM} if($hash->{MODEL} =~ /switched/);
|
||||||
@ -125,7 +124,15 @@ sub SSCamSTRM_FwFn($$$$) {
|
|||||||
|
|
||||||
my $ret = "";
|
my $ret = "";
|
||||||
$ret .= "<span>$dlink $show</span><br>" if(!AttrVal($d,"hideDisplayName",0));
|
$ret .= "<span>$dlink $show</span><br>" if(!AttrVal($d,"hideDisplayName",0));
|
||||||
|
if(IsDisabled($d)) {
|
||||||
|
if(AttrVal($d,"hideDisplayName",0)) {
|
||||||
|
$ret .= "Stream-device <a href=\"/fhem?detail=$d\">$d</a> is disabled";
|
||||||
|
} else {
|
||||||
|
$ret .= "<html>Stream-device is disabled</html>";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
$ret .= $link;
|
$ret .= $link;
|
||||||
|
}
|
||||||
|
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
@ -146,6 +153,9 @@ Dependend of the Streaming-Device state, different buttons are provided to start
|
|||||||
<ul>
|
<ul>
|
||||||
<table>
|
<table>
|
||||||
<colgroup> <col width=25%> <col width=75%> </colgroup>
|
<colgroup> <col width=25%> <col width=75%> </colgroup>
|
||||||
|
<tr><td> Switch off </td><td>- stops a running playback </td></tr>
|
||||||
|
<tr><td> Refresh </td><td>- refresh a view (no page reload) </td></tr>
|
||||||
|
<tr><td> Restart </td><td>- restart a running content (e.g. a HLS-Stream) </td></tr>
|
||||||
<tr><td> MJPEG </td><td>- starts a MJPEG Livestream </td></tr>
|
<tr><td> MJPEG </td><td>- starts a MJPEG Livestream </td></tr>
|
||||||
<tr><td> HLS </td><td>- starts HLS (HTTP Live Stream) </td></tr>
|
<tr><td> HLS </td><td>- starts HLS (HTTP Live Stream) </td></tr>
|
||||||
<tr><td> Last Record </td><td>- playback the last recording as iFrame </td></tr>
|
<tr><td> Last Record </td><td>- playback the last recording as iFrame </td></tr>
|
||||||
@ -155,7 +165,6 @@ Dependend of the Streaming-Device state, different buttons are provided to start
|
|||||||
<tr><td> Start Recording </td><td>- starts an endless recording </td></tr>
|
<tr><td> Start Recording </td><td>- starts an endless recording </td></tr>
|
||||||
<tr><td> Stop Recording </td><td>- stopps the recording </td></tr>
|
<tr><td> Stop Recording </td><td>- stopps the recording </td></tr>
|
||||||
<tr><td> Take Snapshot </td><td>- take a snapshot </td></tr>
|
<tr><td> Take Snapshot </td><td>- take a snapshot </td></tr>
|
||||||
<tr><td> Switch off </td><td>- stops a running playback </td></tr>
|
|
||||||
</table>
|
</table>
|
||||||
</ul>
|
</ul>
|
||||||
<br>
|
<br>
|
||||||
@ -227,6 +236,9 @@ Abhängig vom Zustand des Streaming-Devices werden zum Start von Aktionen unters
|
|||||||
<ul>
|
<ul>
|
||||||
<table>
|
<table>
|
||||||
<colgroup> <col width=25%> <col width=75%> </colgroup>
|
<colgroup> <col width=25%> <col width=75%> </colgroup>
|
||||||
|
<tr><td> Switch off </td><td>- stoppt eine laufende Wiedergabe </td></tr>
|
||||||
|
<tr><td> Refresh </td><td>- auffrischen einer Ansicht (kein Browser Seiten-Reload) </td></tr>
|
||||||
|
<tr><td> Restart </td><td>- neu starten eines laufenden Contents (z.B. eines HLS-Streams) </td></tr>
|
||||||
<tr><td> MJPEG </td><td>- Startet MJPEG Livestream </td></tr>
|
<tr><td> MJPEG </td><td>- Startet MJPEG Livestream </td></tr>
|
||||||
<tr><td> HLS </td><td>- Startet HLS (HTTP Live Stream) </td></tr>
|
<tr><td> HLS </td><td>- Startet HLS (HTTP Live Stream) </td></tr>
|
||||||
<tr><td> Last Record </td><td>- spielt die letzte Aufnahme als iFrame </td></tr>
|
<tr><td> Last Record </td><td>- spielt die letzte Aufnahme als iFrame </td></tr>
|
||||||
@ -236,7 +248,6 @@ Abhängig vom Zustand des Streaming-Devices werden zum Start von Aktionen unters
|
|||||||
<tr><td> Start Recording </td><td>- startet eine Endlosaufnahme </td></tr>
|
<tr><td> Start Recording </td><td>- startet eine Endlosaufnahme </td></tr>
|
||||||
<tr><td> Stop Recording </td><td>- stoppt eine Aufnahme </td></tr>
|
<tr><td> Stop Recording </td><td>- stoppt eine Aufnahme </td></tr>
|
||||||
<tr><td> Take Snapshot </td><td>- löst einen Schnappschuß aus </td></tr>
|
<tr><td> Take Snapshot </td><td>- löst einen Schnappschuß aus </td></tr>
|
||||||
<tr><td> Switch off </td><td>- stoppt eine laufende Wiedergabe </td></tr>
|
|
||||||
</table>
|
</table>
|
||||||
</ul>
|
</ul>
|
||||||
<br>
|
<br>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user