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

49_SSCam: contrib 9.2.2

git-svn-id: https://svn.fhem.de/fhem/trunk@21675 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
nasseeder1 2020-04-14 15:41:21 +00:00
parent f07d775af9
commit bcb62a7c4a

View File

@ -1,9 +1,9 @@
########################################################################################################################
# $Id: 49_SSCam.pm 20559 2019-11-22 14:19:34Z DS_Starter $
# $Id: 49_SSCam.pm 21273 2020-02-24 22:04:43Z DS_Starter $
#########################################################################################################################
# 49_SSCam.pm
#
# (c) 2015-2019 by Heiko Maaz
# (c) 2015-2020 by Heiko Maaz
# e-mail: Heiko dot Maaz at t-online dot de
#
# This Module can be used to operate Cameras defined in Synology Surveillance Station 7.0 or higher.
@ -54,6 +54,8 @@ eval "use Cache::Cache;1;" or my $SScamMMCacheCache = "Cache::Cache";
# Versions History intern
our %SSCam_vNotesIntern = (
"9.2.2" => "14.04.2020 increase read timeout of Redis server cache, fix autocreate bug with https ",
"9.2.1" => "24.02.2020 set compatibility to SVS version 8.2.7 ",
"9.2.0" => "10.12.2019 attribute \"recChatTxt\" for sending recordings by SSChatBot ",
"9.1.0" => "08.12.2019 attribute \"snapChatTxt\" for sending snapshots by SSChatBot ",
"9.0.6" => "26.11.2019 minor code change ",
@ -317,7 +319,7 @@ our %SSCam_vNotesExtern = (
);
# getestete SVS-Version
my $compstat = "8.2.6";
my $compstat = "8.2.7";
# Aufbau Errorcode-Hashes (siehe Surveillance Station Web API)
my %SSCam_errauthlist = (
@ -5887,7 +5889,6 @@ sub SSCam_camop_parse ($) {
}
} else {
for my $kn ($ss..($sgn-1)) {
# next if $kn >= $hash->{HELPER}{SNAPLIMIT};
$g = SSCam_cache($name, "c_read", "{SNAPOLDHASH}{$sn}{snapid}");
SSCam_cache($name, "c_write", "{SNAPHASH}{$kn}{snapid}", $g) if(defined $g);
SSCam_cache($name, "c_remove", "{SNAPOLDHASH}{$sn}{snapid}");
@ -6962,7 +6963,7 @@ sub SSCam_Autocreate ($$) {
if(!$camhash) {
$camname = "SSCam.".makeDeviceName($sn); # erlaubten Kameranamen für FHEM erzeugen
my $arg = $hash->{SERVERADDR}." ".$hash->{SERVERPORT};
my $arg = $hash->{SERVERADDR}." ".$hash->{SERVERPORT}." ".$hash->{PROTOCOL};
$cmd = "$camname $type $sn $arg";
Log3($name, 2, "$name - Autocreate camera: define $cmd");
$err = CommandDefine(undef, $cmd);
@ -10148,8 +10149,8 @@ sub SSCam_cache ($$;$$) {
return 0;
}
my $cto = 0.5;
my $rto = 0.5;
my $wto = 0.5;
my $rto = 2.0;
my $wto = 1.0;
my %Redispars = ( cnx_timeout => $cto,
read_timeout => $rto,
write_timeout => $wto
@ -10175,6 +10176,7 @@ sub SSCam_cache ($$;$$) {
$cache = CHI->new( driver => 'Redis',
namespace => $fuuid,
server => "$server:$port",
reconnect => 1,
on_set_error => 'warn',
on_get_error => 'warn',
redis_options => \%Redispars,
@ -10278,8 +10280,12 @@ sub SSCam_cache ($$;$$) {
my $g = $cache->get($key);
$brt = tv_interval($bst);
Log3($name, 1, "$name - Cache time read key \"$key\": ".$brt) if(AttrVal($name,"debugCachetime",0));
if(!$g) {
return "";
} else {
return $g;
}
}
# einen Key entfernen
if($op eq "c_remove") {
@ -10334,12 +10340,12 @@ sub SSCam_setVersionInfo($) {
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_SSCam.pm 20559 2019-11-22 14:19:34Z DS_Starter $ im Kopf komplett! vorhanden )
if($modules{$type}{META}{x_version}) { # {x_version} ( nur gesetzt wenn $Id: 49_SSCam.pm 21273 2020-02-24 22:04:43Z DS_Starter $ im Kopf komplett! vorhanden )
$modules{$type}{META}{x_version} =~ s/1.1.1/$v/g;
} else {
$modules{$type}{META}{x_version} = $v;
}
return $@ unless (FHEM::Meta::SetInternals($hash)); # FVERSION wird gesetzt ( nur gesetzt wenn $Id: 49_SSCam.pm 20559 2019-11-22 14:19:34Z DS_Starter $ im Kopf komplett! vorhanden )
return $@ unless (FHEM::Meta::SetInternals($hash)); # FVERSION wird gesetzt ( nur gesetzt wenn $Id: 49_SSCam.pm 21273 2020-02-24 22:04:43Z 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