Hallo,
ich habe bei einem Device u.a. ein Reading, welches "energy" heißt und z.B. den Wert 150000 Wh beinhaltet.
Um daraus Stromkosten zu berechnen, habe ich ein userReading "Stromkosten" definiert:
attr Zaehler_PV_Gartenhaus userReadings Stromkosten {sprintf("%.2f Euro",ReadingsVal($name,"energy",0)/1000*0.2903)}
Ich rechne also die Wh in kWh um und multipliziere mit 0.2903 (Preis je kWh).
Ich erhalte so das Reading "Stromkosten", welches dann z.B. 25,36 Euro als Wert beinhaltet, genau was ich auch möchte.
Im Logfile findet sich dazu aber ein Eintrag
2022.11.08 10:26:47 1: PERL WARNING: Argument "172893 Wh" isn't numeric in division (/) at (eval 29195) line 1.
2022.11.08 10:26:47 3: eval: {sprintf("%.2f Euro",ReadingsVal($name,"energy",0)/1000*0.2903)}
Um das Ganze wirklich "richtig" zu machen, muss ich offensichtlich den Wert "energy" erst in einen nummerischen Ausdruck umwandeln.
Wie mache ich das?
Gruß, Thomas
dafür gibts ReadingsNum() (https://fhem.de/commandref_DE.html#perl)
attr Zaehler_PV_Gartenhaus userReadings Stromkosten {sprintf("%.2f Euro",ReadingsNum($name,"energy",0)/1000*0.2903)}
Vielen Dank, klappt perfekt!