Suche Idee für Berechnung aus Zählervariablen

Hi Community,

vielleicht hat ja schon mal jemand diese Anforderung gehabt und kann mir eine gute Idee für mein Problem liefern.
Ich habe eine Zählervariable welche in der Datenbank geloggt wird. Diese würde ich gerne in einem Chart nicht die Absolutwerte darstellen.

Geloggt wird ein Zählerstand eines Stromzählers - wie gesagt - als absoluter Zählerstand.
Ich würde gerne die Werte in einem Chart als kWh Verbrauch über die Zeit darstellen.
Ein Ansatz war die die Werte als „Verbrauch“ auc in die Datenbank zu loggen. Sprich ich berechne die Differenz zum letzten Wert und rechne dann den Werte über die vergangene Zeit zum letzten Wert auf eine Stunde hoch und dann wird der kWh Wert geschriben und in die Datenbank geloggt.

Aber vielleicht gibt es da noch eine bessere Lösung…

Für alle Vorschläge offen…
Würde auch gerne diese Systematik dann in mittelfristig „Highcharts“ einbauen

Grüße KHC

Hast Du den Aggregationstyp einfach mal auf „Zähler“ gestellt? Sollte eigentlich genau dem entsprechen, was Du möchtest.

ja das habe ich - das Abspeichern in die Datenbank funkioniert auch weinwandfrei, aber die werte werden ja alas Zähler abgespeichert und ich will nicht den Zählerwert im Chart anzeigen sondern den Verbrauch

z.B.:
10:00 Wert=350kWh
10:15 Wert=370kWh
10:30 Wert=420kWh

Ich will jetzt nicht die absoluten Werte (350, 370, 390) sondern die Differenz in Bezg auf den Zeitraum anzeigen.
Das würde bedeuten dass ich
um 10:15 370-350=204(weil ja nur 15min) also 80 als Wert
um 10:30 420-370=50
2(weil 30 min) also 100 als Wert
anzeigen will.

Und dafür suche ich eine Idee

In etwa so wie unten ?

Hallo Rainer,
genau soetwas in der Art sollte das Ergebnis sein.

KHC

Hallo Community,

Nochmals ein Aufruf…

Hat keiner einen Code-Snippet für mein Problem.

Gruesse KHC

Sent from my GT-P7500 using Tapatalk

Hi KHC,

vielleicht wäre

AC_GetAggregatedValues($archiveID, $objectID, 1, $year_startdate, $year_enddate, 500);

ein Ansatz? Hier ein Beispiel der Abfrage mit Tageswerten. AVG = Durchsnittswert für den jeweiligen Tag. Genau so kann das für Stunden, Tage, Wochen, Monate, Jahre ermittelt werden


Array
(
    [0] => Array
        (
            [Avg] => 0.4
            [Duration] => 85467
            [LastTime] => 1319579999
            [Max] => 0.1
            [MaxTime] => 1319564460
            [Min] => 0
            [MinTime] => 1319493737
            [TimeStamp] => 1319493600
        )

    [1] => Array
        (
            [Avg] => 0.4
            [Duration] => 86400
            [LastTime] => 1317592799
            [Max] => 0.1
            [MaxTime] => 1317543456
            [Min] => 0
            [MinTime] => 1317506665
            [TimeStamp] => 1317506400
        )

Snippet schon, wird dir aber nicht viel nutzen. Hier mal wie ich das aus meiner Datenbank mache. z.B. der Tagesverbrauch.

$query = "select to_timestamp(extract('epoch' from updatezeit)::int / 3600*3600) as epoch, max(varvalue), min(varvalue) from varID{$variablen[$i]}
                 WHERE updatezeit BETWEEN "."'$endZeit'"." and "."'$startZeit'"." group by epoch ORDER BY epoch ASC";

    $result = pg_query($query) or die ('Abfrage fehlgeschlagen: ' .pg_last_error());

    while($data = pg_fetch_assoc($result))
    {
        //print_r($data);
        $t[] = strtotime($data['epoch']);
        $stundenverbrauch[] = sprintf("%01.2f",$data['max']) - sprintf("%01.2f",$data['min']);
        $max[] = $data['max'];
        $min[] = $data['min'];
    }
    $kWhalt = array_shift($min);
    $kWhneu = array_pop($max);
    $tagesverbrauch = $kWhneu - $kWhalt;
    $myData->addPoints($stundenverbrauch, $variablenName);
    pg_close($dbconn);

Hallo,

vielen Dank dass sind ja ein paar brauchbare Ideen,

Grüße KHC

Die Darstellung von Rainer gefällt mir sehr gut.

Gibt´s dafür ein fertiges Script oder eine Anleitung wie man das realisiert???

Danke und Gruß
Dirk

Hallo,

warum logst du den aktuellen Stromverbrauch (Current) nicht. Das müsste es doch sein.

gruß Uwe