Neues Modul 98_FileLogConvert.pm - FileLog Import in DbLog und mehr

Begonnen von DeeSPe, 04 Februar 2017, 12:20:07

Vorheriges Thema - Nächstes Thema

DeeSPe

Zitat von: c.monty am 19 April 2017, 00:57:17
Frage:
Wie muss ich vorgehen, um nur bestimmte Event zu konvertieren/importieren?

Einfach mal "get <name> fileEvents <logfile.log>" ausführen.
Danach wird im Reading cmd ein mögliches Import/Convert Kommando erstellt welches als erstes den Namen der Log Datei enthält und danach einen RegEx mit allen zu importierenden Readings/Events.
Einfach auf die gewünschten Readings/Events kürzen und dann mit "set <name> import2DbLog <cmd>" importieren.

Zitat von: c.monty am 19 April 2017, 01:08:21
Frage:
Wo wird das Log für den DbLog Import geschrieben?

Im selben Ordner wie die Log Dateien.

EDIT: Es wird aber keine Log Datei erstellt, sondern nur eine leere Datei mit dem selben Namen wie die Log Datei. Die ist nur zur Erkennung dass der Import für diese Datei schon gemacht wurde.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

tiroso

Top das Modul!!!!!!!

Hat mir seeeeeehr viel Arbeit erspart. Danke dir!!!

Amenophis86

Besteht noch der Plan es offiziell einzuchecken? Find es weiterhin sehr gut.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

DeeSPe

Ich hatte über einen Check-in nachgedacht, es aber wieder verworfen.
Die Gründe dafür sind folgende:

  • Bei einer Umstellung von FileLog auf DbLog wird das Modul nur für die Migration gebraucht, es standardmäßig an alle auszuliefern finde ich deshalb nicht optimal.
  • Evtl. fließt die Funktionalität mal irgendwann in das DbLog Modul mit ein. Ich hatte da schon mal mit Heiko drüber philosophiert, aufgrund Zeitmangel aber i.M. nicht weiter verfolgt. Vielleicht baue ich im Winter mal einen Patch für DbLog.

Gruß
Dan

P.S. Evtl. macht ein Check-in nach contrib Sinn!?
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

mahowi

Check-In nach contrib würde ich befürworten. Da findet man das Modul wahrscheinlich eher als im Forenthread.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

Amenophis86

Bis es in DBLog drin ist würde es in contrib sicher Sinn machen. Vielleicht kann man in der CommandRef noch drauf verweisen, da es gerade beim Anlegen von DBLog extrem helfen kann.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

DS_Starter

Hallo Dan,

wennn du dein Modul so wie von Ameno vorgeschlagen nach contrib bringst, würde ich diesen Hinweis auf das Modul gerne in der commandref als Hilfestellung hinterlegen.

Grüsse
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DeeSPe

Zitat von: DS_Starter am 04 September 2017, 16:33:59
Hallo Dan,

wennn du dein Modul so wie von Ameno vorgeschlagen nach contrib bringst, würde ich diesen Hinweis auf das Modul gerne in der commandref als Hilfestellung hinterlegen.

Grüsse
Heiko

Na das wäre ja was Heiko!
Danke für das Angebot, welches ich hiermit gerne annehme.

Werde das Modul in den nächsten Tagen noch einmal prüfen und dann nach contrib einchecken.
Heiko, ich gebe Dir dann Bescheid, damit Du die Erwähnung des Moduls in die commandref mit aufnehmen kannst.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

DeeSPe

Habe das Modul soeben unter contrib eingecheckt!
Das Modul im ersten Beitrag habe ich entfernt und statt dessen auf SVN verwiesen.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

DS_Starter

Habe die DbLog V2.22.5 eingecheckt.
Sie enthält neben kleinen Fixes den Hinweis auf 98_FileLogConvert.pm und diesen Thread zur Hilfestellung.

Grüße
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DeeSPe

Mensch Heiko, Du bist ja so "auf Zack". ;)
I brech hia glei zam...

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

funkner

Hallo Dan,
vielen Dank für dieses Modul. Ich hoffe es wird mir beim Umstieg auf die DbLog viel Arbeit ersparen.
Ich habe erst heute die ersten Erfahrungen mit dem Modul gemacht.

Ein Punkt ist mir eben aufgefallen.
Ich habe eine FileLog-Datei mit den Außentemperaturen.
Diese möchte ich gerne 1:1 in DbLog importieren.
Nach einem fileEvent steht im cmd dieses:

AussenTemp-2017-09.log 10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|6|7|8|9

Also alle Temperaturen mit "Kommawerten" werden nicht konvertiert.
Wie kann ich erreichen, dass alle Werte konvertiert werden?
Ein Regex .* hat auch keinen Erfolg gebracht.

Auszug aus der Originaldatei:

...
2017-09-01_01:08:40 Event_AussenTemp 15.1
2017-09-01_01:13:40 Event_AussenTemp 15
2017-09-01_01:18:40 Event_AussenTemp 15.1
2017-09-01_01:28:40 Event_AussenTemp 15
2017-09-01_01:33:40 Event_AussenTemp 15.1
2017-09-01_01:53:40 Event_AussenTemp 15
2017-09-01_01:58:40 Event_AussenTemp 15.1
2017-09-01_02:03:40 Event_AussenTemp 15
2017-09-01_02:08:40 Event_AussenTemp 14.9
2017-09-01_02:18:40 Event_AussenTemp 14.8
2017-09-01_02:38:40 Event_AussenTemp 14.7
2017-09-01_02:48:40 Event_AussenTemp 14.6
2017-09-01_03:23:40 Event_AussenTemp 14.5
2017-09-01_03:53:40 Event_AussenTemp 14.4
2017-09-01_03:58:40 Event_AussenTemp 14.5
2017-09-01_04:03:40 Event_AussenTemp 14.4
2017-09-01_04:08:40 Event_AussenTemp 14.5
2017-09-01_04:48:40 Event_AussenTemp 14.4
2017-09-01_05:03:40 Event_AussenTemp 14.3
2017-09-01_05:08:40 Event_AussenTemp 14.2
2017-09-01_05:13:40 Event_AussenTemp 14.1
2017-09-01_05:23:40 Event_AussenTemp 14
2017-09-01_05:33:40 Event_AussenTemp 13.9
...

DeeSPe

Zitat von: funkner am 06 Oktober 2017, 00:46:06
Hallo Dan,
vielen Dank für dieses Modul. Ich hoffe es wird mir beim Umstieg auf die DbLog viel Arbeit ersparen.
Ich habe erst heute die ersten Erfahrungen mit dem Modul gemacht.

Ein Punkt ist mir eben aufgefallen.
Ich habe eine FileLog-Datei mit den Außentemperaturen.
Diese möchte ich gerne 1:1 in DbLog importieren.
Nach einem fileEvent steht im cmd dieses:

AussenTemp-2017-09.log 10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|6|7|8|9

Also alle Temperaturen mit "Kommawerten" werden nicht konvertiert.
Wie kann ich erreichen, dass alle Werte konvertiert werden?
Ein Regex .* hat auch keinen Erfolg gebracht.

Auszug aus der Originaldatei:

...
2017-09-01_01:08:40 Event_AussenTemp 15.1
2017-09-01_01:13:40 Event_AussenTemp 15
2017-09-01_01:18:40 Event_AussenTemp 15.1
2017-09-01_01:28:40 Event_AussenTemp 15
2017-09-01_01:33:40 Event_AussenTemp 15.1
2017-09-01_01:53:40 Event_AussenTemp 15
2017-09-01_01:58:40 Event_AussenTemp 15.1
2017-09-01_02:03:40 Event_AussenTemp 15
2017-09-01_02:08:40 Event_AussenTemp 14.9
2017-09-01_02:18:40 Event_AussenTemp 14.8
2017-09-01_02:38:40 Event_AussenTemp 14.7
2017-09-01_02:48:40 Event_AussenTemp 14.6
2017-09-01_03:23:40 Event_AussenTemp 14.5
2017-09-01_03:53:40 Event_AussenTemp 14.4
2017-09-01_03:58:40 Event_AussenTemp 14.5
2017-09-01_04:03:40 Event_AussenTemp 14.4
2017-09-01_04:08:40 Event_AussenTemp 14.5
2017-09-01_04:48:40 Event_AussenTemp 14.4
2017-09-01_05:03:40 Event_AussenTemp 14.3
2017-09-01_05:08:40 Event_AussenTemp 14.2
2017-09-01_05:13:40 Event_AussenTemp 14.1
2017-09-01_05:23:40 Event_AussenTemp 14
2017-09-01_05:33:40 Event_AussenTemp 13.9
...


Ich kann Dir gerade nicht viel dazu sagen außer dass ich es mir bei Gelegenheit mal anschauen werde.
Hab da so eine Idee, kann aber ein paar Tage dauern.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

supergrobi

Hallo Forum,
ich bin Anfänger und kürzlich (vor ca. 4 Tagen) auf DbLog umgestiegen. habe mir dann auch das hier vorgestellte LogConvert eingebunden und benutzt. Ich habe einige Logfiles, die ich gerne importieren möchte. Das analysieren funktioniert und importieren scheint auch zu funktionieren.
Die DB wird immer größer. bin jetzt bei ~700 MB mit einigen importierten files. Jedoch scheint es so, als wenn bei jedem importierten File alle Daten von vorher unbrauchbar gemacht werden. Aufgegfallen ist mir dies, als ich mir die Plots ansehen wollte. Auch aktuelle Daten sind dann nur noch von 1-2h vorhanden und natürlich alle von dem gerade importierten File, aber keine von den vorigen. Ich kenne mich leider nicht so gut mit Datenbanken aus. Habe mir das DB-File aber mal aus dem FHEM runter geladen und mit DB-Browser angesehen. In der History Tabelle hab ich 722071 Einträge. Das zuletzt importierte File hatte ~600000, das davor auch ~600000 und das davor auch > 500000 usw. Die Current Tabelle hat 1166 Einträge.
Wo sind die Daten geblieben ? Gibt es irgend ein Reparatur Tool ?

gruß
Thomas

funkner

Hallo Dan,
ich hab testweise die beiden RexEx-Muster (Zeile 220 und 248) folgendermaßen geändert.

($line =~ /^(\d{4}-\d{2}-\d{2})_(\d{2}:\d{2}:\d{2})\s([A-Za-z0-9._]+)\s([A-Za-z0-9_.-]+)$/)
statt
($line =~ /^(\d{4}-\d{2}-\d{2})_(\d{2}:\d{2}:\d{2})\s([A-Za-z0-9._]+)\s([A-Za-z0-9_-]+)$/)

Kannst du die Änderungen bitte verifizieren und gegebenenfalls übernehmen?