diff --git a/fhem/FHEM/01_FHEMWEB.pm b/fhem/FHEM/01_FHEMWEB.pm
index 8475713b7..98c87962c 100755
--- a/fhem/FHEM/01_FHEMWEB.pm
+++ b/fhem/FHEM/01_FHEMWEB.pm
@@ -1642,7 +1642,7 @@ FW_style($$)
} else {
$fileName =~ s,.*/,,g; # Little bit of security
my $filePath = FW_fileNameToPath($fileName);
- my($err, @data) = FileRead($filePath);
+ my($err, @data) = FileRead({FileName=>$filePath, ForceType=>"file"} );
if($err) {
FW_pO "
$err
";
return;
@@ -1678,7 +1678,7 @@ FW_style($$)
if($cfgDB ne 'configDB') { # save file to filesystem
$FW_data =~ s/\r//g;
- my $err = FileWrite($filePath, split("\n", $FW_data));
+ my $err = FileWrite({FileName=>$filePath, ForceType=>"file"}, split("\n", $FW_data));
if($err) {
FW_pO "$filePath: $!
";
return;
diff --git a/fhem/fhem.pl b/fhem/fhem.pl
index c87f10b22..8c9ee397f 100755
--- a/fhem/fhem.pl
+++ b/fhem/fhem.pl
@@ -3804,19 +3804,27 @@ configDBUsed()
sub
FileRead($)
{
- my ($fname) = @_;
- my ($err, @ret);
+ my ($param) = @_;
+ my ($err, @ret, $fileName, $forceType);
- if(configDBUsed()) {
- ($err, @ret) = cfgDB_FileRead($fname);
+ if(ref($param) eq "HASH") {
+ $fileName = $param->{FileName};
+ $forceType = $param->{ForceType};
+ } else {
+ $fileName = $param;
+ }
+ $forceType = "" if(!defined($forceType));
+
+ if(configDBUsed() && $forceType ne "file") {
+ ($err, @ret) = cfgDB_FileRead($fileName);
} else {
- if(open(FH, $fname)) {
+ if(open(FH, $fileName)) {
@ret = ;
close(FH);
chomp(@ret);
} else {
- $err = "Can't open $fname: $!";
+ $err = "Can't open $fileName: $!";
}
}
@@ -3826,14 +3834,22 @@ FileRead($)
sub
FileWrite($@)
{
- my ($fname, @rows) = @_;
- my ($err, @ret);
+ my ($param, @rows) = @_;
+ my ($err, @ret, $fileName, $forceType);
- if(configDBUsed()) {
- return cfgDB_FileWrite($fname, @rows);
+ if(ref($param) eq "HASH") {
+ $fileName = $param->{FileName};
+ $forceType = $param->{ForceType};
+ } else {
+ $fileName = $param;
+ }
+ $forceType = "" if(!defined($forceType));
+
+ if(configDBUsed() && $forceType ne "file") {
+ return cfgDB_FileWrite($fileName, @rows);
} else {
- if(open(FH, ">$fname")) {
+ if(open(FH, ">$fileName")) {
binmode (FH);
foreach my $l (@rows) {
print FH $l,"\n";
@@ -3842,7 +3858,7 @@ FileWrite($@)
return undef;
} else {
- return "Can't open $fname: $!";
+ return "Can't open $fileName: $!";
}
}