FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Edi77 am 12 Mai 2020, 19:24:12

Titel: userReadings difference runden
Beitrag von: Edi77 am 12 Mai 2020, 19:24:12
Hallo,

Versuche schon seit ein paar Stunden den wert eines userReadings difference zu runden.
Habe es schon mit round und sprintf probiert, leider ohne Erfolg.


userReadings mueSvh difference {sprintf("%.3f",(ReadingsVal("ArduinoGammaCounter_CN_TIME_dummy","state",0))*0.00812*60)


Wenn ich sprintf.... einzeln in der Zeile eingebe oder auch mir round funktioniert es, klar nicht der difference aber es geht, und die komplette Zeile mit userReadings mueSvh difference nicht.  :o
Titel: Antw:userReadings difference runden
Beitrag von: Otto123 am 12 Mai 2020, 19:32:52
Hi,

ich denke im Moment der "difference" wird neu gerechnet und es ensteht wieder eine neuer Fließkomma Wert.

Die Rundung oder Formatierung macht nur wirklich Sinn in der allerletzten Stufe der Ausgabe!

Also entweder noch ein reading
mueSvh3 {sprintf("%.3f",ReadingsVal("$name","mueSvh",0)}
Oder an der Stelle der Darstellung stateFormat oder wo auch immer.

Gruß Otto
Titel: Antw:userReadings difference runden
Beitrag von: Edi77 am 12 Mai 2020, 19:43:32
Verstehe...

Habe auch schon stateFormat probiert, allerdings hat sich das das Reading "STATE" mit dem gerundeten Wert von mueSvh gefüllt und mueSvh hat immer noch ~ 10 Stellen hinterm Komma


stateFormat {(round((ReadingsVal("ArduinoGammaCounter_CN_TIME_dummy","mueSvh",0)),3))}
Titel: Antw:userReadings difference runden
Beitrag von: Otto123 am 12 Mai 2020, 21:26:51
Hätte ich so erwartet ;)

Was findest Du daran falsch?
Titel: Antw:userReadings difference runden
Beitrag von: Edi77 am 12 Mai 2020, 21:46:38
Habe jetzt einen Dummy erstellt und so funktioniert es ........ dachte es gibt evtl. eine einfachere Lösung