Hallo Leute,
ich rechne meine Windgeschwindigkeit um von m/s in km/h über userReading und bekomme jetzt jedesmal im Logfile folgende Warnung:
2014.11.27 09:47:06 2: EIB wetterstation.windgeschwindigkeit 2.08 m/s
2014.11.27 09:47:06 1: PERL WARNING: Argument "2.08 m/s" isn't numeric in multiplication (*) at (eval 537827) line 1.
Was mache ich falsch und wie kriege ich die weg?
Danke und lieben Gruß
Oli
Hallo,
anscheinend wird der Wert mit Einheit gesendet. Damit kann man natürlich nicht rechen. Suche mal im Forum nach "Einheiten entfernen". Mit "split" müsste das gehen.
Gruß Christoph
PS: schreib doch mal wie Du das umrechnest (Code)
Folgendes rechne ich um:
{ sprintf("%.2f km/h", ReadingsVal("wetterstation.windgeschwindigkeit","state",99)*3.6) }
wetterstation.windgeschwindigkeit liefert z.B. '2 m/s'.
Hallo,
was sind denn "m/s" mal 3,6 ? Also musst Du die Einheit erst abschneiden. Ich würde das beim Device als UserReading machen.
Schau mal hier: http://forum.fhem.de/index.php/topic,27776.msg206974.html#msg206974
Gruß Christoph
Hallo Christoph,
Danke für Deinen Hinweis.
Gelöst :)
attr wetterstation.windgeschwindigkeit.kmh stateFormat { sprintf("%.2f km/h", [split(" ", ReadingsVal("wetterstation.windgeschwindigkeit","state",99))]->[0] * 3.6);; }
attr wetterstation.windgeschwindigkeit.kmh userReadings kmh { sprintf("%.2f km/h", [split(" ", ReadingsVal("wetterstation.windgeschwindigkeit","state",99))]->[0] * 3.6);; }