93_DbLog - Umstellung Log-Funktion auf non-blocking

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

Vorheriges Thema - Nächstes Thema

Pyromane

Zitat von: DS_Starter am 06 Januar 2017, 22:43:48Du mußt das Attribut DbLogType explizit auf "Current" bzw. "History/Current" setzen um die Current-Tabelle zu benutzen.

Kaum Umgestellt und schon funktioniert wieder alles :)
Herzlichen Dank für die schnelle Hilfe!

rubbertail

Große Anerkennung für die Arbeit am DBLog! Hier flutschts plötzlich in ungeahnten Geschwindigkeiten... Vielen vielen Dank euch!
Was ich noch nicht ganz sicher rausgelesen habe: Ist das Ding hier schon im normalen Update von Fhem mit drin?
FHEM auf Raspi, CUL433, CUL868, RFXTRX433e, CULCuBE
FRITZ: Fritzbox7590AX, 6xFritzDECT301, 10xFritzDECT200, FritzRepeater 6000
MAX!: Fensterkontakte
netatmo: Wetterstation & Thermostat
Milights, IT, Withings, HUE

Tobias

Zitat von: rubbertail am 07 Januar 2017, 11:21:11Ist das Ding hier schon im normalen Update von Fhem mit drin?
Ja, gestern Mittag eingecheckt

Der Dank geht natürlich an DS_Starter :)
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Loredo

Astrein, flutscht  :D


Wie sieht denn jetzt die Best-Practice/Referenz-Tabellenstruktur aus? In ./contrib/dblog/ wurde bisher ja nichts aktualisiert.
War nicht die Rede davon, dass für die Performance und Zuverlässigkeit z.B. auch noch ein PRIMARY KEY gesetzt werden sollte? Ist der Search_Idx so ausreichend?


Ich hatte beispielsweise TIMESTAMP mandatory definiert.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

betateilchen

#109
Bei mir funktioniert das Logging in die Datenbank seit meinem update heute vormittag gar nicht mehr.

Kann es sein, dass bei der Auswertung der regexp irgendwas geändert wurde?


define dbLog DbLog ./sqldb/dblog.conf (.*actuator.*|.*temp.*|owo.*)
attr dbLog DbLogType History


Die events von owo.* werden geloggt, alle anderen nicht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

DS_Starter

Hallo betateilchen,

die DbLog_Log Funktion verwendet nun deviceEvents wie im Wiki https://wiki.fhem.de/wiki/DevelopmentModuleIntro#X_Notify beschrieben.
Es sollten alle Events von Devices durchkommen die im Internal NOTIFYDEV aufgelistet sind.
Schau mal ...

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

betateilchen

Die Antwort hilft mir nicht weiter.

Offenbar bekommt DbLog die events gemäß der bestehenden regexp Definition nicht mehr mit. Darauf habe ich als "Empfänger" (im Log) doch gar keinen Einfluß.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Wuppi68

icxh hätte noch eine kleine Bitte ...

Kannst Du noch das Statformat unterstützen?

Wäre cool schon in der Übersicht den Status außer "Connected" to kennen - also zb. Beispiel: "Mode State Queue: CacheUsage"

ansonsten:

Super Arbeit - D a n k e
FHEM unter Proxmox als VM

betateilchen

Zitat von: DS_Starter am 07 Januar 2017, 14:29:52
Es sollten alle Events von Devices durchkommen die im Internal NOTIFYDEV aufgelistet sind.
Schau mal ...

Da steht:

NOTIFYDEV .*actuator.*,.*temp.*,owo.*

weil ich von ALLEN Devices, die events loggen will, die actuator oder irgendein temp reading erzeugen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

DS_Starter

Das NOTIFYDEV wird aus dem Regexp aus dem Define abgeleitet.
Was steht denn im Internal NOTIFYDEV bei dir ?  Sollte m.M. nach ".*actuator.*,.*temp.*,owo.*" sein, oder ?
Welche Events von DbLog empfangen und bewertet werden siehst du mit verbose 4 in der Form:


2017.01.07 14:47:50.270 4: DbLog LogDB -> ################################################################
2017.01.07 14:47:50.271 4: DbLog LogDB -> ###              start of new Logcycle                       ###
2017.01.07 14:47:50.271 4: DbLog LogDB -> ################################################################
2017.01.07 14:47:50.271 4: DbLog LogDB -> amount of events received: 5 for device: MySTP_5000
2017.01.07 14:47:50.271 4: DbLog LogDB -> check Device: MySTP_5000 , Event: modulstate: normal
2017.01.07 14:47:50.271 4: DbLog LogDB -> check Device: MySTP_5000 , Event: etotal: 12787.711
2017.01.07 14:47:50.272 4: DbLog LogDB -> added event to memcache - Timestamp: 2017-01-07 14:47:50, Device: MySTP_5000, Type: SMAINVERTER, Event: etotal: 12787.711, Reading: etotal, Value: 12787.711, Unit:
2017.01.07 14:47:50.272 4: DbLog LogDB -> check Device: MySTP_5000 , Event: etoday: 2.68


Der Eintrag " check Device:" erscheint wenn DbLog eine Event empfangen hat und bewertet ob es geloggt werden soll (DbExclude usw.). Im positiven Fall wird mit "added event to memcache" angezeigt dass der Event geloggt werden soll.
Vielleicht kommen wir damit weiter.
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

betateilchen

Zitat von: DS_Starter am 07 Januar 2017, 14:55:34
Das NOTIFYDEV wird aus dem Regexp aus dem Define abgeleitet.
Was steht denn im Internal NOTIFYDEV bei dir ?  Sollte m.M. nach ".*actuator.*,.*temp.*,owo.*" sein, oder ?

genau das steht drin, siehe meinen letzten Beitrag.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: DS_Starter am 07 Januar 2017, 14:55:34
Welche Events von DbLog empfangen und bewertet werden siehst du mit verbose 4 in der Form:

es kommen selbst bei verbose=5 keine events zu actuator und temp bei DbLog an.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

Liefert "list .*actuator.*,.*temp.*,owo.*" das zurueck, was du erwartest?

betateilchen

#118
nö, warum sollte es?

Ihr könnt doch nicht allen Ernstes erwarten, dass seit Neuestem jedes Device einzeln in der Log-Definition aufgeführt sein muss?
Und dass man bei jedem neuen Temperatursensor oder Heizkörperregler die Log-Definitionen ändern muss?

Bei 5 devices mag das ja alles noch gehen, aber bei 300 ist das unzumutbar.

Hey - die bisherige Lösung war genial einfach zu handhaben. Warum musste man eine funktionierende Lösung wieder einmal kaputtmachen?

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

DS_Starter

Also nun habe ich Rudis Hinweis aufgenommen und testweise mein Def so angepasst:


(.*5000.*|Rep.Show.DbSize|Sonnenstrom_Relative|Sonnenstrom|MyWetter|SMA_Energymeter|sysmon|Dum.Energy):.*


Es wird alles geloggt was 5000 enthält.
Außerdem klappt auch ein list mit allen Devices die 5000 enthalten wenn ich den String aus NOTIFYDEV benutze:


list .*5000.*,Rep.Show.DbSize,Sonnenstrom_Relative,Sonnenstrom,MyWetter,SMA_Energymeter,sysmon,Dum.Energy


Ausgegeben wird:


MySTP_5000
N.MySTP_5000.Set.Icon
N.MySTP_5000.getdata
N.STP_5000.getdata
STP_5000
SVG_LogDB_MySTP5000
Rep.Show.DbSize
Sonnenstrom_Relative
Sonnenstrom
MyWetter
SMA_Energymeter
sysmon
Dum.Energy
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