Unit.pm: error handling in case reading value is not a number
git-svn-id: https://svn.fhem.de/fhem/trunk@13892 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
@@ -4381,7 +4381,7 @@ sub Unit_DbLog_split($$) {
|
|||||||
# general event handling
|
# general event handling
|
||||||
if ( !defined($value)
|
if ( !defined($value)
|
||||||
&& $event =~
|
&& $event =~
|
||||||
/^(.+): +[\D]*(\d+\.?\d*)[\s\u202F\u00A0]*[\[\{\(]?[\s\u202F\u00A0]*([\w\°\%\^\/\\]*).*/
|
m/^(.+): +[\D]*(\d+\.?\d*)[\s\u202F\u00A0]*[\[\{\(]?[\s\u202F\u00A0]*([\w\°\%\^\/\\]*).*/
|
||||||
&& defined($1)
|
&& defined($1)
|
||||||
&& defined($2) )
|
&& defined($2) )
|
||||||
{
|
{
|
||||||
@@ -4390,10 +4390,10 @@ sub Unit_DbLog_split($$) {
|
|||||||
$unit = defined($3) ? $3 : "";
|
$unit = defined($3) ? $3 : "";
|
||||||
}
|
}
|
||||||
|
|
||||||
unless ( defined($value) && looks_like_number($value) ) {
|
if ( !defined($value) || !looks_like_number($value) ) {
|
||||||
Unit_Log3( $name, $reading, undef, 10,
|
Unit_Log3( $name, $reading, undef, 10,
|
||||||
"Unit_DbLog_split $name: Ignoring event $event: value $value does not look like a number"
|
"Unit_DbLog_split $name: Ignoring event $event: value $value does not look like a number"
|
||||||
);
|
) if ( defined($value) );
|
||||||
return undef;
|
return undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4458,7 +4458,7 @@ sub CommandSetReadingDesc($@) {
|
|||||||
my @rets;
|
my @rets;
|
||||||
my $last;
|
my $last;
|
||||||
foreach my $name ( devspec2array( $a->[0], $cl ) ) {
|
foreach my $name ( devspec2array( $a->[0], $cl ) ) {
|
||||||
if ( !defined( $defs{$name} ) ) {
|
unless ( Unit_IsDevice($name) ) {
|
||||||
push @rets, "Please define $name first";
|
push @rets, "Please define $name first";
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
@@ -4524,7 +4524,7 @@ sub CommandDeleteReadingDesc($@) {
|
|||||||
my @rets;
|
my @rets;
|
||||||
my $last;
|
my $last;
|
||||||
foreach my $name ( devspec2array( $a->[0], $cl ) ) {
|
foreach my $name ( devspec2array( $a->[0], $cl ) ) {
|
||||||
if ( !defined( $defs{$name} ) ) {
|
unless ( Unit_IsDevice($name) ) {
|
||||||
push @rets, "Please define $name first";
|
push @rets, "Please define $name first";
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
@@ -4549,4 +4549,22 @@ sub CommandDeleteReadingDesc($@) {
|
|||||||
return join( "\n", @rets );
|
return join( "\n", @rets );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub Unit_IsDevice($;$) {
|
||||||
|
my $devname = shift;
|
||||||
|
my $devtype = shift;
|
||||||
|
|
||||||
|
return 1
|
||||||
|
if ( defined($devname)
|
||||||
|
&& defined( $defs{$devname} )
|
||||||
|
&& ( !$devtype || $devtype eq "" ) );
|
||||||
|
|
||||||
|
return 1
|
||||||
|
if ( defined($devname)
|
||||||
|
&& defined( $defs{$devname} )
|
||||||
|
&& defined( $defs{$devname}{TYPE} )
|
||||||
|
&& $defs{$devname}{TYPE} =~ m/^$devtype$/ );
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|||||||
Reference in New Issue
Block a user