93_DbLog - Umstellung Log-Funktion auf non-blocking

Begonnen von DS_Starter, 18 Dezember 2016, 20:03:56

Vorheriges Thema - Nächstes Thema

Pyromane

Mahlzeit Heiko,

Zitat von: DS_Starter am 29 Januar 2017, 12:13:39Das kann ich jetzt auch nicht wirklich beantworten. Hast du die Current-Tabelle mal mit einem externen SQL-Editor geöffnet und geschaut ob und was darin ist ?
Ich habe FHEM heruntergefahren, die DB kopiert und mit einem SQLite Browser geöffnet, die current Tabelle war leer.

Zitat von: DS_Starter am 29 Januar 2017, 12:13:39Versuche auch in den asynchronen Modus zu wechseln. Vielleicht ergeben sich dann Hinweise weshalb die Current leer bleibt.
Im async Modus werden Werte in die current Tabelle geschrieben und ich habe auch ein DropDown/Show Preprocessed input beim SVG erstellen :)


MfG
Pyro

DS_Starter

Prima  :)

Richtig nachvollziehbar ist es für mich zwar nicht. Bei mir (SQLite Version 3.8.7.1) funktioniert das Schreiben in die Current mit beiden Modi problemlos.
SQLite ist offensichtlich immer etwas "speziell".

LG
Heiko
Proxmox+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

ghayne

Zitat von: DS_Starter am 29 Januar 2017, 09:53:50
Hallo zusammen,

anbei die Version 2.11.

Diese Version beinhaltet alle Änderungen bzgl. Issues die seit Version 2.10.4 aufgetreten sind und mit den
Versionen 2.10.6, 2.10.7 bzw. 2.10.8 behoben wurden.
Mit dieser Version ist die Umstellung der Log-Funktion auf non-blocking auch in Bezug der Abgrenzung der Modul-internen Funktionen voneinander abgeschlossen.

Zusätzlich enthält diese Version noch eine Erweiterung des Befehls "set ... reopen". Man kann nun optional eine Zeit in Sekunden
mit angeben. Erst nach Ablauf dieser Zeit wird die Verbindung zur DB nach der Trennung wieder geöffnet.

Auszug aus der Commandref:   
   
Bitte testet diese Version auf euren Systemen. Insbesondere die Erstellung der Drop-Down-Liste bei SVG's mit SQLite hatte in der
Vergangenheit bei dem einen oder anderen für Issues gesorgt.
Auf meinen Systemen mit MySQL/MariaDB und SQLite läuft alles tadellos sowohl synchron/asynchron  mit oder ohne plotfork.

Diese Version möchte ich nach einer gewissen Testphase einchecken.

viele Grüße und einen schönen Sonntag
Heiko

Hi,
laeuft hier seit 1,5 Stunden einwandfrei.

Regards, Garry

ioT4db

Hallo Heiko,

was mir noch aufgefallen ist, dass diese Fehlermeldung kommt, wenn ich nacht das DB-Backup fahre:


2017.01.29 03:04:21 3: DbLog DBLogging: Error DBLog_execmemcache - DBI connect('database=fhem;host=192.168.41.198;port=3306','fhemuser',...) failed: Can't connect to MySQL server on '192.168.41.198' (111) at ./FHEM/93_DbLog.pm line 1158


Ich dachte das wird auch über das timeout-Attribut abgefangen?

VG
Daniel
FHEM auf Synology mittels Docker,  Jeelink-Clone 1x für PCA301 und 1x für Lacrosse, THZ304SOL, Homematic: CUL_HM / M-MOD-RPI-PCB, Pushover, Xiaomi s50

DS_Starter

Hallo Daniel,

ZitatIch dachte das wird auch über das timeout-Attribut abgefangen?

Ja, das ist aber ein anderer Sachverhalt. In deinem Beispiel stellt DbLog fest, dass die DB nicht verfügbar ist und verzweigt erst garnicht in den Blockingcall. Diese Meldung muß natürlich kommen da der Connect ja nicht funktionieren kann (DB ist weg). Mit verbose 2 kannst du es unterdrücken.

Was du mit dem timeout-Attribut meinst ist der Zustand wenn die DB zwar verfügbar ist, aber DbLog die Daten nicht in die DB schreiben kann weil z.B. die Tabelle wegen einer laufenden Reorganisation geblockt ist. Dann sollte man den timeout so hoch stellen, dass das Modul nicht in einen timeout reinläuft.

viele Grüße
Heiko
Proxmox+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

DS_Starter

Hi Garry,

ZitatHi,
laeuft hier seit 1,5 Stunden einwandfrei.

Danke für die Rückmeldung !

Regards,
Heiko
Proxmox+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

pc1246

Von wegen sturmfreie Bude
Mein Nachbar hat das gleich mal ausgenutzt, das unsere beiden besseren Haelften zsammen weg waren. Naja und gestern und heute habe ich doch erstmal was anderes gemacht! Die Woche bin ich in Lyon, wird also auch nichts. Naja mal sehen evtl. naechsten Sonntag.
Danke und Gruss Christoph
HP T610
Onkyo_AVR;Enigma2; SB_Server; SB_Player; HM-USB; PhilipsTV; harmony hub; Jeelink mit PCA301; Somfy; S7-300; LGW; HUE; HM-IP auf Charly; div

JoeALLb

Zitat von: friesenjung am 29 Januar 2017, 14:33:31
was mir noch aufgefallen ist, dass diese Fehlermeldung kommt, wenn ich nacht das DB-Backup fahre:
Wie machst Du denn das Backup? MySQLDUMP, oder was anderes?
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

ioT4db

Zitat von: JoeALLb am 29 Januar 2017, 19:55:58
Wie machst Du denn das Backup? MySQLDUMP, oder was anderes?

Nabend. Das Backup mach ich über die Backupfunktion (Hyperbackup) meiner Synology. Ist für mich praktisch und am einfachsten.

VG
Daniel


Gesendet von iPhone mit Tapatalk
FHEM auf Synology mittels Docker,  Jeelink-Clone 1x für PCA301 und 1x für Lacrosse, THZ304SOL, Homematic: CUL_HM / M-MOD-RPI-PCB, Pushover, Xiaomi s50

JoeALLb

Zitat von: friesenjung am 29 Januar 2017, 20:45:11
Nabend. Das Backup mach ich über die Backupfunktion (Hyperbackup) meiner Synology. Ist für mich praktisch und am einfachsten.
Und wie lange dauert es? du könntest zum Start des backups cacheInterval hochdrehen und danach noch einen commitCache machen.

Vielleicht aber schaffen wirs noch eine non-blocking backupfunktion mit in das modul zu integrieren.... dann müsstest du halt haperbackup umkonfigurieren...
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

Ich bin noch neu im DbLog Thema und habe jetzt nicht alle Seiten dieses Beitrags gelesen.
Ist mit der neuen Version auch ein Import aus FileLog möglich?

Vor dem Problem stehe/stand ich nämlich gerade bei der Umstellung auf DbLog.
Dazu habe ich gestern dieses kleine Modul geschrieben.
Es ermöglicht die Konvertierung von FileLog Dateien in CSV und SQL Dateien, sowie den direkten Import in die DbLog.
Bisher ist das Modul allerdings während der Ausführung dieser Operationen blockierend.

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

Hi Dan,

habe dir gerade in deinem Developer-Thread geantwortet.
Vielelicht können wir beides zusammenlegen und deine Funktion non-blocking hier mit im DbLog realisieren. Das wäre doch was, oder ?

Grüße
Heiko
Proxmox+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 29 Januar 2017, 21:21:41
Hi Dan,

habe dir gerade in deinem Developer-Thread geantwortet.
Vielelicht können wir beides zusammenlegen und deine Funktion non-blocking hier mit im DbLog realisieren. Das wäre doch was, oder ?

Grüße
Heiko

Ich hatte tatsächlich als Erstes über einen Patch nachgedacht der die Importfunktion implementiert.
Hatte dann aber gesehen dass es hier eh gerade um eine neue Version geht und das wäre dann auch mein Angebot gewesen, ob wir das (wenn nicht schon vorhanden) mit integrieren wollen. Zumindest den DbLog Import Teil!

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 29 Januar 2017, 21:16:12
Ist mit der neuen Version auch ein Import aus FileLog möglich?
Nein, ein allgemeiner Import ist im Modul DbRep möglich, aber ich hätte Ideen, wie wir das eventuell nichtblockierend realisieren könnten....

Edit: war wohl zu langsam ;-)
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

DS_Starter

Hi Dan und Joe,

ZitatHatte dann aber gesehen dass es hier eh gerade um eine neue Version geht und das wäre dann auch mein Angebot gewesen, ob wir das (wenn nicht schon vorhanden) mit integrieren wollen. Zumindest den DbLog Import Teil!

Denke das wäre von Vorteil. Wir haben bis jetzt nur die Log-Funktion non-blocking im asynchron-Mode implementiert. Hat sich länger hingezogen als anfangs vermutet. Ich möchte morgen Abend die jetzige letzte Version 2.11 einchecken.
Dann könnten wir uns deiner Funktion zuwenden um die non-blocking hier mit zu integrieren. Das wäre sicher eine Aufwertung für das Modul um Umsteigern den Wechsel zu DbLog zu erleichtern.
Aber für heute ist erstmal Schluß ...

Wünsche euch einen guten Start in die Woche !
Heiko
Proxmox+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