2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-10 03:06:37 +00:00

49_SSCam: 8.5.0, SVS device has "snapCams" command

git-svn-id: https://svn.fhem.de/fhem/trunk@18304 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
nasseeder1 2019-01-17 20:40:56 +00:00
parent 2cb83def14
commit 125a727712
3 changed files with 489 additions and 218 deletions

View File

@ -1,5 +1,8 @@
# 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.
- feature: 49_SSCam: 8.5.0, SVS device has "snapCams" command to take
snapshots of all cameras and optionally send them
alltogether by Email
- change: 59_Weather: Codestyle, add attribut model to API
- bugfix: 73_AutoShuttersControl: fix drive up then roommate asleep
- bugfix: DarkSkyAPI: fix uninitialized value in localtime at line 430

View File

@ -47,6 +47,7 @@ use Encode;
# Versions History intern
our %SSCam_vNotesIntern = (
"8.5.0" => "17.01.2019 SVS device has \"snapCams\" command ",
"8.4.5" => "15.01.2019 fix event generation after request snapshots ",
"8.4.4" => "14.01.2019 change: generate event of every snapfile,id etc. if snap was called with arguments, Forum:#45671 #msg887484 ",
"8.4.3" => "11.01.2019 fix blocking Active-Token if snap was done with arguments and snapEmailTxt not set, Forum:#45671 #msg885475 ",
@ -117,6 +118,8 @@ our %SSCam_vNotesIntern = (
# Versions History extern
our %SSCam_vNotesExtern = (
"8.5.0" => "17.01.2019 SVS device has \"snapCams\" command. Now are able to take snapshots of all defined cameras and may ".
"optionally send them alltogether by Email.",
"8.4.0" => "07.01.2019 Command snap is extended to syntax \"snap [number] [lag] [snapEmailTxt:\"subject => <Betreff-Text>, body => ".
"<Mitteilung-Text>\"]\". Now you are able to trigger several number of ".
"snapshots by only one snap-command. The triggered snapshots can be shipped alltogether with the internal email client. ",
@ -214,42 +217,6 @@ our %SSCam_vNotesExtern = (
"1.0.0" => "12.12.2015 initial, changed completly to HttpUtils_NonblockingGet "
);
# Hint Hash en
our %SSCam_vHintsExt_en = (
"6" => "There are some Icons in directory www/images/sscam available for SSCam. Thereby the system can use the icons please do: <br>".
"- in FHEMWEB device attribute <b>iconPath</b> complete with \"sscam\", e.g.: attr WEB iconPath default:fhemSVG:openautomation:sscam <br>".
"After that execute \"rereadicons\" or restart FHEM. ",
"5" => "Find more Informations about manage users and the appropriate privilege profiles in ".
"<a href=\"https://www.synology.com/en-global/knowledgebase/Surveillance/help/SurveillanceStation/user\">Surveillance Station online help</a> ",
"4" => "The message Meldung \"WARNING - The current/simulated SVS-version ... may be incompatible with SSCam version...\" means that ".
"the used SSCam version was currently not tested with the installed version of Synology Surveillance Station (Reading \"SVSversion\"). ".
"The compatible SVS-Version is printed out in the Internal COMPATIBILITY.\n".
"<b>Actions:</b> At first please update your SSCam version. If the message does appear furthermore, please inform the SSCam Maintainer. ".
"To ignore this message temporary, you may reduce the verbose level of your SSCam device. ",
"3" => "Link to SSCam <a href=\"https://fhem.de/commandref.html#SSCam\">english commandRef</a> ",
"2" => "You can create own PTZ-control icons with a template available in SVN which can be downloaded here: <a href=\"https://svn.fhem.de/trac/browser/trunk/fhem/contrib/sscam\">contrib/sscam/black_btn_CAM_Template.pdn</a>.\n".
"This template can be edited with Paint.Net for example. ",
"1" => "Some helpful <a href=\"https://wiki.fhem.de/wiki/SSCAM_-_Steuerung_von_Kameras_in_Synology_Surveillance_Station\">FHEM-Wiki</a> notes"
);
# Hint Hash de
our %SSCam_vHintsExt_de = (
"6" => "Für SSCam wird ein Satz Icons im Verzeichnis www/images/sscam zur Verfügung gestellt. Damit das System sie findet bitte setzen: <br>".
"- im FHEMWEB Device Attribut <b>iconPath</b> um \"sscam\" ergänzen, z.B.: attr WEB iconPath default:fhemSVG:openautomation:sscam <br>".
"Danach ein \"rereadicons\" bzw. einen FHEM restart ausführen. ",
"5" => "Informationen zum Management von Usern und entsprechenden Rechte-Profilen sind in der ".
"<a href=\"https://www.synology.com/de-de/knowledgebase/Surveillance/help/SurveillanceStation/user\">Surveillance Station Online-Hilfe</a> zu finden.",
"4" => "Die Meldung \"WARNING - The current/simulated SVS-version ... may be incompatible with SSCam version...\" ist ein Hinweis darauf, dass ".
"die eingesetzte SSCam Version noch nicht mit der verwendeten Version von Synology Surveillance Station (Reading \"SVSversion\") getestet ".
"wurde. Die kompatible SVS-Version ist im Internal COMPATIBILITY ersichtlich.\n".
"<b>Maßnahmen:</b> Bitte SSCam zunächst updaten. Sollte die Meldung weiterhin auftreten, bitte den SSCam Maintainer informieren. Zur ".
"vorübergehenden Ignorierung kann der verbose Level des SSCam-Devices entsprechend reduziert werden. ",
"3" => "Link zur deutschen SSCam <a href=\"https://fhem.de/commandref_DE.html#SSCam\">commandRef</a> ",
"2" => "Zur Erstellung eigener PTZ-Steuericons gibt es eine Vorlage im SVN die hier <a href=\"https://svn.fhem.de/trac/browser/trunk/fhem/contrib/sscam\">contrib/sscam/black_btn_CAM_Template.pdn</a> heruntergeladen werden kann.\n".
"Diese Vorlage kann zum Beispiel mit Paint.Net bearbeitet werden. ",
"1" => "Hilfreiche Hinweise zu SSCam im <a href=\"https://wiki.fhem.de/wiki/SSCAM_-_Steuerung_von_Kameras_in_Synology_Surveillance_Station\">FHEM-Wiki</a>"
);
# getestete SVS-Version
my $compstat = "8.2";
@ -333,7 +300,7 @@ our %SSCam_ttips_de = (
ttlsnaprun => "Wiedergabe des letzten Schnappschusses von Kamera &quot;§NAME§&quot;.",
);
# Standardvariablen
# Standardvariablen und Forward-Deklaration
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
@ -343,6 +310,9 @@ use vars qw($FW_room); # currently selected room
use vars qw($FW_detail); # currently selected device for detail view
use vars qw($FW_wname); # Web instance
sub FW_pH(@); # add href
use vars qw(%SSCam_vHintsExt_en);
use vars qw(%SSCam_vHintsExt_de);
################################################################
sub SSCam_Initialize($) {
@ -718,6 +688,7 @@ sub SSCam_Set($@) {
"motdetsc:disable,camera,SVS ".
"snap ".
(AttrVal($name, "snapGalleryBoost",0)?(AttrVal($name,"snapGalleryNumber",undef) || AttrVal($name,"snapGalleryBoost",0))?"snapGallery:noArg ":"snapGallery:$SSCAM_snum ":" ").
"createReadingsGroup ".
"createSnapGallery:noArg ".
"createStreamDev:generic,hls,mjpeg,switched ".
((ReadingsVal("$name", "CapPTZPan", "false") ne "false") ? "createPTZcontrol:noArg ": "").
@ -725,7 +696,6 @@ sub SSCam_Set($@) {
"disable:noArg ".
"optimizeParams ".
((ReadingsVal("$name", "CapPIR", "false") ne "false") ? "pirSensor:activate,deactivate ": "").
"createReadingsGroup ".
"runView:live_fw".$hlslfw."live_link,live_open,lastrec_fw,lastrec_fw_MJPEG,lastrec_fw_MPEG4/H.264,lastrec_open,lastsnap_fw ".
((ReadingsVal("$name", "CapPTZPan", "false") ne "false") ? "setPreset ": "").
((ReadingsVal("$name", "CapPTZPan", "false") ne "false") ? "setHome:---currentPosition---,".ReadingsVal("$name","Presets","")." " : "").
@ -742,9 +712,11 @@ sub SSCam_Set($@) {
$setlist = "Unknown argument $opt, choose one of ".
"autocreateCams:noArg ".
"credentials ".
"smtpcredentials ".
"createReadingsGroup ".
"extevent:1,2,3,4,5,6,7,8,9,10 ".
($hash->{HELPER}{APIHMMAXVER}?"homeMode:on,off ": "");
($hash->{HELPER}{APIHMMAXVER}?"homeMode:on,off ": "").
"snapCams ";
}
if ($opt eq "credentials") {
@ -796,14 +768,15 @@ sub SSCam_Set($@) {
my ($num,$lag,$ncount) = (1,2,1);
my $emtxt = "";
if($prop && $prop =~ /[\d+]/) { # Anzahl der Schnappschüsse zu triggern (default: 1)
if($prop && $prop =~ /^\d+$/) { # Anzahl der Schnappschüsse zu triggern (default: 1)
$num = $prop;
$ncount = $prop;
}
if($prop1 && $prop1 =~ /[\d+]/) { # Zeit zwischen zwei Schnappschüssen (default: 2 Sekunden)
if($prop1 && $prop1 =~ /^\d+$/) { # Zeit zwischen zwei Schnappschüssen (default: 2 Sekunden)
$lag = $prop1;
}
Log3($name, 4, "$name - Trigger snapshots - Number: $num, Lag: $lag");
$hash->{HELPER}{SNAPBYSTRMDEV} = 1 if ($prop2 && $prop2 =~ /STRM/); # $prop wird mitgegeben durch Snap by SSCamSTRM-Device
my $at = join(" ",@a);
@ -819,6 +792,62 @@ sub SSCam_Set($@) {
}
SSCam_camsnap("$name:$num:$lag:$ncount:$emtxt");
} elsif ($opt eq "snapCams" && !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\"";}
my ($num,$lag,$ncount) = (1,2,1);
my $cams = "all";
my $emtxt = '';
if($prop && $prop =~ /^\d+$/) { # Anzahl der Schnappschüsse zu triggern (default: 1)
$num = $prop;
$ncount = $prop;
}
if($prop1 && $prop1 =~ /^\d+$/) { # Zeit zwischen zwei Schnappschüssen (default: 2 Sekunden)
$lag = $prop1;
}
my $at = join(" ",@a);
if($at =~ /CAM:/i) {
$at =~ m/.*CAM:"(.*)".*/i;
$cams = $1;
$cams =~ s/\s//g;
}
my @camdvs;
my %snapac = (); # Schnappschuss Hash für alle Cams -> Schnappschudaten sollen hinein
if($cams eq "all") { # alle nicht disabled Kameras auslösen, sonst nur die gewählten
@camdvs = devspec2array("TYPE=SSCam:FILTER=MODEL!=SVS");
foreach (@camdvs) {
if($defs{$_} && !IsDisabled($_)) {
$snapac{$_} = "";
}
}
} else {
@camdvs = split(",",$cams);
foreach (@camdvs) {
if($defs{$_} && !IsDisabled($_)) {
$snapac{$_} = "";
}
}
}
return "No valid camera devices are specified for trigger snapshots" if(!%snapac);
my $asref = \%snapac;
$hash->{HELPER}{ALLSNAPREF} = $asref;
my ($csnap,$cmail) = ("","");
foreach my $key (keys%{$asref}) {
if(!AttrVal($key, "snapEmailTxt", "")) {
delete $asref->{$key}; # Snap dieser Kamera auslösen aber nicht senden
$csnap .= $csnap?", $key":$key;
} else {
$cmail .= $cmail?", $key":$key;
}
SSCam_camsnap("$key:$num:$lag:$ncount:$emtxt");
}
Log3($name, 4, "$name - Trigger snapshots by SVS - Number: $num, Lag: $lag, Snap only: \"$csnap\", Snap and send: \"$cmail\" ");
} elsif ($opt eq "startTracking" && 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->{HELPER}{APIPTZMAXVER} < 5) {return "Function \"$opt\" needs a higher version of Surveillance Station";}
@ -5004,7 +5033,7 @@ sub SSCam_camop_parse ($) {
##### eine Schnapschussgalerie soll angezeigt oder als Bulk versendet werden #####
if($OpMode eq "getsnapgallery") {
if($hash->{HELPER}{CANSENDSNAP}) {
# es sollen Schnappschüsse versendet werden
# es sollen die Anzahl "$hash->{HELPER}{SNAPNUM}" Schnappschüsse versendet werden
my $i = 0;
my $sn = 0;
my %sendsnaps = (); # Schnappschuss Hash zum Versand wird leer erstellt
@ -5025,16 +5054,14 @@ sub SSCam_camop_parse ($) {
$createdTm = "$d[2].$d[1].$d[0] / $t[1]";
$sendsnaps{$sn}{createdTm} = $createdTm;
$sendsnaps{$sn}{fileName} = $fileName;
$sendsnaps{$sn}{imageData} = $imageData;
$sendsnaps{$sn}{".imageData"} = $imageData;
Log3($name,4, "$name - Snap '$sn' added to send gallery hash: ID => $sendsnaps{$sn}{snapid}, File => $sendsnaps{$sn}{fileName}, Created => $sendsnaps{$sn}{createdTm}");
$sn += 1;
$i += 1;
}
# Schnappschuß soll als Email versendet werden
if(AttrVal($name, "snapEmailTxt", "")) {
# prüfen ob Schnappschuß als Email versendet werden soll
SSCam_prepareSendEmail ($hash, $OpMode, \%sendsnaps);
}
} else {
# es soll eine Schnappschußgalerie bereitgestellt (Attr snapGalleryBoost=1) bzw. gleich angezeigt
@ -6282,7 +6309,7 @@ return $bool;
}
###############################################################################
# Schnappschußgalerie abrufen (snapGalleryBoost) o. nur Info des letzten Snaps
# Ermittlung Anzahl und Größe der abzurufenden Schnappschußdaten
###############################################################################
sub SSCam_snaplimsize ($) {
my ($hash)= @_;
@ -7209,9 +7236,49 @@ sub SSCam_prepareSendEmail ($$;$) {
my ($hash, $OpMode, $data) = @_;
my $name = $hash->{NAME};
my $calias = AttrVal($name,"alias",$hash->{CAMNAME}); # Alias der Kamera wenn gesetzt oder Originalname aus SVS
my ($ret,$sdat,$fname,$snapid,$lsnaptime) = ('','','','','');
my $snapnum = 1;
my ($ret,$sdat,$fname,$snapid,$lsnaptime,$tac) = ('','','','','','');
### prüfen ob Schnappschnüsse aller Kameras durch ein SVS-Device angefordert wurde,
### Bilddaten werden erst zum Versand weitergeleitet wenn Schnappshußhash komplett gefüllt ist
my $asref;
my @allsvs = devspec2array("TYPE=SSCam:FILTER=MODEL=SVS");
foreach (@allsvs) {
next if(!AttrVal($_, "snapEmailTxt", "")); # Schnappschüsse senden NICHT durch SVS ausgelöst -> Snaps der Cams NICHT gemeinsam versenden
my $svshash = $defs{$_};
if($svshash->{HELPER}{ALLSNAPREF}) {
$asref = $svshash->{HELPER}{ALLSNAPREF}; # Hashreferenz zum summarischen Snaphash
foreach my $key (keys%{$asref}) {
if($key eq $name) { # Kamera Key im Bildhash matcht -> Bilddaten übernehmen
foreach my $pkey (keys%{$data}) {
my $nkey = time()+int(rand(1000));
$asref->{$nkey.$pkey}{createdTm} = $data->{$pkey}{createdTm}; # Aufnahmezeit der Kamera werden im summarischen Snaphash eingefügt
$asref->{$nkey.$pkey}{".imageData"} = $data->{$pkey}{".imageData"}; # Bilddaten der Kamera werden im summarischen Snaphash eingefügt
$asref->{$nkey.$pkey}{fileName} = $data->{$pkey}{fileName}; # Filenamen der Kamera werden im summarischen Snaphash eingefügt
}
delete $hash->{HELPER}{CANSENDSNAP};
delete $asref->{$key}; # ursprünglichen Key (Kameranamen) löschen
}
}
$asref = $svshash->{HELPER}{ALLSNAPREF}; # Hashreferenz zum summarischen Snaphash
foreach my $key (keys%{$asref}) { # prüfen ob Bildhash komplett ?
if(!$asref->{$key}) {
return; # Bildhash noch nicht komplett
}
}
my %rs = %{$asref};
my $rsref = \%rs;
delete $svshash->{HELPER}{ALLSNAPREF}; # ALLSNAPREF löschen -> gemeinsamer Versand beendet
$hash = $svshash; # Hash durch SVS-Hash ersetzt
$name = $svshash->{NAME}; # Name des auslösenden SVS-Devices wird eingesetzt
$data = $rsref; # Referenz zum summarischen Hash einsetzen
$calias = AttrVal($name,"alias",$hash->{NAME}); # Alias des SVS-Devices
$hash->{HELPER}{TRANSACTION} = "multiple_ta"; # fake Transaction im SVS Device setzen
last; # Schleife verlassen und mit Senden weiter
}
}
### Bilddaten als Email versenden wenn Attribut "snapEmailTxt" definiert ist
if(AttrVal($name, "snapEmailTxt", "")) {
my $sp = AttrVal($name, "smtpPort", 25);
my $nousessl = AttrVal($name, "smtpNoUseSSL", 0);
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime;
@ -7249,12 +7316,9 @@ sub SSCam_prepareSendEmail ($$;$) {
$smtpsslport = AttrVal($name,"smtpSSLPort",0);
}
my $tac = $hash->{HELPER}{TRANSACTION}; # Code der laufenden Transaktion
$tac = $hash->{HELPER}{TRANSACTION}; # Code der laufenden Transaktion
if($OpMode =~ /^getsnap/) {
$fname = ReadingsVal($name,"LastSnapFilename","");
$snapid = ReadingsVal($name,"LastSnapId","");
$lsnaptime = ReadingsVal($name,"LastSnapTime","");
$sdat = $data;
delete $hash->{HELPER}{CANSENDSNAP};
delete $hash->{HELPER}{SMTPMSG};
@ -7262,10 +7326,8 @@ sub SSCam_prepareSendEmail ($$;$) {
$ret = SSCam_sendEmail($hash, {'subject' => $smtpmsg{subject},
'part1txt' => $smtpmsg{body},
'part2type' => 'image/jpeg',
'fname' => $fname,
'smtpport' => $sp,
'sdat' => $sdat,
'lsnaptime' => $lsnaptime,
'opmode' => $OpMode,
'smtpnousessl' => $nousessl,
'sslfrominit' => $sslfrominit,
@ -7275,7 +7337,10 @@ sub SSCam_prepareSendEmail ($$;$) {
);
}
return $ret;
return $ret;
}
return;
}
#############################################################################################
@ -7351,7 +7416,7 @@ sub SSCam_sendEmail ($$) {
'sdat' => { 'default'=>'', 'required'=>0, 'set'=>1}, # (Hash)Daten base64 codiert, wenn gesetzt muss 'part2' auf 'image/jpeg' gesetzt werden
'image' => { 'default'=>'', 'required'=>0, 'set'=>1}, # Daten als File, wenn gesetzt muss 'part2' auf 'image/jpeg' gesetzt werden
'fname' => { 'default'=>'image.jpg', 'required'=>0, 'set'=>1}, # Filename für "image" oder "sdat"
'lsnaptime' => { 'default'=>'', 'required'=>0, 'set'=>1}, # Zeitstempel des letzten Schnappschusses
'lsnaptime' => { 'default'=>'', 'required'=>0, 'set'=>1}, # Zeitstempel der Bilddaten
'opmode' => { 'default'=>'', 'required'=>1, 'set'=>1}, # OpMode muss gesetzt sein
'sslfb' => { 'default'=>$sslfb, 'required'=>0, 'set'=>1}, # Flag für Verwendung altes Net::SMTP::SSL
'sslfrominit' => { 'default'=>'', 'required'=>0, 'set'=>1}, # SSL soll sofort ! aufgebaut werden
@ -7410,9 +7475,9 @@ sub SSCam_sendEmailblocking($) {
my $to = $paref->{smtpTo};
my $msgtext = $paref->{msgtext};
my $smtpdebug = $paref->{smtpdebug};
my $sdat = $paref->{sdat}; # Image Daten als Hash base64 codiert
my $sdat = $paref->{sdat}; # Hash von Imagedaten base64 codiert
my $image = $paref->{image}; # Image, wenn gesetzt muss 'part2' auf 'image/jpeg' gesetzt sein
my $fname = $paref->{fname}; # Filename von "image"
my $fname = $paref->{fname}; # Filename -> verwendet wenn $image ist gesetzt
my $lsnaptime = $paref->{lsnaptime}; # Zeit des letzten Schnappschusses wenn gesetzt
my $opmode = $paref->{opmode}; # aktueller Operation Mode
my $sslfb = $paref->{sslfb}; # Flag für Verwendung altes Net::SMTP::SSL
@ -7466,7 +7531,7 @@ sub SSCam_sendEmailblocking($) {
@as = sort{$a<=>$b}keys%{$sdat};
foreach my $key (@as) {
$ct = $sdat->{$key}{createdTm};
$img = $sdat->{$key}{imageData};
$img = $sdat->{$key}{".imageData"};
$fname = $sdat->{$key}{fileName};
$fh = '$fh'.$key;
$decoded = MIME::Base64::decode_base64($img);
@ -7741,6 +7806,124 @@ sub SSCam_trim ($) {
return ($str);
}
#############################################################################################
# Hint Hash EN
#############################################################################################
%SSCam_vHintsExt_en = (
"7" => "<b>Setup Email Shipping <br>".
"==================== </b> <br><br>".
"Snapshots can be sent by <b>Email</b> alltogether after creation. For this purpose the module contains<br>".
"its own Email client.<br>".
"Before you can use this function you have to install the Perl-module <b>MIME::Lite</b>. On debian systems it can be ".
"installed with command:".
"<ul>".
"<b>sudo apt-get install libmime-lite-perl</b>".
"</ul>".
"There are some attributes must be set or can be used optionally.<br>".
"At first the Credentials for access the Email outgoing server must be set by command <b>\"set &lt;name&gt; smtpcredentials &lt;user&gt; &lt;password&gt;\"</b><br>".
"The connection to the server is initially established unencrypted and switches to an encrypted connection if SSL<br>".
"encryption is available. In that case the transmission of User/Password takes place encrypted too.<br>".
"If attribute \"smtpSSLPort\" is defined, the established connection to the Email server will be encrypted immediately.<br><br>".
"Attributes which are optional are marked: <br><br>".
"<ul>".
"<li><b>snapEmailTxt</b> - <b>Activates the Email shipping.</b> This attribute has the format: <br>".
"<ul><b>subject => &lt;subject text&gt;, body => &lt;message text&gt;</b></ul>".
"The placeholder \$CAM, \$DATE and \$TIME can be used. <br>".
"\$CAM is replaced by the device name, device alias or the name of camera in SVS if alias is not defined.<br>".
"\$DATE and \$TIME are replaced with the current date and time.</li>".
"<li><b>smtpHost</b> - Hostname or IP-address of outgoing Email server (e.g. securesmtp.t-online.de)</li>".
"<li><b>smtpFrom</b> - Return address (&lt;name&gt@&lt;domain&gt)</li>".
"<li><b>smtpTo</b> - Receiving address(es) (&lt;name&gt@&lt;domain&gt)</li>".
"<li><b>smtpPort</b> - (optional) Port of outgoing Email server (default: 25)</li>".
"<li><b>smtpCc</b> - (optional) carbon-copy receiving address(es) (&lt;name&gt@&lt;domain&gt)</li>".
"<li><b>smtpNoUseSSL</b> - (optional) \"1\" if no SSL encryption should be used for Email shipping (default: 0)</li>".
"<li><b>smtpSSLPort</b> - (optional) Port for SSL encrypted connection (default: 465)</li>".
"<li><b>smtpDebug</b> - (optional) switch on the debugging of SMTP connection</li>".
"</ul>".
"For further information please see description of the <a href=\"https://fhem.de/commandref.html#SSCamattr\">attributes</a>.".
"<br><br>",
"6" => "There are some Icons in directory www/images/sscam available for SSCam. Thereby the system can use the icons please do: <br>".
"<ul><li> in FHEMWEB device attribute <b>iconPath</b> complete with \"sscam\". e.g.: attr WEB iconPath default:fhemSVG:openautomation:sscam </li></ul>".
"After that execute \"rereadicons\" or restart FHEM. ".
"<br><br>",
"5" => "Find more Informations about manage users and the appropriate privilege profiles in ".
"<a href=\"https://www.synology.com/en-global/knowledgebase/Surveillance/help/SurveillanceStation/user\">Surveillance Station online help</a> ".
"<br><br>",
"4" => "The message Meldung \"WARNING - The current/simulated SVS-version ... may be incompatible with SSCam version...\" means that ".
"the used SSCam version was currently not tested with the installed version of Synology Surveillance Station (Reading \"SVSversion\"). ".
"The compatible SVS-Version is printed out in the Internal COMPATIBILITY.\n".
"<b>Actions:</b> At first please update your SSCam version. If the message does appear furthermore, please inform the SSCam Maintainer. ".
"To ignore this message temporary, you may reduce the verbose level of your SSCam device. ".
"<br><br>",
"3" => "Link to SSCam <a href=\"https://fhem.de/commandref.html#SSCam\">english commandRef</a> ".
"<br><br>",
"2" => "You can create own PTZ-control icons with a template available in SVN which can be downloaded here: <a href=\"https://svn.fhem.de/trac/browser/trunk/fhem/contrib/sscam\">contrib/sscam/black_btn_CAM_Template.pdn</a>.\n".
"This template can be edited with Paint.Net for example. ".
"<br><br>",
"1" => "Some helpful <a href=\"https://wiki.fhem.de/wiki/SSCAM_-_Steuerung_von_Kameras_in_Synology_Surveillance_Station\">FHEM-Wiki</a> notes".
"<br><br>",
);
#############################################################################################
# Hint Hash DE
#############################################################################################
%SSCam_vHintsExt_de = (
"7" => "<b>Einstellung Email-Versand <br>".
"========================= </b> <br><br>".
"Schnappschüsse können nach der Erstellung per <b>Email</b> gemeinsam versendet werden. Dazu enthält das Modul einen<br>".
"eigenen Email-Client.<br>".
"Zur Verwendung dieser Funktion muss das Perl-Modul <b>MIME::Lite</b> installiert sein. Auf Debian-Systemen kann ".
"es mit".
"<ul>".
"<b>sudo apt-get install libmime-lite-perl</b>".
"</ul>".
"installiert werden. <br><br>".
"Für die Verwendung des Email-Versands müssen einige Attribute gesetzt oder können optional genutzt werden.<br>".
"Die Credentials für den Zugang zum Email-Server müssen mit dem Befehl <b>\"set &lt;name&gt; smtpcredentials &lt;user&gt; &lt;password&gt;\"</b><br>".
"gesetzt werden. Der Verbindungsaufbau zum Postausgangsserver erfolgt initial unverschüsselt und wechselt zu einer verschlüsselten<br>".
"Verbindung wenn SSL zur Verfügung steht. In diesem Fall erfolgt auch die Übermittlung von User/Password verschlüsselt.<br>".
"Ist das Attribut \"smtpSSLPort\" definiert, erfolgt der Verbindungsaufbau zum Email-Server sofort verschlüsselt.<br><br>".
"Optionale Attribute sind gekennzeichnet: <br><br>".
"<ul>".
"<li><b>snapEmailTxt</b> - <b>Aktiviert den Email-Versand</b>. Das Attribut hat das Format:<br>".
"<ul><b>subject => &lt;Betreff-Text&gt;, body => &lt;Mitteilung-Text&gt;</b></ul>".
"Es können die Platzhalter \$CAM, \$DATE und \$TIME verwendet werden. <br>".
"\$CAM wird durch den Device-Namen, Device-Alias bzw. den Namen der Kamera in der SVS ersetzt falls der<br>".
"Device-Alias nicht gesetzt ist. <br>".
"\$DATE und \$TIME werden durch das aktuelle Datum und Zeit ersetzt.</li>".
"<li><b>smtpHost</b> - Hostname oder IP-Adresse des Postausgangsservers (z.B. securesmtp.t-online.de)</li>".
"<li><b>smtpFrom</b> - Absenderadresse (&lt;name&gt\@&lt;domain&gt)</li>".
"<li><b>smtpTo</b> - Empfängeradresse(n) (&lt;name&gt\@&lt;domain&gt)</li>".
"<li><b>smtpPort</b> - (optional) Port des Postausgangsservers (default: 25)</li>".
"<li><b>smtpCc</b> - (optional) Carbon-Copy Empfängeradresse(n) (&lt;name&gt\@&lt;domain&gt)</li>".
"<li><b>smtpNoUseSSL</b> - (optional) \"1\" wenn kein SSL beim Email-Versand verwendet werden soll (default: 0)</li>".
"<li><b>smtpSSLPort</b> - (optional) SSL-Port des Postausgangsservers (default: 465)</li>".
"<li><b>smtpDebug</b> - (optional) zum Debugging der SMTP-Verbindung setzen</li>".
"</ul>".
"Zur näheren Erläuterung siehe Beschreibung der <a href=\"https://fhem.de/commandref_DE.html#SSCamattr\">Attribute</a>.".
"<br><br>",
"6" => "Für SSCam wird ein Satz Icons im Verzeichnis www/images/sscam zur Verfügung gestellt. Damit das System sie findet bitte setzen: <br>".
"<ul><li> im FHEMWEB Device Attribut <b>iconPath</b> um \"sscam\" ergänzen. z.B.: attr WEB iconPath default:fhemSVG:openautomation:sscam </li></ul>".
"Danach ein \"rereadicons\" bzw. einen FHEM restart ausführen.".
"<br><br>",
"5" => "Informationen zum Management von Usern und entsprechenden Rechte-Profilen sind in der ".
"<a href=\"https://www.synology.com/de-de/knowledgebase/Surveillance/help/SurveillanceStation/user\">Surveillance Station Online-Hilfe</a> zu finden.".
"<br><br>",
"4" => "Die Meldung \"WARNING - The current/simulated SVS-version ... may be incompatible with SSCam version...\" ist ein Hinweis darauf, dass ".
"die eingesetzte SSCam Version noch nicht mit der verwendeten Version von Synology Surveillance Station (Reading \"SVSversion\") getestet ".
"wurde. Die kompatible SVS-Version ist im Internal COMPATIBILITY ersichtlich.\n".
"<b>Maßnahmen:</b> Bitte SSCam zunächst updaten. Sollte die Meldung weiterhin auftreten, bitte den SSCam Maintainer informieren. Zur ".
"vorübergehenden Ignorierung kann der verbose Level des SSCam-Devices entsprechend reduziert werden. ".
"<br><br>",
"3" => "Link zur deutschen SSCam <a href=\"https://fhem.de/commandref_DE.html#SSCam\">commandRef</a> ".
"<br><br>",
"2" => "Zur Erstellung eigener PTZ-Steuericons gibt es eine Vorlage im SVN die hier <a href=\"https://svn.fhem.de/trac/browser/trunk/fhem/contrib/sscam\">contrib/sscam/black_btn_CAM_Template.pdn</a> heruntergeladen werden kann.\n".
"Diese Vorlage kann zum Beispiel mit Paint.Net bearbeitet werden. ".
"<br><br>",
"1" => "Hilfreiche Hinweise zu SSCam im <a href=\"https://wiki.fhem.de/wiki/SSCAM_-_Steuerung_von_Kameras_in_Synology_Surveillance_Station\">FHEM-Wiki</a>".
"<br><br>",
);
1;
=pod
@ -7760,6 +7943,7 @@ return ($str);
<li>Start a Recording</li>
<li>Stop a Recording (using command or automatically after the &lt;RecordTime&gt; period</li>
<li>Trigger of snapshots and optionally send them alltogether by Email using the integrated Email client </li>
<li>Trigger snapshots of all defined cams and optionally send them alltogether by Email using the integrated Email client </li>
<li>Deaktivate a Camera in Synology Surveillance Station</li>
<li>Activate a Camera in Synology Surveillance Station</li>
<li>Control of the exposure modes day, night and automatic </li>
@ -8521,52 +8705,46 @@ attr &lt;name&gt; genericStrmHtmlTag &lt;video $HTMLATTR controls autoplay&gt;
<li><b> set &lt;name&gt; snap [&lt;number&gt;] [&lt;time difference&gt;] [snapEmailTxt:"subject => &lt;subject text&gt;, body => &lt;message text&gt;"]</b> &nbsp;&nbsp;&nbsp;&nbsp;(valid for CAM)</li> <br>
One or multiple snapshots are triggered. The number of snapshots to trigger and the time difference (in seconds) between
each snapshots can be optionally specified. Without any specification only one snapshot is triggered.
The ID and the filename of the last snapshot will be displayed in Reading "LastSnapId" respectively "LastSnapFilename" of the
device. <br>
The snapshot Email shipping is activated by setting the <a href="#SSCamattr">attribute</a> "snapEmailTxt". If you want
temporary overwrite the message text set in "snapEmailTxt", you can optionally specify the "snapEmailTxt:"-tag as shown
above. <br><br>
each snapshot can be optionally specified. Without any specification only one snapshot is triggered. <br>
The ID and the filename of the last snapshot will be displayed in Reading "LastSnapId" respectively "LastSnapFilename".
<br><br>
<b>Email shipping preparation</b> <br><br>
The snapshot <b>Email shipping</b> can be activated by setting <a href="#SSCamattr">attribute</a> "snapEmailTxt".
Before you have to prepare the Email shipping as described in section <a href="#SSCamEmail">Setup Email shipping</a>.
(for further information execute "<b>get &lt;name&gt; versionNotes 7</b>") <br>
If you want temporary overwrite the message text set in attribute "snapEmailTxt", you can optionally specify the
"snapEmailTxt:"-tag as shown above. <br><br>
The snapshots can be sent by <b>Email</b> alltogether after creation. For this purpose the module contains its own Email client.
Before you can use this function you have to install the Perl-module <b>MIME::Lite</b>. On debian systems it can be
installed with command: <br><br>
<b>Examples:</b>
<pre>
set &lt;name&gt; snap 4
set &lt;name&gt; snap 3 3 snapEmailTxt:"subject => Movement alarm $CAM, body => A movement was recognised at Carport"
</pre>
</ul>
<br><br>
<ul>
sudo apt-get install libmime-lite-perl
</ul>
<br>
<li><b> set &lt;name&gt; snapCams [&lt;number&gt;] [&lt;time difference&gt;] [CAM:"&lt;camera&gt;, &lt;camera&gt, ..."]</b> &nbsp;&nbsp;&nbsp;&nbsp;(valid for SVS)</li> <br>
There are some attributes must be set or can be used optionally. <br>
At first the Credentials for access the Email outgoing server must be set by command <b>"set &lt;name&gt; smtpcredentials &lt;user&gt; &lt;password&gt;"</b>.
The connection establishment to the server is initially done unencrypted and switches to an encrypted connection if SSL
encryption is available. In that case the transmission of User/Password takes place encrypted too.
If attribute "smtpSSLPort" is defined, the established connection to the Email server will be encrypted immediately.
Attributes which are optional are marked: <br><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.
Optionally the number of snapshots to trigger (default: 1) and the time difference (in seconds) between
each snapshot (default: 2) can be specified. <br>
The ID and the filename of the last snapshot will be displayed in Reading "LastSnapId" respectively "LastSnapFilename" of
the appropriate camera device. <br><br>
<ul>
<table>
<colgroup> <col width=12%> <col width=88%> </colgroup>
<tr><td style="vertical-align:top"> <b>snapEmailTxt</b> <td>- Activates the Email shipping. Has the form: <br>
<code>subject => &lt;subject text&gt;, body => &lt;message text&gt; </code><br>
The placeholder variables $CAM, $DATE and $TIME can be used. $CAM is
replaced by the device alias or the name of camera in SVS if alias is not
defined. $DATE and $TIME are replaced with the current date and time. </td></tr>
<tr><td> <b>smtpHost</b> </td><td>- Hostname of outgoing Email server (e.g. securesmtp.t-online.de) </td></tr>
<tr><td> <b>smtpFrom</b> </td><td>- Return address (&lt;name&gt@&lt;domain&gt) </td></tr>
<tr><td> <b>smtpTo</b> </td><td>- Receiving address(es) (&lt;name&gt@&lt;domain&gt) </td></tr>
<tr><td> <b>smtpPort</b> </td><td>- (optional) Port of outgoing Email server (default: 25) </td></tr>
<tr><td> <b>smtpCc</b> </td><td>- (optional) carbon-copy receiving address(es) (&lt;name&gt@&lt;domain&gt) </td></tr>
<tr><td> <b>smtpNoUseSSL</b> </td><td>- (optional) "1" if no SSL encryption should be used for Email shipping (default: 0) </td></tr>
<tr><td> <b>smtpSSLPort</b> </td><td>- (optional) Port for SSL encrypted connection (default: 465) </td></tr>
<tr><td> <b>smtpDebug</b> </td><td>- (optional) switch on the debugging of SMTP connection </td></tr>
</table>
</ul>
<br>
The snapshot <b>Email shipping</b> can be activated by setting <a href="#SSCamattr">attribute</a> "snapEmailTxt" in the
SVS device <b>AND</b> in the camera devices whose snapshots should be shipped.
Before you have to prepare the Email shipping as described in section <a href="#SSCamEmail">Setup Email shipping</a>.
(for further information execute "<b>get &lt;name&gt; versionNotes 7</b>") <br>
Only the message text set in attribute "snapEmailTxt" of the SVS device is used in the created Email. The settings of
those attribute in the camera devices is ignored !! <br><br>
For further information please see description of the <a href="#SSCamattr">attributes</a>. <br>
<b>Examples:</b>
<pre>
set &lt;name&gt; snapCams 4
set &lt;name&gt; snapCams 3 3 CAM:"CamHE1, CamCarport"
</pre>
</ul>
<br><br>
@ -8803,6 +8981,50 @@ http(s)://&lt;hostname&gt;&lt;port&gt;/webapi/entry.cgi?api=SYNO.SurveillanceSta
</ul>
<br><br>
<a name="SSCamEmail"></a>
<b>Setup Email shipping</b> <br><br>
<ul>
Snapshots can be sent by <b>Email</b> alltogether after creation. For this purpose the module contains its own Email client.
Before you can use this function you have to install the Perl-module <b>MIME::Lite</b>. On debian systems it can be
installed with command: <br><br>
<ul>
sudo apt-get install libmime-lite-perl
</ul>
<br>
There are some attributes must be set or can be used optionally. <br>
At first the Credentials for access the Email outgoing server must be set by command <b>"set &lt;name&gt; smtpcredentials &lt;user&gt; &lt;password&gt;"</b>.
The connection establishment to the server is initially done unencrypted and switches to an encrypted connection if SSL
encryption is available. In that case the transmission of User/Password takes place encrypted too.
If attribute "smtpSSLPort" is defined, the established connection to the Email server will be encrypted immediately.
Attributes which are optional are marked: <br><br>
<ul>
<table>
<colgroup> <col width=12%> <col width=88%> </colgroup>
<tr><td style="vertical-align:top"> <b>snapEmailTxt</b> <td>- <b>Activates the Email shipping.</b> This attribute has the format: <br>
<b>subject => &lt;subject text&gt;, body => &lt;message text&gt; </b><br>
The placeholder $CAM, $DATE and $TIME can be used. $CAM is
replaced by the device name, device alias or the name of camera in SVS if alias is not
defined. $DATE and $TIME are replaced with the current date and time. </td></tr>
<tr><td> <b>smtpHost</b> </td><td>- Hostname of outgoing Email server (e.g. securesmtp.t-online.de) </td></tr>
<tr><td> <b>smtpFrom</b> </td><td>- Return address (&lt;name&gt@&lt;domain&gt) </td></tr>
<tr><td> <b>smtpTo</b> </td><td>- Receiving address(es) (&lt;name&gt@&lt;domain&gt) </td></tr>
<tr><td> <b>smtpPort</b> </td><td>- (optional) Port of outgoing Email server (default: 25) </td></tr>
<tr><td> <b>smtpCc</b> </td><td>- (optional) carbon-copy receiving address(es) (&lt;name&gt@&lt;domain&gt) </td></tr>
<tr><td> <b>smtpNoUseSSL</b> </td><td>- (optional) "1" if no SSL encryption should be used for Email shipping (default: 0) </td></tr>
<tr><td> <b>smtpSSLPort</b> </td><td>- (optional) Port for SSL encrypted connection (default: 465) </td></tr>
<tr><td> <b>smtpDebug</b> </td><td>- (optional) switch on the debugging of SMTP connection </td></tr>
</table>
</ul>
<br>
For further information please see description of the <a href="#SSCamattr">attributes</a>. <br>
</ul>
<br><br>
<a name="SSCamPolling"></a>
<b>Polling of Camera/SVS-Properties</b><br><br>
@ -9287,6 +9509,7 @@ attr &lt;name&gt; genericStrmHtmlTag &lt;video $HTMLATTR controls autoplay&gt;
<li>Start einer Aufnahme</li>
<li>Stop einer Aufnahme (per Befehl bzw. automatisch nach Ablauf der Aufnahmedauer) </li>
<li>Auslösen von Schnappschnüssen und optionaler Email-Versand mittels integrierten Email-Client </li>
<li>Auslösen von Schnappschnüssen aller definierten Kameras und optionaler gemeinsamer Email-Versand mittels integrierten Email-Client </li>
<li>Deaktivieren einer Kamera in Synology Surveillance Station</li>
<li>Aktivieren einer Kamera in Synology Surveillance Station</li>
<li>Steuerung der Belichtungsmodi Tag, Nacht bzw. Automatisch </li>
@ -9866,7 +10089,7 @@ attr &lt;name&gt; genericStrmHtmlTag &lt;video $HTMLATTR controls autoplay&gt;
<br><br>
<ul>
<li><b> set &lt;name&gt; [on [&lt;rectime&gt;] | off] </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt für CAM)</li><br>
<li><b> set &lt;name&gt; [ on [&lt;rectime&gt;] | off ] </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt für CAM)</li><br>
Der Befehl "set &lt;name&gt; on" startet eine Aufnahme. Die Standardaufnahmedauer beträgt 15 Sekunden. Sie kann mit dem
Attribut "rectime" individuell festgelegt werden.
@ -10068,55 +10291,46 @@ attr &lt;name&gt; genericStrmHtmlTag &lt;video $HTMLATTR controls autoplay&gt;
<li><b> set &lt;name&gt; snap [&lt;Anzahl&gt;] [&lt;Zeitabstand&gt;] [snapEmailTxt:"subject => &lt;Betreff-Text&gt;, body => &lt;Mitteilung-Text&gt;"]</b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt für CAM)</li> <br>
Ein oder mehrere Schnappschüsse werden ausgelöst. Es kann die Anzahl der auszulösenden Schnappschüsse und deren zeitlicher
Abstand in Sekunden optional angegeben werden. Ohne Angabe wird ein Schnappschuß getriggert.
Es wird die ID und der Filename des letzten Snapshots als Wert der Variable "LastSnapId" bzw. "LastSnapFilename" in den
Readings der Kamera gespeichert. <br>
Der Email-Versand wird durch das Setzen des <a href="#SSCamattr">Attributs</a> "snapEmailTxt" eingeschaltet. Der Text
im Attribut "snapEmailTxt" kann durch die Spezifikation des optionalen "snapEmailTxt:"-Tags, wie oben gezeigt, temporär
überschrieben bzw. geändert werden. <br><br>
Abstand in Sekunden optional angegeben werden. Ohne Angabe wird ein Schnappschuß getriggert. <br>
Es wird die ID und der Filename des letzten Snapshots als Wert der Readings "LastSnapId" bzw. "LastSnapFilename" in
der Kamera gespeichert. <br><br>
Ein <b>Email-Versand</b> der Schnappschüsse kann durch Setzen des <a href="#SSCamattr">Attributs</a> "snapEmailTxt" aktiviert
werden. Zuvor ist der Email-Versand, wie im Abschnitt <a href="#SSCamEmail">Einstellung Email-Versand</a> beschrieben,
einzustellen. (Für weitere Informationen "<b>get &lt;name&gt; versionNotes 7</b>" ausführen) <br>
Der Text im Attribut "snapEmailTxt" kann durch die Spezifikation des optionalen "snapEmailTxt:"-Tags, wie oben
gezeigt, temporär überschrieben bzw. geändert werden. <br><br>
<b>Email-Versand </b> <br><br>
Die Schnappschüsse können nach der Erstellung per <b>Email</b> gemeinsam versendet werden. Dazu enthält das Modul einen
eigenen Email-Client.
Zur Verwendung dieser Funktion muss das Perl-Modul <b>MIME::Lite</b> installiert sein. Auf Debian-System kann
es mit <br><br>
<b>Beispiele:</b>
<pre>
set &lt;name&gt; snap 4
set &lt;name&gt; snap 3 3 snapEmailTxt:"subject => Bewegungsalarm $CAM, body => Eine Bewegung wurde am Carport registriert"
</pre>
</ul>
<br><br>
<ul>
sudo apt-get install libmime-lite-perl
</ul>
<br>
<li><b> set &lt;name&gt; snapCams [&lt;Anzahl&gt;] [&lt;Zeitabstand&gt;] [CAM:"&lt;Kamera&gt;, &lt;Kamera&gt, ..."]</b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt für SVS)</li> <br>
installiert werden. <br><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.
Optional kann die Anzahl der auszulösenden Schnappschüsse (default: 1) und deren zeitlicher Abstand in Sekunden
(default: 2) angegeben werden. <br>
Es wird die ID und der Filename des letzten Snapshots als Wert der Readings "LastSnapId" bzw. "LastSnapFilename"
der entsprechenden Kamera gespeichert. <br><br>
Ein <b>Email-Versand</b> der Schnappschüsse kann durch Setzen des <a href="#SSCamattr">Attributs</a> <b>"snapEmailTxt"</b> im
SVS-Device <b>UND</b> in den Kamera-Devices, deren Schnappschüsse versendet werden sollen, aktiviert werden.
Bei Kamera-Devices die kein Attribut "snapEmailTxt" gesetzt haben, werden die Schnappschüsse ausgelöst, aber nicht versendet.
Zuvor ist der Email-Versand, wie im Abschnitt <a href="#SSCamEmail">Einstellung Email-Versand</a> beschrieben,
einzustellen. (Für weitere Informationen "<b>get &lt;name&gt; versionNotes 7</b>" ausführen) <br>
Es wird ausschließlich der im Attribut "snapEmailTxt" des SVS-Devices hinterlegte Email-Text in der erstellten Email
verwendet. Der Text im Attribut "snapEmailTxt" der einzelnen Kameras wird ignoriert !! <br><br>
Für die Verwendung des Email-Versands müssen einige Attribute gesetzt oder können optional genutzt werden. <br>
Die Credentials für den Zugang zum Email-Server müssen mit dem Befehl <b>"set &lt;name&gt; smtpcredentials &lt;user&gt; &lt;password&gt;"</b>
gesetzt werden. Der Verbindungsaufbau zum Postausgangsserver erfolgt initial unverschüsselt und wechselt zu einer verschlüsselten
Verbindung wenn SSL zur Verfügung steht. In diesem Fall erfolgt auch die Übermittlung von User/Password verschlüsselt.
Ist das Attribut "smtpSSLPort" definiert, erfolgt der Verbindungsaufbau zum Email-Server sofort verschlüsselt.
Optionale Attribute sind gekennzeichnet: <br><br>
<b>Beispiele:</b>
<pre>
set &lt;name&gt; snapCams 4
set &lt;name&gt; snapCams 3 3 CAM:"CamHE1, CamCarport"
</pre>
<ul>
<table>
<colgroup> <col width=12%> <col width=88%> </colgroup>
<tr><td style="vertical-align:top"> <b>snapEmailTxt</b> <td>- Aktiviert den Email-Versand. Die Eingabe hat die Form: <br>
<code>subject => &lt;Betreff-Text&gt;, body => &lt;Mitteilung-Text&gt;</code><br>
Es können die Platzhalter $CAM, $DATE und $TIME verwendet werden. $CAM wird
durch den Device-Alias bzw. den Namen der Kamera in der SVS
ersetzt falls der Device-Alias nicht gesetzt ist.
$DATE und $TIME werden durch das aktuelle Datum und Zeit ersetzt.</td></tr>
<tr><td> <b>smtpHost</b> </td><td>- Hostname oder IP-Adresse des Postausgangsservers (z.B. securesmtp.t-online.de) </td></tr>
<tr><td> <b>smtpFrom</b> </td><td>- Absenderadresse (&lt;name&gt@&lt;domain&gt) </td></tr>
<tr><td> <b>smtpTo</b> </td><td>- Empfängeradresse(n) (&lt;name&gt@&lt;domain&gt) </td></tr>
<tr><td> <b>smtpPort</b> </td><td>- (optional) Port des Postausgangsservers (default: 25) </td></tr>
<tr><td> <b>smtpCc</b> </td><td>- (optional) Carbon-Copy Empfängeradresse(n) (&lt;name&gt@&lt;domain&gt) </td></tr>
<tr><td> <b>smtpNoUseSSL</b> </td><td>- (optional) "1" wenn kein SSL beim Email-Versand verwendet werden soll (default: 0) </td></tr>
<tr><td> <b>smtpSSLPort</b> </td><td>- (optional) SSL-Port des Postausgangsservers (default: 465) </td></tr>
<tr><td> <b>smtpDebug</b> </td><td>- (optional) zum Debugging der SMTP-Verbindung setzen </td></tr>
</table>
</ul>
<br>
Zur näheren Erläuterung siehe Beschreibung der <a href="#SSCamattr">Attribute</a>. <br>
</ul>
<br><br>
@ -10368,9 +10582,60 @@ http(s)://&lt;hostname&gt;&lt;port&gt;/webapi/entry.cgi?api=SYNO.SurveillanceSta
</ul>
<br><br>
<a name="SSCamEmail"></a>
<b>Einstellung Email-Versand </b> <br><br>
<ul>
Schnappschüsse können nach der Erstellung per <b>Email</b> gemeinsam versendet werden. Dazu enthält das Modul einen
eigenen Email-Client.
Zur Verwendung dieser Funktion muss das Perl-Modul <b>MIME::Lite</b> installiert sein. Auf Debian-Systemen kann
es mit <br><br>
<ul>
sudo apt-get install libmime-lite-perl
</ul>
<br>
installiert werden. <br><br>
Für die Verwendung des Email-Versands müssen einige Attribute gesetzt oder können optional genutzt werden. <br>
Die Credentials für den Zugang zum Email-Server müssen mit dem Befehl <b>"set &lt;name&gt; smtpcredentials &lt;user&gt; &lt;password&gt;"</b>
hinterlegt werden. Der Verbindungsaufbau zum Postausgangsserver erfolgt initial unverschüsselt und wechselt zu einer verschlüsselten
Verbindung wenn SSL zur Verfügung steht. In diesem Fall erfolgt auch die Übermittlung von User/Password verschlüsselt.
Ist das Attribut "smtpSSLPort" definiert, erfolgt der Verbindungsaufbau zum Email-Server sofort verschlüsselt.
<br><br>
Optionale Attribute sind gekennzeichnet: <br><br>
<ul>
<table>
<colgroup> <col width=12%> <col width=88%> </colgroup>
<tr><td style="vertical-align:top"> <b>snapEmailTxt</b> <td>- <b>Aktiviert den Email-Versand</b>. Das Attribut hat das Format: <br>
<ul>
<code>subject => &lt;Betreff-Text&gt;, body => &lt;Mitteilung-Text&gt;</code><br>
</ul>
Es können die Platzhalter $CAM, $DATE und $TIME verwendet werden. $CAM wird
durch den Device-Namen, Device-Alias bzw. den Namen der Kamera in der SVS
ersetzt falls der Device-Alias nicht gesetzt ist.
$DATE und $TIME werden durch das aktuelle Datum und Zeit ersetzt.</td></tr>
<tr><td> <b>smtpHost</b> </td><td>- Hostname oder IP-Adresse des Postausgangsservers (z.B. securesmtp.t-online.de) </td></tr>
<tr><td> <b>smtpFrom</b> </td><td>- Absenderadresse (&lt;name&gt@&lt;domain&gt) </td></tr>
<tr><td> <b>smtpTo</b> </td><td>- Empfängeradresse(n) (&lt;name&gt@&lt;domain&gt) </td></tr>
<tr><td> <b>smtpPort</b> </td><td>- (optional) Port des Postausgangsservers (default: 25) </td></tr>
<tr><td> <b>smtpCc</b> </td><td>- (optional) Carbon-Copy Empfängeradresse(n) (&lt;name&gt@&lt;domain&gt) </td></tr>
<tr><td> <b>smtpNoUseSSL</b> </td><td>- (optional) "1" wenn kein SSL beim Email-Versand verwendet werden soll (default: 0) </td></tr>
<tr><td> <b>smtpSSLPort</b> </td><td>- (optional) SSL-Port des Postausgangsservers (default: 465) </td></tr>
<tr><td> <b>smtpDebug</b> </td><td>- (optional) zum Debugging der SMTP-Verbindung setzen </td></tr>
</table>
</ul>
<br>
Zur näheren Erläuterung siehe Beschreibung der <a href="#SSCamattr">Attribute</a>. <br>
</ul>
<br><br>
<a name="SSCamPolling"></a>
<b>Polling der Kamera/SVS-Eigenschaften:</b><br><br>
<ul>
Die Abfrage der Kameraeigenschaften erfolgt automatisch, wenn das Attribut "pollcaminfoall" (siehe Attribute) mit einem Wert &gt; 10 gesetzt wird. <br>
Per Default ist das Attribut "pollcaminfoall" nicht gesetzt und das automatische Polling nicht aktiv. <br>
Der Wert dieses Attributes legt das Intervall der Abfrage in Sekunden fest. Ist das Attribut nicht gesetzt oder &lt; 10 wird kein automatisches Polling <br>
@ -10404,8 +10669,9 @@ http(s)://&lt;hostname&gt;&lt;port&gt;/webapi/entry.cgi?api=SYNO.SurveillanceSta
Sind mehrere Kameras in SSCam definiert, sollte "pollcaminfoall" nicht bei allen Kameras auf exakt den gleichen Wert gesetzt werden um Verarbeitungsengpässe <br>
und dadurch versursachte potentielle Fehlerquellen bei der Abfrage der Synology Surveillance Station zu vermeiden. <br>
Ein geringfügiger Unterschied zwischen den Pollingintervallen der definierten Kameras von z.B. 1s kann bereits als ausreichend angesehen werden. <br><br>
Ein geringfügiger Unterschied zwischen den Pollingintervallen der definierten Kameras von z.B. 1s kann bereits als ausreichend angesehen werden.
</ul>
<br><br>
<a name="SSCaminternals"></a>
<b>Internals</b> <br><br>

View File

@ -47,7 +47,7 @@ use Encode;
# Versions History intern
our %SSCam_vNotesIntern = (
"8.5.0" => "17.01.2019 SVS device set snapAllCams ",
"8.5.0" => "17.01.2019 SVS device has \"snapCams\" command ",
"8.4.5" => "15.01.2019 fix event generation after request snapshots ",
"8.4.4" => "14.01.2019 change: generate event of every snapfile,id etc. if snap was called with arguments, Forum:#45671 #msg887484 ",
"8.4.3" => "11.01.2019 fix blocking Active-Token if snap was done with arguments and snapEmailTxt not set, Forum:#45671 #msg885475 ",
@ -118,6 +118,8 @@ our %SSCam_vNotesIntern = (
# Versions History extern
our %SSCam_vNotesExtern = (
"8.5.0" => "17.01.2019 SVS device has \"snapCams\" command. Now are able to take snapshots of all defined cameras and may ".
"optionally send them alltogether by Email.",
"8.4.0" => "07.01.2019 Command snap is extended to syntax \"snap [number] [lag] [snapEmailTxt:\"subject => &lt;Betreff-Text&gt;, body => ".
"&lt;Mitteilung-Text&gt;\"]\". Now you are able to trigger several number of ".
"snapshots by only one snap-command. The triggered snapshots can be shipped alltogether with the internal email client. ",