mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-10 09:16:53 +00:00
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:
parent
47d8430ff0
commit
730a668eb1
@ -4381,7 +4381,7 @@ sub Unit_DbLog_split($$) {
|
||||
# general event handling
|
||||
if ( !defined($value)
|
||||
&& $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($2) )
|
||||
{
|
||||
@ -4390,10 +4390,10 @@ sub Unit_DbLog_split($$) {
|
||||
$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_DbLog_split $name: Ignoring event $event: value $value does not look like a number"
|
||||
);
|
||||
) if ( defined($value) );
|
||||
return undef;
|
||||
}
|
||||
|
||||
@ -4458,7 +4458,7 @@ sub CommandSetReadingDesc($@) {
|
||||
my @rets;
|
||||
my $last;
|
||||
foreach my $name ( devspec2array( $a->[0], $cl ) ) {
|
||||
if ( !defined( $defs{$name} ) ) {
|
||||
unless ( Unit_IsDevice($name) ) {
|
||||
push @rets, "Please define $name first";
|
||||
next;
|
||||
}
|
||||
@ -4524,7 +4524,7 @@ sub CommandDeleteReadingDesc($@) {
|
||||
my @rets;
|
||||
my $last;
|
||||
foreach my $name ( devspec2array( $a->[0], $cl ) ) {
|
||||
if ( !defined( $defs{$name} ) ) {
|
||||
unless ( Unit_IsDevice($name) ) {
|
||||
push @rets, "Please define $name first";
|
||||
next;
|
||||
}
|
||||
@ -4549,4 +4549,22 @@ sub CommandDeleteReadingDesc($@) {
|
||||
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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user