2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-01-31 18:59:33 +00:00

SMUtils.pm: update to version 1.11.0

git-svn-id: https://svn.fhem.de/fhem/trunk@22866 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
nasseeder1 2020-09-27 20:50:29 +00:00
parent 386a1875e2
commit e269485177

View File

@ -40,7 +40,7 @@ use FHEM::SynoModules::ErrCodes qw(:all); # Erro
use GPUtils qw( GP_Import GP_Export );
use Carp qw(croak carp);
use version; our $VERSION = version->declare('1.10.0');
use version; our $VERSION = version->declare('1.11.0');
use Exporter ('import');
our @EXPORT_OK = qw(
@ -51,6 +51,8 @@ our @EXPORT_OK = qw(
sortVersion
showModuleInfo
jboolmap
completeAPI
showAPIinfo
setCredentials
getCredentials
evaljson
@ -75,6 +77,7 @@ BEGIN {
GP_Import(
qw(
AttrVal
asyncOutput
Log3
data
defs
@ -98,7 +101,7 @@ BEGIN {
my $carpnohash = "got no hash value";
my $carpnoname = "got no name value";
my $carpnoctyp = "got no credentials type";
my $carpnoapir = "got no API reference";
my $carpnoapir = "got no API Hash reference";
###############################################################################
# Clienthash übernehmen oder zusammenstellen
@ -361,6 +364,67 @@ sub jboolmap {
return $bool;
}
###############################################################################
# vervollständige das übergebene API-Hash mit den Werten aus $data der
# JSON-Antwort
# $jdata: Referenz zum $data-Hash der JSON-Antwort
# $apiref: Referenz zum instanziierten API-Hash
###############################################################################
sub completeAPI {
my $jdata = shift // carp "got no data Hash reference" && return;
my $apiref = shift // carp $carpnoapir && return;
for my $key (keys %{$apiref}) {
next if($key =~ /PARSET$/x);
$apiref->{$key}{PATH} = $jdata->{data}{$apiref->{$key}{NAME}}{path} // "undefined";
$apiref->{$key}{VER} = $jdata->{data}{$apiref->{$key}{NAME}}{maxVersion} // 0;
$apiref->{$key}{MOD} = "no"; # MOD = Version nicht modifiziert
}
return;
}
###############################################################################
# zeigt den Inhalt des verwendeten API Hash als Popup
# $apiref: Referenz zum instanziierten API-Hash
###############################################################################
sub showAPIinfo {
my $hash = shift // carp $carpnohash && return;
my $apiref = shift // carp $carpnoapir && return;
my $name = $hash->{NAME};
my $type = $hash->{TYPE};
my $out = "<html>";
$out .= "<b>Synology $type API Info</b> <br><br>";
$out .= "<table class=\"roomoverview\" style=\"text-align:left; border:1px solid; padding:5px; border-spacing:5px; margin-left:auto; margin-right:auto;\">";
$out .= "<tr><td> <b>API</b> </td><td> <b>Path</b> </td><td> <b>Version</b> </td><td> <b>Changed</b> </td></tr>";
$out .= "<tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>";
for my $key (sort keys %{$hash->{HELPER}{API}}) {
next if($key =~ /^PARSET$/x);
my $apiname = $apiref->{$key}{NAME};
my $apipath = $apiref->{$key}{PATH};
my $apiver = $apiref->{$key}{VER};
my $apimod = $apiref->{$key}{MOD};
$out .= "<tr>";
$out .= "<td> $apiname </td>";
$out .= "<td> $apipath </td>";
$out .= "<td style=\"text-align: center\"> $apiver </td>";
$out .= "<td style=\"text-align: center\"> $apimod </td>";
$out .= "</tr>";
}
$out .= "</table>";
$out .= "</html>";
asyncOutput($hash->{HELPER}{CL}{1},"$out");
delClHash ($name);
return;
}
######################################################################################
# Username / Paßwort speichern
# $ao = "credentials" -> Standard Credentials