Laut commandref und einigen Forenbeiträgen kann man mit den Suffix :r<n> im "set magic" im Stateformat auf die angegebene Anzahl Kommastellen runden.
Doch das klappt bei mir nicht wie gewünscht, statt Nachkommastellen wird nur auf ganze Zahlen gerundet - egal ob ich :r1, :r2, :r3 etc. angebe.
[yyy:var] liefert 1.2345
[yyy:var:r1] liefert 1
[yyy:var:r2] liefert 2
Anbei das komplette Listing des dummys:
Internals:
FUUID 5d49e619-f33f-281e-e39d-db5028188d13b662
NAME yyy
NR 117
STATE 1
TYPE dummy
READINGS:
2019-08-06 22:42:15 var 1.2345
Attributes:
room _dummy
stateFormat [$name:var:r1]
Bei mir geht es
Internals:
CFGFN
FUUID 5d49e9f6-f33f-fe91-c48f-559c15bb874ce9c3
NAME yyy
NR 117
STATE 1.456
TYPE dummy
.attraggr:
.attrminint:
READINGS:
2019-08-06 23:04:04 var 1.4555
Attributes:
stateFormat [$name:var:r3]
Etwas in der Log zu sehen?
Nein, nix im Log.
Identisches Verhalten auf 2 FHEM-Systemen ... keine Nachkommastelle!
Was sagt
version dummy
version SetExtensions
?
Habe gerade nochmal nen update gemacht .... unverändert.
Problem ist übrigens nicht nur bei einem dummy.
98_dummy.pm 19585 2019-06-09 08:04:48Z rudolfkoenig
doif.js 15546 2017-12-03 09:57:42Z Ellert
f18.js 19292 2019-04-29 21:30:58Z rudolfkoenig
fhemweb.js 19953 2019-08-05 06:57:11Z rudolfkoenig
SetExtensions.pm 19208 2019-04-17 19:27:09Z rudolfkoenig
doif.js 15546 2017-12-03 09:57:42Z Ellert
f18.js 19292 2019-04-29 21:30:58Z rudolfkoenig
fhemweb.js 19953 2019-08-05 06:57:11Z rudolfkoenig
Was sagt { round(2.555,2) }
im Kommandofeld?
Das liefert genauso falsch auch 3 statt 2.56!
Heisst also im Perl ist was krumm. perl --version liefert v5.24.1
cpan sagt Math::Round 0.07 ... habe gerade mal nen Update gestartet.
Gelöst:
Nach Entfernen der Zeile
use Math::Round qw/round/;
aus meiner 99_myUtils und einem Neustart werden nun auch Dezimalstellen angezeigt!
Danke für den "Wink mit dem Zaunpfahl" mit der Perl-round-Funktion!
Schön, dass es wieder geht
Eigentlich verstehe ich aber nicht ganz, warum die overridden round Funktion aus Math::Round, das Ergebnis so verfälscht... aber gut...
Weil die Math::Round::round den 2. Parameter für die Nachkommastellen nicht kennt. Math::Round::round rundet nur auf Ganzzahlen (integer).
https://metacpan.org/pod/Math::Round
Gut zu wissen, danke :)