2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-10 09:16:53 +00:00

SMUtils.pm: update to version 1.18.0

git-svn-id: https://svn.fhem.de/fhem/trunk@22970 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
nasseeder1 2020-10-14 16:55:46 +00:00
parent ea06deefa6
commit 380703d69e

View File

@ -41,7 +41,7 @@ use FHEM::SynoModules::ErrCodes qw(:all); # Erro
use GPUtils qw( GP_Import GP_Export ); use GPUtils qw( GP_Import GP_Export );
use Carp qw(croak carp); use Carp qw(croak carp);
use version; our $VERSION = version->declare('1.17.3'); use version; our $VERSION = version->declare('1.18.0');
use Exporter ('import'); use Exporter ('import');
our @EXPORT_OK = qw( our @EXPORT_OK = qw(
@ -53,6 +53,7 @@ our @EXPORT_OK = qw(
sortVersion sortVersion
showModuleInfo showModuleInfo
jboolmap jboolmap
smUrlEncode
plotPngToFile plotPngToFile
completeAPI completeAPI
showAPIinfo showAPIinfo
@ -440,6 +441,30 @@ sub jboolmap {
return $bool; return $bool;
} }
#############################################################################################
# Zeichen URL encoden
# $str : der zu formatierende String
#############################################################################################
sub smUrlEncode {
my $str = shift // carp "got no string for URL encoding" && return;
my $hextourl = { map { sprintf("\\x{%02x}", $_) => sprintf( "%%%02X", $_ ) } ( 0 ... 255 ) }; # Standard Hex Codes zu UrlEncode, z.B. \x{c2}\x{b6} -> %C2%B6 -> ¶
my $replacements = {
"#" => "%23",
"&" => "%26",
"%" => "%25",
"+" => "%2B",
};
%$replacements = (%$replacements, %$hextourl);
my $pat = join '|', map { quotemeta; } keys(%$replacements);
$str =~ s/($pat)/$replacements->{$1}/xg;
return $str;
}
#################################################################################### ####################################################################################
# Ausgabe der SVG-Funktion "plotAsPng" in eine Datei schreiben # Ausgabe der SVG-Funktion "plotAsPng" in eine Datei schreiben
# Die Datei wird im Verzeichnis "/opt/fhem/www/images" erstellt # Die Datei wird im Verzeichnis "/opt/fhem/www/images" erstellt
@ -980,7 +1005,7 @@ sub login {
apiref => $apiref, apiref => $apiref,
method => "GET", method => "GET",
header => "Accept: application/json", header => "Accept: application/json",
callback => \&loginReturn callback => \&_loginReturn
}; };
HttpUtils_NonblockingGet ($param); HttpUtils_NonblockingGet ($param);
@ -988,7 +1013,7 @@ sub login {
return; return;
} }
sub loginReturn { sub _loginReturn {
my $param = shift; my $param = shift;
my $err = shift; my $err = shift;
my $myjson = shift; my $myjson = shift;
@ -1122,7 +1147,7 @@ sub logout {
username => $username, username => $username,
method => "GET", method => "GET",
header => "Accept: application/json", header => "Accept: application/json",
callback => \&logoutReturn callback => \&_logoutReturn
}; };
HttpUtils_NonblockingGet ($param); HttpUtils_NonblockingGet ($param);
@ -1130,7 +1155,7 @@ sub logout {
return; return;
} }
sub logoutReturn { sub _logoutReturn {
my $param = shift; my $param = shift;
my $err = shift; my $err = shift;
my $myjson = shift; my $myjson = shift;
@ -1463,9 +1488,10 @@ sub checkSendRetry {
my $forbidSend = q{}; my $forbidSend = q{};
my $startfnref = \&{$startfn}; my $startfnref = \&{$startfn};
my @forbidlist = qw(100 101 103 117 120 401 407 408 409 410 418 419 420 800 900 1000 my @forbidlist = qw(100 101 103 117 120 400 401 407 408 409 410 418 419 420 800 900
1001 1002 1003 1004 1006 1007 1100 1101 1200 1300 1301 1400 1401 1000 1001 1002 1003 1004 1006 1007 1100 1101 1200 1300 1301 1400
1402 1403 1404 1405 1800 1801 1802 1803 1804 1805 2000 2001 2002); # bei diesen Errorcodes den Queueeintrag nicht wiederholen, da dauerhafter Fehler ! 1401 1402 1403 1404 1405 1800 1801 1802 1803 1804 1805 2000 2001
2002); # bei diesen Errorcodes den Queueeintrag nicht wiederholen, da dauerhafter Fehler !
if(!keys %{$data{$type}{$name}{sendqueue}{entries}}) { if(!keys %{$data{$type}{$name}{sendqueue}{entries}}) {
Log3($name, 4, "$name - SendQueue is empty. Nothing to do ..."); Log3($name, 4, "$name - SendQueue is empty. Nothing to do ...");