FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: peterk_de am 18 März 2014, 23:36:06

Titel: FileLogs nach DbLog konvertieren / Migrieren
Beitrag von: peterk_de am 18 März 2014, 23:36:06
Hallo zusammen,

da ich auch nach längerem Suchen nichts erschöpfendes gefunden habe, hier mein kurzes Kochrezept, wie man - unter Windows und Quick and Dirty - seine wertvollen FileLogs nach DbLog migrieren kann. Ich denke vor dem Problem könnten so einige stehen, die wie ich ersteinmal FHEM wie per Default eingestellt mit FileLogs genutzt haben, nun aber ein wenig mehr Statistik betreiben möchten.

Ich gehe davon aus, ihr habt DBlog am Laufen und einige FileLogs, die ihr dort einfügen wollt.

Ich habe dazu verwendet:
- Notepad++
- HeidiSQL

Los geht's:


Vorteil dieses Halbmanuellen vorgehens: Man kann schnell und unkompliziert Inkonsistenzen in den Logs ausbügeln. Und wenn man wie ich oft geupdatet und umgebastelt hat, gibts davon reichlich.
Titel: Antw:FileLogs nach DbLog konvertieren / Migrieren
Beitrag von: Icebear am 19 April 2014, 02:43:29
Vielen dank für den Tip. hab mir nämlich gerade DBeinträge zerhämmert beim umbenennen.

ps. ein on update timestamp für ein feld was normal nur insertet wird ist mal richtig mist :) alle Timestamps zum teufel nach dem ändern des Device ..

bei mir jetzt geändert in

alter table history change TIMESTAMP TIMESTAMP timestamp default current_timestamp

So wird der Timestamp nur beim Insert geschrieben aber nicht mehr bei nem Update.. Just for Info.
Titel: Antw:FileLogs nach DbLog konvertieren / Migrieren
Beitrag von: fhem-me am 03 April 2015, 12:24:00
nun habe ich auch meine Daten migriert.
Um die Einheit korrekt in die letzte Spalte zu migrieren habe ich folgende Such- / Ersetzungs-pattern verwendet

^(....-..-..)_(..:..:..) (\S*) (\w*)(: )?(.*?)( (\D*))?$
INSERT INTO "history" VALUES\('\1 \2','\3','','\4\5\6\7','\4','\6','\8'\);

Mit dem Ergebnis kann ich sofort die Daten importieren  :)
Titel: Antw:FileLogs nach DbLog konvertieren / Migrieren
Beitrag von: DeeSPe am 29 Januar 2017, 15:31:56
Ich habe aus der Not heraus mal ein kleines Modul gebaut:
98_FileLogConvert.pm (https://forum.fhem.de/index.php/topic,65982.0.html)

Gruß
Dan
Titel: Antw:FileLogs nach DbLog konvertieren / Migrieren
Beitrag von: cs-online am 08 September 2019, 17:39:19
Hallo Dan,

kann es sein, dass das Convertierungs-Modul mit dem aktuellen FHEM nicht mehr läuft ? Bei mir ist das nämlich nicht mehr im COntrib-Verzeichnis und wenn ich das downloade und von Hand in den PM-Ordner kopiere, neustarte und das Modul dann definieren will, kommt die Meldung, dass das Modul nicht geladen werden kann. Oder gibt es inzwischen eine ähnlich einfache, andere Möglichkeit, die Logs in die DB einzuspielen ?

Grüße  Christian
Titel: Antw:FileLogs nach DbLog konvertieren / Migrieren
Beitrag von: DS_Starter am 08 September 2019, 23:01:33
ZitatBei mir ist das nämlich nicht mehr im COntrib-Verzeichnis
Du musst es aus dem online (nicht lokelen) contrib laden ->
https://svn.fhem.de/trac/browser/trunk/fhem/contrib/98_FileLogConvert.pm

So ist es auch in der comref von DbLog hinterlegt. Versuch es mit dem Modul nochmal und wenn es dann immernoch nicht geladen werden kann, steht bestimmt etwas dazu im Log.

Grüße,
Heiko
Titel: Antw:FileLogs nach DbLog konvertieren / Migrieren
Beitrag von: cs-online am 10 September 2019, 21:22:04
...leider das gleiche, wenn ich versuche das mit

define FileLogConvert FileLogConvert

zu definieren (eine Hilfe findet der zu dem Modul leider nicht)

2019.09.10 21:18:25 1: PERL WARNING: Bareword found where operator expected at ./FHEM/98_FileLogConvert.pm line 9, near "98_FileLogConvert"
2019.09.10 21:18:25 1: PERL WARNING: (Missing operator before FileLogConvert?)
2019.09.10 21:18:25 1: PERL WARNING: Bareword found where operator expected at ./FHEM/98_FileLogConvert.pm line 14, near ")
        window"
2019.09.10 21:18:25 1: PERL WARNING: (Missing operator before window?)
2019.09.10 21:18:25 1: PERL WARNING: String found where operator expected at ./FHEM/98_FileLogConvert.pm line 34, near "$(".trac-autofocus""
2019.09.10 21:18:25 1: PERL WARNING: (Missing operator before ".trac-autofocus"?)
2019.09.10 21:18:25 1: PERL WARNING: String found where operator expected at ./FHEM/98_FileLogConvert.pm line 35, near "$(".trac-target-new""
2019.09.10 21:18:25 1: PERL WARNING: (Missing operator before ".trac-target-new"?)
2019.09.10 21:18:25 1: PERL WARNING: String found where operator expected at ./FHEM/98_FileLogConvert.pm line 36, near "$(".trac-scroll""
2019.09.10 21:18:25 1: PERL WARNING: (Missing operator before ".trac-scroll"?)
2019.09.10 21:18:25 1: PERL WARNING: String found where operator expected at ./FHEM/98_FileLogConvert.pm line 37, near "$(".trac-disable-on-submit""
2019.09.10 21:18:25 1: PERL WARNING: (Missing operator before ".trac-disable-on-submit"?)
2019.09.10 21:18:25 1: PERL WARNING: Bareword found where operator expected at ./FHEM/98_FileLogConvert.pm line 40, near ""text/javascript" src"
2019.09.10 21:18:25 1: PERL WARNING: (Missing operator before src?)
2019.09.10 21:18:25 1: reload: Error:Modul 98_FileLogConvert deactivated:
syntax error at ./FHEM/98_FileLogConvert.pm line 8, near "<"
Unknown regexp modifier "/t" at ./FHEM/98_FileLogConvert.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/98_FileLogConvert.pm line 9, at end of line
Unknown regexp modifier "/e" at ./FHEM/98_FileLogConvert.pm line 9, at end of line
syntax error at ./FHEM/98_FileLogConvert.pm line 15, near "-->"
syntax error at ./FHEM/98_FileLogConvert.pm line 34, near "$(".trac-autofocus""
syntax error at ./FHEM/98_FileLogConvert.pm line 35, near "$(".trac-target-new""
syntax error at ./FHEM/98_FileLogConvert.pm line 36, near ") {"
syntax error at ./FHEM/98_FileLogConvert.pm line 37, near "$(".trac-disable-on-submit""
syntax error at ./FHEM/98_FileLogConvert.pm line 40, near ""text/javascript" src"
./FHEM/98_FileLogConvert.pm has too many errors.

2019.09.10 21:18:25 0: syntax error at ./FHEM/98_FileLogConvert.pm line 8, near "<"
Unknown regexp modifier "/t" at ./FHEM/98_FileLogConvert.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/98_FileLogConvert.pm line 9, at end of line
Unknown regexp modifier "/e" at ./FHEM/98_FileLogConvert.pm line 9, at end of line
syntax error at ./FHEM/98_FileLogConvert.pm line 15, near "-->"
syntax error at ./FHEM/98_FileLogConvert.pm line 34, near "$(".trac-autofocus""
syntax error at ./FHEM/98_FileLogConvert.pm line 35, near "$(".trac-target-new""
syntax error at ./FHEM/98_FileLogConvert.pm line 36, near ") {"
syntax error at ./FHEM/98_FileLogConvert.pm line 37, near "$(".trac-disable-on-submit""
syntax error at ./FHEM/98_FileLogConvert.pm line 40, near ""text/javascript" src"
./FHEM/98_FileLogConvert.pm has too many errors.
Titel: Antw:FileLogs nach DbLog konvertieren / Migrieren
Beitrag von: DS_Starter am 10 September 2019, 22:42:55
Also es sieht so als ob du das File nicht richtig heruntergeladen hast. Am Ende der Seite gibt es den Button "Ursprüngliches Format" herunterladen. Damit sollte es funktionieren.

Grüße,
Heiko
Titel: Antw:FileLogs nach DbLog konvertieren / Migrieren
Beitrag von: Otto123 am 10 September 2019, 22:58:49
Tipp:
Einfacher Download mit diesem Befehl in der FHEM Kommandozeile. Bitte so komplett mit den Ausführungszeichen am Anfang und Ende eingeben!!!
"wget -qO ./FHEM/98_FileLogConvert.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/98_FileLogConvert.pm"

Schauen ob das File da ist und die Rechte stimmen, wieder in der FHEM Kommandozeile, Ausgabe erfolgt in der Weboberfläche:
{qx(ls -lha ./FHEM/98_FileLogConvert.pm)}
Titel: Antw:FileLogs nach DbLog konvertieren / Migrieren
Beitrag von: cs-online am 11 September 2019, 07:50:19
:-) Otto, du bist wie immer mein Held !!! Danke, das scheint geholfen zu haben, nun hat der zumindest mal das Device angelegt.

Danke euch beiden !!!

Grüße  Christian
Titel: Antw:FileLogs nach DbLog konvertieren / Migrieren
Beitrag von: cs-online am 11 September 2019, 11:46:48
...nur für mich zum Verständnis: Muss ich jedes File einzeln angeben und dann konvertieren lassen oder kann man auch alle in einem Verzeichnis nehmen ?

Grüße

Christian
Titel: Antw:FileLogs nach DbLog konvertieren / Migrieren
Beitrag von: DeeSPe am 12 September 2019, 15:13:19
Zitat von: cs-online am 11 September 2019, 11:46:48
...nur für mich zum Verständnis: Muss ich jedes File einzeln angeben und dann konvertieren lassen oder kann man auch alle in einem Verzeichnis nehmen ?

Grüße

Christian

Es geht nur einzeln.

Gruß
Dan
Titel: Antw:FileLogs nach DbLog konvertieren / Migrieren
Beitrag von: cs-online am 12 September 2019, 20:53:05
hmmm.... bei ca. 3000 Dateien fällt das dann wohl eher aus...
Titel: Antw:FileLogs nach DbLog konvertieren / Migrieren
Beitrag von: Otto123 am 12 September 2019, 21:36:33
Man muss auch irgendwann mal ausmisten :)

Ist keine Lösung für Dich - aber vielleicht ein Ansatz: https://forum.fhem.de/index.php/topic,66383.msg969064.html#msg969064
Du kennst Deine Daten und weißt eventuell was drin steht, wenn Du Lust hast zum Script kannst Du Dir sicher was angepasstes bauen.

Aber wie gesagt, nur eine Idee sich selbst was zu machen.

Gruß Otto
Titel: Antw:FileLogs nach DbLog konvertieren / Migrieren
Beitrag von: cs-online am 13 September 2019, 08:16:25
...das sind schon nur aus den letzten drei Monaten die Logs ;-) Aber mal drüber geschaut stelle ich fest, ich brauche nicht von allen Devices die Daten und möglicherweise auch nicht so weit zurück.

Das Script sieht cool aus, ich blick bei RegEx ja imemr nicht so durch, das wird mir also deutlich helfen mir was zu basteln.

Danke dir,

schöne Grüße

Christian