FHEM Forum

FHEM => Automatisierung => Thema gestartet von: DJ-Mix am 20 März 2016, 19:38:21

Titel: [Gelöst] Frage zum Runden (€) im Notify
Beitrag von: DJ-Mix am 20 März 2016, 19:38:21
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
Titel: Antw:Frage zum Runden (€) im Notify
Beitrag von: frank am 21 März 2016, 14:42:23
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.
Titel: Antw:Frage zum Runden (€) im Notify
Beitrag von: DJ-Mix am 22 März 2016, 06:33:41
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
Titel: Antw:Frage zum Runden (€) im Notify
Beitrag von: frank am 23 März 2016, 09:09:24
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);;
Titel: Antw:Frage zum Runden (€) im Notify
Beitrag von: betateilchen am 23 März 2016, 09:34:57
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
Titel: Antw:Frage zum Runden (€) im Notify
Beitrag von: CoolTux am 23 März 2016, 12:18:40
Hier mal ein Anwendungsbeispiel


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




Grüße
Titel: Antw:Frage zum Runden (€) im Notify
Beitrag von: DJ-Mix am 24 März 2016, 06:33:32
Vielen Dank für die Tips,
werde ich heute Abend ausprobieren.  ;)

Gruß
DJ-Mix