CUXD devlog-file import

Das Langzeitarchiv für HomeMatic

Moderator: Co-Administratoren

Antworten
PeterAC
Beiträge: 69
Registriert: 19.12.2014, 14:07
Hat sich bedankt: 3 Mal
Danksagung erhalten: 6 Mal

CUXD devlog-file import

Beitrag von PeterAC » 14.04.2020, 21:18

Hi,

nachdem Mathias dankenswerterweise den CSV-Import realisiert hat, hab ich mir mal den Import von unveränderten CUXD-devlog-Files vorgenommen, um bei einem Umstieg auf den ccu-historian meine 2.4 GB log-Daten mitnehmen zu können. Hier ist es nun.

Es basiert auf Mathias' Skript csvimport.groovy und kann nun beides, CSV- und CUXD-Dateien einlesen. Umgeschaltet wird mit der Option "-cx", dann werden CUXD-Dateien importiert. Die Option "-m" bekommt dabei eine modifizierte Syntax:

Code: Alles auswählen

Anstatt:  -m csv-spalten-nr=dpId
nun:      -m CCU-channelId=dpId
CCU-channelId ist die Bezeichnung, die im devlog-File zwischen Timestamp und Datenwert steht. Die auf den Datenwert folgende Kurzbezeichnung wird im log-Output auch angegeben, sofern vorhanden. Wie beim ursprünglichen Skript bedarf es einer Vorarbeit, um die Zuordnung der CCU-channelId's zu den dpId in der Datenbak des ccu-historian zu ermitteln. Zum Glück habe ich nicht alle Variablen und Kanäle mit CUXD geloggt, sondern nur ca. 50.
Angehmerweise kann man in der Kommandozeile des tools mit @<filename> auch eine Datei mit den Parametern angeben, so dass man die Liste der -m-Parameter zeilenweise da hinein schreiben kann und dann z.B. mit

Code: Alles auswählen

tool ch-import -d -cx @cuxdmap devlog.txt.20200413-0708
den Import starten kann (ch-import steht für "ccu-historian-import"). Das funktioniert übrtigens auch im ursprünglichen Skript so.
Im CUXD-Modus sind die Parameter -nh, -tc und -tf ohne Wirkung.

Beispielaufruf (CUXD-Modus):

Code: Alles auswählen

>tool ch-import -d -cx @cuxdmap devlog.txt.20200413-0708
*** CSV-Import v2.0  ***
(C)2018 info@ccu-historian.de
 + CUXD-devlog.txt support
connecting to database
reading data points from database
860 data points found
mappings:
  CUXD-Channel: _vLPwrkWh -> table: D_SYSVAR_54589_VALUE, DP ID: 12
  CUXD-Channel: _vLPwrSum -> table: D_SYSVAR_53899_VALUE, DP ID: 13
  CUXD-Channel: ABC1234567:1.HUMIDITY -> table: D_BIDCOS_RF_ABC1234567_1_HUMIDITY, DP ID: 316
  CUXD-Channel: ABC1234567:1.TEMPERATURE -> table: D_BIDCOS_RF_ABC1234567_1_TEMPERATURE, DP ID: 315
deleting destination time ranges:
  DP ID: 12, first: Sun Apr 12 14:34:55 CEST 2020, last: Mon Apr 13 06:38:05 CEST 2020
  DP ID: 13, first: Sun Apr 12 14:34:55 CEST 2020, last: Mon Apr 13 06:38:05 CEST 2020
  DP ID: 316, first: Sun Apr 12 14:33:25 CEST 2020, last: Mon Apr 13 07:06:24 CEST 2020
  DP ID: 315, first: Sun Apr 12 14:33:25 CEST 2020, last: Mon Apr 13 07:06:24 CEST 2020
importing:
  inserted 120 of noname entries into table D_SYSVAR_54589_VALUE
  inserted 120 of noname entries into table D_SYSVAR_53899_VALUE
  inserted 390 of DG-Bad-Feuchte entries into table D_BIDCOS_RF_ABC1234567_1_HUMIDITY
  inserted 390 of DG-Bad-Temp entries into table D_BIDCOS_RF_ABC1234567_1_TEMPERATURE
finished
Da der Import nun auf "Knopfdruck" passiert, jedenfalls sobald man die cuxdmap erstellt hat, kann man nun bequem den ccu-historian auch off-line als Visualisierungsfrontend nutzen, indem man die letzen log-File importiert. Dabei werden nur die Daten übernommen, die auch das CUXD-Log gespeichert hat.

Zum Schluss:
Soweit hat's bei mir funktioniert, aber Testen ist immer so eine Sache, daher keine Gewähr für kaputte Datenbanken!
Immer vorher ein Backup machen!!!

VG,
Peter
Dateianhänge
cuxdmap_demo.txt
Mapping-Parameter-file (Muster)
(104 Bytes) 105-mal heruntergeladen
ch-import.zip
Ins ccu-historian Installationsverzeichnis entpacken
(2.92 KiB) 82-mal heruntergeladen
ch-import.readme.txt
Erweitertes readme
(7.59 KiB) 91-mal heruntergeladen

Mathias
Beiträge: 1791
Registriert: 03.11.2010, 10:25
System: CCU
Wohnort: Aachen
Hat sich bedankt: 58 Mal
Danksagung erhalten: 260 Mal
Kontaktdaten:

Re: CUXD devlog-file import

Beitrag von Mathias » 15.04.2020, 00:25

So ein Werkzeug wurde schon häufig angefragt. Kann ich das erweiterte Skript mit in die CCU-Historian-Distribution packen?

Gruß
Mathias

PeterAC
Beiträge: 69
Registriert: 19.12.2014, 14:07
Hat sich bedankt: 3 Mal
Danksagung erhalten: 6 Mal

Re: CUXD devlog-file import

Beitrag von PeterAC » 15.04.2020, 09:08

Keine Einwände, hoffe aber, dass keine verstecken Fehler drin sind und eine Datenbank zerschießen.

Und von mir auch noch vielen Dank für den CCU-Historian!

VG,
Peter

tigeriltis
Beiträge: 1
Registriert: 13.01.2022, 07:46
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: CUXD devlog-file import

Beitrag von tigeriltis » 13.01.2022, 07:55

Vielen Dank für den CCU-Historian und das Import-Tool!

Hier ein kleines Groovy-Skript, um die Mapping-Datei von CCU-ChannelId zu Datenbank-ID zu generieren.
Ich hab es über die Skriptumgebung des Webinterfaces bentutz. Vielleicht kann es noch jemand gebrauchen. Oder vielleicht kann es ins Import-Tool integriert werden.

Code: Alles auswählen

println "Datenpunktmapping für devlog import tool:"
database.dataPoints.each { dp ->
    if ( !dp.id.interfaceId.equals("SysVar") ) {
        print   "-m " + dp.id.address + "." + dp.id.identifier
        println "="   + dp.idx
    }
}
LG,
Tigeriltis

Antworten

Zurück zu „CCU-Historian“