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
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.
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
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 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
Hier mal ein Anwendungsbeispiel
GeschirrspuelerVerbrauchsanzeige {my $energykwh=round((ReadingsVal("GeschirrspuelerVerbrauchsanzeige","energy","0")/1000),1); fhem("set GeschirrspuelerGesamtzaehlerstandDummy $energykwh (kWh)")}
Grüße
Vielen Dank für die Tips,
werde ich heute Abend ausprobieren. ;)
Gruß
DJ-Mix