Hallo,
ich bräuchte für mein Projekt bitte noch einmal Hilfe.
Ich baue mir über das Attribut uiTable eine Tabelle mit Infos zu allen LogFiles auf und möchte dazu gerne in der ersten Zeile eine Übersicht in Textform (das klappt) und ein Diagramm mit den 10 größten LogFiles nach Größe gelistet.
Dazu habe ich ein 2D Array definiert, das dann noch zu befüllen wäre.
Leider klappt aber die Übergabe der Array-Werte an das "cylinder_bars" nicht.
Es kommt die Fehlermeldung:
Global symbol "@vals" requires explicit package name (did you forget to declare "my @vals"?) at (eval 1000518) line 1. in expression: cylinder_bars("biggest files",0,15,"Bytes",undef,undef,undef,1,$vals[0][0],30,$vals[0][1],$vals[1][0],30,$vals[1][1],$vals[2][0],30,$vals[2][1])
Wie kann ich eine Variable an "cylinder_bars" übergeben?
Vielen Dank im Voraus
liebe Grüße
Gerhard
p.s.: Hier der Code (Versuch):
{## alle FileLogs mit Reading
package ui_Table;;
## $TC{0..4}="align='center'";;
$SHOWNOSTATE=1;;
$ATTRIBUTESFIRST=1;;
my @vals = ([0, "Null"], [1, "Eins"], [2, "Zwei"], [3, "Drei"]);
sub FormatHumanReadable {
## https://forum.fhem.de/index.php/topic,97807.msg910736.html#msg910736
my ($val)=@_;;
1 while $val =~ s/^(-?\d+)(\d{3})/$1.$2/;;
return $val;;
}
sub FormatOverview {
my ($devs,$files,$filesize,$fhem_free,$fhem_freep)=@_;
my $FormatString="<table>";
$FormatString="<tr><td><b>Übersicht FileLogs</b><br><br></td></tr>";
$FormatString.="<tr><td>#Log-Devices:</td><td>".FormatHumanReadable($devs)."</td></tr>";
$FormatString.="<tr><td>#Log-Files insgesamt:</td><td>".FormatHumanReadable($files)."</td></tr>";
$FormatString.="<tr><td>Gesamtgrößte der Log-Files:</td><td>".FormatHumanReadable($filesize)."</td></tr>";
$FormatString.="<tr><td>noch frei:</td><td>".FormatHumanReadable($fhem_free)."MB, ".FormatHumanReadable($fhem_freep)."%</td></tr>";
$FormatString.="</table>";
return $FormatString;
}
}
FormatOverview([$SELF:LogDevs],[$SELF:LogFiles],[$SELF:LogFileSize],[TE.FolderSize:fhem_log_folder_size],[TE.FolderSize:fhem_used])|
cylinder_bars("biggest files",0,15,"Bytes",undef,undef,undef,1,$vals[0][0],30,$vals[0][1],$vals[1][0],30,$vals[1][1],$vals[2][0],30,$vals[2][1])
p.p.s.: Ich hoffe, ich habe beim Kürzen des Codes nichts vergessen.