etwaiges Perl RG problem ??

Begonnen von tomspatz, 20 Februar 2017, 12:07:49

Vorheriges Thema - Nächstes Thema

tomspatz

defmod BatterieStatusProzent readingsGroup .*:[Bb]attery
attr BatterieStatusProzent alias Batterie Status %
attr BatterieStatusProzent mapping %ALIAS
attr BatterieStatusProzent room System


Damit wird der Status von Batterien angezeigt, ich habe den Eindruck als wenn ein device kein Zahlenwert sondern z.B. ein "low" ausgibt.
Habe ich im log:
PERL WARNING: Argument "" isn't numeric in numeric le (<=) at (eval 1328) line 1.

Kann das jemand nachvollziehen?
LG
Tom

justme1968

schalte mal stacktrace ein und zeig wo die meldung genau her kommt.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

tomspatz

2017.02.23 08:53:32 1: PERL WARNING: Argument "" isn't numeric in numeric le (<=) at (eval 300297) line 1.
2017.02.23 08:53:32 1: stacktrace:
2017.02.23 08:53:32 1:     main::__ANON__                      called by (eval 300297) (1)
2017.02.23 08:53:32 1:     (eval)                              called by ./FHEM/33_readingsGroup.pm (343)
2017.02.23 08:53:32 1:     main::lookup2                       called by ./FHEM/33_readingsGroup.pm (526)
2017.02.23 08:53:32 1:     main::readingsGroup_value2html      called by ./FHEM/33_readingsGroup.pm (1066)
2017.02.23 08:53:32 1:     main::readingsGroup_2html           called by ./FHEM/33_readingsGroup.pm (1165)
2017.02.23 08:53:32 1:     main::readingsGroup_detailFn        called by ./FHEM/01_FHEMWEB.pm (1815)
2017.02.23 08:53:32 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1034)
2017.02.23 08:53:32 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (528)
2017.02.23 08:53:32 1:     main::FW_Read                       called by fhem.pl (3302)
2017.02.23 08:53:32 1:     main::CallFn                        called by fhem.pl (674)


Kannst du damit etwas anfangen.
LG
Tom

tomspatz

Hallo Andre
Könntest du damit etwas anfangen?
LG
Tom

tomspatz


tomspatz

Ich "glaube" den Fehler gefunden zu haben  :-\
defmod BatterieStatus readingsGroup .*:[Bb]attery
attr BatterieStatus alias Batterie Status
attr BatterieStatus mapping %ALIAS
attr BatterieStatus notime 1
attr BatterieStatus room System
attr BatterieStatus valueFormat {return "0" if ( $NUM <=24 );;\
return "25" if( $NUM <=25 );;\
return "50" if( $NUM <=50 );;\
return "75" if( $NUM <=75 );;\
return "100"}
attr BatterieStatus valueIcon {'battery.0' => 'measure_battery_0@red','battery.25' => 'measure_battery_25@orange','battery.50' => 'measure_battery_50@green','battery.75' => 'measure_battery_75@green','battery.100' => 'measure_battery_100@green','Battery.0' => 'measure_battery_0@red','Battery.100' => 'measure_battery_100@green','batteryLevel.0' => 'measure_battery_0@red','batteryLevel.25' => 'measure_battery_25@orange','batteryLevel.50' => 'measure_battery_50@green','batteryLevel.75' => 'measure_battery_75@green','batteryLevel.100' => 'measure_battery_100@green'}


Es wird der Status der Batterien abgefragt und valueFormat greift diesen dann ab, bekommt aber von einer "leeren" Batterie den Status "low".
Verstehe leider nicht das zu fixen. Probiert habe ich schon:
{return "0" if ( $NUM eq "low" );
return "0" if ( $NUM <=24 );
return "25" if( $NUM <=25 );
return "50" if( $NUM <=50 );
return "75" if( $NUM <=75 );
return "100"}

Doch ist der Wert in dem Fall doch keine Zahl.
Leider kein Brüller

LG
Tom