diff --git a/fhem/FHEM/98_freezemon.pm b/fhem/FHEM/98_freezemon.pm
index 9026bb182..8b674ecb7 100644
--- a/fhem/FHEM/98_freezemon.pm
+++ b/fhem/FHEM/98_freezemon.pm
@@ -398,17 +398,18 @@ sub freezemon_Get($@) {
#get the logfiles
my $lf = AttrVal( $name, "fm_logFile", "" );
$lf =~ m,^(.*)/([^/%]*).*$,;
- my $p = $1;
+ my $path = $1;
my $pattern = $2;
+ $path =~ s/%L/$attr{global}{logdir}/g if ( $path =~ m/%/ && $attr{global}{logdir} );
my @fl;
my $sfl;
- if ( opendir( DH, $p ) ) {
+ if ( opendir( DH, $path ) ) {
while ( my $f = readdir(DH) ) {
push( @fl, $f ) if ( $f =~ /$pattern.*/ );
}
closedir(DH);
- @fl = sort { ( CORE::stat("$p/$b") )[9] <=> ( CORE::stat("$p/$a") )[9] } @fl;
+ @fl = sort { ( CORE::stat("$path/$b") )[9] <=> ( CORE::stat("$path/$a") )[9] } @fl;
}
my $sfl = join( ",", @fl );
$usage .= $sfl;
@@ -431,6 +432,7 @@ sub freezemon_Get($@) {
}
}
$_ =~ s/(?<=.{240}).{1,}$/.../;
+ $_ =~ s/&%%CSRF%%/$FW_CSRF/;
$ret .= "" . $loglevel . " - " . $_ . "
";
}
@@ -447,8 +449,7 @@ sub freezemon_Get($@) {
}
# Build the complete path (using global logfile parameter if necessary)
- my $path = "$p/$gf";
- $path =~ s/%L/$attr{global}{logdir}/g if ( $path =~ m/%/ && $attr{global}{logdir} );
+ $path = "$path/$gf";
if ( !open( my $fh, $path ) ) {
return "Couldn't open $path";
@@ -498,7 +499,16 @@ sub freezemon_Attr($) {
}
if ( $aName eq "fm_logFile" ) {
if ( $aVal ne "" ) {
- freezemon_install_log_wrapper($hash);
+ $aVal =~ m,^(.*)/([^/]*)$,;
+ my $path = $1;
+ $path =~ s/%L/$attr{global}{logdir}/g if ( $path =~ m/%/ && $attr{global}{logdir} );
+ if ( opendir( DH, $path ) ) {
+ freezemon_install_log_wrapper($hash);
+ closedir(DH);
+ }
+ else {
+ return "Attribute " . $aName . ": $path is not a valid directory";
+ }
}
else {
return "Attribute " . $aName . ": Enter a valid path or delete the attribute to disable.";
@@ -795,7 +805,7 @@ sub freezemon_dump_log($$$) {
###################################
sub freezemon_logLink($$) {
my ( $name, $link ) = @_;
- my $ret = FW_pH( "$FW_ME/fhem?cmd=" . urlEncode("get $name log $link"), " [Log]", 1, "", 1, 1 );
+ my $ret = " [Log]";
return $ret;
}