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: Amenophis86 am 07 Februar 2017, 18:33:02
Finde die Idee top. Allerdings habe ich eine Frage. Ich würde gerne auch meine Fenster/Tür Sensoren importieren. Diese schreiben natürlich ins Logile nur open/closed/tilted rein. Gibt es dafür auch eine Möglichkeit?

Ja, wie immer sogar mehrere!

  • Log Datei selbst bearbeiten und vor open/closed/tilted noch "state: " schreiben (Suchen & Ersetzen).
  • Gab es für solche Fälle nicht irgend sowas wie addStateEvent? Das müsste natürlich schon vorher gesetzt sein damit state gleich mit in's Log kommt.
  • Du könntest mal nachsehen wie DbLog die (neuen) Einträge handhabt! Werden die überhaupt geloggt? Wird dann von DbLog automatisch das state READING ergänzt? Habe solche Fälle nicht um das zu prüfen und bin deshalb auf Feedback angewiesen, könnte natürlich auch mal die Entwickler von DbLog fragen!

Die Frage, die ich mir stelle, ist wie könnte ich das herausbekommen ob es zu state gehört? Da ich den String an den Leerzeichen trenne. Klar wenn nur open/closed/tilted drin steht ist es eindeutig, was aber wenn bei einem anderen Device Type ein Wert mit einer Einheit kommt? Ich denke dieser Spezialfall lässt sich evtl. nur durch Übergabe weiterer set Parameter realisieren.

Zitat von: Amenophis86 am 07 Februar 2017, 18:33:02
Edit:
Und ich hätte gerne die Möglichkeit eine File nochmal zu converten. Mir ist zB eben ein Fehler unterlaufen und jetzt lässt mich das Modul die Datei nicht nochmal converten, da ich das bereits getan habe. Eigentlich ist die Idee gut, damit man weiß was man gemacht hat, aber das sollte man auch ausstellen können.

Das kannst Du tun! Einfach die entsprechende Datei (Name der Logdatei + Endung Name des DbLog Device) im Log Verzeichnis löschen und die Details Seite vom FileLogConvert Device neu laden. Schon kannst Du noch einmal neu importieren. Ich sehe hier keinen Bedarf das ausstellen zu können/müssen! 8)

Zitat von: Amenophis86 am 07 Februar 2017, 18:33:02
Edit2:
Weiterhin sollte es die Möglichkeit geben die erstelle SQL Datei (mit den gefilterten Readings) über FHEM zu impoertieren. Gerade bei größeren Dateien kann das sehr hilfreich sein, wenn die DB nur eine bestimmte Größe der Datei bzw. nur eine bestimmte Zeilen Anzahl bei SQL zulässt.

Diese Möglichkeit gab es in der Pre-Beta Version des Moduls, habe das dann später aber aus folgenden Gründen entfernt:

  • Es macht keinen zeitlichen Unterschied und auch keinen Unterschied in der Performance ob von der Log Datei oder der SQL Datei importiert wird.
  • Aber viel wichtiger für mich: Die Gefahr ist mir einfach zu groß dass jemand seine selbst zusammengefrickelte SQL Datei dazuschiebt. Wenn dann der Import nicht klappt weil die SQL Statements nicht richtig/konsistent sind, möchte ich als Modulautor nicht den "Schwarzen Peter" zugeschoben bekommen.

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

JoeALLb

    Zitat von: DeeSPe am 07 Februar 2017, 19:31:34
    • Du könntest mal nachsehen wie DbLog die (neuen) Einträge handhabt! Werden die überhaupt geloggt? Wird dann von DbLog automatisch das state READING ergänzt? Habe solche Fälle nicht um das zu prüfen und bin deshalb auf Feedback angewiesen, könnte natürlich auch mal die Entwickler von DbLog fragen!
    Bei meinen Devices wird in DbLog mit dem reading "state" geloggt.
    Ob da s klappt oder nicht hngt auch vom entsprechenden Modul zusammen,
    ob es splitFN nutzt, oder einen andere Sonderlösung implementiert hat...
    FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
    RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
    Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
    Synology. Ardurino UNO für 1-Wire Tests, FB7270

    DeeSPe

    Zitat von: Amenophis86 am 07 Februar 2017, 18:33:02
    Ich würde gerne auch meine Fenster/Tür Sensoren importieren. Diese schreiben natürlich ins Logile nur open/closed/tilted rein. Gibt es dafür auch eine Möglichkeit?

    Das ist mit dem soeben im ersten Beitrag aktualisierten Modul nun möglich.
    Mögliche Events ohne Reading die als state gewertet werden könnten werden nun beim Analysieren auch aufgelistet.
    Werden diese Events auch importiert oder konvertiert, so werden diese dem Reading state zugeordnet.

    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

    Amenophis86

    Super, kam die Tage leider nicht dazu dein Fragen zu beantworten, aber haben andere ja schon gemacht. Versuche am Wochenende mal zu testen und melde mich dann. Vielen Dank.
    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

    Zitat von: Amenophis86 am 10 Februar 2017, 10:18:33
    Super, kam die Tage leider nicht dazu dein Fragen zu beantworten, aber haben andere ja schon gemacht. Versuche am Wochenende mal zu testen und melde mich dann. Vielen Dank.

    Das wäre klasse wenn Du das testen könntest!
    Ich mache gerade noch ein paar Änderungen in der Bedienung damit diese (m.E.) noch etwas konsistenter wird - am eigentlichen Import/Konvertierung ändere ich aber nichts.

    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 soeben das Modul im ersten Beitrag aktualisiert mit den versprochenen Änderungen bei der Bedienung.
    Mir gefällt das so nun um Einiges besser.
    Was denkt ihr darüber?

    Changelog:

    • "set analyseFileEvents" ist nun zu "get fileEvents" geworden - damit lädt die Seite nicht mehr neu
    • nachfolgende Parameter für "set convert/import" können nun direkt hinter dem jeweiligen set eingegeben werden - dadurch kehrt man auch direkt auf die Details Seite des FileLogConvert Device zurück
    • command-.... Readings abgeschafft, es gibt statt dessen ein neues Reading cmd, welches aber nur noch den Log Datei Namen und den möglichen Regex anzeigt - kann man kopieren, anpassen und direkt hinter dem jeweiligen set Befehl einfügen
    • neues Reading regex, welches den zuletzt benutzten Regex anzeigt (zwecks Wiederverwendung)
    • alle Readings werden nun beim Definieren des Device direkt (leer) angelegt

    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

    Amenophis86

    Änderungen gefallen mir gut. Das analysieren und schreiben der States hat funktioniert. Konnte ohne Probleme in der DB importiert werden. Super. Vielen Dank dafür.
    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

    Zitat von: Amenophis86 am 10 Februar 2017, 23:27:34
    Änderungen gefallen mir gut. Das analysieren und schreiben der States hat funktioniert. Konnte ohne Probleme in der DB importiert werden. Super. Vielen Dank dafür.

    Sehr schön!

    Ich hoffe nun ist alles so wie es sein soll!

    Sobald noch ein paar mehr Tester Erfolg verkünden und sonst keine groben Änderungswünsche mehr aufkommen werde ich das Modul in SVN einchecken.

    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

    Omega

    Ich stelle gerade auf dblog um - da kommt dein Modul wie gerufen. Danke schon mal - das erspart mir viel Sucherei, wie ich die Altdaten sinnvoll importiert bekomme.

    Meine Frage:
    Zitat
    im Attribut logdir kann ein alternativer Ordner für die FileLog Dateien angegeben werden - dieser Ordner muss sich auch unter ".../fhem/" befinden
    Meine alten Logs liegen außerhalb von FHEM (lässt das globale Arribut archivedir  ja auch zu).
    Es wäre schön, wenn ich da nichts ändern müsste, da ich ansonsten meine Backups anpassen müsste, wenn die alten Logs wieder innerhalb des FHEM-Ordners liegen müssen, um sie importieren zu können.

    Ich hoffe, das geht ohne großen Aufwand.
    LG
    Holger

    NUC6i3SYH (FHEM 5.8 in VM)
    Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
    LaCrosseGateway, ESPEasy
    ZWave

    DeeSPe

    Probier mal ob Du den Pfad relativ zum fhem Pfad angeben kannst.
    z.B.:
    attr LogConv logdir ../../home/pi/logs

    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

    Omega

    Meine alten Logs liegen unter /opt/fhem-archivedir/
    Die direkte Zuordnung über
    attr LogConvert logdir /opt/fhem-archivedir/
    hat nicht funktioniert, die indirekte über
    attr LogConvert logdir ../fhem-archivedir/dagegen schon. Prima.
    Werde morgen dann mal erste Tests durchführen.
    Danke
    Holger
    NUC6i3SYH (FHEM 5.8 in VM)
    Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
    LaCrosseGateway, ESPEasy
    ZWave

    Omega

    Nach einem Import habe ich zunächst verzweifelt die importierten Datensätze in der DB gesucht.
    Ein

    select * from history order by TIMESTAMP;

    zeigt mir die importierten Sätze in der Console nicht an.
    Nachdem ich aber ein Plot von diesen Daten erstellt hatte, habe ich sehen können, dass sie zumindest vorhanden sind. Irritierend finde ich das schon.

    Vielleicht noch ein kleiner Hinweis
    a)   Die Funktion import2DbLog hätte ich gerne als default (ist ansonsten fehleranfällig)
    b)   Die set-Anweisung würde ich auch noch beschreiben – ich war mir zunächst nicht sicher, wie das wirklich gemeint ist
    c)     Im 1. Beitrag kann man ein Import-Log von dir sehen. Entweder ist das gut versteckt oder ich habe so ein Log nicht. Fände ich aber gut, so etwas zu haben

    Ansonsten eine tolle Hilfe beim Umstieg auf DbLog.
    Danke dafür.
    Holger
    NUC6i3SYH (FHEM 5.8 in VM)
    Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
    LaCrosseGateway, ESPEasy
    ZWave

    DeeSPe

    Zitat von: Omega am 06 März 2017, 20:56:02
    Nach einem Import habe ich zunächst verzweifelt die importierten Datensätze in der DB gesucht.
    Ein

    select * from history order by TIMESTAMP;

    zeigt mir die importierten Sätze in der Console nicht an.
    Nachdem ich aber ein Plot von diesen Daten erstellt hatte, habe ich sehen können, dass sie zumindest vorhanden sind. Irritierend finde ich das schon.

    Vielleicht noch ein kleiner Hinweis
    a)   Die Funktion import2DbLog hätte ich gerne als default (ist ansonsten fehleranfällig)
    b)   Die set-Anweisung würde ich auch noch beschreiben – ich war mir zunächst nicht sicher, wie das wirklich gemeint ist
    c)     Im 1. Beitrag kann man ein Import-Log von dir sehen. Entweder ist das gut versteckt oder ich habe so ein Log nicht. Fände ich aber gut, so etwas zu haben

    Ansonsten eine tolle Hilfe beim Umstieg auf DbLog.
    Danke dafür.
    Holger

    Hmm, komisch denn der SQL Query macht bei mir was er soll.

    Zu Deinen Hinweisen:

    • a) genau so wie es ist finde ich es optimal, es zwingt einen zum Aufpassen und lieber wird mal auf die Schnelle ein nicht benötigtes CSV File erzeugt als einen ungewollten/fehlerhaften Import in die DB zu starten (meine Ansicht)
    • b) könnte man machen, wird aber denke ich klar wenn man die erste Analyse hat laufen lassen
    • c) das sind einfach die erzeugten Events/Readings aus dem Event-Monitor mit gesetztem Filter auf das FileLogConvert Device

    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

    cmonty14

    Hallo!

    Ich möchte FileLogs importieren, die von HM-ES-PMSw1-Pl (https://wiki.fhem.de/wiki/HM-ES-PMSw1-Pl_Funk-Schaltaktor_1-fach_mit_Leistungsmessung) erstellt wurden.
    Allerding sollen nur bestimmte vorkommende Events konvertiert/importiert werden.

    Frage:
    Wie muss ich vorgehen, um nur bestimmte Event zu konvertieren/importieren?

    Danke.


    cmonty14

    Frage:
    Wo wird das Log für den DbLog Import geschrieben?