Autor Thema: event-on-change-reading verfälscht Werte  (Gelesen 958 mal)

Offline stromer-12

  • Hero Member
  • *****
  • Beiträge: 1364
event-on-change-reading verfälscht Werte
« 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.
FHEM 5.9(SVN) auf cubietruck mit HMUSB
FHEM 5.9(SVN) auf RPi1B mit HMser | CUNO
FHEM 5.9(SVN) virtuell mit HMLAN | CUL

Offline stromer-12

  • Hero Member
  • *****
  • Beiträge: 1364
Antw:event-on-change-reading verfälscht Werte
« Antwort #1 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.
FHEM 5.9(SVN) auf cubietruck mit HMUSB
FHEM 5.9(SVN) auf RPi1B mit HMser | CUNO
FHEM 5.9(SVN) virtuell mit HMLAN | CUL

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 22810
Antw:event-on-change-reading verfälscht Werte
« Antwort #2 am: 30 April 2015, 14:03:48 »
Schuld ist folgende Zeile in fhem.pl:
Zitat
      $value =~ s/[^\d\.\-]//g; # We expect only numbers here.

Offline stromer-12

  • Hero Member
  • *****
  • Beiträge: 1364
Antw:event-on-change-reading verfälscht Werte
« Antwort #3 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

FHEM 5.9(SVN) auf cubietruck mit HMUSB
FHEM 5.9(SVN) auf RPi1B mit HMser | CUNO
FHEM 5.9(SVN) virtuell mit HMLAN | CUL