Verbrauchszähler

Hallo Zusammen,

ich habe eigentlich eine ganz einfache Aufgabe. Ich will den Verbrauch meines Hauses täglich und jährlich berechnen und habe mir da mithilfe dieses Forums folgendes Script gebastelt. Die Verbrauchsvariable ist als Zähler aggretiert. Diese Script rufe ich alle 30min auf da ich das gern in diesem Zeitraum aktualisiert haben möchte. Es funktioniert allerdings nicht so. Was mache ich falsch?

<?php

//Tagesverbrauch 

$werteday = AC_GetAggregatedValues(18904 , 41514, 1 /* täglich */, strtotime("today 00:00"), strtotime("now"), 0); 

foreach($werteday as $wertday) {

    SetValueFloat(13708 , $wertday['Avg']/1000.0);

}

//Jahresverbrauch

$werteyear = AC_GetAggregatedValues(18904 , 41514, 4 /* jährlich */, strtotime("first day of January"), strtotime("now"), 0); 

foreach($werteyear as $wertyear) {

    SetValueFloat(39931 , $wertyear['Avg']/1000.0);

}

?>

Schau dir mal mein Modul an: [Modul] Energierechner
Damit müsstest du gar nichts mehr selbst berechnen.

Grüße,
Kai

Vielen Dank, das werde ich mir bei Gelegenheit mal zu Gemüte führen :+1:

Hätte aber irgendwie trotzdem gerne gewusst wo mein Fehler liegt?

Das Modul „Verbrauch in Zeitspanne“ ist auch mehr als empfehlenswert.

Ich habe das für alle meine Verbrauchszähler eingerichtet und auf einer Seite aufgeführt.
Auf Knopfdruck kann man den zu betrachtenden Zeitraum sich anzeigen lassen.
Originär habe ich die auf 01.01 - 31.12 des Jahres eingestellt und wenn ich einen bestimmten Abschnitt sehen möchte, geht das mit 2 Klicks im WebFront.

Was willst du denn überhaupt erreichen?
Nur den aktuellen Verbrauch fürs aktuelle Jahr oder Tag?
Da brauchst du doch das foreach nicht für.

Hi,

definiere: „Es funktioniert allerdings nicht so“.

Du bekommst Änderungen vom Mittelwert (AVG) und wenn Du jetzt 24h den selben Wert hast wäre ‚Avg‘/1000 immer der selbe und eine Variable als Zähler bildet Differenzen von aktuellem und vorherigen Wert. Wenn sich also nichts ändert bekommst Du bei einem Zähler immer 0 obwohl Du vielleicht 1KWh/Stunde verbrauchst.

Definier deine Variable mal nicht als Zähler das ist vielleicht eher das was Du willst.

Ralf

Wenn die Variable als Zähler definiert ist heißt doch AVG „Summe des positiven Delta innerhalb des Aggretationszeitraumes“. Das ist doch schon das was ich möchte weil Mittelwertbildung nützt mir nichts . Ich brauche einfach anhand der aktuellen Leistung in W eine Ausgabe des Tagesverbrauches ( Tagesarbeit in kWh) und das gleiche nochmal für das aktuelle Jahr

Moin,

dieser Thread zeigt dir wie das gemacht wird Energieberichte

Damit bekommst du die gewünschten Werte.

Gruß
Hans

$werteday = AC_GetAggregatedValues(18904 , 41514, 1 /* täglich */, strtotime("today 00:00"), strtotime("now"), 0); 
print_r($werteday);  //Ganzes Array ausgeben
echo $werteday[0]['Avg']; //Den Wert möchtest du haben, hier brauchst du keine Schleife.

Das selbe kannst du mit dem Jahr machen.

Grüße,
Kai