mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-10 03:06:37 +00:00
use Data::Dumper is JSON is not available
git-svn-id: https://svn.fhem.de/fhem/trunk@3793 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
1f9b1ac4b1
commit
bf655e07c3
@ -6,10 +6,13 @@ package main;
|
|||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use POSIX;
|
use POSIX;
|
||||||
use JSON;
|
#use JSON;
|
||||||
|
use Data::Dumper;
|
||||||
|
|
||||||
use vars qw(%FW_webArgs); # all arguments specified in the GET
|
use vars qw(%FW_webArgs); # all arguments specified in the GET
|
||||||
|
|
||||||
|
my $LightScene_hasJSON = 1;
|
||||||
|
|
||||||
sub LightScene_Initialize($)
|
sub LightScene_Initialize($)
|
||||||
{
|
{
|
||||||
my ($hash) = @_;
|
my ($hash) = @_;
|
||||||
@ -21,6 +24,9 @@ sub LightScene_Initialize($)
|
|||||||
$hash->{GetFn} = "LightScene_Get";
|
$hash->{GetFn} = "LightScene_Get";
|
||||||
|
|
||||||
$hash->{FW_detailFn} = "LightScene_detailFn";
|
$hash->{FW_detailFn} = "LightScene_detailFn";
|
||||||
|
|
||||||
|
eval "use JSON";
|
||||||
|
$LightScene_hasJSON = 0 if($@);
|
||||||
}
|
}
|
||||||
|
|
||||||
sub LightScene_Define($$)
|
sub LightScene_Define($$)
|
||||||
@ -245,13 +251,21 @@ LightScene_Save()
|
|||||||
my $t = localtime;
|
my $t = localtime;
|
||||||
print FH "#$t\n";
|
print FH "#$t\n";
|
||||||
|
|
||||||
print FH encode_json($hash) if( defined($hash) );
|
if( $LightScene_hasJSON ) {
|
||||||
|
print FH encode_json($hash) if( defined($hash) );
|
||||||
|
} else {
|
||||||
|
my $dumper = Data::Dumper->new([]);
|
||||||
|
$dumper->Terse(1);
|
||||||
|
|
||||||
|
$dumper->Values([$hash]);
|
||||||
|
print FH $dumper->Dump;
|
||||||
|
}
|
||||||
|
|
||||||
close(FH);
|
close(FH);
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
my $msg = "LightScene_Save: Cannot open $statefile: $!";
|
my $msg = "LightScene_Save: Cannot open $statefile: $!";
|
||||||
Log 1, $msg;
|
Log3 undef, 1, $msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
return undef;
|
return undef;
|
||||||
@ -265,25 +279,27 @@ LightScene_Load($)
|
|||||||
my $statefile = myStatefileName();
|
my $statefile = myStatefileName();
|
||||||
|
|
||||||
if(open(FH, "<$statefile")) {
|
if(open(FH, "<$statefile")) {
|
||||||
my $json;
|
my $encoded;
|
||||||
while (my $line = <FH>) {
|
while (my $line = <FH>) {
|
||||||
chomp $line;
|
chomp $line;
|
||||||
next if($line =~ m/^#.*$/);
|
next if($line =~ m/^#.*$/);
|
||||||
$json .= $line;
|
$encoded .= $line;
|
||||||
}
|
}
|
||||||
|
|
||||||
close(FH);
|
close(FH);
|
||||||
|
|
||||||
return if( !defined($json) );
|
return if( !defined($encoded) );
|
||||||
|
|
||||||
my $decoded = decode_json( $json );
|
my $decoded;
|
||||||
|
if( $LightScene_hasJSON ) {
|
||||||
if( defined($decoded->{$hash->{NAME}}) ) {
|
$decoded = decode_json( $encoded );
|
||||||
$hash->{SCENES} = $decoded->{$hash->{NAME}};
|
} else {
|
||||||
|
$decoded = eval $encoded;
|
||||||
}
|
}
|
||||||
|
$hash->{SCENES} = $decoded->{$hash->{NAME}} if( defined($decoded->{$hash->{NAME}}) );
|
||||||
} else {
|
} else {
|
||||||
my $msg = "LightScene_Load: Cannot open $statefile: $!";
|
my $msg = "LightScene_Load: Cannot open $statefile: $!";
|
||||||
Log 1, $msg;
|
Log3 undef, 1, $msg;
|
||||||
}
|
}
|
||||||
return undef;
|
return undef;
|
||||||
}
|
}
|
||||||
@ -323,7 +339,7 @@ LightScene_Set($@)
|
|||||||
foreach my $d (sort keys %{ $hash->{CONTENT} }) {
|
foreach my $d (sort keys %{ $hash->{CONTENT} }) {
|
||||||
next if(!$defs{$d});
|
next if(!$defs{$d});
|
||||||
if($defs{$d}{INSET}) {
|
if($defs{$d}{INSET}) {
|
||||||
Log 1, "ERROR: endless loop detected for $d in " . $hash->{NAME};
|
Log3 $name, 1, "ERROR: endless loop detected for $d in " . $hash->{NAME};
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -402,7 +418,7 @@ LightScene_Set($@)
|
|||||||
}
|
}
|
||||||
|
|
||||||
delete($hash->{INSET});
|
delete($hash->{INSET});
|
||||||
Log GetLogLevel($hash->{NAME},5), "SET: $ret" if($ret);
|
Log3 $hash, 5, "SET: $ret" if($ret);
|
||||||
|
|
||||||
return $ret;
|
return $ret;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user