danke für die Info. Da hat sich beim Ändern der Variablen doch glatt ein Fehler eingeschlichen, sorry. Es fehlte eine ELSE Anweisung, Zeile 20-23.
<?
$Wertzuletzt = GetValue(21728 /*Variable für den letzten Zählerstand*/);
$Wertaktuell= GetValue(21797 /*HM-Gaszähler*/);
$Zaehlerstand = GetValue(44229 /*Variable für den Gesamtzählerstand*/);
$letzteAktualisierung = GetValue(14663 /*Variable für den Zeitpunkt der letzten Aktualisierung*/);
if($Wertaktuell < $Wertzuletzt) /* Wenn der aktuelle Zählerstand kleiner als der letzte ist */
{
if($Wertzuletzt > 8388600) /* Wenn der Zählerstand grösser als 8388600 ist, wurde der maximale Zählerwert überschritten */
{
$Delta = $Wertheute+8388608-$Wertzuletzt; /* den Zählerstand nach dem Überschreiten des Maximalwertes berechnen */
}
else
{
$Dealta = $Wertheute; /* Wenn der aktuelle Zählerstand kleiner als der letzte ist und das zurücksetzen vor 8388600 war, wurde der Zähler z.B. durch einen Batterietausch zurückgesetzt */
}
}
else
{
$Delta = $Wertaktuell-$Wertzuletzt;
}
$Zaehlerstand=$Zaehlerstand+$Delta;
/* Berechnung der Zeit zwischen den letzten beiden Aktualisierungen */
$Variable=IPS_GetVariable(21797 /*HM-Gaszähler*/);
$Aktualisierung=$Variable["VariableUpdated"];
$DeltaTime=$Aktualisierung-$letzteAktualisierung;
/* aktuellen Verbauch berechnen */
$Verbrauch=3600*$Delta/$DeltaTime;
/* Werte in die Variablen schreiben */
SetValue(44229 /*Variable für den Gesamtzählerstand*/,$Zaehlerstand);
SetValue(21728 /*Variable für den letzten Zählerstand*/,$Wertheute);
SetValue(14663 /*Variable für den Zeitpunkt der letzten Aktualisierung*/,$Aktualisierung);
SetValue(28672 /*Variable für den aktuellen Verbrauch*/,$Verbrauch);
?>
Vielen Dank für deine Antwort, der Fehler mit der Undefinierten Variable „Delta“ ist jetzt weg. Doch wird mir immer noch der Fehler ausgespuckt das Variable „Wertheute“ undefiniert sei. Auch ist des derzeit so das der komplette Energie_Counter Wert auf den Gesamtzähler addiert wird. Die Variable Zählerstand wird jedesmal auf Null gesetzt. Auch kommt beim aktuellen Verbrauch ein falscher Wert zustande!
Ich häng mal 2 Screenshots an wo man erkennen kann das der Gesamtzählerstand mit dem Energy-Counter addiert wird.
Das würde ich sofort machen nur macht der Energie Zähler der CCU2 nicht das was er soll, ich bisher 3 mal die Batterien Tauschen müssen am Sender (weil leer), und 2 mal ist es vorgekommen das der Zähler der CCU2 nicht weiter gezählt hat. Erst gestern als ich die Batterien wieder getauscht hatte, Zählte er weiter. Auch stört es mich hier das ich hier nicht den Aktuellen realen Wert des Stromzählers setzten kann, auf den dann hochgerechnet werden kann.
so ich hoffe, diesmal hab ich beim Anpassen der Variablen nichts übersehen (mal sollte das halt auch nicht schnell so neben der Arbeit machen )
<?
$Wertzuletzt = GetValue(21728 /*Variable für den letzten Zählerstand*/);
$Wertaktuell = GetValue(21797 /*HM-Gaszähler*/);
$Zaehlerstand = GetValue(44229 /*Variable für den Gesamtzählerstand*/);
$letzteAktualisierung = GetValue(14663 /*Variable für den Zeitpunkt der letzten Aktualisierung*/);
if($Wertaktuell < $Wertzuletzt) /* Wenn der aktuelle Zählerstand kleiner als der letzte ist */
{
if($Wertzuletzt > 8388600) /* Wenn der Zählerstand grösser als 8388600 ist, wurde der maximale Zählerwert überschritten */
{
$Delta = $Wertaktuell+8388608-$Wertzuletzt; /* den Zählerstand nach dem Überschreiten des Maximalwertes berechnen */
}
else
{
$Dealta = $Wertaktuell; /* Wenn der aktuelle Zählerstand kleiner als der letzte ist und das zurücksetzen vor 8388600 war, wurde der Zähler z.B. durch einen Batterietausch zurückgesetzt */
}
}
else
{
$Delta = $Wertaktuell-$Wertzuletzt;
}
$Zaehlerstand=$Zaehlerstand+$Delta;
/* Berechnung der Zeit zwischen den letzten beiden Aktualisierungen */
$Variable=IPS_GetVariable(21797 /*HM-Gaszähler*/);
$Aktualisierung=$Variable["VariableUpdated"];
$DeltaTime=$Aktualisierung-$letzteAktualisierung;
/* aktuellen Verbauch berechnen */
$Verbrauch=3600*$Delta/$DeltaTime;
/* Werte in die Variablen schreiben */
SetValue(44229 /*Variable für den Gesamtzählerstand*/,$Zaehlerstand);
SetValue(21728 /*Variable für den letzten Zählerstand*/,$Wertaktuell);
SetValue(14663 /*Variable für den Zeitpunkt der letzten Aktualisierung*/,$Aktualisierung);
SetValue(28672 /*Variable für den aktuellen Verbrauch*/,$Verbrauch);
?>
Auf die schnelle geguckt: wo definierst Du „$Wertheute“?
Evtl. läuft auch die erste IF-Abfrage ins Leere - dann wird $Delta nicht erzeugt. Vielleicht am Anfang $Delta = 0 hinzufügen. Dann gibt es die Variable zumindest. Wenn $Delta dann 0 bleibt, greift die erste If-Abfrage nicht - die hat keinen „else“-Teil.
$Wertheute sollte eigentlich $Wertaktuell heissen, hatte nur ein altes Script in der Fa. und beim Ersetzen hab ich scheinbar ein paar Variablen übersehen.
Hallo zusammen, könnte ich evtl.als unerfahrener USer eine exakte Schritt für Schritt anleitung bekommen, um den Gaszähler vernünfitig anzeigen zu lassen? Eigentlich möchte ich ja nur den bisherigen Wert des Verbrauchs dem ab jetzt gezählen Wert zu addieren. Quasi, Wert XXXXX + dem ab jetzt gezählten, steigenden Wert