FHEM Forum

FHEM => Sonstiges => Thema gestartet von: stromer-12 am 28 April 2015, 07:19:59

Titel: event-on-change-reading verfälscht Werte
Beitrag von: stromer-12 am 28 April 2015, 07:19:59
Moin,

Ich habe festgestellt, das event-on-change-reading Zahlenwerte in Exponent-Schreibweise verfälscht.

define td dummy
attr td event-on-change-reading .*:0.2

set td 12
Ergebnis: td 12

set td 1.2324568e05
Ergebnis: td 1.232456805

set td 3.456789e-05
Ergebnis: td 3.456789-05

PERL WARNING: Argument "3.456789-05" isn't numeric in subtraction (-) at fhem.pl line 3769.
Titel: Antw:event-on-change-reading verfälscht Werte
Beitrag von: stromer-12 am 28 April 2015, 19:57:33
Bei großen Werten ab 19 Stellen bzw bei kleinen Werten kleiner 1/10000 wird in die Exponenten Schreibweise umgeschaltet:

{ my $a = ( 30000000 * 866421444444 ) ;; fhem("set td $a") }
fhem> dummy td 2.59926433333219


Sollte 2.599264333332e19 heißen.
Titel: Antw:event-on-change-reading verfälscht Werte
Beitrag von: rudolfkoenig am 30 April 2015, 14:03:48
Schuld ist folgende Zeile in fhem.pl:
Zitat$value =~ s/[^\d\.\-]//g; # We expect only numbers here.
Titel: Antw:event-on-change-reading verfälscht Werte
Beitrag von: stromer-12 am 30 April 2015, 15:04:53
In dieser Zeile habe ich jetzt mal das "e" mit reingenommen, damit ist es aber nur ein oberflächlicher Test.

Gesendet von meinem GT-I9295