FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: jailbreaker07 am 16 Februar 2020, 11:58:02

Titel: doif Berechnung mit negativen Zahlen
Beitrag von: jailbreaker07 am 16 Februar 2020, 11:58:02
Hallo,
Ich habe ein Doif womit der aktuelle Stromverbrauch im aktuellen Monat berechnet wird.
Jetzt wurde der Zähler erneuert und somit ist der Stand von Monatsanfang jetzt eine negative Zahl.
Der erfasste Verbrauch von alten Zähler in diesen Monat war  305,83 kwh der Stand von neuen Zähler ist jetzt 130,26kwh.

Bei dem doif was ich jetzt habe kommt -185,36kwh raus.

([Stromzaehler:kWh])
(setreading $SELF Verbrauch {([Zaehlerstand_doif:Zaehlerstand]-[Zaehlerstand_doif:Zaehlerstand_vormonat])})


Vielen Dank für eure Hilfe.
Titel: Antw:doif Berechnung mit negativen Zahlen
Beitrag von: Per am 17 Februar 2020, 13:43:56
Ich weiss zwar nicht, was dein Problem ist, denn das schreibst du nicht, aber du solltest um das "-" ein paar Leerzeichen packen.
Titel: Antw:doif Berechnung mit negativen Zahlen
Beitrag von: Frank_Huber am 17 Februar 2020, 15:01:48
Einfach "ZählerstandVormonat" manuell neu setzen BEVOR das DOIF läuft.
Titel: Antw:doif Berechnung mit negativen Zahlen
Beitrag von: jailbreaker07 am 18 Februar 2020, 08:02:13
Hallo, es ging darum dass das Ergebniss falsch war.... aber es lag an den fehlenden Lehrzeichen ...
Danke für den Tip.
Titel: Antw:doif Berechnung mit negativen Zahlen
Beitrag von: Frank_Huber am 18 Februar 2020, 08:39:53
Wenn es die Leerzeichen waren hatte es aber nichts mit dem Zählerwechsel zu tun.
Das war dann ja auch vorher schon falsch.
Titel: Antw:doif Berechnung mit negativen Zahlen
Beitrag von: Otto123 am 18 Februar 2020, 10:07:58
Hi,

zumindest im FHEM setreading ist es völlig egal ob
setreading Zaehler Neu {([Zaehler:state]-[Zaehler:lichtaus])}
setreading Zaehler Neu {([Zaehler:state] - [Zaehler:lichtaus])}
gerade zur Sicherheit nochmal getestet. Vielleicht ist es im DOIF anders ...

Gruß Otto
Titel: Antw:doif Berechnung mit negativen Zahlen
Beitrag von: jailbreaker07 am 18 Februar 2020, 10:19:50
Zitat von: Frank_Huber am 18 Februar 2020, 08:39:53
Wenn es die Leerzeichen waren hatte es aber nichts mit dem Zählerwechsel zu tun.
Das war dann ja auch vorher schon falsch.
Doch nach dem Zählerwechel war die Zahl negativ für den Start des Abrechnungszeitraums. Stand 1.5.: zb - 300 kWh vorher war der Stand ja positiv.


Gesendet von iPhone mit Tapatalk
Titel: Antw:doif Berechnung mit negativen Zahlen
Beitrag von: Per am 18 Februar 2020, 11:19:00
Ist ein kombiniertes Perl-DOIF-Problem.
a-b geht, egal, ob positiv oder negativ, aber DOIF ersetzt ja die Werte direkt.
Perl kann zwar 12-15 rechnen, auch -12-15, aber nicht 12--15. 12- -15 geht wiederum, sinnvoll ist aber gleich und immer 12 - -15 zu schreiben.
Titel: Antw:doif Berechnung mit negativen Zahlen
Beitrag von: Damian am 18 Februar 2020, 11:37:03
Zitat von: Per am 18 Februar 2020, 11:19:00
Ist ein kombiniertes Perl-DOIF-Problem.
a-b geht, egal, ob positiv oder negativ, aber DOIF ersetzt ja die Werte direkt.
Perl kann zwar 12-15 rechnen, auch -12-15, aber nicht 12--15. 12- -15 geht wiederum, sinnvoll ist aber gleich und immer 12 - -15 zu schreiben.

ja, im FHEM-Modus wird der Klammerausdruck in Zahlen gewandelt, daher die Probleme.

Im DOIF-Perlmodus wird dagegen ein Klammerausdruck nicht in eine Zahl, sondern in eine Perl-Funktion übersetzt (das gilt übrigens auch für die DOIF-Bedingungen im FHEM-Modus). Diese Vorgehensweise ist eleganter, weil Perl-kompatibler.

Allerdings würde man dort direkt mit ReadingsVal-Funktion arbeiten, wenn es keine triggernden Readingangaben sein müssen.