NEWS
CCU-Historian Import
-
Hallo zusammen,
ich bin recht neu bei ioBroker und quasi erschlagen von der Fülle der Möglichkeiten. Spitzen Projekt!! Wirklich!!
Nun habe ich gleich auch schon mal eine erste Frage:
Bei mir lief schon eine ganze Weile als StandAlone die Homematic CCU. Die Werte habe ich mittels CCU-Historian geloggt. Nun mit der Einführung von ioBroker in meinem Haushalt frage ich mich, wie ich diese in CCU-Historian geloggten Werte in die SQL Datenbank des sql Adapters "überführen" kann.
Hat sich jemand schonmal dieser Fragestellung gewidmet? Im Forum hier habe ich leider nichts darüber gefunden.
Vielen Dank schon mal im Voraus.
RamSauer
-
Hi,
ich weiss jetzt nicht in welchem Format die Daten in CCU-Historian vorliegen … Ich habe mal Importer-Skripte gebaut die Daten von dem "History"-Format (JSON-Files) in ne SQL/InfluxDB-History pumpen können.
https://github.com/ioBroker/ioBroker.hi ... -converter
... da kann man bestimmt was verwenden.
Ich habe so meine CCUio Daten konvertiert. Also mit nem kleinen Skript die ccu.io Daten in ein History-JSON-Format gebracht und diese Daten dann (in meinem Fall) in ne InfluxDB geschoben
-
Hallo apollon77,
vielen Dank für die prompte Antwort. Deinen Beitrag mit dem Importer Script hatte ich bereits schonmal gelesen.
CCU-Historian verwendet eine H2 Datenbank, bei der für jeden Messpunkt eine eigene Tabelle angelegt wird.
Bestimmt lassen sich die Informationen aus dieser Datenbank in eine "History ähnliche" Form exportieren. Muss mir diese Datei(en) mal ansehen. Dann könnte man ja theoretisch eine "History" Instanz simulieren und darüber den Import gestalten ?!?!
Oder hat jemand eine bessere Idee oder das Problemchen schon mal umgesetzt?
-
Hey,
die JSON-Files von History sind simpel: Verzeichnisstruktur mit einem verzeichnis pro Tag und dort drin ein File pro Datenpunkt mit nem JSON drin.
Alternativ müsstest Du dir die DB-Struktur vom neuen SQL-Adapter ansehen und überlegen wie Du die Daten direkt umschreiben kannst.
Der SQL-Adapter hat pro Datentyp (Number, String, Boolean) eine Tabelle und dort sind die Daten drin. Und in einer anderen Tabelle stehen die Datenpunkte und Datentypen und so …
Du kannst auch direkt die "setState"-Funktionen benutzen ... ggf nimmt halt das Import-Skript schon viel ab
-
Hast Du vielleicht ein Syntax Beispiel für die "setState"-Funktion.
Nehmen wir mal, ich habe die ID des Datenpunkts in der SQL DB, den Timestamp (erstmal noch nicht in Unix Time - muss ich den umwandeln?) und ich habe den Wert. Wie sieht der setState Befehl aus? Das habe ich leider noch nirgends gefunden.
-
Kommt drauf an wie Du es schreiben wollen würdest …
Am Ende nimmt die "storeState" (sorry Name doch leicht anders) Funktion und bekommt eine oder mehrere States übergeben. State hat immer "id" mit der Id und dann die Daten. Welche das so sind schau es Dir in den History-JSON Files an ... habs grad nicht im Zugriff.