Stromkosten 1x pro Tag in Variable, dann aggregiert im WF anzeigen

Hallo.

Sorry für den konfusen Titel, aber irgendwie war das die beste Kurzbeschreibung die mir eingefallen ist :D.

Ich berechne jeden Morgen um 10 Uhr die Stromkosten der vergangenen 24 Stunden und schreibe sie in eine geloggte Float Variable (mit eigenem Euro Profil). Es wird also nur ein Wert pro Tag geloggt.

In der Wochenansicht funktioniert das in der Visu auch gut. Da sehe ich den passenden Betrag für den jeweiligen Tag. Wenn ich jedoch „Jahr“ als Zeitraum auswähle, würde ich gerne die Summe aller Einträge (Summe Stromkosten Januar, Februar, etc.) sehen. Leider sehe ich hier auch nur minimale und (leider) unrealistische Werte (egal ob „Standard“ oder „Zähler“ als Aggregationstyp).

Wo habe ich denn hier meinen Denkfehler? :confused:

Gruß
Thorsten

Hallo Thorsten,

die normale Aggregation gibt ja den Durchschnitt zurück und die Zählervariante summiert die positiven Differenzen auf. Beides passt, so wie du es momentan machst, leider nicht.

Du könntest aber stattdessen den Verbrauch jeden Tag auf eine Variable addieren. Diese kannst du dann als Zähler aggregieren und kannst dir deinen Verbrauch taggenau darstellen lassen. Auf Monat, Jahr, etc. würde das dann auch passen.

Hallo.

Vielen Dank für die schnelle Antwort.
Das klingt, simpel, gut und einleuchtend :).

Ich kann auf Basis meiner bereits gesammelten Daten die neue Variable ja auch mit historischen Daten befüllen.
Heute Abend gibt’s schonmal keine Langeweile :D.

Gruß
Thorsten

Für historische Daten müsstest du dann allerdings entweder die csv-Datei anfassen oder du hast alle bisherigen Verbräuche auf den heutigen Abend aufsummiert.

Hallo.

Ich habe meine historischen Daten jetzt in der richtigen Form in IPS :loveips:.
Auch wenn ich mit meinem Vorgehen (ein Preis pro Tag wegschreiben) voraussichtlich alleine bin schreibe ich kurz zusammen, wie ich das gemacht habe.

Ich habe mir gerade ein „quick’n dirty“ Skript erstellt und folgendes durchgeführt.

  1. Eine neue Float Variable mit „Zähler“ Logging angelegt
  2. Mein kleines Skript ausgeführt
  3. Die Dateien ins IPS DB kopiert (könnte auch direkt via Skript gemacht werden)
  4. Die neue Variable reaggregiert
<?
$varIdBestandsdaten = *****;
$varIdNeueSumme = *****;
$erg = array_reverse(AC_GetLoggedValues(32926,$varIdBestandsdaten,0,time(),0));
$summe = 0.0;
$outputFolder = "/tmp/genCsv";

foreach ($erg as $ergDetail){
    
    $timestamp = $ergDetail['TimeStamp'];
    $summe = $summe + $ergDetail['Value'];

    //echo $timestamp . " --- " . $summe . chr(10);

    $jahr = date('Y',$timestamp);
    $monat = date('m',$timestamp);

    $dirName = $outputFolder . "/" . $jahr . "/" . $monat;

    if (!file_exists($dirName) && !is_dir($dirName)) {
        mkdir($dirName,0777,true);
    }          

    $filename = $dirName . "/" . $varIdNeueSumme . ".csv";
    $row = $timestamp . "," . str_replace(',','.',$summe) . chr(10);
    file_put_contents($filename,$row,FILE_APPEND);

}


?>

Damit habe ich die passenden CSV Dateien für IPS.

Kann bestimmt optimiert werden, aber für mich hat es funktioniert.
Danke Dr. Niels für den passenden Tipp :).

Gruß
Thorsten