mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-30 12:07:09 +00:00
49_SSCam: contrib 8.6.0
git-svn-id: https://svn.fhem.de/fhem/trunk@18339 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
17eb7c3878
commit
74279adbff
@ -47,6 +47,7 @@ use Encode;
|
|||||||
|
|
||||||
# Versions History intern
|
# Versions History intern
|
||||||
our %SSCam_vNotesIntern = (
|
our %SSCam_vNotesIntern = (
|
||||||
|
"8.6.0" => "20.01.2019 new attribute snapReadingRotate ",
|
||||||
"8.5.0" => "17.01.2019 SVS device has \"snapCams\" command ",
|
"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.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.4" => "14.01.2019 change: generate event of every snapfile,id etc. if snap was called with arguments, Forum:#45671 #msg887484 ",
|
||||||
@ -353,6 +354,7 @@ sub SSCam_Initialize($) {
|
|||||||
"snapGalleryNumber:$SSCAM_snum ".
|
"snapGalleryNumber:$SSCAM_snum ".
|
||||||
"snapGalleryColumns ".
|
"snapGalleryColumns ".
|
||||||
"snapGalleryHtmlAttr ".
|
"snapGalleryHtmlAttr ".
|
||||||
|
"snapReadingRotate:0,1,2,3,4,5,6,7,8,9,10 ".
|
||||||
"pollnologging:1,0 ".
|
"pollnologging:1,0 ".
|
||||||
"debugactivetoken:1,0 ".
|
"debugactivetoken:1,0 ".
|
||||||
"rectime ".
|
"rectime ".
|
||||||
@ -4239,7 +4241,7 @@ sub SSCam_camop ($) {
|
|||||||
# ein Schnappschuß wird ausgelöst
|
# ein Schnappschuß wird ausgelöst
|
||||||
$url = "$proto://$serveraddr:$serverport/webapi/$apitakesnappath?api=\"$apitakesnap\"&dsId=\"0\"&method=\"TakeSnapshot\"&version=\"$apitakesnapmaxver\"&camId=\"$camid\"&blSave=\"true\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apitakesnappath?api=\"$apitakesnap\"&dsId=\"0\"&method=\"TakeSnapshot\"&version=\"$apitakesnapmaxver\"&camId=\"$camid\"&blSave=\"true\"&_sid=\"$sid\"";
|
||||||
readingsSingleUpdate($hash,"state", "snap", 1);
|
readingsSingleUpdate($hash,"state", "snap", 1);
|
||||||
readingsSingleUpdate($hash, "LastSnapId", "", 0);
|
#readingsSingleUpdate($hash, "LastSnapId", "", 0);
|
||||||
|
|
||||||
} elsif ($OpMode eq "SaveRec") {
|
} elsif ($OpMode eq "SaveRec") {
|
||||||
# eine Aufnahme soll in lokalem File (.mp4) gespeichert werden
|
# eine Aufnahme soll in lokalem File (.mp4) gespeichert werden
|
||||||
@ -4268,7 +4270,7 @@ sub SSCam_camop ($) {
|
|||||||
|
|
||||||
} elsif ($OpMode eq "getsnapfilename") {
|
} elsif ($OpMode eq "getsnapfilename") {
|
||||||
# der Filename der aktuellen Schnappschuß-ID wird ermittelt
|
# der Filename der aktuellen Schnappschuß-ID wird ermittelt
|
||||||
$snapid = ReadingsVal("$name", "LastSnapId", " ");
|
$snapid = ReadingsVal("$name", "LastSnapId", "");
|
||||||
Log3($name, 4, "$name - Get filename of present Snap-ID $snapid");
|
Log3($name, 4, "$name - Get filename of present Snap-ID $snapid");
|
||||||
$url = "$proto://$serveraddr:$serverport/webapi/$apitakesnappath?api=\"$apitakesnap\"&method=\"List\"&version=\"$apitakesnapmaxver\"&imgSize=\"0\"&idList=\"$snapid\"&_sid=\"$sid\"";
|
$url = "$proto://$serveraddr:$serverport/webapi/$apitakesnappath?api=\"$apitakesnap\"&method=\"List\"&version=\"$apitakesnapmaxver\"&imgSize=\"0\"&idList=\"$snapid\"&_sid=\"$sid\"";
|
||||||
|
|
||||||
@ -4949,7 +4951,9 @@ sub SSCam_camop_parse ($) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$snapid = $data->{data}{'id'};
|
$snapid = $data->{data}{'id'};
|
||||||
readingsSingleUpdate($hash,"LastSnapId",$snapid, 0) if($snapid);
|
# readingsSingleUpdate($hash,"LastSnapId",$snapid, 0) if($snapid);
|
||||||
|
my $rotnum = AttrVal($name,"snapReadingRotate",0);
|
||||||
|
SSCam_rotateReading($hash,"LastSnapId",$snapid,$rotnum,0);
|
||||||
|
|
||||||
readingsBeginUpdate($hash);
|
readingsBeginUpdate($hash);
|
||||||
readingsBulkUpdate($hash,"Errorcode","none");
|
readingsBulkUpdate($hash,"Errorcode","none");
|
||||||
@ -5013,12 +5017,11 @@ sub SSCam_camop_parse ($) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
my @as = sort{$b<=>$a}keys%snaps;
|
my @as = sort{$b<=>$a}keys%snaps;
|
||||||
|
my $rotnum = AttrVal($name,"snapReadingRotate",0);
|
||||||
foreach my $key (@as) {
|
foreach my $key (@as) {
|
||||||
readingsBeginUpdate($hash);
|
SSCam_rotateReading($hash,"LastSnapId",$snaps{$key}{snapid},$rotnum,1);
|
||||||
readingsBulkUpdate($hash,"LastSnapId", $snaps{$key}{snapid});
|
SSCam_rotateReading($hash,"LastSnapFilename",$snaps{$key}{fileName},$rotnum,1);
|
||||||
readingsBulkUpdate($hash,"LastSnapFilename", $snaps{$key}{fileName});
|
SSCam_rotateReading($hash,"LastSnapTime",$snaps{$key}{createdTm},$rotnum,1);
|
||||||
readingsBulkUpdate($hash,"LastSnapTime", $snaps{$key}{createdTm});
|
|
||||||
readingsEndUpdate($hash, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
##### ein Schnapschuss soll als liveView angezeigt werden #####
|
##### ein Schnapschuss soll als liveView angezeigt werden #####
|
||||||
@ -5173,7 +5176,12 @@ sub SSCam_camop_parse ($) {
|
|||||||
|
|
||||||
} elsif ($OpMode eq "getsnapfilename") {
|
} elsif ($OpMode eq "getsnapfilename") {
|
||||||
# den Filenamen eines Schnapschusses ermitteln
|
# den Filenamen eines Schnapschusses ermitteln
|
||||||
$snapid = ReadingsVal("$name", "LastSnapId", " ");
|
$snapid = ReadingsVal("$name", "LastSnapId", "");
|
||||||
|
|
||||||
|
if(!$snapid) {
|
||||||
|
Log3($name, 2, "$name - Snap-ID \"LastSnapId\" isn't set. Filename can't be retrieved");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
readingsBeginUpdate($hash);
|
readingsBeginUpdate($hash);
|
||||||
readingsBulkUpdate($hash,"Errorcode","none");
|
readingsBulkUpdate($hash,"Errorcode","none");
|
||||||
@ -7212,7 +7220,7 @@ return ($error);
|
|||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
# Auflösung Errorcodes SVS API
|
# Auflösung Errorcodes SVS API
|
||||||
|
##############################################################################
|
||||||
sub SSCam_experror ($$) {
|
sub SSCam_experror ($$) {
|
||||||
# Übernahmewerte sind $hash, $errorcode
|
# Übernahmewerte sind $hash, $errorcode
|
||||||
my ($hash,$errorcode) = @_;
|
my ($hash,$errorcode) = @_;
|
||||||
@ -7227,6 +7235,41 @@ sub SSCam_experror ($$) {
|
|||||||
return ($error);
|
return ($error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Zusätzliche Redings in Rotation erstellen
|
||||||
|
# Sub ($hash,<readingName>,<Wert>,<Rotationszahl>,<Trigger[0|1]>)
|
||||||
|
##############################################################################
|
||||||
|
sub SSCam_rotateReading ($$$$$) {
|
||||||
|
my ($hash,$readingName,$val,$rotnum,$do_trigger) = @_;
|
||||||
|
my $name = $hash->{NAME};
|
||||||
|
|
||||||
|
readingsBeginUpdate($hash);
|
||||||
|
|
||||||
|
my $o = ReadingsVal($name,$readingName,"n.a.");
|
||||||
|
if($val ne "n.a." && $rotnum >= 1) {
|
||||||
|
if("$o" ne "$val") {
|
||||||
|
for (my $i=$rotnum;$i>0;$i--) {
|
||||||
|
my $l = $i-1;
|
||||||
|
my $g = ReadingsVal($name,$readingName.$i,"n.a.");
|
||||||
|
if($l) {
|
||||||
|
$l = ReadingsVal($name,$readingName.$l,"n.a.");
|
||||||
|
} else {
|
||||||
|
$l = ReadingsVal($name,$readingName,"n.a.");
|
||||||
|
}
|
||||||
|
if("$l" ne "$g") {
|
||||||
|
readingsBulkUpdate($hash,$readingName.$i,$l);
|
||||||
|
Log3($name, 4, "$name - Rotate \"$readingName.$i\" to value: $l");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
readingsBulkUpdate($hash,$readingName,$val);
|
||||||
|
readingsEndUpdate($hash, $do_trigger);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
#############################################################################################
|
#############################################################################################
|
||||||
# Vorbereitung SMTP EMail-Versand
|
# Vorbereitung SMTP EMail-Versand
|
||||||
# $OpMode = aktueller Operation Mode zur Unterscheidung was versendet werden soll
|
# $OpMode = aktueller Operation Mode zur Unterscheidung was versendet werden soll
|
||||||
|
Loading…
x
Reference in New Issue
Block a user