Berechnung Stromverbrauch Heute/Gestern

Hallo,
ich möchte gerne den Stromverbrauch eines Gerätes in 2 Variablen schreiben lassen, einmal Heutiger Verbrauch und einmal Gestriger Verbrauch. Es liegt eine Variable vor die den Gesamtverbrauch enthält. Könnte mal jemand bitte drüber Schauen ob das so korrekt ist?

Variablen im Objektbaum:

Das ist das Skript: Berechnung: Gestriger Verbrauch Kühlschrank

<?php

$werte = AC_GetAggregatedValues(13449, 53803, 1 /* täglich */, strtotime("yesterday 23:59"), time(), -1); // 13449 vom Archiv Control, 53803 ist die ID der Variable Energie Gesamt, 
foreach($werte as $wert) {
	echo date("d.m.Y H:i:s", $wert['TimeStamp']) . " -> " . $wert['Avg'] . PHP_EOL;
}
SetValue(47136, $wert['Avg']); // Schreibt den Wert in die Variable

Das Skript wird täglich um 23:59:59 ausgeführt.

Das ist das Skript: Berechnung: Heutiger Verbrauch Kühlschrank

<?php

$werteday = AC_GetAggregatedValues(13449, 53803, 1 /* täglich */, strtotime("today 00:00"), strtotime("now"), 0); // 13449 vom Archiv Control, 53803 ist die ID der Variable Energie Gesamt, 
print_r($werteday);  // Ganzes Array ausgeben
echo $werteday[0]['Avg']; // Den Wert möchte ich ausgeben

// Wenn das Skript durch den ScriptTimer aufgerufen wurde, den ScriptTimer deaktivieren
if (@$_IPS['EVENT'] === @IPS_GetObjectIDByName('ScriptTimer', $_IPS['SELF'])) {
    IPS_SetScriptTimer($_IPS['SELF'], 0);
}

// Wenn das Skript nicht durch den ScriptTimer aufgerufen wurde, ScriptTimer aktivieren
else {
    IPS_SetScriptTimer($_IPS['SELF'], 70);
}


// Veranlasst, dass das Skript alle 10 Sekunden ausgeführt wird        
//IPS_SetScriptTimer(49293, 10); // ID des Skriptes


// Hier die Daten aus dem Archiv abrufen und in Variable schreiben
SetValue(47189, $werteday[0]['Avg']); // Schreibt den Wert in die Variable

Habe jetzt eben den Fehler gemacht und das Skript Gestriger Tag manuell ausgeführt und somit erhält dann die Variable auch den Wert des Heutigen Tages, ist das so richtig das er dann den heutigen Wert auch übernimmt?

Ich mache das zb mit dem Modul Verbrauch in Zeitspanne.


<?php

$jahrheuer = strftime("%Y");
$jahrvorjahr = strftime("%Y")-1;
$tagheute = strftime("%d");
$monatheute = strftime("%m");
$stunde = strftime("%H");
$minute = strftime("%M");



//Startwert heuer
SetValue(29592, mktime(0, 0, 0, $monatheute, $tagheute, $jahrheuer));

//Endwert heuer
SetValue(50116, mktime($stunde, $minute, 0, $monatheute, $tagheute, $jahrheuer));

//Berechnung Gesamtstromverbrauch heuer 01.01 bis heute
VIZ_Calculate(54578);


gruß Stefan

Schaut euch mal das Modul Energierechner an.

Gruß Stephan

Habe ich auch für manches in Gebrauch, mir wäre aber lieber zwei getrennte Variablen. Mit dem Modul muss du ja dann immer manuell das Ganze auswählen, z.B. für die Abbildung im Webfront, oder habe ich da einen Denkfehler?

Manuel musst du da nichts auswählen das erledigt für mich ein Skript das mir Automatisch das Datum/uhrzeit setzt und dann die Berechnung ausführt. Das Skript lasse ich einfach alle Minute ausführen.

<?php

$jahrheuer = strftime("%Y");
$jahrvorjahr = strftime("%Y")-1;
$tagheute = strftime("%d");
$monatheute = strftime("%m");
$stunde = strftime("%H");
$minute = strftime("%M");



//Startwert heute
SetValue(29592, mktime(0, 0, 0, $monatheute, $tagheute, $jahrheuer));

//Endwert heute
SetValue(50116, mktime($stunde, $minute, 0, $monatheute, $tagheute, $jahrheuer));

//Berechnung Gesamtstromverbrauch heute
VIZ_Calculate(54578);



Ja, das Modul Energierechner löst das sehr gut. Und dann kann man auch gleich die Preise mit ermitteln.
Da ist ja extrem viel hineingewandert die letzten Monate.
Cheers Seppm

Entweder stehe ich gerade wieder auf dem Schlauch. Woran sieht man jetzt was der heutige Verbrauch ist und der Gestrige, bei deiner Variante?

@da8ter & @seppm
Den Energierechner hatte ich mir mal vor langer Zeit angeschaut. Ich habe das jetzt auch mal angelegt für die verschiedene Geräte. Sieht vielversprechend aus.

In meinem Beispiel ist Variabel 15465 die bezogenen kWh von heute.

Könnte man das dann noch erweitern in dem Skript für eine Variable für den gestrigen Verbrauch?

Klar man kann jeden Zeitraum verwenden neue Instanz und Skript anlegen und im Skript den zeitbereich so wie man will anpassen

Aber ich glaube das ist ja dann aufwendiger als mit einem Skript wie bei mir oben oder?

ich glaub das ist Geschmacksache mir zb gefällt es so ganz gut du musst eigentlich nur eine Instanz für jeden gewünschten Zeitbereich anlegen ein Skript erstellen und jede Instanz darin eintragen was eigentlich nur kopieren und einfügen ist.