zwei readings Multiplizieren

Begonnen von jostmario, 20 November 2017, 20:42:37

Vorheriges Thema - Nächstes Thema

jostmario

Hallo

kann mir jemand Helfen wie ich das im def bereich schreiben muss.
möchte gerne die zwei werte:
BTC multiplizieren mit wallet und das ergebnis in walletINeuro ausgeben.

hab das im def bereich zum testen erst mal so
wie in Bild 2 eingegeben wie muss aber jetzt die def lauten das er die zwei Werte multipliziert.


Gruß Josty
Raspberry Pi  ---  HM-LAN ---  8X HM_HM_CC_RT_DN --- OWL+USB Strommesser    UVR1611

amenomade

#1
define at_wallet at +*00:00:02 {fhem "set walletINeuro ".(Value("BTC")*Value("wallet"))}

Das at triggert aber jede 2. Sekunde. Nicht schön.
Wenn nur ein Wert sich regelmässig ändert, wäre es besser mit einem notify.
define nt_btc notify BTC {fhem "set walletINeuro ".(Value("BTC")*Value("wallet"))}
Würde auch gehen wenn beide sich ändern, nur muss die Regex erweitert werden: (BTC|wallet)
Man kann es auch mit einem DOIF lösen:
define walletINeuro DOIF ##
attr walletINeuro state {([BTC]*[wallet])}

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

jostmario

#2
Hallo,

erst mal danke für deine Hilfe.
hab jetzt das at von dir eingefügt.
Leider bleibt walletINeuro immer auf 0

sehe gerade im Logfile schreibt  er
2017.11.21 06:52:50 1: PERL WARNING: Argument "306,655" isn't numeric in multiplication (*) at (eval 13377313) line 1.
2017.11.21 06:52:54 1: PERL WARNING: Argument "0,0042108" isn't numeric in multiplication (*) at (eval 13377317) line 1.


er kommt anscheinend mit dem komma nicht zurecht.
Haste da noch ne idee ?

Gruß Josty
Raspberry Pi  ---  HM-LAN ---  8X HM_HM_CC_RT_DN --- OWL+USB Strommesser    UVR1611

amenomade

Dann musst Du die Werte formatieren, bevor du die Multiplikation machts.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

nils_

viele Wege in FHEM es gibt!

amenomade

Zitat von: nils_ am 21 November 2017, 08:16:23
was spricht gegen https://fhem.de/commandref_DE.html#userReadings ??
Nix, ausser dass es den Wunsch vom TE nicht entspricht ;)
Und es wird mit userReadings genau das gleiche Formatierungsproblem  geben.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

Wegen Formatierung:
+*00:00:02 {my $btc = Value("BTC");
$btc =~ s/[\. €]+//g;
$btc =~ s/,/\./g;
my $wal = Value("wallet");
$wal =~ s/,/\./g;
fhem "set walletINeuro ".($btc*$wal)}
in der DEF des at sollte das Problem lösen.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus