Daten in csv korrigieren

Hallo,

ich habe meinen Sensor für den Stromzähler ausgetauscht und wollte jetzt die falschen Daten korrigieren, kann jetzt aber leider nicht erkennen wo der Wert steht.

1420066800,5673.34,2206347,0,29881216,15.5729

1458374400,0.5,92,0,2376,0.1

Kann mir jemand erklären was an welcher Stelle steht?

Du hast zu allererst die Aggregation erwischt. Die würde ich nicht editieren, da die nach einer Neuaggregation eh futsch ist.
In den jeweiligen Unterordnern findest du dann die Rohdaten, und dort ist immer nur Zeitstempel und Wert.

paresy

OK, danke das hilft mir glaube ich schon weiter.

Ich greife diese Diskussion mal auf, weil ich denke, dass hier mein Thema gut aufgehoben ist.
Ich möchte Daten aus 11/2011 auswerten (Highcharts). Die Werte in der db 11/2011 für die auszuwertende Variable sehen so aus (nachträglich editiert):

1321229100,0
1321268400,0.35
1321311900,0
1321354154,0.86
1321398300,0
1321441200,14.63
1321484700,0
1321527600,8.74
1321571100,0
1321614000,1.65
1321657500,0
1321700400,11.66
1321743900,0
1321786800,4.52
1321830300,0
1321873200,13.49
1321916700,0
1321959600,7.40
1322003100,0
1322046000,4.52
1322089500,0
1322132400,7.49
1322175900,0
1322218800,8.19
1322262300,0
1322305200,8.95
1322348700,0
1322391600,3.10
1322435100,0
1322478000,13.72
1322521500,0
1322564400,9.02
1322607900,0
1322650800,9.87
1322650802,0

Die Werte in der db 12/2011 für die auszuwertende Variable sehen so aus (nach dem Ugrade/also so migriert):

1323953959,121.39
1323953965,0

Wenn ich mir nun das Jahr 2011 anzeigen lassen möchte, dann ist das Resultat leer.

14.03.2016 10:16:35*| ScriptEngine*| Result for Script 21571
#0, Array: 0, 0
#1, Array: 0, 0

Für das Jahr 2012 z.B. sieht es so aus:

14.03.2016 10:24:26*| ScriptEngine*| Result for Script 21571
#0, Array: 108.722, 73.08
#1, Array: 268.559, 117.25
#2, Array: 410.242, 110.96
#3, Array: 466.799, 107.22
#4, Array: 584.443, 120.65
#5, Array: 503.78099999999, 105.85
#6, Array: 592.48299999999, 121.79
#7, Array: 594.05399999999, 128.88
#8, Array: 447.974, 116.57
#9, Array: 341.241, 117.4
#10, Array: 175.1, 99.07
#11, Array: 109.985, 98.66

Leider sind die Daten aus dem Jahr 2011 korrupt. Ich bekomme keine Anzeige hin. Selbst wenn ich pro Monat nur einen einzigen Wert eintrage, baut er die Graphen nicht auf.
Kennt sich jemand mit der Struktur der neuen csv-Dateien aus? Ich denke es ist nicht schwer, aber ich bekomme es nicht hin. Wie ist die csv-Datei zu editieren?

Das schaut nicht schlecht aus. Hast du nach dem Editieren neu aggregiert?

paresy

Ja, das habe ich schon einige Male.

26.03.2016 17:18:14*| Archive Control*| Reaggregation for VariableID #57373 is in progress… 11/2011! (35 rows)
26.03.2016 17:18:14*| Archive Control*| Reaggregation for VariableID #57373 is in progress… 12/2011! (2 rows)

jedoch

26.03.2016 17:19:33*| ScriptEngine*| Result for Script 21571
#0, Array: 0, 0
#1, Array: 0, 0

Und was ist dein Befehl zum Holen der Daten? Aggregation ist vermutlich Zähler?

paresy

Hier das Script, dass die Daten holt:

<?
/*
    Funktion: Berechnung der monatlichen (Ertrags-)Quote einer PV-Anlage in %.
    Quote = (100*Ertrag)/Soll

    Ertrag = von der PV-Anlage erzeugte elektr. Arbeit in Kwh
    Soll = erwartete elektr. Arbeit pro Monat
*/


// +++ Konfig / Vorgaben +++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Auswertungszeitraum

    $year                  = GetValue(28289 /*[Scripte\Highcharts_V2.02\PV-Anlage pro Monat\Dummy Module\Highcharts_Jahre]*/  ); // Berechnungen für welches Jahr? -> Wert ggf durch date("Y",time()) ersetzen
    $ts                    = mktime(0,0,0, 1,1, $year); // ab 01.01.$year 0:00:00 Uhr
    $te                    = mktime(23,50,00, 12, 31, $year); // bis 31.12.$year 23:59:59 Uhr

// Definition der Variablen-ID's
    $PV_Quote_monatlich_id = 23512 /*[Program\SMA Webbox\Quote Monate]*/  ; // Ziel-Variable für HC-Data-String "Quote"
    $PV_Ertrag_id          = 57373 /*[Program\SMA Webbox\Ertrag täglich (Zähler)]*/  ; // Variablen-ID der geloggten PV Ertragsdaten
    $PV_Soll_raw         = getValueString(57861 /*[Program\SMA Webbox\Sollwerte Monate]*/  ); // Var-ID, in der die PV-Solldaten (HC-String) liegen

// +++ Konfig / Vorgaben  Ende +++++++++++++++++++++++++++++++++++++++++++++++++


// Archive Handler, geloggte Daten auslesen
    $archiveID             = IPS_GetInstanceIDByName("Archive Handler", 0);   // Archive-Handler-ID
    $PV_Ertrag_array       = AC_GetAggregatedValues($archiveID, $PV_Ertrag_id, 3, $ts, $te, 12);
    $PV_Ertrag_array       = array_reverse($PV_Ertrag_array);
   //print_r($PV_Ertrag_array);

// Array-Daten formatieren
    $PV_Soll_raw             = explode(" ", $PV_Soll_raw);
    for($i=0;$i<count($PV_Soll_raw)-1;$i++)
    {
        $PV_Soll_array[$i]         = explode(",", $PV_Soll_raw[$i]);
        $PV_Soll_array[$i][]       = date("d.m.Y H:i", $PV_Soll_array[$i][0]);
    }
    //print_r($PV_Soll_array);

// String PV Quote aufbauen und in STRING-Var schreiben
   $PV_Quote_String = "";

    for($i=0;$i <= count($PV_Ertrag_array); $i++)
    {
         if (isset($PV_Ertrag_array[$i]['Avg']) >0)
         {
          $PV_Quote         = round((100*$PV_Ertrag_array[$i]['Avg'])/ $PV_Soll_array[$i][1], 2);
          $PV_Quote_String .= mktime(0,0,0, date("m",$PV_Ertrag_array[$i]['TimeStamp']), 1, date("Y",$PV_Ertrag_array[$i]['TimeStamp'])).",".$PV_Quote." ";
          //Debug:
          echo "#$i, Array: ".$PV_Ertrag_array[$i]['Avg'].", $PV_Quote
";

        }

    }

// String PV Ertrag Sollwert in String-Var schreiben
	if ($year == 2011)
     {
     setValueString($PV_Quote_monatlich_id , "1293836400,0 1296514800,0 1298934000,0 1301608800,0 1304200800,0 1306879200,0 1309471200,0 1312149600,0 1314828000,0 1317420000,0 1320102000,72.5 1322694000,108.9 ");
     }
     else
     {
    setValueString($PV_Quote_monatlich_id , $PV_Quote_String);
     }
	
//echo $year;
//echo $PV_Quote_String;

?>

Und ja, Aggregation ist Zähler.

räusper … gibt es hier schon Neuigkeiten?

Was passiert denn wenn du das nicht auskommentiert hast:


   //print_r($PV_Ertrag_array);

Was für werte sind denn im Array drin?

paresy

… Augenblick, ich ziehe die Daten mal ab …

Array
(
[0] => Array
(
[TimeStamp] => 1321229100
[Avg] => 0
[MinTime] => 1321229100
[Min] => 0
[MaxTime] => 1321229100
[Max] => 0
)

[1] =&gt; Array
    (
        [TimeStamp] =&gt; 1322694000
        [Avg] =&gt; 0
        [MinTime] =&gt; 1323953959
        [Min] =&gt; 0
        [MaxTime] =&gt; 1323953959
        [Max] =&gt; 0
    )

)
#0, Array: 0, 0
#1, Array: 0, 0

@paresy: kannst Du hieraus etwas erkennen?