Hauptmenü

Einfache Mathematik

Begonnen von schalkan56, 27 Mai 2015, 22:58:22

Vorheriges Thema - Nächstes Thema

schalkan56

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?

jsloot

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
Ein FHEM-Raspi mit HM-CFG-USB-2. 9 HM Heizthermostate, 9 HM Temperatursensoren, 22 HM Fensterkontakte, 7 Rolloaktoren, 17 HM Unterputz-Aktoren

Icinger

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
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

schalkan56

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