FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: schalkan56 am 27 Mai 2015, 22:58:22

Titel: Einfache Mathematik
Beitrag von: schalkan56 am 27 Mai 2015, 22:58:22
Hallo Community,

möchte monatlich eine Übersicht meines Gasverbrauches bekommen. Gaszähler ist installiert und nun möchte
ich einfach die Differenz aus dem alten und neuen Zählerstand berechnen:

dummy_gaszaehler {
use Math::Round qw/round/;
my $temp = (ReadingsVal("dummy_gaszaehler","state","") - (ReadingsVal("dummy_gaszaehler_alt","state","");
$temp = Math::Round::nearest('0.01',$temp);
fhem("set dummy_gasverbrauch_periode $temp");
}


Liefert aber im Log:
2015.05.27 22:53:01 3: notify_gasverbrauch_periode return value: syntax error at (eval 1589526) line 3, at EOF
Global symbol "$temp" requires explicit package name at (eval 1589526) line 4.
Global symbol "$temp" requires explicit package name at (eval 1589526) line 4.


Was läuft denn da falsch?
Titel: Antw:Einfache Mathematik
Beitrag von: jsloot am 28 Mai 2015, 05:39:55
Hallo schalkan,

was ist denn das für ein Code? Das kann doch kaum die Definition für ein Dummy sein?  :o Kannst du das etwas näher erläutern?

Wäre evtl. das Modul Hourcounter was für dich?

Gruß Jörn
Titel: Antw:Einfache Mathematik
Beitrag von: Icinger am 28 Mai 2015, 05:46:36
dummy_gaszaehler {
use Math::Round qw/round/;
my $temp = (ReadingsVal("dummy_gaszaehler","state",0) - ReadingsVal("dummy_gaszaehler_alt","state",0));
$temp = Math::Round::nearest('0.01',$temp);
fhem("set dummy_gasverbrauch_periode $temp");
}


Mit der richtigen Klammersetzung sollts auch klappen :)

lg, Ici
Titel: Antw:Einfache Mathematik
Beitrag von: schalkan56 am 28 Mai 2015, 20:31:02
Danke jetzt klappt es...zur Info: Es handelt sich um einAuszug aus meinem notify.Das Modul
Hourcounter nutze ich schon, dieses schreibt den aktuellen Zählerstand in den dummy dummy_gaszaehler.
Am Ende des Monates schickt das System eine Übersicht Soll/Ist per Mail..lg