[Gelöst] Frage zum Runden (€) im Notify

Begonnen von DJ-Mix, 20 März 2016, 19:38:21

Vorheriges Thema - Nächstes Thema

DJ-Mix

Hallo zusammen,

ich lasse mir über ein Notify den aktuellen Betrag den die Waschmaschine verbraucht mit Pushover
mitteilen. Jedoch wenn ich versuche den Betrag auf zwei Stellen zu kürzen, sendet er keine Benachrichtigung mehr.

keine Benachrichtigung
WaschmaschineBetrieb:standby {my $aktuellerbetriebeur=(ReadingsVal("Waschmaschine_Pwr","energy","0")-
ReadingsVal("WaschmaschineBetrieb","energy","0"))/1000*0.13,my $aktuellerbetriebeur=int(100*$aktuellerbetriebeur+0.5)/100;;
fhem("setreading WaschmaschineBetrieb AktuellerBetriebEur $aktuellerbetriebeur");; fhem("set Pushover2 msg 'Waschkeller' 'Waschmaschine ist fertig - $aktuellerbetriebeur €' ")}


Benachrichtigung
WaschmaschineBetrieb:standby {my $aktuellerbetriebeur=(ReadingsVal("Waschmaschine_Pwr","energy","0")-
ReadingsVal("WaschmaschineBetrieb","energy","0"))/1000*0.13;;
fhem("setreading WaschmaschineBetrieb AktuellerBetriebEur $aktuellerbetriebeur");; fhem("set Pushover2 msg 'Waschkeller' 'Waschmaschine ist fertig - $aktuellerbetriebeur €' ")}


Wo liegt hier mein Fehler . . . . ?

my $aktuellerbetriebeur=int(100*$aktuellerbetriebeur+0.5)/100

Vielen Dank vorab
Gruß
DJ-Mix

frank

du kannst kein komma verwenden, um 2 befehle zu trennen.
ausserdem hast du 2 deklarationen (my) auf die selbe variable. du kannst doch auch das runden direkt in die erste gleichung integrieren.

grundsätzlich würde ich bei fehlern immer in fhem.log schauen, eventuell vorher verbose vom device (hier das notify) hochdrehen.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

DJ-Mix

Ok, Vielen Dank.
Werde ich versuchen.

Wobei es sich mir nicht ganz erschließt, wie ich es integrieren soll, da ich doch erst das Ergebnis brauche um es dann auf zwei Stellen zu kürzen.  :-\

Gruß
DJ-Mix

frank

zur begrenzung der nachkommastellen könntest du auch ein sprintf() nutzen.
my $aktuellerbetriebeur = sprintf("%.2f",(ReadingsVal("Waschmaschine_Pwr","energy","0")-ReadingsVal("WaschmaschineBetrieb","energy","0"))/1000*0.13);;
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

betateilchen

fhem besitzt dazu die Funktion round($$), damit kann man auf sprintf komplett verzichten.

round(3.34,1) rundet den Wert 3.34 auf eine Nachkommastelle und liefert als Ergebnis 3.3
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

CoolTux

Hier mal ein Anwendungsbeispiel


GeschirrspuelerVerbrauchsanzeige {my $energykwh=round((ReadingsVal("GeschirrspuelerVerbrauchsanzeige","energy","0")/1000),1); fhem("set GeschirrspuelerGesamtzaehlerstandDummy $energykwh (kWh)")}




Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

DJ-Mix

Vielen Dank für die Tips,
werde ich heute Abend ausprobieren.  ;)

Gruß
DJ-Mix