FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: th1984 am 26 November 2015, 14:21:10

Titel: Logfile: Perl Warning: Argument isnt numeric
Beitrag von: th1984 am 26 November 2015, 14:21:10
Hallo,

da bin ich mal wieder mit einem Problemchen das ich nicht wirklich lösen kann. In meinem Logfile tauchen immer wieder, folgende Zeilen auf:

2015.11.26 14:08:11 1: PERL WARNING: Argument "6.22 °C" isn't numeric in sprintf at ./FHEM/98_SVG.pm line 2027.

Mir ist klar das das °C weg soll und dann der Fehler zumindest theoretisch nicht mehr auftaucht. Dies habe ich mit folgender Zeile leider erfolglos versucht:

{no warnings 'numeric' ;; sprintf("%.0f",int(Value(,,garage_hinten_temp")))}

Aber auch folgendes half nicht:

{split(/ /, Value("garage_hinten_temp")}

Beides habe ich unter dem Attribut "userReadings" stehen gehabt. Irgendwie steh ich auf dem Schlauch, hat irgendwer einen Denkansatz für mich?

Danke!
Titel: Antw:Logfile: Perl Warning: Argument isnt numeric
Beitrag von: Ellert am 26 November 2015, 20:12:43
In der Commandref unter Perl Besonderheiten findest Du die Funktion ReadingsNum damit kannst du einen Wert von seinem nicht numerischen Anteil befreien.
Titel: Antw:Logfile: Perl Warning: Argument isnt numeric
Beitrag von: th1984 am 26 November 2015, 21:37:11
Danke für den Tipp. Leider funktioniert es auch damit nicht. Ich vermute ich mache irgendwas anderes falsch, da keine Änderung im Log ersichtlich ist. Bin ich den richtig bei dem Attribut userReadings? Das war mein Versuch:

{ReadingsNum("garage_hinten_temp","state",0)}
Titel: Antw:Logfile: Perl Warning: Argument isnt numeric
Beitrag von: Ellert am 26 November 2015, 23:14:28
define mydi DOIF ([garage_hinten_temp]) ((setreading garage_hinten_temp statenum  {ReadingsNum("garage_hinten_temp","state",0)}))
attr mydi do always


statenum loggen, statt state und davon ein SVG erzeugen.
Titel: Antw:Logfile: Perl Warning: Argument isnt numeric
Beitrag von: th1984 am 27 November 2015, 10:13:59
So, jetzt hat es bei mir Klick gemacht. Also das Problem ist das das Teil nicht plotten konnte da der Wert kein reiner num Wert war, mit der DB und dem logging hat das also nichts zu tun. Habe jetzt einfach in der Funktion des Plots die nicht numerischen Zeichen mit

:chop($val)


entfernt. Schon läuft das Ding!
Vielen Dank