PERL WARNINGS nach Wertformatierung in Readingsgroup

Begonnen von flipse, 15 August 2019, 13:06:09

Vorheriges Thema - Nächstes Thema

flipse

Seitdem ich meine Readingsgroup Einträge formatiert habe, erhalte ich folgende Fehlermeldungen im LOG:

PERL WARNING: Argument "104.8 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1404.
2019.08.03 11:02:02 1: PERL WARNING: Argument "54.3 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1404.
2019.08.03 11:02:26 1: PERL WARNING: Argument "119.5 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1404.
2019.08.03 11:02:27 1: PERL WARNING: Argument "58.4 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1404.
2019.08.03 11:04:06 1: PERL WARNING: Argument "116.0 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1404.
2019.08.03 11:04:07 1: PERL WARNING: Argument "61.3 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1404.
2019.08.03 11:04:11 1: PERL WARNING: Argument "111.4 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1404.
2019.08.03 11:04:12 1: PERL WARNING: Argument "60.3 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1404.
2019.08.03 11:04:47 1: PERL WARNING: Argument "107.4 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1404.
2019.08.03 11:04:48 1: PERL WARNING: Argument "55.1 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1404.
2019.08.03 11:04:56 1: PERL WARNING: Argument "118.9 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1404.
2019.08.03 11:04:57 1: PERL WARNING: Argument "58.6 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1404.
2019.08.03 11:05:04 1: PERL WARNING: Argument "110.0 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1404.
2019.08.03 11:05:14 1: PERL WARNING: Argument "60.1 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1404.
2019.08.03 11:05:30 1: PERL WARNING: Argument "28.0 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1404.
2019.08.03 11:05:31 1: PERL WARNING: Argument "54.2 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1404.
2019.08.03 11:05:51 1: PERL WARNING: Argument "108.8 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1404.
2019.08.03 11:05:52 1: PERL WARNING: Argument "55.7 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1404.
2019.08.03 11:06:57 1: PERL WARNING: Argument "114.4 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1404.
2019.08.03 11:07:14 1: PERL WARNING: Argument "56.2 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1404.
2019.08.03 11:08:15 1: PERL WARNING: Argument "111.8 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1404.
2019.08.03 11:08:16 1: PERL WARNING: Argument "54.7 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1404.
2019.08.03 11:08:32 1: PERL WARNING: Argument "115.0 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1404.
2019.08.03 11:08:33 1: PERL WARNING: Argument "56.4 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1404.
2019.08.03 11:08:57 1: PERL WARNING: Argument "123.0 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1404.
2019.08.03 11:09:14 1: PERL WARNING: Argument "57.9 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1404.


Grundsätzlich ist dies korrekt, da es nicht um Zahlen handelt, weil ich die Einheit dahinter geschrieben habe.
In meiner Readingsgroup vergleiche ich Zahlenwerte miteinander und formatiere die Farbe der Zahlen entsprechend.
Wie kann ich diese im Format so ausgeben, dass die Einheit dahinter angezeigt wird, bei der Berechnung jedoch als Zahl genutzt wird?

Die Formatierungen funktionieren komischerweise dennoch. Aber die Fehlermeldungen nerven:

Mein Code

valueFormat {
if ($READING eq 'power')
{
return "%.1f W";
}
elsif ($READING =~ m/^stat/)
{
return "%.2f kWh";
}
}
     valueStyle {
'statEnergyDay' =>
((split(' ', $NUM))[0] > ReadingsNum($DEVICE, "statEnergyDayLast",0))?'style="color:red"':'style="color:green"',
'statEnergyMonth' =>
((split(' ', $NUM))[0] > ReadingsNum($DEVICE, "statEnergyMonthLast",0))?'style="color:red"':'style="color:green"',
#'statEnergyYear' =>
#($NUM > ReadingsNum($DEVICE, "statEnergyYearLast",0))?'style="color:red"':'style="color:green"',
'statSElectrHCTotalDay' =>
((split(' ', $NUM))[0] > ReadingsNum($DEVICE, "statSElectrHCTotalDayLast",0))?'style="color:red"':'style="color:green"',
'statSElectrHCTotalMonth' =>
((split(' ', $NUM))[0] > ReadingsNum($DEVICE, "statSElectrHCTotalMonthLast",0))?'style="color:red"':'style="color:green"',
#'statSElectrHCTotalYear' =>
#($NUM > ReadingsNum($DEVICE, "statSElectrHCTotalYearLast",0))?'style="color:red"':'style="color:green"',
'statSElectrDHWTotalDay' =>
((split(' ', $NUM))[0] > ReadingsNum($DEVICE, "statSElectrDHWTotalDayLast",0))?'style="color:red"':'style="color:green"',
'statSElectrDHWTotalMonth' =>
((split(' ', $NUM))[0] > ReadingsNum($DEVICE, "statSElectrDHWTotalMonthLast",0))?'style="color:red"':'style="color:green"',
#'statSElectrDHWTotalYear' =>
#($NUM > ReadingsNum($DEVICE, "statSElectrDHWTotalYearLast",0))?'style="color:red"':'style="color:green"',
'power' =>
( (split(' ', $NUM))[0] > 0 )?'style="color:orange"':'style="color:grey"'
}



Könnt ihr weiterhelfen?
Dankeschön


binford6000

#1
Die Warnung ist doch sprechend:  ... "119.5 W" isn't numeric...  :o
Nimm ReadingsVal()  ;)

VG Sebastian

flipse

#2
Zitat von: binford6000 am 15 August 2019, 13:17:45
Die Warnung ist doch sprechend:  ... "119.5 W" isn't numeric...  :o
Nimm ReadingsVal()  ;)

VG Sebastian

Ja. deswegen sage ich ja, dass ich die Meldung schon verstehen kann und habe deswegen ReadingsNUM genommen, in der Hoffnung, dass damit nur die Zahl extrahiert wird.
ReadingsVal ergibt:

2019.08.15 14:02:28 1 : PERL WARNING: Use of uninitialized value in numeric gt (>) at (eval 28218) line 2.
2019.08.15 14:02:28 1 : PERL WARNING: Use of uninitialized value in numeric gt (>) at (eval 28220) line 2.
2019.08.15 14:02:28 1 : PERL WARNING: Use of uninitialized value in numeric gt (>) at (eval 28232) line 2.
2019.08.15 14:02:28 1 : PERL WARNING: Use of uninitialized value in numeric gt (>) at (eval 28234) line 2.
2019.08.15 14:02:28 1 : PERL WARNING: Use of uninitialized value in numeric gt (>) at (eval 28248) line 2.
2019.08.15 14:02:28 1 : PERL WARNING: Use of uninitialized value in numeric gt (>) at (eval 28250) line 2.
2019.08.15 14:02:28 1 : PERL WARNING: Use of uninitialized value in numeric gt (>) at (eval 28252) line 2.
2019.08.15 14:02:28 1 : PERL WARNING: Use of uninitialized value in numeric gt (>) at (eval 28254) line 2.
2019.08.15 14:02:28 1 : PERL WARNING: Use of uninitialized value in numeric gt (>) at (eval 28256) line 2.
2019.08.15 14:02:28 1 : PERL WARNING: Use of uninitialized value in numeric gt (>) at (eval 28258) line 2.
2019.08.15 14:02:28 1 : PERL WARNING: Use of uninitialized value in numeric gt (>) at (eval 28260) line 2.
2019.08.15 14:02:28 1 : PERL WARNING: Use of uninitialized value in numeric gt (>) at (eval 28262) line 2.
2019.08.15 14:02:28 1 : PERL WARNING: Use of uninitialized value in numeric gt (>) at (eval 28264) line 2.
2019.08.15 14:02:28 1 : PERL WARNING: Use of uninitialized value in numeric gt (>) at (eval 28266) line 2.
2019.08.15 14:02:28 1 : PERL WARNING: Use of uninitialized value in numeric gt (>) at (eval 28280) line 2.
2019.08.15 14:02:28 1 : PERL WARNING: Use of uninitialized value in numeric gt (>) at (eval 28296) line 2.
2019.08.15 14:02:28 1 : PERL WARNING: Use of uninitialized value in numeric gt (>) at (eval 28298) line 2.
2019.08.15 14:02:28 1 : PERL WARNING: Use of uninitialized value in numeric gt (>) at (eval 28312) line 2.
2019.08.15 14:02:28 1 : PERL WARNING: Use of uninitialized value in numeric gt (>) at (eval 28314) line 2.
2019.08.15 14:02:28 1 : PERL WARNING: Use of uninitialized value in numeric gt (>) at (eval 28328) line 2.
2019.08.15 14:02:28 1 : PERL WARNING: Use of uninitialized value in numeric gt (>) at (eval 28330) line 2.
2019.08.15 14:02:28 1 : PERL WARNING: Use of uninitialized value in numeric gt (>) at (eval 28344) line 2.
2019.08.15 14:02:28 1 : PERL WARNING: Use of uninitialized value in numeric gt (>) at (eval 28346) line 2.
2019.08.15 14:02:28 1 : PERL WARNING: Use of uninitialized value in numeric gt (>) at (eval 28360) line 2.
2019.08.15 14:02:28 1 : PERL WARNING: Use of uninitialized value in numeric gt (>) at (eval 28362) line 2.
2019.08.15 14:02:28 1 : PERL WARNING: Use of uninitialized value in numeric gt (>) at (eval 28376) line 2.
2019.08.15 14:02:28 1 : PERL WARNING: Use of uninitialized value in numeric gt (>) at (eval 28378) line 2.

amenomade

Sicher, dass "power" nicht schon mit "W" versehen ist?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus