mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-13 11:16:36 +00:00
BugFix über uninitialisierte Werte im fhemLog bei Nutzung von Plots über das DbLog
git-svn-id: https://svn.fhem.de/fhem/trunk@2371 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
6ce5f8bf38
commit
3ceb74d984
@ -577,7 +577,7 @@ DbLog_Get($@)
|
|||||||
$out_tstamp = "";
|
$out_tstamp = "";
|
||||||
|
|
||||||
############ Auswerten des 5. Parameters: Regexp ###################
|
############ Auswerten des 5. Parameters: Regexp ###################
|
||||||
if($readings[$i]->[4]) {
|
if($readings[$i]->[4] && $readings[$i]->[4]) {
|
||||||
#evaluate
|
#evaluate
|
||||||
my $val = $sql_value;
|
my $val = $sql_value;
|
||||||
eval("$readings[$i]->[4]");
|
eval("$readings[$i]->[4]");
|
||||||
@ -588,19 +588,19 @@ DbLog_Get($@)
|
|||||||
}
|
}
|
||||||
|
|
||||||
############ Auswerten des 4. Parameters: function ###################
|
############ Auswerten des 4. Parameters: function ###################
|
||||||
if($readings[$i]->[3] eq "int") {
|
if($readings[$i]->[3] && $readings[$i]->[3] eq "int") {
|
||||||
#nur den integerwert uebernehmen falls zb value=15?C
|
#nur den integerwert uebernehmen falls zb value=15°C
|
||||||
$out_value = $1 if($sql_value =~ m/^(\d+).*/o);
|
$out_value = $1 if($sql_value =~ m/^(\d+).*/o);
|
||||||
$out_tstamp = $sql_timestamp;
|
$out_tstamp = $sql_timestamp;
|
||||||
$writeout=1;
|
$writeout=1;
|
||||||
|
|
||||||
} elsif ($readings[$i]->[3] =~ m/^int(\d+).*/o) {
|
} elsif ($readings[$i]->[3] && $readings[$i]->[3] =~ m/^int(\d+).*/o) {
|
||||||
#?bernehme den Dezimalwert mit den angegebenen Stellen an Nachkommastellen
|
#?bernehme den Dezimalwert mit den angegebenen Stellen an Nachkommastellen
|
||||||
$out_value = $1 if($sql_value =~ m/^([-\.\d]+).*/o);
|
$out_value = $1 if($sql_value =~ m/^([-\.\d]+).*/o);
|
||||||
$out_tstamp = $sql_timestamp;
|
$out_tstamp = $sql_timestamp;
|
||||||
$writeout=1;
|
$writeout=1;
|
||||||
|
|
||||||
} elsif ($readings[$i]->[3] eq "delta-h") {
|
} elsif ($readings[$i]->[3] && $readings[$i]->[3] eq "delta-h") {
|
||||||
#Berechnung eines Stundenwertes
|
#Berechnung eines Stundenwertes
|
||||||
%tstamp = DbLog_explode_datetime($sql_timestamp, ());
|
%tstamp = DbLog_explode_datetime($sql_timestamp, ());
|
||||||
if($lastd[$i] eq "undef") {
|
if($lastd[$i] eq "undef") {
|
||||||
@ -616,7 +616,7 @@ DbLog_Get($@)
|
|||||||
$maxval = -999999;
|
$maxval = -999999;
|
||||||
$writeout=1;
|
$writeout=1;
|
||||||
}
|
}
|
||||||
} elsif ($readings[$i]->[3] eq "delta-d") {
|
} elsif ($readings[$i]->[3] && $readings[$i]->[3] eq "delta-d") {
|
||||||
#Berechnung eines Tageswertes
|
#Berechnung eines Tageswertes
|
||||||
%tstamp = DbLog_explode_datetime($sql_timestamp, ());
|
%tstamp = DbLog_explode_datetime($sql_timestamp, ());
|
||||||
if($lastd[$i] eq "undef") {
|
if($lastd[$i] eq "undef") {
|
||||||
@ -669,7 +669,7 @@ DbLog_Get($@)
|
|||||||
} #while fetchrow
|
} #while fetchrow
|
||||||
|
|
||||||
######## den letzten Abschlusssatz rausschreiben ##########
|
######## den letzten Abschlusssatz rausschreiben ##########
|
||||||
if($readings[$i]->[3] eq "delta-h" || $readings[$i]->[3] eq "delta-d") {
|
if($readings[$i]->[3] && ($readings[$i]->[3] eq "delta-h" || $readings[$i]->[3] eq "delta-d")) {
|
||||||
$out_value = sprintf("%0.1f", $maxval - $minval);
|
$out_value = sprintf("%0.1f", $maxval - $minval);
|
||||||
$out_tstamp = DbLog_implode_datetime($lasttstamp{year}, $lasttstamp{month}, $lasttstamp{day}, $lasttstamp{hour}, "30", "00") if($readings[$i]->[3] eq "delta-h");
|
$out_tstamp = DbLog_implode_datetime($lasttstamp{year}, $lasttstamp{month}, $lasttstamp{day}, $lasttstamp{hour}, "30", "00") if($readings[$i]->[3] eq "delta-h");
|
||||||
$out_tstamp = DbLog_implode_datetime($lasttstamp{year}, $lasttstamp{month}, $lasttstamp{day}, "00", "00", "00") if($readings[$i]->[3] eq "delta-d");
|
$out_tstamp = DbLog_implode_datetime($lasttstamp{year}, $lasttstamp{month}, $lasttstamp{day}, "00", "00", "00") if($readings[$i]->[3] eq "delta-d");
|
||||||
@ -681,7 +681,16 @@ DbLog_Get($@)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
# DatenTrenner setzen
|
# DatenTrenner setzen
|
||||||
$retval .= "#$readings[$i]->[0]:$readings[$i]->[1]:$readings[$i]->[2]:$readings[$i]->[3]:$readings[$i]->[4]\n";
|
$retval .= "#$readings[$i]->[0]";
|
||||||
|
$retval .= ":";
|
||||||
|
$retval .= "$readings[$i]->[1]" if($readings[$i]->[1]);
|
||||||
|
$retval .= ":";
|
||||||
|
$retval .= "$readings[$i]->[2]" if($readings[$i]->[2]);
|
||||||
|
$retval .= ":";
|
||||||
|
$retval .= "$readings[$i]->[3]" if($readings[$i]->[3]);
|
||||||
|
$retval .= ":";
|
||||||
|
$retval .= "$readings[$i]->[4]" if($readings[$i]->[4]);
|
||||||
|
$retval .= "\n";
|
||||||
} #for @readings
|
} #for @readings
|
||||||
|
|
||||||
#Ueberfuehren der gesammelten Werte in die globale Variable %data
|
#Ueberfuehren der gesammelten Werte in die globale Variable %data
|
||||||
|
@ -577,7 +577,7 @@ DbLog_Get($@)
|
|||||||
$out_tstamp = "";
|
$out_tstamp = "";
|
||||||
|
|
||||||
############ Auswerten des 5. Parameters: Regexp ###################
|
############ Auswerten des 5. Parameters: Regexp ###################
|
||||||
if($readings[$i]->[4]) {
|
if($readings[$i]->[4] && $readings[$i]->[4]) {
|
||||||
#evaluate
|
#evaluate
|
||||||
my $val = $sql_value;
|
my $val = $sql_value;
|
||||||
eval("$readings[$i]->[4]");
|
eval("$readings[$i]->[4]");
|
||||||
@ -588,19 +588,19 @@ DbLog_Get($@)
|
|||||||
}
|
}
|
||||||
|
|
||||||
############ Auswerten des 4. Parameters: function ###################
|
############ Auswerten des 4. Parameters: function ###################
|
||||||
if($readings[$i]->[3] eq "int") {
|
if($readings[$i]->[3] && $readings[$i]->[3] eq "int") {
|
||||||
#nur den integerwert uebernehmen falls zb value=15?C
|
#nur den integerwert uebernehmen falls zb value=15°C
|
||||||
$out_value = $1 if($sql_value =~ m/^(\d+).*/o);
|
$out_value = $1 if($sql_value =~ m/^(\d+).*/o);
|
||||||
$out_tstamp = $sql_timestamp;
|
$out_tstamp = $sql_timestamp;
|
||||||
$writeout=1;
|
$writeout=1;
|
||||||
|
|
||||||
} elsif ($readings[$i]->[3] =~ m/^int(\d+).*/o) {
|
} elsif ($readings[$i]->[3] && $readings[$i]->[3] =~ m/^int(\d+).*/o) {
|
||||||
#?bernehme den Dezimalwert mit den angegebenen Stellen an Nachkommastellen
|
#?bernehme den Dezimalwert mit den angegebenen Stellen an Nachkommastellen
|
||||||
$out_value = $1 if($sql_value =~ m/^([-\.\d]+).*/o);
|
$out_value = $1 if($sql_value =~ m/^([-\.\d]+).*/o);
|
||||||
$out_tstamp = $sql_timestamp;
|
$out_tstamp = $sql_timestamp;
|
||||||
$writeout=1;
|
$writeout=1;
|
||||||
|
|
||||||
} elsif ($readings[$i]->[3] eq "delta-h") {
|
} elsif ($readings[$i]->[3] && $readings[$i]->[3] eq "delta-h") {
|
||||||
#Berechnung eines Stundenwertes
|
#Berechnung eines Stundenwertes
|
||||||
%tstamp = DbLog_explode_datetime($sql_timestamp, ());
|
%tstamp = DbLog_explode_datetime($sql_timestamp, ());
|
||||||
if($lastd[$i] eq "undef") {
|
if($lastd[$i] eq "undef") {
|
||||||
@ -616,7 +616,7 @@ DbLog_Get($@)
|
|||||||
$maxval = -999999;
|
$maxval = -999999;
|
||||||
$writeout=1;
|
$writeout=1;
|
||||||
}
|
}
|
||||||
} elsif ($readings[$i]->[3] eq "delta-d") {
|
} elsif ($readings[$i]->[3] && $readings[$i]->[3] eq "delta-d") {
|
||||||
#Berechnung eines Tageswertes
|
#Berechnung eines Tageswertes
|
||||||
%tstamp = DbLog_explode_datetime($sql_timestamp, ());
|
%tstamp = DbLog_explode_datetime($sql_timestamp, ());
|
||||||
if($lastd[$i] eq "undef") {
|
if($lastd[$i] eq "undef") {
|
||||||
@ -669,7 +669,7 @@ DbLog_Get($@)
|
|||||||
} #while fetchrow
|
} #while fetchrow
|
||||||
|
|
||||||
######## den letzten Abschlusssatz rausschreiben ##########
|
######## den letzten Abschlusssatz rausschreiben ##########
|
||||||
if($readings[$i]->[3] eq "delta-h" || $readings[$i]->[3] eq "delta-d") {
|
if($readings[$i]->[3] && ($readings[$i]->[3] eq "delta-h" || $readings[$i]->[3] eq "delta-d")) {
|
||||||
$out_value = sprintf("%0.1f", $maxval - $minval);
|
$out_value = sprintf("%0.1f", $maxval - $minval);
|
||||||
$out_tstamp = DbLog_implode_datetime($lasttstamp{year}, $lasttstamp{month}, $lasttstamp{day}, $lasttstamp{hour}, "30", "00") if($readings[$i]->[3] eq "delta-h");
|
$out_tstamp = DbLog_implode_datetime($lasttstamp{year}, $lasttstamp{month}, $lasttstamp{day}, $lasttstamp{hour}, "30", "00") if($readings[$i]->[3] eq "delta-h");
|
||||||
$out_tstamp = DbLog_implode_datetime($lasttstamp{year}, $lasttstamp{month}, $lasttstamp{day}, "00", "00", "00") if($readings[$i]->[3] eq "delta-d");
|
$out_tstamp = DbLog_implode_datetime($lasttstamp{year}, $lasttstamp{month}, $lasttstamp{day}, "00", "00", "00") if($readings[$i]->[3] eq "delta-d");
|
||||||
@ -681,7 +681,16 @@ DbLog_Get($@)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
# DatenTrenner setzen
|
# DatenTrenner setzen
|
||||||
$retval .= "#$readings[$i]->[0]:$readings[$i]->[1]:$readings[$i]->[2]:$readings[$i]->[3]\n";
|
$retval .= "#$readings[$i]->[0]";
|
||||||
|
$retval .= ":";
|
||||||
|
$retval .= "$readings[$i]->[1]" if($readings[$i]->[1]);
|
||||||
|
$retval .= ":";
|
||||||
|
$retval .= "$readings[$i]->[2]" if($readings[$i]->[2]);
|
||||||
|
$retval .= ":";
|
||||||
|
$retval .= "$readings[$i]->[3]" if($readings[$i]->[3]);
|
||||||
|
$retval .= ":";
|
||||||
|
$retval .= "$readings[$i]->[4]" if($readings[$i]->[4]);
|
||||||
|
$retval .= "\n";
|
||||||
} #for @readings
|
} #for @readings
|
||||||
|
|
||||||
#Ueberfuehren der gesammelten Werte in die globale Variable %data
|
#Ueberfuehren der gesammelten Werte in die globale Variable %data
|
||||||
|
Loading…
x
Reference in New Issue
Block a user