diff --git a/lib/FHEM/SynoModules/SMUtils.pm b/lib/FHEM/SynoModules/SMUtils.pm index a7a30480c..2f23e7f92 100644 --- a/lib/FHEM/SynoModules/SMUtils.pm +++ b/lib/FHEM/SynoModules/SMUtils.pm @@ -36,13 +36,13 @@ eval "use JSON;1;" or my $nojsonmod = 1; ## no use Data::Dumper; use Encode; - use lib qw(/opt/fhem/FHEM /opt/fhem/lib); # für Syntaxcheck mit: perl -c /opt/fhem/lib/FHEM/SynoModules/SMUtils.pm +# use lib qw(/opt/fhem/FHEM /opt/fhem/lib); # für Syntaxcheck mit: perl -c /opt/fhem/lib/FHEM/SynoModules/SMUtils.pm use FHEM::SynoModules::ErrCodes qw(:all); # Error Code Modul use GPUtils qw( GP_Import GP_Export ); use Carp qw(croak carp); -use version; our $VERSION = version->declare('1.20.4'); +use version; our $VERSION = version->declare('1.20.5'); use Exporter ('import'); our @EXPORT_OK = qw( @@ -54,6 +54,7 @@ our @EXPORT_OK = qw( moduleVersion sortVersion showModuleInfo + convertHashToTable jboolmap smUrlEncode plotPngToFile @@ -346,6 +347,76 @@ sub sortVersion { return @sorted; } +############################################################################################# +# Gibt die erste Key-Ebene eines Hash als Tabelle formatiert zurück +# $headl: Überschrift über Tabelle +# $thead: String der Elemente des Tabellenkopfes (Komma getrennt), z.B. +# "local Object,remote Object,Date,Time" +# $datah: Referenz zum Hashobjekt mit Daten zur Konvertierung in eine Tabelle +############################################################################################# +sub convertHashToTable { + my $paref = shift; + my $hash = $paref->{hash} // carp $carpnohash && return; + my $datah = $paref->{datah} // carp "got no hash ref of data for table convert" && return; + my $headl = $paref->{headl} // q{}; + my $thead = $paref->{thead} // q{}; + + my $name = $hash->{NAME}; + + my $sub = sub { + my $idx = shift; + my @ret; + for my $key (sort keys %{$datah->{$idx}}) { + push @ret, $datah->{$idx}{$key}; + } + return @ret; + }; + + my $out = ""; + $out .= "
$elem | "; + } + } + + $out .= "|
$idx | "; + + for my $he (@sq) { + $out .= "$he | "; + } + + $out .= "