Manipulation der Archiv-Datenbank

Hi …

ich habe schon mal einen entsprechenden Featurewunsch http://www.ip-symcon.de/forum/project.php?issueid=846 eingetütet, aber vielleich gibt es ja andere Lösungen.

Ich habe in meinem Projekt einige Variablenwerte, die ich gerne Tagesweise protokollieren würde, um diese mittels Graph anzuzeigen. Dazu gehören z.B. Die anzahl der Sonnenstunden am Tag oder auch das Internet-Gesamtdatenvolumen pro Tag. Das Problem ist, dass diese Werte erst am Folgetag (0 Uhr nächster Tag) zur Verfügung stehen.

Ich würde diese Werte gerne im Nachgang in die Archiv Datenbank einpflegen, und zwar möglichst um 12 Uhr am Vortag, damit das in der Graphik gut aussieht :slight_smile:

Kennt ihr eine Möglichkeit, die Archivdatenbank zu Skriptgesteuert zu manipulieren oder habt ihr andere Vorschläge? Am liebsten wäre mir eine neue Funktion, wie im Feature-Wunsch angegeben, aber das müssen die Entwickler von IPS entscheiden …

Viele Grüße …

Ich nutze mal dieses alte Thema da gleiche Überschrift bzw Thematitel!

Ich habe diese Woche einen neuen Gaszähler (Honywell BK-G4MT) bekommen. Den alten Zähler frage ich seit Jahren über einen Reedkontakt und EKM-868 ab. Jetzt habe ich den Kontakt einfach von oben, mit Doppelklebeband nach unten befestigt.
Funktionierte auf Anhieb! Der einzige Unterschied: der Alte hatte 1imp=0.1m³, der Neue bringt 1imp=0.01m³

Damit ich nun meinen alten Datenbestand zum vergleichen weiter nutzen kann suche ich nun eine Möglichkeit die alten Werte x10 zu nehmen. Also am besten ein einmaliges Script um alle alten Werte aus dem Archiv zu lesen und mit Faktor 10 wieder rein zu schreiben.
Wie würdet ihr das machen?

In deinem Fall würde ich die Werte exportieren, in Excel mal 10 nehmen und dann als csv wieder ein spielen.
gruß
edit: jetzt wo ich drüber nach denke… bin mir nicht mehr ganz sicher ob man an die Archive-Rohdaten ran kommt oder nur an die aggregierten.

Das Thema ist immer noch aktuell.
Würde IPS V6.3 da etwas vereinfachen?

Ah, ich dachte du wärst mit dem Ansatz von @goran da rangegangen und hättest das Thema schon abgeschlossen. Die 6.3 ändert an der Stelle nichts weiter. Je nachdem wo so deine Stärken liegen könntest du entweder via Excel oder Texteditor eine neue CSV vorbereiten und diese per „Daten hinzufügen“ einspielen oder dir ein PHP-Skript schreiben, welches diese dann per AC_AddLoggedValues hinzufügt.

Das hatte mich dann erst mal abgeschreckt und ich habe auf weitere Kommentare gehofft.
Und dann ist es in Vergessenheit geraten.
Erst mit den Archiv Änderungen der V6.3 ist es mir wieder aufgefallen.

Alles klar. Berichte gerne, ob es mit meinen Ansätzen geklappt hat oder ob du dort noch mehr Informationen benötigst.

Beantwortet leider die Frage nicht. Wie kommt man an die Rohdaten ran?

Welche der 6 CSV’s muss ich den in Excel ändern?

Ahh, die Frage war nach der Struktur vom Archiv. Falls du über PHP da rankommen möchtest, nutzt du einfach AC_GetLoggedValues (findest du auch in der Doku). Falls du die Dateien haben möchtest und anpassen möchtest, findest du diese im Unterordner db deines data-Ordners. Die CSVs auf Hauptebene mit .hour, .week etc. sind für dich uninteressant, das sind die aggregierten Daten jeweils passend zum Namen. Die Rohdaten findest du in den Unterordnern, die nach Jahr und Monat aufgeteilt sind. Dort jeweils die benötigten <VariablenID>.csv rausziehen. Am besten erstellst du dann eine neue CSV-Datei, in der du den Inhalt der ganzen relevanten CSV-Dateien zusammenwirfst. In jeder Zeile steht dort ein Zeitstempel und danach der Wert, durch ein Komma getrennt. Den Zeitstempel lässt du natürlich gleich und multiplizierst den Wert hinter dem Komma mit 10. Die resultierende Datei kannst du dann im Archiv der neuen Variable als Daten hinzufügen.