Stromkostenüberwachung, fehlerhafte $_IPS['VALUE'] und $_IPS['OLDVALUE'] Ereignis

Hallo zusammen,

ich möchte in einem Graphen darstellen, wie hoch meine Stromkosten täglich, monatlich etc sind. Ich habe dazu eine float Variable Bezug welche in 2 Sekunden 2x aktualisiert wird. Aber schon sehr zeitnah hintereinander (zwei Zähler schreiben in diese Variable).

Jetzt hab ich mir ein Skript gebastelt, welches den aktuellen Bezug in Euro in eine float Variable schreibt, welche dann geloggt wird. Allerdings passen die Werte von $_IPS[‚VALUE‘] und $_IPS[‚OLDVALUE‘] manchmal nicht. Jedes zweite mal is das „delta“ 0, obwohl die Variable Bezug richtig aktualisiert wird (momentan fange ich das durch das if ab). Das Skript wird durch ein Ereignis Variablenänderung auf die Variable Bezug aufgerufen. Semaphore haben leider nichts geholfen.


if (IPS_SemaphoreEnter("StromkostenUeberwachungBezug", 1000)) {
	$preisBezug = GetValueFloat(30259 /*[Hardware\Zähler\Strom\Strom Kostenüberwachung\Aktueller Strompreis Bezug]*/) / 100;
	if ($_IPS['SENDER'] === "Variable") {
		$delta = $_IPS['VALUE'] - $_IPS['OLDVALUE'];
		if ($delta != 0) {
			updateIPSvar("Bezug", "purchaseEuro", $delta * $preisBezug, "float");
		}
	}
	IPS_SemaphoreLeave("StromkostenUeberwachungBezug");
}

$preisBezug ist der Strompreis in Cent (25,07Cent)
Irgendwie werden mir viel zu wenig Stromkosten angezeigt:

Was mache ich hier falsch?

Vielen Dank!

Gruß Basti

Mich würde das Thema auch interessieren…
Bei bereits bestehenden Stromzählern die Zählerwerte in kWh auslesen und mit dem aktuellen Strompreis multiplizieren.
Dann die Stromkosten immer angezeigt bekommen - wäre super!

Wenn, dann liegt es im Vergleich, schätze ich

$a != $b Ungleich Gibt TRUE zurück, wenn $a nicht gleich $b ist.
Ist Der so gewollt?
Manchmal ist der Vergleich negativ:

  $delta = $_IPS['VALUE'] - $_IPS['OLDVALUE'];   

Gruß Helmut