mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-01-31 06:39:11 +00:00
49_SSCam.pm: contrib 9.12.2
git-svn-id: https://svn.fhem.de/fhem/trunk@29364 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
5beed73ceb
commit
20e94cc0d2
@ -1,5 +1,5 @@
|
|||||||
########################################################################################################################
|
########################################################################################################################
|
||||||
# $Id: 49_SSCam.pm 29032 2024-07-20 17:16:31Z DS_Starter $
|
# $Id: 49_SSCam.pm 29359 2024-11-25 19:52:40Z DS_Starter $
|
||||||
#########################################################################################################################
|
#########################################################################################################################
|
||||||
# 49_SSCam.pm
|
# 49_SSCam.pm
|
||||||
#
|
#
|
||||||
@ -192,6 +192,8 @@ BEGIN {
|
|||||||
|
|
||||||
# Versions History intern
|
# Versions History intern
|
||||||
my %vNotesIntern = (
|
my %vNotesIntern = (
|
||||||
|
"9.12.2" => "26.11.2024 Bugfix PATH in hvada & hsimu ",
|
||||||
|
"9.12.1" => "25.11.2024 set COMPATIBILITY to 9.2.1, attr customSVSversion new option 9.2.0 ",
|
||||||
"9.12.0" => "27.10.2024 internal code changes, implement new Take camera snapshot API if SVS >= 9.2.1 ".
|
"9.12.0" => "27.10.2024 internal code changes, implement new Take camera snapshot API if SVS >= 9.2.1 ".
|
||||||
"set COMPATIBILITY to 9.2.0, rename attr simu_SVSversion to customSVSversion ".
|
"set COMPATIBILITY to 9.2.0, rename attr simu_SVSversion to customSVSversion ".
|
||||||
"(https://surveillance-api.synology.com/#get-/webapi/SurveillanceStation/ThirdParty/SnapShot/Take/v1) ",
|
"(https://surveillance-api.synology.com/#get-/webapi/SurveillanceStation/ThirdParty/SnapShot/Take/v1) ",
|
||||||
@ -568,126 +570,145 @@ my %sdswfn = ( # Fun
|
|||||||
"hls" => {fn => "__switchedHLS" },
|
"hls" => {fn => "__switchedHLS" },
|
||||||
);
|
);
|
||||||
|
|
||||||
my %hvada = ( # Funktionshash Version Adaption
|
my %hvada = ( # Funktionshash Version Adaption !!PATH ohne führendes webapi/!!
|
||||||
'a01' => {AUTH => { VER => '6',
|
'a01' => {AUTH => { VER => '6',
|
||||||
PATH => 'webapi/entry.cgi',
|
NAME => 'SYNO.API.Auth',
|
||||||
NAME => 'SYNO.API.Auth'},
|
mk => 1},
|
||||||
},
|
},
|
||||||
'921' => {AUTH => { VER => '6',
|
'921' => {AUTH => { VER => '6',
|
||||||
PATH => 'webapi/entry.cgi',
|
NAME => 'SYNO.API.Auth',
|
||||||
NAME => 'SYNO.API.Auth'},
|
mk => 1},
|
||||||
SNAPWEBAPI => { VER => 'v1',
|
SNAPWEBAPI => { VER => 'v1',
|
||||||
PATH => 'webapi/SurveillanceStation/ThirdParty/SnapShot/Take/v1',
|
PATH => 'SurveillanceStation/ThirdParty/SnapShot/Take/v1',
|
||||||
NAME => 'WebAPI.Snapshot',
|
NAME => 'WebAPI.Snapshot',
|
||||||
mk => 0},
|
mk => 0},
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
my %hsimu = ( # Funktionshash Version Simulation
|
my %hsimu = ( # Funktionshash Version Simulation !!PATH ohne führendes webapi/!!
|
||||||
'71' => {INFO => { VER => '1', PATH => 'webapi/entry.cgi' },
|
'71' => {INFO => { VER => '1' },
|
||||||
AUTH => { VER => '4', PATH => 'webapi/entry.cgi' },
|
AUTH => { VER => '4' },
|
||||||
EXTREC => { VER => '2', PATH => 'webapi/entry.cgi' },
|
EXTREC => { VER => '2', PATH => 'entry.cgi' },
|
||||||
CAM => { VER => '8', PATH => 'webapi/entry.cgi' },
|
CAM => { VER => '8', PATH => 'entry.cgi' },
|
||||||
SNAPSHOT => { VER => '1', PATH => 'webapi/entry.cgi' },
|
SNAPSHOT => { VER => '1', PATH => 'entry.cgi' },
|
||||||
PTZ => { VER => '4', PATH => 'webapi/entry.cgi' },
|
PTZ => { VER => '4', PATH => 'entry.cgi' },
|
||||||
PRESET => { VER => '1', PATH => 'webapi/entry.cgi' },
|
PRESET => { VER => '1', PATH => 'entry.cgi' },
|
||||||
SVSINFO => { VER => '5', PATH => 'webapi/entry.cgi' },
|
SVSINFO => { VER => '5', PATH => 'entry.cgi' },
|
||||||
CAMEVENT => { VER => '1', PATH => 'webapi/entry.cgi' },
|
CAMEVENT => { VER => '1', PATH => 'entry.cgi' },
|
||||||
EVENT => { VER => '5', PATH => 'webapi/entry.cgi' },
|
EVENT => { VER => '5', PATH => 'entry.cgi' },
|
||||||
VIDEOSTM => { VER => '1', PATH => 'webapi/entry.cgi' },
|
VIDEOSTM => { VER => '1', PATH => 'entry.cgi' },
|
||||||
EXTEVT => { VER => '1', PATH => 'webapi/entry.cgi' },
|
EXTEVT => { VER => '1', PATH => 'entry.cgi' },
|
||||||
STM => { VER => '1', PATH => 'webapi/entry.cgi' },
|
STM => { VER => '1', PATH => 'entry.cgi' },
|
||||||
LOG => { VER => '1', PATH => 'webapi/entry.cgi' },
|
LOG => { VER => '1', PATH => 'entry.cgi' },
|
||||||
REC => { VER => '4', PATH => 'webapi/entry.cgi' },
|
REC => { VER => '4', PATH => 'entry.cgi' },
|
||||||
},
|
},
|
||||||
'72' => {INFO => { VER => '1', PATH => 'webapi/entry.cgi' },
|
'72' => {INFO => { VER => '1' },
|
||||||
AUTH => { VER => '6', PATH => 'webapi/entry.cgi' },
|
AUTH => { VER => '6' },
|
||||||
EXTREC => { VER => '3', PATH => 'webapi/entry.cgi' },
|
EXTREC => { VER => '3', PATH => 'entry.cgi' },
|
||||||
CAM => { VER => '8', PATH => 'webapi/entry.cgi' },
|
CAM => { VER => '8', PATH => 'entry.cgi' },
|
||||||
SNAPSHOT => { VER => '1', PATH => 'webapi/entry.cgi' },
|
SNAPSHOT => { VER => '1', PATH => 'entry.cgi' },
|
||||||
PTZ => { VER => '5', PATH => 'webapi/entry.cgi' },
|
PTZ => { VER => '5', PATH => 'entry.cgi' },
|
||||||
PRESET => { VER => '1', PATH => 'webapi/entry.cgi' },
|
PRESET => { VER => '1', PATH => 'entry.cgi' },
|
||||||
SVSINFO => { VER => '6', PATH => 'webapi/entry.cgi' },
|
SVSINFO => { VER => '6', PATH => 'entry.cgi' },
|
||||||
CAMEVENT => { VER => '1', PATH => 'webapi/entry.cgi' },
|
CAMEVENT => { VER => '1', PATH => 'entry.cgi' },
|
||||||
EVENT => { VER => '5', PATH => 'webapi/entry.cgi' },
|
EVENT => { VER => '5', PATH => 'entry.cgi' },
|
||||||
VIDEOSTM => { VER => '1', PATH => 'webapi/entry.cgi' },
|
VIDEOSTM => { VER => '1', PATH => 'entry.cgi' },
|
||||||
EXTEVT => { VER => '1', PATH => 'webapi/entry.cgi' },
|
EXTEVT => { VER => '1', PATH => 'entry.cgi' },
|
||||||
STM => { VER => '1', PATH => 'webapi/entry.cgi' },
|
STM => { VER => '1', PATH => 'entry.cgi' },
|
||||||
LOG => { VER => '1', PATH => 'webapi/entry.cgi' },
|
LOG => { VER => '1', PATH => 'entry.cgi' },
|
||||||
REC => { VER => '4', PATH => 'webapi/entry.cgi' },
|
REC => { VER => '4', PATH => 'entry.cgi' },
|
||||||
},
|
},
|
||||||
'800' => {INFO => { VER => '1', PATH => 'webapi/entry.cgi' },
|
'800' => {INFO => { VER => '1' },
|
||||||
AUTH => { VER => '6', PATH => 'webapi/entry.cgi' },
|
AUTH => { VER => '6' },
|
||||||
EXTREC => { VER => '3', PATH => 'webapi/entry.cgi' },
|
EXTREC => { VER => '3', PATH => 'entry.cgi' },
|
||||||
CAM => { VER => '9', PATH => 'webapi/entry.cgi' },
|
CAM => { VER => '9', PATH => 'entry.cgi' },
|
||||||
SNAPSHOT => { VER => '1', PATH => 'webapi/entry.cgi' },
|
SNAPSHOT => { VER => '1', PATH => 'entry.cgi' },
|
||||||
PTZ => { VER => '5', PATH => 'webapi/entry.cgi' },
|
PTZ => { VER => '5', PATH => 'entry.cgi' },
|
||||||
PRESET => { VER => '1', PATH => 'webapi/entry.cgi' },
|
PRESET => { VER => '1', PATH => 'entry.cgi' },
|
||||||
SVSINFO => { VER => '6', PATH => 'webapi/entry.cgi' },
|
SVSINFO => { VER => '6', PATH => 'entry.cgi' },
|
||||||
CAMEVENT => { VER => '1', PATH => 'webapi/entry.cgi' },
|
CAMEVENT => { VER => '1', PATH => 'entry.cgi' },
|
||||||
EVENT => { VER => '5', PATH => 'webapi/entry.cgi' },
|
EVENT => { VER => '5', PATH => 'entry.cgi' },
|
||||||
VIDEOSTM => { VER => '1', PATH => 'webapi/entry.cgi' },
|
VIDEOSTM => { VER => '1', PATH => 'entry.cgi' },
|
||||||
EXTEVT => { VER => '1', PATH => 'webapi/entry.cgi' },
|
EXTEVT => { VER => '1', PATH => 'entry.cgi' },
|
||||||
STM => { VER => '1', PATH => 'webapi/entry.cgi' },
|
STM => { VER => '1', PATH => 'entry.cgi' },
|
||||||
LOG => { VER => '1', PATH => 'webapi/entry.cgi' },
|
LOG => { VER => '1', PATH => 'entry.cgi' },
|
||||||
REC => { VER => '6', PATH => 'webapi/entry.cgi' },
|
REC => { VER => '6', PATH => 'entry.cgi' },
|
||||||
},
|
},
|
||||||
'815' => {INFO => { VER => '1', PATH => 'webapi/entry.cgi' },
|
'815' => {INFO => { VER => '1' },
|
||||||
AUTH => { VER => '6', PATH => 'webapi/entry.cgi' },
|
AUTH => { VER => '6' },
|
||||||
EXTREC => { VER => '3', PATH => 'webapi/entry.cgi' },
|
EXTREC => { VER => '3', PATH => 'entry.cgi' },
|
||||||
CAM => { VER => '9', PATH => 'webapi/entry.cgi' },
|
CAM => { VER => '9', PATH => 'entry.cgi' },
|
||||||
SNAPSHOT => { VER => '1', PATH => 'webapi/entry.cgi' },
|
SNAPSHOT => { VER => '1', PATH => 'entry.cgi' },
|
||||||
PTZ => { VER => '5', PATH => 'webapi/entry.cgi' },
|
PTZ => { VER => '5', PATH => 'entry.cgi' },
|
||||||
PRESET => { VER => '1', PATH => 'webapi/entry.cgi' },
|
PRESET => { VER => '1', PATH => 'entry.cgi' },
|
||||||
SVSINFO => { VER => '6', PATH => 'webapi/entry.cgi' },
|
SVSINFO => { VER => '6', PATH => 'entry.cgi' },
|
||||||
CAMEVENT => { VER => '1', PATH => 'webapi/entry.cgi' },
|
CAMEVENT => { VER => '1', PATH => 'entry.cgi' },
|
||||||
EVENT => { VER => '5', PATH => 'webapi/entry.cgi' },
|
EVENT => { VER => '5', PATH => 'entry.cgi' },
|
||||||
VIDEOSTM => { VER => '1', PATH => 'webapi/entry.cgi' },
|
VIDEOSTM => { VER => '1', PATH => 'entry.cgi' },
|
||||||
EXTEVT => { VER => '1', PATH => 'webapi/entry.cgi' },
|
EXTEVT => { VER => '1', PATH => 'entry.cgi' },
|
||||||
STM => { VER => '1', PATH => 'webapi/entry.cgi' },
|
STM => { VER => '1', PATH => 'entry.cgi' },
|
||||||
LOG => { VER => '3', PATH => 'webapi/entry.cgi' },
|
LOG => { VER => '3', PATH => 'entry.cgi' },
|
||||||
REC => { VER => '6', PATH => 'webapi/entry.cgi' },
|
REC => { VER => '6', PATH => 'entry.cgi' },
|
||||||
AUDIOSTM => { VER => '2', PATH => 'webapi/entry.cgi' },
|
AUDIOSTM => { VER => '2', PATH => 'entry.cgi' },
|
||||||
VIDEOSTMS => { VER => '1', PATH => 'webapi/entry.cgi' },
|
VIDEOSTMS => { VER => '1', PATH => 'entry.cgi' },
|
||||||
HMODE => { VER => '1', PATH => 'webapi/entry.cgi' },
|
HMODE => { VER => '1', PATH => 'entry.cgi' },
|
||||||
},
|
},
|
||||||
'820' => {INFO => { VER => '1', PATH => 'webapi/entry.cgi' },
|
'820' => {INFO => { VER => '1' },
|
||||||
AUTH => { VER => '6', PATH => 'webapi/entry.cgi' },
|
AUTH => { VER => '6' },
|
||||||
EXTREC => { VER => '3', PATH => 'webapi/entry.cgi' },
|
EXTREC => { VER => '3', PATH => 'entry.cgi' },
|
||||||
CAM => { VER => '9', PATH => 'webapi/entry.cgi' },
|
CAM => { VER => '9', PATH => 'entry.cgi' },
|
||||||
SNAPSHOT => { VER => '1', PATH => 'webapi/entry.cgi' },
|
SNAPSHOT => { VER => '1', PATH => 'entry.cgi' },
|
||||||
PTZ => { VER => '5', PATH => 'webapi/entry.cgi' },
|
PTZ => { VER => '5', PATH => 'entry.cgi' },
|
||||||
PRESET => { VER => '1', PATH => 'webapi/entry.cgi' },
|
PRESET => { VER => '1', PATH => 'entry.cgi' },
|
||||||
SVSINFO => { VER => '6', PATH => 'webapi/entry.cgi' },
|
SVSINFO => { VER => '6', PATH => 'entry.cgi' },
|
||||||
CAMEVENT => { VER => '1', PATH => 'webapi/entry.cgi' },
|
CAMEVENT => { VER => '1', PATH => 'entry.cgi' },
|
||||||
EVENT => { VER => '5', PATH => 'webapi/entry.cgi' },
|
EVENT => { VER => '5', PATH => 'entry.cgi' },
|
||||||
VIDEOSTM => { VER => '1', PATH => 'webapi/entry.cgi' },
|
VIDEOSTM => { VER => '1', PATH => 'entry.cgi' },
|
||||||
EXTEVT => { VER => '1', PATH => 'webapi/entry.cgi' },
|
EXTEVT => { VER => '1', PATH => 'entry.cgi' },
|
||||||
STM => { VER => '1', PATH => 'webapi/entry.cgi' },
|
STM => { VER => '1', PATH => 'entry.cgi' },
|
||||||
HMODE => { VER => '1', PATH => 'webapi/entry.cgi' },
|
HMODE => { VER => '1', PATH => 'entry.cgi' },
|
||||||
LOG => { VER => '3', PATH => 'webapi/entry.cgi' },
|
LOG => { VER => '3', PATH => 'entry.cgi' },
|
||||||
AUDIOSTM => { VER => '2', PATH => 'webapi/entry.cgi' },
|
AUDIOSTM => { VER => '2', PATH => 'entry.cgi' },
|
||||||
VIDEOSTMS => { VER => '1', PATH => 'webapi/entry.cgi' },
|
VIDEOSTMS => { VER => '1', PATH => 'entry.cgi' },
|
||||||
REC => { VER => '6', PATH => 'webapi/entry.cgi' },
|
REC => { VER => '6', PATH => 'entry.cgi' },
|
||||||
},
|
},
|
||||||
'828' => {INFO => { VER => '1', PATH => 'webapi/entry.cgi' },
|
'828' => {INFO => { VER => '1' },
|
||||||
AUTH => { VER => '6', PATH => 'webapi/entry.cgi' },
|
AUTH => { VER => '6' },
|
||||||
EXTREC => { VER => '3', PATH => 'webapi/entry.cgi' },
|
EXTREC => { VER => '3', PATH => 'entry.cgi' },
|
||||||
CAM => { VER => '9', PATH => 'webapi/entry.cgi' },
|
CAM => { VER => '9', PATH => 'entry.cgi' },
|
||||||
SNAPSHOT => { VER => '1', PATH => 'webapi/entry.cgi' },
|
SNAPSHOT => { VER => '1', PATH => 'entry.cgi' },
|
||||||
PTZ => { VER => '6', PATH => 'webapi/entry.cgi' },
|
PTZ => { VER => '6', PATH => 'entry.cgi' },
|
||||||
PRESET => { VER => '1', PATH => 'webapi/entry.cgi' },
|
PRESET => { VER => '1', PATH => 'entry.cgi' },
|
||||||
SVSINFO => { VER => '8', PATH => 'webapi/entry.cgi' },
|
SVSINFO => { VER => '8', PATH => 'entry.cgi' },
|
||||||
CAMEVENT => { VER => '1', PATH => 'webapi/entry.cgi' },
|
CAMEVENT => { VER => '1', PATH => 'entry.cgi' },
|
||||||
EVENT => { VER => '5', PATH => 'webapi/entry.cgi' },
|
EVENT => { VER => '5', PATH => 'entry.cgi' },
|
||||||
VIDEOSTM => { VER => '1', PATH => 'webapi/entry.cgi' },
|
VIDEOSTM => { VER => '1', PATH => 'entry.cgi' },
|
||||||
EXTEVT => { VER => '1', PATH => 'webapi/entry.cgi' },
|
EXTEVT => { VER => '1', PATH => 'entry.cgi' },
|
||||||
STM => { VER => '1', PATH => 'webapi/entry.cgi' },
|
STM => { VER => '1', PATH => 'entry.cgi' },
|
||||||
HMODE => { VER => '1', PATH => 'webapi/entry.cgi' },
|
HMODE => { VER => '1', PATH => 'entry.cgi' },
|
||||||
LOG => { VER => '3', PATH => 'webapi/entry.cgi' },
|
LOG => { VER => '3', PATH => 'entry.cgi' },
|
||||||
AUDIOSTM => { VER => '2', PATH => 'webapi/entry.cgi' },
|
AUDIOSTM => { VER => '2', PATH => 'entry.cgi' },
|
||||||
VIDEOSTMS => { VER => '1', PATH => 'webapi/entry.cgi' },
|
VIDEOSTMS => { VER => '1', PATH => 'entry.cgi' },
|
||||||
REC => { VER => '6', PATH => 'webapi/entry.cgi' },
|
REC => { VER => '6', PATH => 'entry.cgi' },
|
||||||
|
},
|
||||||
|
'920' => {INFO => { VER => '1' },
|
||||||
|
AUTH => { VER => '6' },
|
||||||
|
EXTREC => { VER => '3', PATH => 'entry.cgi' },
|
||||||
|
CAM => { VER => '9', PATH => 'entry.cgi' },
|
||||||
|
SNAPSHOT => { VER => '1', PATH => 'entry.cgi' },
|
||||||
|
PTZ => { VER => '6', PATH => 'entry.cgi' },
|
||||||
|
PRESET => { VER => '1', PATH => 'entry.cgi' },
|
||||||
|
SVSINFO => { VER => '8', PATH => 'entry.cgi' },
|
||||||
|
CAMEVENT => { VER => '1', PATH => 'entry.cgi' },
|
||||||
|
EVENT => { VER => '5', PATH => 'entry.cgi' },
|
||||||
|
VIDEOSTM => { VER => '1', PATH => 'entry.cgi' },
|
||||||
|
EXTEVT => { VER => '1', PATH => 'entry.cgi' },
|
||||||
|
STM => { VER => '1', PATH => 'entry.cgi' },
|
||||||
|
HMODE => { VER => '1', PATH => 'entry.cgi' },
|
||||||
|
LOG => { VER => '3', PATH => 'entry.cgi' },
|
||||||
|
AUDIOSTM => { VER => '2', PATH => 'entry.cgi' },
|
||||||
|
VIDEOSTMS => { VER => '1', PATH => 'entry.cgi' },
|
||||||
|
REC => { VER => '6', PATH => 'entry.cgi' },
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -696,7 +717,7 @@ my $defSlim = 3; # default Anzahl der
|
|||||||
my $defColumns = 3; # default Anzahl der Spalten einer snapGallery
|
my $defColumns = 3; # default Anzahl der Spalten einer snapGallery
|
||||||
my $sgnum = '1,2,3,4,5,6,7,8,9,10'; # mögliche Anzahl der abzurufenden Schnappschüsse mit snapGallery
|
my $sgnum = '1,2,3,4,5,6,7,8,9,10'; # mögliche Anzahl der abzurufenden Schnappschüsse mit snapGallery
|
||||||
my $sgbdef = 0; # default value Attr snapGalleryBoost
|
my $sgbdef = 0; # default value Attr snapGalleryBoost
|
||||||
my $compstat = '9.2.0'; # getestete SVS-Version
|
my $compstat = '9.2.1'; # getestete SVS-Version
|
||||||
my $valZoom = '.++,+,stop,-,--.'; # Inhalt des Setters "setZoom"
|
my $valZoom = '.++,+,stop,-,--.'; # Inhalt des Setters "setZoom"
|
||||||
my $shutdownInProcess = 0; # Statusbit shutdown
|
my $shutdownInProcess = 0; # Statusbit shutdown
|
||||||
my $todef = 20; # httptimeout default Wert
|
my $todef = 20; # httptimeout default Wert
|
||||||
@ -708,6 +729,7 @@ my $todef = 20; # httptimeout default
|
|||||||
8.1.5
|
8.1.5
|
||||||
8.2.0
|
8.2.0
|
||||||
8.2.8
|
8.2.8
|
||||||
|
9.2.0
|
||||||
);
|
);
|
||||||
|
|
||||||
# use vars qw($FW_ME); # webname (default is fhem), used by 97_GROUP/weblink
|
# use vars qw($FW_ME); # webname (default is fhem), used by 97_GROUP/weblink
|
||||||
@ -875,7 +897,8 @@ sub Initialize {
|
|||||||
|
|
||||||
my $simver = join ",", @simus;
|
my $simver = join ",", @simus;
|
||||||
|
|
||||||
$hash->{AttrList} = "disable:1,0 ".
|
$hash->{AttrList} = "customSVSversion:$simver ".
|
||||||
|
"disable:1,0 ".
|
||||||
"debugactivetoken:1,0 ".
|
"debugactivetoken:1,0 ".
|
||||||
"debugCachetime:1,0 ".
|
"debugCachetime:1,0 ".
|
||||||
"genericStrmHtmlTag ".
|
"genericStrmHtmlTag ".
|
||||||
@ -916,7 +939,6 @@ sub Initialize {
|
|||||||
"session:SurveillanceStation,DSM ".
|
"session:SurveillanceStation,DSM ".
|
||||||
"showPassInLog:1,0 ".
|
"showPassInLog:1,0 ".
|
||||||
"showStmInfoFull:1,0 ".
|
"showStmInfoFull:1,0 ".
|
||||||
"customSVSversion:$simver ".
|
|
||||||
"videofolderMap ".
|
"videofolderMap ".
|
||||||
"webCmd ".
|
"webCmd ".
|
||||||
$readingFnAttributes;
|
$readingFnAttributes;
|
||||||
@ -3201,7 +3223,9 @@ sub __camSnap {
|
|||||||
|
|
||||||
if ($hash->{HELPER}{ACTIVE} eq "off" || (defined $ta && $ta == $tac)) {
|
if ($hash->{HELPER}{ACTIVE} eq "off" || (defined $ta && $ta == $tac)) {
|
||||||
$hash->{OPMODE} = "Snap";
|
$hash->{OPMODE} = "Snap";
|
||||||
|
|
||||||
return if(startOrShut($name));
|
return if(startOrShut($name));
|
||||||
|
|
||||||
$hash->{HELPER}{LOGINRETRIES} = 0;
|
$hash->{HELPER}{LOGINRETRIES} = 0;
|
||||||
|
|
||||||
if (!$hash->{HELPER}{API}{PARSET}) {
|
if (!$hash->{HELPER}{API}{PARSET}) {
|
||||||
@ -3224,7 +3248,7 @@ sub __camSnap {
|
|||||||
$hash->{HELPER}{CALL}{PART} = qq{camId="_CID_"&download=false&_sid="_SID_"};
|
$hash->{HELPER}{CALL}{PART} = qq{camId="_CID_"&download=false&_sid="_SID_"};
|
||||||
}
|
}
|
||||||
|
|
||||||
readingsSingleUpdate ($hash,"state", "snap", 1);
|
readingsSingleUpdate ($hash, 'state', 'snap', 1);
|
||||||
|
|
||||||
setActiveToken ($hash);
|
setActiveToken ($hash);
|
||||||
checkSid ($name);
|
checkSid ($name);
|
||||||
@ -5379,7 +5403,9 @@ sub getApiSites {
|
|||||||
|
|
||||||
my $apis = join ",", @ak;
|
my $apis = join ",", @ak;
|
||||||
|
|
||||||
|
if ($hash->{HELPER}{API}{INFO}{PATH} !~ /webapi/xs) {
|
||||||
$hash->{HELPER}{API}{INFO}{PATH} = 'webapi/'.$hash->{HELPER}{API}{INFO}{PATH};
|
$hash->{HELPER}{API}{INFO}{PATH} = 'webapi/'.$hash->{HELPER}{API}{INFO}{PATH};
|
||||||
|
}
|
||||||
|
|
||||||
$url = "$proto://$serveraddr:$serverport/$hash->{HELPER}{API}{INFO}{PATH}?".
|
$url = "$proto://$serveraddr:$serverport/$hash->{HELPER}{API}{INFO}{PATH}?".
|
||||||
"api=$hash->{HELPER}{API}{INFO}{NAME}".
|
"api=$hash->{HELPER}{API}{INFO}{NAME}".
|
||||||
@ -7611,9 +7637,9 @@ sub apiAutoAdadapt {
|
|||||||
|
|
||||||
if ($adavs) {
|
if ($adavs) {
|
||||||
for my $av (sort keys %{$hvada{$adavs}}) {
|
for my $av (sort keys %{$hvada{$adavs}}) {
|
||||||
$hash->{HELPER}{API}{$av}{VER} = $hvada{$adavs}{$av}{VER};
|
$hash->{HELPER}{API}{$av}{VER} = $hvada{$adavs}{$av}{VER} if(defined $hvada{$adavs}{$av}{VER});
|
||||||
$hash->{HELPER}{API}{$av}{PATH} = $hvada{$adavs}{$av}{PATH};
|
$hash->{HELPER}{API}{$av}{PATH} = 'webapi/'.$hvada{$adavs}{$av}{PATH} if(defined $hvada{$adavs}{$av}{PATH});
|
||||||
$hash->{HELPER}{API}{$av}{NAME} = $hvada{$adavs}{$av}{NAME};
|
$hash->{HELPER}{API}{$av}{NAME} = $hvada{$adavs}{$av}{NAME} if(defined $hvada{$adavs}{$av}{NAME});
|
||||||
$hash->{HELPER}{API}{$av}{mk} = $hvada{$adavs}{$av}{mk} // 0;
|
$hash->{HELPER}{API}{$av}{mk} = $hvada{$adavs}{$av}{mk} // 0;
|
||||||
$hash->{HELPER}{API}{$av}{MOD} = "yes";
|
$hash->{HELPER}{API}{$av}{MOD} = "yes";
|
||||||
|
|
||||||
@ -7646,7 +7672,7 @@ sub apiCustomChange {
|
|||||||
$cusvs .= $vl[1];
|
$cusvs .= $vl[1];
|
||||||
$cusvs .= $vl[2] if(defined $vl[2]);
|
$cusvs .= $vl[2] if(defined $vl[2]);
|
||||||
|
|
||||||
Log3 ($name, 4, "$name - Conversion from current to the SVS $custapi version");
|
Log3 ($name, 4, "$name - Conversion from current to SVS $custapi version (Note: the SVS must provide this API version!)");
|
||||||
|
|
||||||
for my $ak (sort keys %{$hash->{HELPER}{API}} ) {
|
for my $ak (sort keys %{$hash->{HELPER}{API}} ) {
|
||||||
next if($ak =~ /^PARSET$/x);
|
next if($ak =~ /^PARSET$/x);
|
||||||
@ -7661,8 +7687,8 @@ sub apiCustomChange {
|
|||||||
my $apiname = ApiVal ($hash, $hash->{HELPER}{API}{$kapi}, 'NAME', '');
|
my $apiname = ApiVal ($hash, $hash->{HELPER}{API}{$kapi}, 'NAME', '');
|
||||||
next if(!$apiname);
|
next if(!$apiname);
|
||||||
|
|
||||||
$hash->{HELPER}{API}{$kapi}{VER} = $hsimu{$cusvs}{$kapi}{VER};
|
$hash->{HELPER}{API}{$kapi}{VER} = $hsimu{$cusvs}{$kapi}{VER} if(defined $hsimu{$cusvs}{$kapi}{VER});
|
||||||
$hash->{HELPER}{API}{$kapi}{PATH} = $hsimu{$cusvs}{$kapi}{PATH};
|
$hash->{HELPER}{API}{$kapi}{PATH} = 'webapi/'.$hsimu{$cusvs}{$kapi}{PATH} if(defined $hsimu{$cusvs}{$kapi}{PATH});
|
||||||
$hash->{HELPER}{API}{$kapi}{MOD} = "yes";
|
$hash->{HELPER}{API}{$kapi}{MOD} = "yes";
|
||||||
|
|
||||||
Log3 ($name, 4, "$name - $kapi customized -> NAME: $apiname, ".
|
Log3 ($name, 4, "$name - $kapi customized -> NAME: $apiname, ".
|
||||||
@ -11527,7 +11553,8 @@ sub __sendEmailblocking { ##
|
|||||||
}
|
}
|
||||||
|
|
||||||
my $ret = "Email transaction \"$tac\" successfully sent ".( $sslver ? "encoded by $sslver" : "");
|
my $ret = "Email transaction \"$tac\" successfully sent ".( $sslver ? "encoded by $sslver" : "");
|
||||||
Log3 ($name, 3, "$name - $ret To: $to".(($cc)?", CC: $cc":"") );
|
Log3 ($name, 4, "$name - used SMTP-Credentials: $username / $password");
|
||||||
|
Log3 ($name, 3, "$name - $ret To: $to".($cc ? ", CC: $cc" :"") );
|
||||||
|
|
||||||
# Daten müssen als Einzeiler zurückgegeben werden
|
# Daten müssen als Einzeiler zurückgegeben werden
|
||||||
$ret = encode_base64 ($ret, "");
|
$ret = encode_base64 ($ret, "");
|
||||||
|
Loading…
Reference in New Issue
Block a user