mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-02-07 16:59:18 +00:00
49_SSCam: contrib 9.3.0
git-svn-id: https://svn.fhem.de/fhem/trunk@22259 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
ed7f987eab
commit
f9cffed213
@ -360,9 +360,9 @@ my %SSCAM_imc = ( # di
|
||||
|
||||
my %zd = ( # Hash der Zoomsteuerung
|
||||
".++" => {dir => "in", sttime => 6, moveType => "Start", panimg => "CAMLEFTFAST.png", },
|
||||
"+" => {dir => "in", sttime => 0.1, moveType => "Start", panimg => "CAMLEFT.png", },
|
||||
"+" => {dir => "in", sttime => 0.5, moveType => "Start", panimg => "CAMLEFT.png", },
|
||||
"stop" => {dir => undef, sttime => undef, moveType => "Stop" , panimg => undef, },
|
||||
"-" => {dir => "out", sttime => 0.1, moveType => "Start", panimg => "CAMRIGHT.png", },
|
||||
"-" => {dir => "out", sttime => 0.5, moveType => "Start", panimg => "CAMRIGHT.png", },
|
||||
"--." => {dir => "out", sttime => 6, moveType => "Start", panimg => "CAMRIGHTFAST.png", }
|
||||
);
|
||||
|
||||
@ -370,7 +370,7 @@ my %zd = ( # Ha
|
||||
my $SSCam_slim = 3; # default Anzahl der abzurufenden Schnappschüsse mit snapGallery
|
||||
my $SSCAM_snum = "1,2,3,4,5,6,7,8,9,10"; # mögliche Anzahl der abzurufenden Schnappschüsse mit snapGallery
|
||||
my $SSCam_compstat = "8.2.7"; # getestete SVS-Version
|
||||
my $SSCam_valZoom = "uzsuSelectRadio,.++,+,stop,-,--."; # Inhalt des Setters "setZoom"
|
||||
my $SSCam_valZoom = ".++,+,stop,-,--."; # Inhalt des Setters "setZoom"
|
||||
|
||||
use vars qw($FW_ME); # webname (default is fhem), used by 97_GROUP/weblink
|
||||
use vars qw($FW_subdir); # Sub-path in URL, used by FLOORPLAN/weblink
|
||||
@ -881,7 +881,7 @@ sub SSCam_Set {
|
||||
;
|
||||
} elsif(SSCam_IsModelCam($hash)) {
|
||||
# selist für Cams
|
||||
my $hlslfw = SSCam_IsCapHLS($hash)?",live_fw_hls,":",";
|
||||
my $hlslfw = SSCam_IsCapHLS($hash) ? ",live_fw_hls," : ",";
|
||||
$setlist = "Unknown argument $opt, choose one of ".
|
||||
"credentials ".
|
||||
"smtpcredentials ".
|
||||
@ -894,24 +894,23 @@ sub SSCam_Set {
|
||||
"createReadingsGroup ".
|
||||
"createSnapGallery:noArg ".
|
||||
"createStreamDev:generic,hls,lastsnap,mjpeg,switched ".
|
||||
(SSCam_IsCapPTZPan($hash) ? "createPTZcontrol:noArg " : "").
|
||||
"enable:noArg ".
|
||||
"disable:noArg ".
|
||||
"optimizeParams ".
|
||||
((ReadingsVal("$name", "CapPIR", "false") ne "false") ? "pirSensor:activate,deactivate " : "").
|
||||
"runView:live_fw".$hlslfw."live_link,live_open,lastrec_fw,lastrec_fw_MJPEG,lastrec_fw_MPEG4/H.264,lastrec_open,lastsnap_fw ".
|
||||
(SSCam_IsCapPTZPan($hash) ? "setPreset ": "").
|
||||
(SSCam_IsCapPTZPan($hash) ? "setHome:---currentPosition---,".ReadingsVal("$name","Presets","")." " : "").
|
||||
(SSCam_IsCapPTZPan($hash) ? "delPreset:".ReadingsVal("$name","Presets","")." " : "").
|
||||
"stopView:noArg ".
|
||||
(SSCam_IsCapPTZObjTrack($hash) ? "startTracking:noArg " : "").
|
||||
(SSCam_IsCapPTZObjTrack($hash) ? "stopTracking:noArg " : "").
|
||||
(SSCam_IsCapPTZDir($hash) ? "move"." " : "").
|
||||
(SSCam_IsCapPTZPan($hash) ? "runPatrol:".ReadingsVal("$name", "Patrols", "")." " : "").
|
||||
(SSCam_IsCapPTZPan($hash) ? "goPreset:".ReadingsVal("$name", "Presets", "")." " : "").
|
||||
(SSCam_IsCapPTZAbs($hash) ? "goAbsPTZ"." " : "").
|
||||
(SSCam_IsCapPTZDir($hash) ? "move"." " : "").
|
||||
(SSCam_IsCapZoom($hash) ? "setZoom:$SSCam_valZoom " : "").
|
||||
(SSCam_IsCapPTZPan($hash) ? "setPreset ": "").
|
||||
(SSCam_IsCapPTZPan($hash) ? "setHome:---currentPosition---,".ReadingsVal("$name","Presets","")." " : "").
|
||||
(SSCam_IsCapPTZPan($hash) ? "delPreset:".ReadingsVal("$name","Presets","")." " : "").
|
||||
(SSCam_IsCapPTZPan($hash) ? "runPatrol:".ReadingsVal("$name", "Patrols", "")." " : "").
|
||||
(SSCam_IsCapPTZPan($hash) ? "goPreset:".ReadingsVal("$name", "Presets", "")." " : "").
|
||||
(SSCam_IsCapPTZPan($hash) ? "createPTZcontrol:noArg " : "").
|
||||
(SSCam_IsCapPTZAbs($hash) ? "goAbsPTZ"." " : "").
|
||||
(SSCam_IsCapPTZDir($hash) ? "move"." " : "").
|
||||
(SSCam_IsCapPIR($hash) ? "pirSensor:activate,deactivate " : "").
|
||||
(SSCam_IsCapZoom($hash) ? "setZoom:$SSCam_valZoom " : "").
|
||||
"";
|
||||
} else {
|
||||
# setlist für SVS Devices
|
||||
@ -1893,7 +1892,7 @@ sub SSCam_FWsummaryFn {
|
||||
return if(!$hash->{HELPER}{LINK} || ReadingsVal($d, "state", "") =~ /^dis.*/ || IsDisabled($name));
|
||||
|
||||
# Definition Tasten
|
||||
my $imgblank = "<img src=\"$FW_ME/www/images/sscam/black_btn_CAMBLANK.png\">"; # nicht sichtbare Leertaste
|
||||
my $imgblank = "<img src=\"$FW_ME/www/images/sscam/black_btn_CAMBLANK.png\">"; # nicht sichtbare Leertaste
|
||||
my $cmdstop = "cmd=set $d stopView"; # Stream deaktivieren
|
||||
my $imgstop = "<img src=\"$FW_ME/www/images/default/remotecontrol/black_btn_POWEROFF3.png\">";
|
||||
my $cmdhlsreact = "cmd=set $d hlsreactivate"; # HLS Stream reaktivieren
|
||||
@ -1926,15 +1925,15 @@ sub SSCam_FWsummaryFn {
|
||||
my ($ttrefresh, $ttrecstart, $ttrecstop, $ttsnap, $ttcmdstop, $tthlsreact, $ttmjpegrun, $tthlsrun, $ttlrrun, $tth264run, $ttlmjpegrun, $ttlsnaprun);
|
||||
if(AttrVal("global","language","EN") =~ /EN/) {
|
||||
$ttrecstart = $SSCam_ttips_en{"ttrecstart"}; $ttrecstart =~ s/§NAME§/$calias/g;
|
||||
$ttrecstop = $SSCam_ttips_en{"ttrecstop"}; $ttrecstop =~ s/§NAME§/$calias/g;
|
||||
$ttsnap = $SSCam_ttips_en{"ttsnap"}; $ttsnap =~ s/§NAME§/$calias/g;
|
||||
$ttcmdstop = $SSCam_ttips_en{"ttcmdstop"}; $ttcmdstop =~ s/§NAME§/$calias/g;
|
||||
$ttrecstop = $SSCam_ttips_en{"ttrecstop"}; $ttrecstop =~ s/§NAME§/$calias/g;
|
||||
$ttsnap = $SSCam_ttips_en{"ttsnap"}; $ttsnap =~ s/§NAME§/$calias/g;
|
||||
$ttcmdstop = $SSCam_ttips_en{"ttcmdstop"}; $ttcmdstop =~ s/§NAME§/$calias/g;
|
||||
$tthlsreact = $SSCam_ttips_en{"tthlsreact"}; $tthlsreact =~ s/§NAME§/$calias/g;
|
||||
} else {
|
||||
$ttrecstart = $SSCam_ttips_de{"ttrecstart"}; $ttrecstart =~ s/§NAME§/$calias/g;
|
||||
$ttrecstop = $SSCam_ttips_de{"ttrecstop"}; $ttrecstop =~ s/§NAME§/$calias/g;
|
||||
$ttsnap = $SSCam_ttips_de{"ttsnap"}; $ttsnap =~ s/§NAME§/$calias/g;
|
||||
$ttcmdstop = $SSCam_ttips_de{"ttcmdstop"}; $ttcmdstop =~ s/§NAME§/$calias/g;
|
||||
$ttrecstop = $SSCam_ttips_de{"ttrecstop"}; $ttrecstop =~ s/§NAME§/$calias/g;
|
||||
$ttsnap = $SSCam_ttips_de{"ttsnap"}; $ttsnap =~ s/§NAME§/$calias/g;
|
||||
$ttcmdstop = $SSCam_ttips_de{"ttcmdstop"}; $ttcmdstop =~ s/§NAME§/$calias/g;
|
||||
$tthlsreact = $SSCam_ttips_de{"tthlsreact"}; $tthlsreact =~ s/§NAME§/$calias/g;
|
||||
}
|
||||
|
||||
@ -2037,21 +2036,23 @@ return $ret;
|
||||
}
|
||||
|
||||
######################################################################################
|
||||
# PTZ-Steuerpanel in Detailanzeige darstellen
|
||||
# Detailanzeige
|
||||
######################################################################################
|
||||
sub SSCam_FWdetailFn {
|
||||
my ($FW_wname, $d, $room, $pageHash) = @_; # pageHash is set for summaryFn.
|
||||
my $hash = $defs{$d};
|
||||
my ($FW_wname, $name, $room, $pageHash) = @_; # pageHash is set for summaryFn.
|
||||
my $hash = $defs{$name};
|
||||
my $ret = "";
|
||||
|
||||
$hash->{".setup"} = SSCam_FWconfCam($d,$room);
|
||||
SSCam_checkIconpath ($name, $FW_wname);
|
||||
|
||||
$hash->{".setup"} = SSCam_FWconfCam($name,$room);
|
||||
if($hash->{".setup"} ne "") {
|
||||
$ret .= $hash->{".setup"};
|
||||
}
|
||||
|
||||
$hash->{".ptzhtml"} = SSCam_ptzpanel($d,$d) if($hash->{".ptzhtml"} eq "");
|
||||
$hash->{".ptzhtml"} = SSCam_ptzpanel($name,$name) if($hash->{".ptzhtml"} eq "");
|
||||
|
||||
if($hash->{".ptzhtml"} ne "" && AttrVal($d,"ptzPanel_use",1)) {
|
||||
if($hash->{".ptzhtml"} ne "" && AttrVal($name,"ptzPanel_use",1)) {
|
||||
$ret .= $hash->{".ptzhtml"};
|
||||
}
|
||||
|
||||
@ -7219,6 +7220,15 @@ sub SSCam_IsCapPTZDir { #
|
||||
return $cap;
|
||||
}
|
||||
|
||||
sub SSCam_IsCapPIR { # hat Kamera einen PIR
|
||||
my $hash = shift;
|
||||
my $name = $hash->{NAME};
|
||||
|
||||
my $cap = ReadingsVal($name, "CapPIR", "false") ne "false" ? 1 : 0;
|
||||
|
||||
return $cap;
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# JSON Boolean Test und Mapping
|
||||
###############################################################################
|
||||
@ -10235,6 +10245,21 @@ sub SSCam_trim {
|
||||
return ($str);
|
||||
}
|
||||
|
||||
#############################################################################################
|
||||
# Check ob "sscam" im iconpath des FHEMWEB Devices enthalten ist
|
||||
#############################################################################################
|
||||
sub SSCam_checkIconpath {
|
||||
my $name = shift;
|
||||
my $FW_wname = shift // return;
|
||||
|
||||
my $icpa = AttrVal($FW_wname, "iconPath", "");
|
||||
if ($icpa !~ /sscam/x) {
|
||||
Log3 ($name, 2, qq{$name - WARNING - add "sscam" to attribute "iconpath" of FHEMWEB device "$FW_wname" to get the SSCam control icons} );
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#############################################################################################
|
||||
# Cache Handling
|
||||
# SSCam_cache ($name, <opcode> [, <Key>, <data>])
|
||||
@ -10935,7 +10960,7 @@ return;
|
||||
They can be selected in the drop-down-menu of the particular device. <br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> autocreateCams </b> (valid for SVS)</li> <br>
|
||||
<li><b> autocreateCams </b> (valid for SVS)</li> <br>
|
||||
|
||||
If a SVS device is defined, all in SVS integrated cameras are able to be created automatically in FHEM by this command. If the camera is already defined,
|
||||
it is overleaped.
|
||||
@ -10945,7 +10970,7 @@ return;
|
||||
|
||||
<ul>
|
||||
<a name="SSCamcreateStreamDev"></a>
|
||||
<li><b> set <name> createStreamDev [generic | hls | lastsnap | mjpeg | switched] </b> (valid for CAM)</li> <br>
|
||||
<li><b> createStreamDev [generic | hls | lastsnap | mjpeg | switched] </b> (valid for CAM)</li> <br>
|
||||
|
||||
A separate Streaming-Device (type SSCamSTRM) will be created. This device can be used as a discrete device in a dashboard
|
||||
for example.
|
||||
@ -11020,7 +11045,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> createPTZcontrol </b> (valid for PTZ-CAM)</li> <br>
|
||||
<li><b> createPTZcontrol </b> (valid for PTZ-CAM)</li> <br>
|
||||
|
||||
A separate PTZ control panel will be created (type SSCamSTRM). The current room of the parent camera device is
|
||||
assigned if it is set there (default "SSCam").
|
||||
@ -11030,7 +11055,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> createReadingsGroup [<name of readingsGroup>]</b> (valid for CAM/SVS)</li> <br>
|
||||
<li><b> createReadingsGroup [<name of readingsGroup>]</b> (valid for CAM/SVS)</li> <br>
|
||||
|
||||
This command creates a readingsGroup device to display an overview of all defined SSCam devices.
|
||||
A name for the new readingsGroup device can be specified. Is no own name specified, the readingsGroup device will be
|
||||
@ -11040,7 +11065,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> createSnapGallery </b> (valid for CAM)</li> <br>
|
||||
<li><b> createSnapGallery </b> (valid for CAM)</li> <br>
|
||||
|
||||
A snapshot gallery will be created as a separate device (type SSCamSTRM). The device will be provided in
|
||||
room "SSCam".
|
||||
@ -11055,7 +11080,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> credentials <username> <password> </b> (valid for CAM/SVS)</li> <br>
|
||||
<li><b> credentials <username> <password> </b> (valid for CAM/SVS)</li> <br>
|
||||
|
||||
set username / password combination for access the Synology Surveillance Station.
|
||||
See <a href="#SSCam_Credentials">Credentials</a><br> for further informations.
|
||||
@ -11064,7 +11089,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> delPreset <PresetName> </b> (valid for PTZ-CAM)</li> <br>
|
||||
<li><b> delPreset <PresetName> </b> (valid for PTZ-CAM)</li> <br>
|
||||
|
||||
Deletes a preset "<PresetName>". In FHEMWEB a drop-down list with current available presets is provieded.
|
||||
|
||||
@ -11072,7 +11097,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> [enable|disable] </b> (valid for CAM)</li> <br>
|
||||
<li><b> enable | disable </b> (valid for CAM)</li> <br>
|
||||
|
||||
For <b>deactivating / activating</b> a list of cameras or all cameras by Regex-expression, subsequent two
|
||||
examples using "at":
|
||||
@ -11102,7 +11127,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> expmode [day|night|auto] </b> (valid for CAM)</li> <br>
|
||||
<li><b> expmode [day|night|auto] </b> (valid for CAM)</li> <br>
|
||||
|
||||
With this command you are able to control the exposure mode and can set it to day, night or automatic mode.
|
||||
Thereby, for example, the behavior of camera LED's will be suitable controlled.
|
||||
@ -11115,7 +11140,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> extevent [ 1-10 ] </b> (valid for SVS)</li> <br>
|
||||
<li><b> extevent [ 1-10 ] </b> (valid for SVS)</li> <br>
|
||||
|
||||
This command triggers an external event (1-10) in SVS.
|
||||
The actions which will are used have to be defined in the actionrule editor of SVS at first. There are the events 1-10 possible.
|
||||
@ -11126,7 +11151,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> goAbsPTZ [ X Y | up | down | left | right ] </b> (valid for CAM)</li> <br>
|
||||
<li><b> goAbsPTZ [ X Y | up | down | left | right ] </b> (valid for CAM)</li> <br>
|
||||
|
||||
This command can be used to move a PTZ-camera to an arbitrary absolute X/Y-coordinate, or to absolute position using up/down/left/right.
|
||||
The option is only available for cameras which are having the Reading "CapPTZAbs=true". The property of a camera can be requested with "get <name> caminfoall" .
|
||||
@ -11161,7 +11186,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> goPreset <Preset> </b> (valid for CAM)</li> <br>
|
||||
<li><b> goPreset <Preset> </b> (valid for CAM)</li> <br>
|
||||
|
||||
Using this command you can move PTZ-cameras to a predefined position. <br>
|
||||
The Preset-positions have to be defined first of all in the Synology Surveillance Station. This usually happens in the PTZ-control of IP-camera setup in SVS.
|
||||
@ -11197,7 +11222,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> homeMode [on|off] </b> (valid for SVS)</li> <br>
|
||||
<li><b> homeMode [on|off] </b> (valid for SVS)</li> <br>
|
||||
|
||||
Switch the HomeMode of the Surveillance Station on or off.
|
||||
Further informations about HomeMode you can find in the <a href="https://www.synology.com/en-global/knowledgebase/Surveillance/help/SurveillanceStation/home_mode">Synology Onlinehelp</a>.
|
||||
@ -11205,7 +11230,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> motdetsc [camera|SVS|disable] </b> (valid for CAM)</li> <br>
|
||||
<li><b> motdetsc [camera|SVS|disable] </b> (valid for CAM)</li> <br>
|
||||
|
||||
The command "motdetsc" (stands for "motion detection source") switchover the motion detection to the desired mode.
|
||||
If motion detection will be done by camera / SVS without any parameters, the original camera motion detection settings are kept.
|
||||
@ -11254,8 +11279,8 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> move [ right | up | down | left | dir_X ] [Sekunden] </b> (valid for CAM up to SVS version 7.1)</li>
|
||||
<b> set <name> move [ right | upright | up | upleft | left | downleft | down | downright ] [Sekunden] </b> (valid for CAM and SVS Version 7.2 and above) <br><br>
|
||||
<li><b> move [ right | up | down | left | dir_X ] [Sekunden] </b> (valid for CAM up to SVS version 7.1)</li>
|
||||
<b> move [ right | upright | up | upleft | left | downleft | down | downright ] [Sekunden] </b> (valid for CAM and SVS Version 7.2 and above) <br><br>
|
||||
|
||||
With this command a continuous move of a PTZ-camera will be started. In addition to the four basic directions up/down/left/right is it possible to use angular dimensions
|
||||
"dir_X". The grain size of graduation depends on properties of the camera and can be identified by the Reading "CapPTZDirections". <br><br>
|
||||
@ -11278,7 +11303,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> off </b> (valid for CAM)</li><br>
|
||||
<li><b> off </b> (valid for CAM)</li><br>
|
||||
|
||||
Stops the current recording.
|
||||
</ul>
|
||||
@ -11357,7 +11382,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> optimizeParams [mirror:<value>] [flip:<value>] [rotate:<value>] [ntp:<value>]</b> (gilt für CAM)</li> <br>
|
||||
<li><b> optimizeParams [mirror:<value>] [flip:<value>] [rotate:<value>] [ntp:<value>]</b> (gilt für CAM)</li> <br>
|
||||
|
||||
Set one or several properties of the camera. The video can be mirrored (mirror), turned upside down (flip) or
|
||||
rotated (rotate). Specified properties must be supported by the camera type. With "ntp" you can set a time server the camera
|
||||
@ -11382,14 +11407,14 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> pirSensor [activate | deactivate] </b> (valid for CAM)</li> <br>
|
||||
<li><b> pirSensor [activate | deactivate] </b> (valid for CAM)</li> <br>
|
||||
|
||||
Activates / deactivates the infrared sensor of the camera (only posible if the camera has got a PIR sensor).
|
||||
</ul>
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> runPatrol <Patrolname> </b> (valid for CAM)</li> <br>
|
||||
<li><b> runPatrol <Patrolname> </b> (valid for CAM)</li> <br>
|
||||
|
||||
This commans starts a predefined patrol (tour) of a PTZ-camera. <br>
|
||||
At first the patrol has to be predefined in the Synology Surveillance Station. It can be done in the PTZ-control of IP-Kamera Setup -> PTZ-control -> patrol.
|
||||
@ -11401,7 +11426,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> runView [live_fw | live_link | live_open [<room>] | lastrec_fw | lastrec_fw_MJPEG | lastrec_fw_MPEG4/H.264 | lastrec_open [<room>] | lastsnap_fw] </b> (valid for CAM)</li> <br>
|
||||
<li><b> runView [live_fw | live_link | live_open [<room>] | lastrec_fw | lastrec_fw_MJPEG | lastrec_fw_MPEG4/H.264 | lastrec_open [<room>] | lastsnap_fw] </b> (valid for CAM)</li> <br>
|
||||
|
||||
<ul>
|
||||
<table>
|
||||
@ -11486,7 +11511,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> setHome <PresetName> </b> (valid for PTZ-CAM)</li> <br>
|
||||
<li><b> setHome <PresetName> </b> (valid for PTZ-CAM)</li> <br>
|
||||
|
||||
Set the Home-preset to a predefined preset name "<PresetName>" or the current position of the camera.
|
||||
|
||||
@ -11494,7 +11519,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> setPreset <PresetNumber> [<PresetName>] [<Speed>] </b> (valid for PTZ-CAM)</li> <br>
|
||||
<li><b> setPreset <PresetNumber> [<PresetName>] [<Speed>] </b> (valid for PTZ-CAM)</li> <br>
|
||||
|
||||
Sets a Preset with name "<PresetName>" to the current postion of the camera. The speed can be defined
|
||||
optionally (<Speed>). If no PresetName is specified, the PresetNummer is used as name.
|
||||
@ -11504,7 +11529,15 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> snap [<number>] [<time difference>] <br>
|
||||
<li><b> setZoom < .++ | + | stop | - | --. > </b> (valid for PTZ-CAM)</li> <br>
|
||||
|
||||
Provides controls for zoom functions if the camera supports this feature.
|
||||
|
||||
</ul>
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> snap [<number>] [<time difference>] <br>
|
||||
|
||||
[snapEmailTxt:"subject => <subject text>, body => <message text>"] <br>
|
||||
[snapTelegramTxt:"tbot => <TelegramBot device>, peers => [<peer1 peer2 ...>], subject => [<subject text>]"] <br>
|
||||
@ -11554,7 +11587,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> snapCams [<number>] [<time difference>] [CAM:"<camera>, <camera>, ..."]</b> (valid for SVS)</li> <br>
|
||||
<li><b> snapCams [<number>] [<time difference>] [CAM:"<camera>, <camera>, ..."]</b> (valid for SVS)</li> <br>
|
||||
|
||||
One or multiple snapshots of denoted cameras are triggered. If no cameras are denoted, the snapshots are triggered in all
|
||||
of the defined cameras in FHEM.
|
||||
@ -11579,7 +11612,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> snapGallery [1-10] </b> (valid for CAM)</li> <br>
|
||||
<li><b> snapGallery [1-10] </b> (valid for CAM)</li> <br>
|
||||
|
||||
The command is only available if the attribute "snapGalleryBoost=1" is set. <br>
|
||||
It creates an output of the last [x] snapshots as well as "get ... snapGallery". But differing from "get" with
|
||||
@ -11597,7 +11630,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> startTracking </b> (valid for CAM with tracking capability)</li> <br>
|
||||
<li><b> startTracking </b> (valid for CAM with tracking capability)</li> <br>
|
||||
|
||||
Starts object tracking of camera.
|
||||
The command is only available if surveillance station has recognised the object tracking capability of camera
|
||||
@ -11606,7 +11639,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> stopTracking </b> (valid for CAM with tracking capability)</li> <br>
|
||||
<li><b> stopTracking </b> (valid for CAM with tracking capability)</li> <br>
|
||||
|
||||
Stops object tracking of camera.
|
||||
The command is only available if surveillance station has recognised the object tracking capability of camera
|
||||
@ -11627,8 +11660,8 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
They can be selected in the drop-down-menu of the particular device. <br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> caminfoall </b> (valid for CAM/SVS)</li>
|
||||
<b> get <name> caminfo </b> (valid for CAM) <br><br>
|
||||
<li><b> caminfoall </b> (valid for CAM/SVS)</li>
|
||||
<b> caminfo </b> (valid for CAM) <br><br>
|
||||
|
||||
Dependend of the type of camera (e.g. Fix- or PTZ-Camera) the available properties are retrieved and provided as Readings.<br>
|
||||
For example the Reading "Availability" will be set to "disconnected" if the camera would be disconnected from Synology
|
||||
@ -11638,7 +11671,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> eventlist </b> (valid for CAM)</li> <br>
|
||||
<li><b> eventlist </b> (valid for CAM)</li> <br>
|
||||
|
||||
The <a href="#SSCamreadings">Reading</a> "CamEventNum" and "CamLastRecord" will be refreshed which containes the total number
|
||||
of in SVS registered camera events and the path/name of the last recording.
|
||||
@ -11649,14 +11682,14 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> homeModeState </b> (valid for SVS)</li> <br>
|
||||
<li><b> homeModeState </b> (valid for SVS)</li> <br>
|
||||
|
||||
HomeMode-state of the Surveillance Station will be retrieved.
|
||||
</ul>
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> listLog [severity:<Loglevel>] [limit:<Number of lines>] [match:<Searchstring>] </b> (valid for SVS)</li> <br>
|
||||
<li><b> listLog [severity:<Loglevel>] [limit:<Number of lines>] [match:<Searchstring>] </b> (valid for SVS)</li> <br>
|
||||
|
||||
Fetches the Surveillance Station Log from Synology server. Without any further options the whole log will be retrieved. <br>
|
||||
You can specify all or any of the following options: <br><br>
|
||||
@ -11687,14 +11720,14 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> listPresets </b> (valid for PTZ-CAM)</li> <br>
|
||||
<li><b> listPresets </b> (valid for PTZ-CAM)</li> <br>
|
||||
|
||||
Get a popup with a lists of presets saved for the camera.
|
||||
</ul>
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> saveRecording [<path>] </b> (valid for CAM)</li> <br>
|
||||
<li><b> saveRecording [<path>] </b> (valid for CAM)</li> <br>
|
||||
|
||||
The current recording present in Reading "CamLastRec" is saved lcally as a MP4 file. Optionally you can specify the path
|
||||
for the file to save (default: modpath in global device). <br>
|
||||
@ -11709,7 +11742,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> scanVirgin </b> (valid for CAM/SVS)</li> <br>
|
||||
<li><b> scanVirgin </b> (valid for CAM/SVS)</li> <br>
|
||||
|
||||
This command is similar to get caminfoall, informations relating to SVS and the camera will be retrieved.
|
||||
In difference to caminfoall in either case a new session ID will be generated (do a new login), the camera ID will be
|
||||
@ -11718,7 +11751,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> snapGallery [1-10] </b> (valid for CAM)</li> <br>
|
||||
<li><b> snapGallery [1-10] </b> (valid for CAM)</li> <br>
|
||||
|
||||
A popup with the last [x] snapshots will be created. If the <a href="#SSCamattr">attribute</a> "snapGalleryBoost" is set,
|
||||
the last snapshots (default 3) are requested by polling and they will be stored in the FHEM-servers main memory.
|
||||
@ -11748,7 +11781,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> snapfileinfo </b> (valid for CAM)</li> <br>
|
||||
<li><b> snapfileinfo </b> (valid for CAM)</li> <br>
|
||||
|
||||
The filename of the last snapshot will be retrieved. This command will be executed with <b>"get <name> snap"</b>
|
||||
automatically.
|
||||
@ -11756,7 +11789,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> snapinfo </b> (valid for CAM)</li> <br>
|
||||
<li><b> snapinfo </b> (valid for CAM)</li> <br>
|
||||
|
||||
Informations about snapshots will be retrieved. Heplful if snapshots are not triggerd by SSCam, but by motion detection of the camera or surveillance
|
||||
station instead.
|
||||
@ -11764,7 +11797,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> stmUrlPath </b> (valid for CAM)</li> <br>
|
||||
<li><b> stmUrlPath </b> (valid for CAM)</li> <br>
|
||||
|
||||
This command is to fetch the streamkey information and streamurl using that streamkey. The reading "StmKey" will be filled when this command will be executed and can be used
|
||||
to send it and run by your own application like a browser (see example).
|
||||
@ -11776,7 +11809,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
Example to create an http-call to a livestream using StmKey: <br>
|
||||
|
||||
<pre>
|
||||
http(s)://<hostname><port>/webapi/entry.cgi?api=SYNO.SurveillanceStation.VideoStreaming&version=1&method=Stream&format=mjpeg&cameraId=5&StmKey="31fd87279976d89bb98409728cced890"
|
||||
http(s)://<hostname><port>/webapi/entry.cgi?api=SYNO.SurveillanceStation.VideoStreaming&version=1&method=Stream&format=mjpeg&cameraId=5&StmKey="31fd87279976d89bb98409728cced890"
|
||||
</pre>
|
||||
|
||||
cameraId (Internal CAMID) and StmKey has to be replaced by valid values. <br><br>
|
||||
@ -11789,21 +11822,21 @@ http(s)://<hostname><port>/webapi/entry.cgi?api=SYNO.SurveillanceSta
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> storedCredentials </b> (valid for CAM/SVS)</li> <br>
|
||||
<li><b> storedCredentials </b> (valid for CAM/SVS)</li> <br>
|
||||
|
||||
Shows the stored login credentials in a popup as plain text.
|
||||
</ul>
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> svsinfo </b> (valid for CAM/SVS)</li> <br>
|
||||
<li><b> svsinfo </b> (valid for CAM/SVS)</li> <br>
|
||||
|
||||
Determines common informations about the installed SVS-version and other properties. <br>
|
||||
</ul>
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> versionNotes [hints | rel | <key>] </b> (valid for CAM/SVS)</li> <br>
|
||||
<li><b> versionNotes [hints | rel | <key>] </b> (valid for CAM/SVS)</li> <br>
|
||||
|
||||
Shows realease informations and/or hints about the module. It contains only main release informations for module users. <br>
|
||||
If no options are specified, both release informations and hints will be shown. "rel" shows only release informations and
|
||||
@ -12856,7 +12889,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
Drop-Down-Menü des jeweiligen Devices zur Auswahl zur Verfügung. <br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> autocreateCams </b> (gilt für SVS)</li> <br>
|
||||
<li><b> autocreateCams </b> (gilt für SVS)</li> <br>
|
||||
|
||||
Ist ein SVS-Device definiert, können mit diesem Befehl alle in der SVS integrierten Kameras automatisiert angelegt werden. Bereits definierte
|
||||
Kameradevices werden übersprungen.
|
||||
@ -12867,7 +12900,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
|
||||
<ul>
|
||||
<a name="SSCamcreateStreamDev"></a>
|
||||
<li><b> set <name> createStreamDev [generic | hls | lastsnap | mjpeg | switched] </b> (gilt für CAM)</li> <br>
|
||||
<li><b> createStreamDev [generic | hls | lastsnap | mjpeg | switched] </b> (gilt für CAM)</li> <br>
|
||||
|
||||
Es wird ein separates Streaming-Device (Typ SSCamSTRM) erstellt. Dieses Device kann z.B. als separates Device
|
||||
in einem Dashboard genutzt werden.
|
||||
@ -12941,7 +12974,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> createPTZcontrol </b> (gilt für PTZ-CAM)</li> <br>
|
||||
<li><b> createPTZcontrol </b> (gilt für PTZ-CAM)</li> <br>
|
||||
|
||||
Es wird ein separates PTZ-Steuerungspaneel (Type SSCamSTRM) erstellt. Es wird der aktuelle Raum des Kameradevice
|
||||
zugewiesen sofern dort gesetzt (default "SSCam").
|
||||
@ -12951,7 +12984,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> createReadingsGroup [<Name der readingsGroup>]</b> (gilt für CAM/SVS)</li> <br>
|
||||
<li><b> createReadingsGroup [<Name der readingsGroup>]</b> (gilt für CAM/SVS)</li> <br>
|
||||
|
||||
Es wird ein readingsGroup-Device zur Übersicht aller vorhandenen SSCam-Devices erstellt. Es kann ein eigener Name angegeben
|
||||
werden. Ist kein Name angegeben, wird eine readingsGroup mit dem Namen "RG.SSCam" erzeugt.
|
||||
@ -12960,7 +12993,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> createSnapGallery </b> (gilt für CAM)</li> <br>
|
||||
<li><b> createSnapGallery </b> (gilt für CAM)</li> <br>
|
||||
|
||||
Es wird eine Schnappschußgallerie als separates Device (Type SSCamSTRM) erzeugt. Das Device wird im Raum
|
||||
"SSCam" erstellt.
|
||||
@ -12977,7 +13010,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> credentials <username> <password> </b> (gilt für CAM/SVS)</li> <br>
|
||||
<li><b> credentials <username> <password> </b> (gilt für CAM/SVS)</li> <br>
|
||||
|
||||
Setzt Username / Passwort für den Zugriff auf die Synology Surveillance Station.
|
||||
Siehe <a href="#SSCam_Credentials">Credentials</a><br>
|
||||
@ -12986,7 +13019,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> delPreset <PresetName> </b> (gilt für PTZ-CAM)</li> <br>
|
||||
<li><b> delPreset <PresetName> </b> (gilt für PTZ-CAM)</li> <br>
|
||||
|
||||
Löscht einen Preset "<PresetName>". Im FHEMWEB wird eine Drop-Down Liste der aktuell vorhandenen
|
||||
Presets angeboten.
|
||||
@ -12995,7 +13028,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> [enable|disable] </b> (gilt für CAM)</li> <br>
|
||||
<li><b> enable | disable </b> (gilt für CAM)</li> <br>
|
||||
|
||||
Aktviviert / deaktiviert eine Kamera. <br>
|
||||
Um eine Liste von Kameras oder alle Kameras (mit Regex) zum Beispiel um 21:46 zu <b>deaktivieren</b> / zu <b>aktivieren</b> zwei Beispiele mit at:
|
||||
@ -13024,7 +13057,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> expmode [day|night|auto] </b> (gilt für CAM)</li> <br>
|
||||
<li><b> expmode [day|night|auto] </b> (gilt für CAM)</li> <br>
|
||||
|
||||
Mit diesem Befehl kann der Belichtungsmodus der Kameras gesetzt werden. Dadurch wird z.B. das Verhalten der Kamera-LED's entsprechend gesteuert.
|
||||
Die erfolgreiche Umschaltung wird durch das Reading CamExposureMode ("get ... caminfoall") reportet. <br><br>
|
||||
@ -13037,7 +13070,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> extevent [ 1-10 ] </b> (gilt für SVS)</li> <br>
|
||||
<li><b> extevent [ 1-10 ] </b> (gilt für SVS)</li> <br>
|
||||
|
||||
Dieses Kommando triggert ein externes Ereignis (1-10) in der SVS.
|
||||
Die Aktionen, die dieses Ereignis auslöst, sind zuvor in dem Aktionsregeleditor der SVS einzustellen. Es stehen die Ereignisse
|
||||
@ -13050,7 +13083,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> goAbsPTZ [ X Y | up | down | left | right ] </b> (gilt für CAM)</li> <br>
|
||||
<li><b> goAbsPTZ [ X Y | up | down | left | right ] </b> (gilt für CAM)</li> <br>
|
||||
|
||||
Mit diesem Kommando wird eine PTZ-Kamera in Richtung einer wählbaren absoluten X/Y-Koordinate bewegt, oder zur maximalen Absolutposition in Richtung up/down/left/right.
|
||||
Die Option ist nur für Kameras verfügbar die das Reading "CapPTZAbs=true" (die Fähigkeit für PTZAbs-Aktionen) besitzen. Die Eigenschaften der Kamera kann mit "get <name> caminfoall" abgefragt werden.
|
||||
@ -13085,7 +13118,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> goPreset <Preset> </b> (gilt für CAM)</li> <br>
|
||||
<li><b> goPreset <Preset> </b> (gilt für CAM)</li> <br>
|
||||
|
||||
Mit diesem Kommando können PTZ-Kameras in eine vordefininierte Position bewegt werden. <br>
|
||||
Die Preset-Positionen müssen dazu zunächst in der Synology Surveillance Station angelegt worden sein. Das geschieht in der PTZ-Steuerung im IP-Kamera Setup.
|
||||
@ -13120,7 +13153,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> homeMode [on|off] </b> (gilt für SVS)</li> <br>
|
||||
<li><b> homeMode [on|off] </b> (gilt für SVS)</li> <br>
|
||||
|
||||
Schaltet den HomeMode der Surveillance Station ein bzw. aus.
|
||||
Informationen zum HomeMode sind in der <a href="https://www.synology.com/de-de/knowledgebase/Surveillance/help/SurveillanceStation/home_mode">Synology Onlinehilfe</a>
|
||||
@ -13129,7 +13162,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> motdetsc [camera|SVS|disable] </b> (gilt für CAM)</li> <br>
|
||||
<li><b> motdetsc [camera|SVS|disable] </b> (gilt für CAM)</li> <br>
|
||||
|
||||
Der Befehl "motdetsc" (steht für motion detection source) schaltet die Bewegungserkennung in den gewünschten Modus.
|
||||
Wird die Bewegungserkennung durch die Kamera / SVS ohne weitere Optionen eingestellt, werden die momentan gültigen Bewegungserkennungsparameter der
|
||||
@ -13177,8 +13210,8 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> move [ right | up | down | left | dir_X ] [Sekunden] </b> (gilt für CAM bis SVS Version 7.1)</li>
|
||||
<b> set <name> move [ right | upright | up | upleft | left | downleft | down | downright ] [Sekunden] </b> (gilt für CAM ab SVS Version 7.2) <br><br>
|
||||
<li><b> move [ right | up | down | left | dir_X ] [Sekunden] </b> (gilt für CAM bis SVS Version 7.1)</li>
|
||||
<b> move [ right | upright | up | upleft | left | downleft | down | downright ] [Sekunden] </b> (gilt für CAM ab SVS Version 7.2) <br><br>
|
||||
|
||||
Mit diesem Kommando wird eine kontinuierliche Bewegung der PTZ-Kamera gestartet. Neben den vier Grundrichtungen up/down/left/right stehen auch
|
||||
Zwischenwinkelmaße "dir_X" zur Verfügung. Die Feinheit dieser Graduierung ist von der Kamera abhängig und kann dem Reading "CapPTZDirections" entnommen werden. <br><br>
|
||||
@ -13201,14 +13234,14 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> off </b> (gilt für CAM)</li><br>
|
||||
<li><b> off </b> (gilt für CAM)</li><br>
|
||||
|
||||
Stoppt eine laufende Aufnahme.
|
||||
</ul>
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> on [<rectime>] <br>
|
||||
<li><b> on [<rectime>] <br>
|
||||
[recEmailTxt:"subject => <Betreff-Text>, body => <Mitteilung-Text>"] <br>
|
||||
[recTelegramTxt:"tbot => <TelegramBot-Device>, peers => [<peer1 peer2 ...>], subject => [<Betreff-Text>]"] <br>
|
||||
[recChatTxt:"chatbot => <SSChatBot-Device>, peers => [<peer1 peer2 ...>], subject => [<Betreff-Text>]"] <br> </b>
|
||||
@ -13282,7 +13315,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> optimizeParams [mirror:<value>] [flip:<value>] [rotate:<value>] [ntp:<value>]</b> (gilt für CAM)</li> <br>
|
||||
<li><b> optimizeParams [mirror:<value>] [flip:<value>] [rotate:<value>] [ntp:<value>]</b> (gilt für CAM)</li> <br>
|
||||
|
||||
Setzt eine oder mehrere Eigenschaften für die Kamera. Das Video kann gespiegelt (mirror), auf den Kopf gestellt (flip) oder
|
||||
gedreht (rotate) werden. Die jeweiligen Eigenschaften müssen von der Kamera unterstützt werden. Mit "ntp" wird der Zeitserver
|
||||
@ -13307,14 +13340,14 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> pirSensor [activate | deactivate] </b> (gilt für CAM)</li> <br>
|
||||
<li><b> pirSensor [activate | deactivate] </b> (gilt für CAM)</li> <br>
|
||||
|
||||
Aktiviert / deaktiviert den Infrarot-Sensor der Kamera (sofern die Kamera einen PIR-Sensor enthält).
|
||||
</ul>
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> runPatrol <Patrolname> </b> (gilt für CAM)</li> <br>
|
||||
<li><b> runPatrol <Patrolname> </b> (gilt für CAM)</li> <br>
|
||||
|
||||
Dieses Kommando startet die vordefinierterte Überwachungstour einer PTZ-Kamera. <br>
|
||||
Die Überwachungstouren müssen dazu zunächst in der Synology Surveillance Station angelegt worden sein.
|
||||
@ -13327,7 +13360,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> runView [live_fw | live_fw_hls | live_link | live_open [<room>] | lastrec_fw | lastrec_fw_MJPEG | lastrec_fw_MPEG4/H.264 | lastrec_open [<room>] | lastsnap_fw] </b> (gilt für CAM)</li> <br>
|
||||
<li><b> runView [live_fw | live_fw_hls | live_link | live_open [<room>] | lastrec_fw | lastrec_fw_MJPEG | lastrec_fw_MPEG4/H.264 | lastrec_open [<room>] | lastsnap_fw] </b> (gilt für CAM)</li> <br>
|
||||
|
||||
<ul>
|
||||
<table>
|
||||
@ -13415,7 +13448,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> setHome <PresetName> </b> (gilt für PTZ-CAM)</li> <br>
|
||||
<li><b> setHome <PresetName> </b> (gilt für PTZ-CAM)</li> <br>
|
||||
|
||||
Setzt die Home-Position der Kamera auf einen vordefinierten Preset "<PresetName>" oder auf die aktuell angefahrene
|
||||
Position.
|
||||
@ -13424,7 +13457,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> setPreset <PresetNummer> [<PresetName>] [<Speed>] </b> (gilt für PTZ-CAM)</li> <br>
|
||||
<li><b> setPreset <PresetNummer> [<PresetName>] [<Speed>] </b> (gilt für PTZ-CAM)</li> <br>
|
||||
|
||||
Setzt einen Preset mit dem Namen "<PresetName>" auf die aktuell angefahrene Position der Kamera. Optional kann die
|
||||
Geschwindigkeit angegeben werden (<Speed>). Ist kein PresetName angegeben, wird die PresetNummer als Name verwendet.
|
||||
@ -13434,7 +13467,15 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> smtpcredentials <user> <password> </b> (gilt für CAM)</li> <br>
|
||||
<li><b> setZoom < .++ | + | stop | - | --. > </b> (gilt für PTZ-CAM)</li> <br>
|
||||
|
||||
Stellt Bedienelemte für Zoomfunktionen zur Verfügung sofern die Kamera dieses Merkmal unterstützt.
|
||||
|
||||
</ul>
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> smtpcredentials <user> <password> </b> (gilt für CAM)</li> <br>
|
||||
|
||||
Setzt die Credentials für den Zugang zum Postausgangsserver wenn Email-Versand genutzt wird.
|
||||
|
||||
@ -13442,7 +13483,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> snap [<Anzahl>] [<Zeitabstand>] <br>
|
||||
<li><b> snap [<Anzahl>] [<Zeitabstand>] <br>
|
||||
[snapEmailTxt:"subject => <Betreff-Text>, body => <Mitteilung-Text>"] <br>
|
||||
[snapTelegramTxt:"tbot => <TelegramBot-Device>, peers => [<peer1 peer2 ...>], subject => [<Betreff-Text>]"] <br>
|
||||
[snapChatTxt:"chatbot => <SSChatBot-Device>, peers => [<peer1 peer2 ...>], subject => [<Betreff-Text>]"] <br>
|
||||
@ -13491,7 +13532,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> snapCams [<Anzahl>] [<Zeitabstand>] [CAM:"<Kamera>, <Kamera>, ..."]</b> (gilt für SVS)</li> <br>
|
||||
<li><b> snapCams [<Anzahl>] [<Zeitabstand>] [CAM:"<Kamera>, <Kamera>, ..."]</b> (gilt für SVS)</li> <br>
|
||||
|
||||
Ein oder mehrere Schnappschüsse der angegebenen Kamera-Devices werden ausgelöst. Sind keine Kamera-Devices angegeben,
|
||||
werden die Schnappschüsse bei allen in FHEM definierten Kamera-Devices getriggert.
|
||||
@ -13517,7 +13558,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> snapGallery [1-10] </b> (gilt für CAM)</li> <br>
|
||||
<li><b> snapGallery [1-10] </b> (gilt für CAM)</li> <br>
|
||||
|
||||
Der Befehl ist nur vorhanden wenn das Attribut "snapGalleryBoost=1" gesetzt wurde.
|
||||
Er erzeugt eine Ausgabe der letzten [x] Schnappschüsse ebenso wie <a href="#SSCamget">"get <name> snapGallery"</a>. Abweichend von "get" wird mit Attribut
|
||||
@ -13535,7 +13576,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> startTracking </b> (gilt für CAM mit Tracking Fähigkeit)</li> <br>
|
||||
<li><b> startTracking </b> (gilt für CAM mit Tracking Fähigkeit)</li> <br>
|
||||
|
||||
Startet Objekt Tracking der Kamera.
|
||||
Der Befehl ist nur vorhanden wenn die Surveillance Station die Fähigkeit der Kamera zum Objekt Tracking erkannt hat
|
||||
@ -13544,7 +13585,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> set <name> stopTracking </b> (gilt für CAM mit Tracking Fähigkeit)</li> <br>
|
||||
<li><b> stopTracking </b> (gilt für CAM mit Tracking Fähigkeit)</li> <br>
|
||||
|
||||
Stoppt Objekt Tracking der Kamera.
|
||||
Der Befehl ist nur vorhanden wenn die Surveillance Station die Fähigkeit der Kamera zum Objekt Tracking erkannt hat
|
||||
@ -13564,8 +13605,8 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
Drop-Down-Menü des jeweiligen Devices zur Auswahl zur Verfügung. <br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> caminfoall </b> (gilt für CAM/SVS)</li>
|
||||
<b> get <name> caminfo </b> (gilt für CAM) <br><br>
|
||||
<li><b> caminfoall </b> (gilt für CAM/SVS)</li>
|
||||
<b> caminfo </b> (gilt für CAM) <br><br>
|
||||
|
||||
Es werden SVS-Parameter und abhängig von der Art der Kamera (z.B. Fix- oder PTZ-Kamera) die verfügbaren Kamera-Eigenschaften
|
||||
ermittelt und als Readings zur Verfügung gestellt. <br>
|
||||
@ -13576,7 +13617,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> eventlist </b> (gilt für CAM)</li> <br>
|
||||
<li><b> eventlist </b> (gilt für CAM)</li> <br>
|
||||
|
||||
Es wird das <a href="#SSCamreadings">Reading</a> "CamEventNum" und "CamLastRec"
|
||||
aktualisiert, welches die Gesamtanzahl der registrierten Kameraevents und den Pfad / Namen der letzten Aufnahme enthält.
|
||||
@ -13594,14 +13635,14 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> homeModeState </b> (gilt für SVS)</li> <br>
|
||||
<li><b> homeModeState </b> (gilt für SVS)</li> <br>
|
||||
|
||||
HomeMode-Status der Surveillance Station wird abgerufen.
|
||||
</ul>
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> listLog [severity:<Loglevel>] [limit:<Zeilenzahl>] [match:<Suchstring>] </b> (gilt für SVS)</li> <br>
|
||||
<li><b> listLog [severity:<Loglevel>] [limit:<Zeilenzahl>] [match:<Suchstring>] </b> (gilt für SVS)</li> <br>
|
||||
|
||||
Ruft das Surveillance Station Log vom Synology Server ab. Ohne Angabe der optionalen Zusätze wird das gesamte Log abgerufen. <br>
|
||||
Es können alle oder eine Auswahl der folgenden Optionen angegeben werden: <br><br>
|
||||
@ -13632,14 +13673,14 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> listPresets </b> (gilt für PTZ-CAM)</li> <br>
|
||||
<li><b> listPresets </b> (gilt für PTZ-CAM)</li> <br>
|
||||
|
||||
Die für die Kamera gespeicherten Presets werden in einem Popup ausgegeben.
|
||||
</ul>
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> saveRecording [<Pfad>] </b> (gilt für CAM)</li> <br>
|
||||
<li><b> saveRecording [<Pfad>] </b> (gilt für CAM)</li> <br>
|
||||
|
||||
Die aktuell im Reading "CamLastRec" angegebene Aufnahme wird lokal als MP4-File gespeichert. Optional kann der Pfad zur
|
||||
Speicherung des Files im Befehl angegeben werden (default: modpath im global Device). <br>
|
||||
@ -13654,7 +13695,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> scanVirgin </b> (gilt für CAM/SVS)</li> <br>
|
||||
<li><b> scanVirgin </b> (gilt für CAM/SVS)</li> <br>
|
||||
|
||||
Wie mit get caminfoall werden alle Informationen der SVS und Kamera abgerufen. Allerdings wird in jedem Fall eine
|
||||
neue Session ID generiert (neues Login), die Kamera-ID neu ermittelt und es werden alle notwendigen API-Parameter neu
|
||||
@ -13663,7 +13704,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> snapGallery [1-10] </b> (gilt für CAM)</li> <br>
|
||||
<li><b> snapGallery [1-10] </b> (gilt für CAM)</li> <br>
|
||||
|
||||
Es wird ein Popup mit den letzten [x] Schnapschüssen erzeugt. Ist das <a href="#SSCamattr">Attribut</a> "snapGalleryBoost" gesetzt,
|
||||
werden die letzten Schnappschüsse (default 3) über Polling abgefragt und im Speicher gehalten. Das Verfahren hilft die Ausgabe zu beschleunigen,
|
||||
@ -13692,7 +13733,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> snapfileinfo </b> (gilt für CAM)</li> <br>
|
||||
<li><b> snapfileinfo </b> (gilt für CAM)</li> <br>
|
||||
|
||||
Es wird der Filename des letzten Schnapschusses ermittelt. Der Befehl wird implizit mit <b>"get <name> snap"</b>
|
||||
ausgeführt.
|
||||
@ -13700,7 +13741,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> snapinfo </b> (gilt für CAM)</li> <br>
|
||||
<li><b> snapinfo </b> (gilt für CAM)</li> <br>
|
||||
|
||||
Es werden Schnappschussinformationen gelesen. Hilfreich wenn Schnappschüsse nicht durch SSCam, sondern durch die Bewegungserkennung der Kamera
|
||||
oder Surveillance Station erzeugt werden.
|
||||
@ -13708,7 +13749,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> stmUrlPath </b> (gilt für CAM)</li> <br>
|
||||
<li><b> stmUrlPath </b> (gilt für CAM)</li> <br>
|
||||
|
||||
Mit diesem Kommando wird der aktuelle Streamkey der Kamera abgerufen und das Reading mit dem Key-Wert gefüllt.
|
||||
Dieser Streamkey kann verwendet werden um eigene Aufrufe eines Livestreams aufzubauen (siehe Beispiel).
|
||||
@ -13736,21 +13777,21 @@ http(s)://<hostname><port>/webapi/entry.cgi?api=SYNO.SurveillanceSta
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> storedCredentials </b> (gilt für CAM/SVS)</li> <br>
|
||||
<li><b> storedCredentials </b> (gilt für CAM/SVS)</li> <br>
|
||||
|
||||
Die gespeicherten Anmeldeinformationen (Credentials) werden in einem Popup als Klartext angezeigt.
|
||||
</ul>
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> svsinfo </b> (gilt für CAM/SVS)</li> <br>
|
||||
<li><b> svsinfo </b> (gilt für CAM/SVS)</li> <br>
|
||||
|
||||
Ermittelt allgemeine Informationen zur installierten SVS-Version und andere Eigenschaften. <br>
|
||||
</ul>
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<li><b> get <name> versionNotes [hints | rel | <key>] </b> (gilt für CAM/SVS)</li> <br>
|
||||
<li><b> versionNotes [hints | rel | <key>] </b> (gilt für CAM/SVS)</li> <br>
|
||||
|
||||
Zeigt Release Informationen und/oder Hinweise zum Modul an. Es sind nur Release Informationen mit Bedeutung für den
|
||||
Modulnutzer enthalten. <br>
|
||||
|
@ -1,9 +1,9 @@
|
||||
########################################################################################################################
|
||||
# $Id: 49_SSCamSTRM.pm 20198 2019-09-19 17:14:20Z DS_Starter $
|
||||
# $Id: 49_SSCamSTRM.pm 20478 2019-11-08 20:53:30Z DS_Starter $
|
||||
#########################################################################################################################
|
||||
# 49_SSCamSTRM.pm
|
||||
#
|
||||
# (c) 2018-2019 by Heiko Maaz
|
||||
# (c) 2018-2020 by Heiko Maaz
|
||||
# forked from 98_weblink.pm by Rudolf König
|
||||
# e-mail: Heiko dot Maaz at t-online dot de
|
||||
#
|
||||
@ -27,14 +27,68 @@
|
||||
#
|
||||
#########################################################################################################################
|
||||
|
||||
package main;
|
||||
package FHEM::SSCamSTRM; ## no critic 'package';
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use GPUtils qw(GP_Import GP_Export); # wird für den Import der FHEM Funktionen aus der fhem.pl benötigt
|
||||
use Time::HiRes qw(gettimeofday);
|
||||
eval "use FHEM::Meta;1" or my $modMetaAbsent = 1;
|
||||
|
||||
# Run before module compilation
|
||||
BEGIN {
|
||||
# Import from main::
|
||||
GP_Import(
|
||||
qw(
|
||||
AnalyzePerlCommand
|
||||
AttrVal
|
||||
defs
|
||||
devspec2array
|
||||
FmtDateTime
|
||||
InternalTimer
|
||||
IsDisabled
|
||||
Log3
|
||||
modules
|
||||
readingsSingleUpdate
|
||||
readingsBulkUpdate
|
||||
readingsBulkUpdateIfChanged
|
||||
readingsBeginUpdate
|
||||
readingsDelete
|
||||
readingsEndUpdate
|
||||
ReadingsVal
|
||||
RemoveInternalTimer
|
||||
readingFnAttributes
|
||||
sortTopicNum
|
||||
FW_cmd
|
||||
FW_directNotify
|
||||
FW_wname
|
||||
SSCam_ptzpanel
|
||||
SSCam_StreamDev
|
||||
SSCam_getclhash
|
||||
)
|
||||
);
|
||||
|
||||
# Export to main context with different name
|
||||
# my $pkg = caller(0);
|
||||
# my $main = $pkg;
|
||||
# $main =~ s/^(?:.+::)?([^:]+)$/main::$1\_/gx;
|
||||
# for (@_) {
|
||||
# *{ $main . $_ } = *{ $pkg . '::' . $_ };
|
||||
# }
|
||||
GP_Export(
|
||||
qw(
|
||||
Initialize
|
||||
)
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
|
||||
# Versions History intern
|
||||
our %SSCamSTRM_vNotesIntern = (
|
||||
my %vNotesIntern = (
|
||||
"2.11.0" => "24.06.2020 switch to packages, changes according to PBP ",
|
||||
"2.10.2" => "08.11.2019 undef \$link in FwFn / streamAsHtml to save memory ",
|
||||
"2.10.1" => "18.10.2019 set parentState initial in Define, Forum: https://forum.fhem.de/index.php/topic,45671.msg985136.html#msg985136 ",
|
||||
"2.10.0" => "21.09.2019 new attribute hideAudio ",
|
||||
"2.9.0" => "19.09.2019 new attribute noLink ",
|
||||
"2.8.0" => "09.09.2019 new attribute hideButtons ",
|
||||
@ -42,7 +96,7 @@ our %SSCamSTRM_vNotesIntern = (
|
||||
"2.6.0" => "21.06.2019 GetFn -> get <name> html ",
|
||||
"2.5.0" => "27.03.2019 add Meta.pm support ",
|
||||
"2.4.0" => "24.02.2019 support for \"genericStrmHtmlTag\" in streaming device MODEL generic ",
|
||||
"2.3.0" => "04.02.2019 SSCamSTRM_Rename / SSCamSTRM_Copy added, Streaming device can now be renamed or copied ",
|
||||
"2.3.0" => "04.02.2019 Rename / Copy added, Streaming device can now be renamed or copied ",
|
||||
"2.2.1" => "19.12.2018 commandref revised ",
|
||||
"2.2.0" => "13.12.2018 load sscam_hls.js, sscam_tooltip.js from pgm2 for HLS Streaming support and tooltips ",
|
||||
"2.1.0" => "11.12.2018 switch \"popupStream\" from get to set ",
|
||||
@ -65,20 +119,16 @@ our %SSCamSTRM_vNotesIntern = (
|
||||
"0.1.0" => "10.06.2018 initial Version "
|
||||
);
|
||||
|
||||
# Standardvariablen und Forward-Declaration
|
||||
sub SSCam_ptzpanel(@);
|
||||
sub SSCam_StreamDev($$$;$);
|
||||
sub SSCam_getclhash($;$$);
|
||||
|
||||
################################################################
|
||||
sub SSCamSTRM_Initialize($) {
|
||||
my ($hash) = @_;
|
||||
sub Initialize {
|
||||
my $hash = shift;
|
||||
|
||||
my $fwd = join(",",devspec2array("TYPE=FHEMWEB:FILTER=STATE=Initialized"));
|
||||
|
||||
$hash->{DefFn} = "SSCamSTRM_Define";
|
||||
$hash->{SetFn} = "SSCamSTRM_Set";
|
||||
$hash->{GetFn} = "SSCamSTRM_Get";
|
||||
$hash->{DefFn} = \&Define;
|
||||
$hash->{SetFn} = \&Set;
|
||||
$hash->{GetFn} = \&Get;
|
||||
$hash->{AttrList} = "autoRefresh:selectnumbers,120,0.2,1800,0,log10 ".
|
||||
"autoRefreshFW:$fwd ".
|
||||
"disable:1,0 ".
|
||||
@ -95,13 +145,13 @@ sub SSCamSTRM_Initialize($) {
|
||||
"popupStreamFW:$fwd ".
|
||||
"popupStreamTo:OK,1,2,3,4,5,6,7,8,9,10,15,20,25,30,40,50,60 ".
|
||||
"ptzButtonSize:selectnumbers,50,5,100,0,lin ".
|
||||
"ptzButtonSizeFTUI:selectnumbers,50,5,100,0,lin ".
|
||||
"ptzButtonSizeFTUI:selectnumbers,50,5,200,0,lin ".
|
||||
$readingFnAttributes;
|
||||
$hash->{RenameFn} = "SSCamSTRM_Rename";
|
||||
$hash->{CopyFn} = "SSCamSTRM_Copy";
|
||||
$hash->{FW_summaryFn} = "SSCamSTRM_FwFn";
|
||||
$hash->{FW_detailFn} = "SSCamSTRM_FwFn";
|
||||
$hash->{AttrFn} = "SSCamSTRM_Attr";
|
||||
$hash->{RenameFn} = \&Rename;
|
||||
$hash->{CopyFn} = \&Copy;
|
||||
$hash->{FW_summaryFn} = \&FwFn;
|
||||
$hash->{FW_detailFn} = \&FwFn;
|
||||
$hash->{AttrFn} = \&Attr;
|
||||
$hash->{FW_hideDisplayName} = 1; # Forum 88667
|
||||
# $hash->{FW_addDetailToSummary} = 1;
|
||||
# $hash->{FW_atPageEnd} = 1; # wenn 1 -> kein Longpoll ohne informid in HTML-Tag
|
||||
@ -112,7 +162,7 @@ return;
|
||||
}
|
||||
|
||||
################################################################
|
||||
sub SSCamSTRM_Define($$) {
|
||||
sub Define {
|
||||
my ($hash, $def) = @_;
|
||||
my ($name, $type, $link) = split("[ \t]+", $def, 3);
|
||||
|
||||
@ -127,15 +177,16 @@ sub SSCamSTRM_Define($$) {
|
||||
$hash->{LINK} = $link;
|
||||
|
||||
# Versionsinformationen setzen
|
||||
SSCamSTRM_setVersionInfo($hash);
|
||||
setVersionInfo($hash);
|
||||
|
||||
readingsSingleUpdate($hash,"state", "initialized", 1); # Init für "state"
|
||||
readingsSingleUpdate($hash,"state", "initialized", 1); # Init für "state"
|
||||
readingsSingleUpdate($hash,"parentState", "initialized", 1); # Init für "parentState" Forum: https://forum.fhem.de/index.php/topic,45671.msg985136.html#msg985136
|
||||
|
||||
return undef;
|
||||
}
|
||||
|
||||
################################################################
|
||||
sub SSCamSTRM_Rename($$) {
|
||||
sub Rename {
|
||||
my ($new_name,$old_name) = @_;
|
||||
my $hash = $defs{$new_name};
|
||||
|
||||
@ -149,7 +200,7 @@ return;
|
||||
# SSCamSTRM Copy
|
||||
# passt die Deviceparameter bei kopierten Device an
|
||||
###############################################################
|
||||
sub SSCamSTRM_Copy($$) {
|
||||
sub Copy {
|
||||
my ($old_name,$new_name) = @_;
|
||||
my $hash = $defs{$new_name};
|
||||
|
||||
@ -159,29 +210,8 @@ sub SSCamSTRM_Copy($$) {
|
||||
return;
|
||||
}
|
||||
|
||||
###############################################################
|
||||
# SSCamSTRM Get
|
||||
###############################################################
|
||||
sub SSCamSTRM_Get($@) {
|
||||
my ($hash, @a) = @_;
|
||||
return "\"get X\" needs at least an argument" if ( @a < 2 );
|
||||
my $name = shift @a;
|
||||
my $cmd = shift @a;
|
||||
|
||||
if ($cmd eq "html") {
|
||||
return SSCamSTRM_AsHtml($hash);
|
||||
}
|
||||
|
||||
if ($cmd eq "ftui") {
|
||||
return SSCamSTRM_AsHtml($hash,"ftui");
|
||||
}
|
||||
|
||||
return undef;
|
||||
return "Unknown argument $cmd, choose one of html:noArg";
|
||||
}
|
||||
|
||||
################################################################
|
||||
sub SSCamSTRM_Set($@) {
|
||||
sub Set {
|
||||
my ($hash, @a) = @_;
|
||||
return "\"set X\" needs at least an argument" if ( @a < 2 );
|
||||
my $name = $a[0];
|
||||
@ -236,8 +266,29 @@ sub SSCamSTRM_Set($@) {
|
||||
return;
|
||||
}
|
||||
|
||||
###############################################################
|
||||
# SSCamSTRM Get
|
||||
###############################################################
|
||||
sub Get {
|
||||
my ($hash, @a) = @_;
|
||||
return "\"get X\" needs at least an argument" if ( @a < 2 );
|
||||
my $name = shift @a;
|
||||
my $cmd = shift @a;
|
||||
|
||||
if ($cmd eq "html") {
|
||||
return streamAsHtml($hash);
|
||||
}
|
||||
|
||||
if ($cmd eq "ftui") {
|
||||
return streamAsHtml($hash,"ftui");
|
||||
}
|
||||
|
||||
return undef;
|
||||
return "Unknown argument $cmd, choose one of html:noArg";
|
||||
}
|
||||
|
||||
################################################################
|
||||
sub SSCamSTRM_Attr($$$$) {
|
||||
sub Attr {
|
||||
my ($cmd,$name,$aName,$aVal) = @_;
|
||||
my $hash = $defs{$name};
|
||||
my ($do,$val);
|
||||
@ -270,9 +321,9 @@ return undef;
|
||||
}
|
||||
|
||||
################################################################
|
||||
sub SSCamSTRM_FwFn($;$$$) {
|
||||
my ($FW_wname, $d, $room, $pageHash) = @_; # pageHash is set for summaryFn.
|
||||
my $hash = $defs{$d};
|
||||
sub FwFn {
|
||||
my ($FW_wname, $name, $room, $pageHash) = @_; # pageHash is set for summaryFn.
|
||||
my $hash = $defs{$name};
|
||||
my $link = $hash->{LINK};
|
||||
|
||||
RemoveInternalTimer($hash);
|
||||
@ -281,9 +332,9 @@ sub SSCamSTRM_FwFn($;$$$) {
|
||||
$link = AnalyzePerlCommand(undef, $link) if($link =~ m/^{(.*)}$/s);
|
||||
|
||||
my $ret = "";
|
||||
if(IsDisabled($d)) {
|
||||
if(AttrVal($d,"hideDisplayName",0)) {
|
||||
$ret .= "Stream-device <a href=\"/fhem?detail=$d\">$d</a> is disabled";
|
||||
if(IsDisabled($name)) {
|
||||
if(AttrVal($name,"hideDisplayName",0)) {
|
||||
$ret .= "Stream-device <a href=\"/fhem?detail=$name\">$name</a> is disabled";
|
||||
} else {
|
||||
$ret .= "<html>Stream-device is disabled</html>";
|
||||
}
|
||||
@ -292,17 +343,19 @@ sub SSCamSTRM_FwFn($;$$$) {
|
||||
}
|
||||
|
||||
# Autorefresh nur des aufrufenden FHEMWEB-Devices
|
||||
my $al = AttrVal($d, "autoRefresh", 0);
|
||||
my $al = AttrVal($name, "autoRefresh", 0);
|
||||
if($al) {
|
||||
InternalTimer(gettimeofday()+$al, "SSCamSTRM_refresh", $hash, 0);
|
||||
Log3($d, 5, "$d - next start of autoRefresh: ".FmtDateTime(gettimeofday()+$al));
|
||||
InternalTimer(gettimeofday()+$al, "FHEM::SSCamSTRM::webRefresh", $hash, 0);
|
||||
Log3($name, 5, "$name - next start of autoRefresh: ".FmtDateTime(gettimeofday()+$al));
|
||||
}
|
||||
|
||||
undef $link;
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
################################################################
|
||||
sub SSCamSTRM_refresh($) {
|
||||
sub webRefresh {
|
||||
my ($hash) = @_;
|
||||
my $d = $hash->{NAME};
|
||||
|
||||
@ -312,7 +365,7 @@ sub SSCamSTRM_refresh($) {
|
||||
|
||||
my $al = AttrVal($d, "autoRefresh", 0);
|
||||
if($al) {
|
||||
InternalTimer(gettimeofday()+$al, "SSCamSTRM_refresh", $hash, 0);
|
||||
InternalTimer(gettimeofday()+$al, "FHEM::SSCamSTRM::webRefresh", $hash, 0);
|
||||
Log3($d, 5, "$d - next start of autoRefresh: ".FmtDateTime(gettimeofday()+$al));
|
||||
} else {
|
||||
RemoveInternalTimer($hash);
|
||||
@ -325,28 +378,28 @@ return;
|
||||
# Versionierungen des Moduls setzen
|
||||
# Die Verwendung von Meta.pm und Packages wird berücksichtigt
|
||||
#############################################################################################
|
||||
sub SSCamSTRM_setVersionInfo($) {
|
||||
sub setVersionInfo {
|
||||
my ($hash) = @_;
|
||||
my $name = $hash->{NAME};
|
||||
|
||||
my $v = (sortTopicNum("desc",keys %SSCamSTRM_vNotesIntern))[0];
|
||||
my $v = (sortTopicNum("desc",keys %vNotesIntern))[0];
|
||||
my $type = $hash->{TYPE};
|
||||
$hash->{HELPER}{PACKAGE} = __PACKAGE__;
|
||||
$hash->{HELPER}{VERSION} = $v;
|
||||
|
||||
if($modules{$type}{META}{x_prereqs_src} && !$hash->{HELPER}{MODMETAABSENT}) {
|
||||
# META-Daten sind vorhanden
|
||||
$modules{$type}{META}{version} = "v".$v; # Version aus META.json überschreiben, Anzeige mit {Dumper $modules{SMAPortal}{META}}
|
||||
if($modules{$type}{META}{x_version}) { # {x_version} ( nur gesetzt wenn $Id: 49_SSCamSTRM.pm 20198 2019-09-19 17:14:20Z DS_Starter $ im Kopf komplett! vorhanden )
|
||||
$modules{$type}{META}{x_version} =~ s/1.1.1/$v/g;
|
||||
$modules{$type}{META}{version} = "v".$v; # Version aus META.json überschreiben, Anzeige mit {Dumper $modules{SSCamSTRM}{META}}
|
||||
if($modules{$type}{META}{x_version}) { # {x_version} ( nur gesetzt wenn $Id: 49_SSCamSTRM.pm 20478 2019-11-08 20:53:30Z DS_Starter $ im Kopf komplett! vorhanden )
|
||||
$modules{$type}{META}{x_version} =~ s/1\.1\.1/$v/gx;
|
||||
} else {
|
||||
$modules{$type}{META}{x_version} = $v;
|
||||
}
|
||||
return $@ unless (FHEM::Meta::SetInternals($hash)); # FVERSION wird gesetzt ( nur gesetzt wenn $Id: 49_SSCamSTRM.pm 20198 2019-09-19 17:14:20Z DS_Starter $ im Kopf komplett! vorhanden )
|
||||
return $@ unless (FHEM::Meta::SetInternals($hash)); # FVERSION wird gesetzt ( nur gesetzt wenn $Id: 49_SSCamSTRM.pm 20478 2019-11-08 20:53:30Z DS_Starter $ im Kopf komplett! vorhanden )
|
||||
if(__PACKAGE__ eq "FHEM::$type" || __PACKAGE__ eq $type) {
|
||||
# es wird mit Packages gearbeitet -> Perl übliche Modulversion setzen
|
||||
# mit {<Modul>->VERSION()} im FHEMWEB kann Modulversion abgefragt werden
|
||||
use version 0.77; our $VERSION = FHEM::Meta::Get( $hash, 'version' );
|
||||
use version 0.77; our $VERSION = FHEM::Meta::Get( $hash, 'version' ); ## no critic 'VERSION'
|
||||
}
|
||||
} else {
|
||||
# herkömmliche Modulstruktur
|
||||
@ -359,7 +412,7 @@ return;
|
||||
################################################################
|
||||
# Grafik als HTML zurück liefern (z.B. für Widget)
|
||||
################################################################
|
||||
sub SSCamSTRM_AsHtml($;$) {
|
||||
sub streamAsHtml {
|
||||
my ($hash,$ftui) = @_;
|
||||
my $name = $hash->{NAME};
|
||||
my $link = $hash->{LINK};
|
||||
@ -385,6 +438,7 @@ sub SSCamSTRM_AsHtml($;$) {
|
||||
}
|
||||
|
||||
$ret .= "</html>";
|
||||
undef $link;
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user