[gelöst] dblog Instabilitäten und Hänger

Begonnen von nexulm, 24 November 2022, 16:04:15

Vorheriges Thema - Nächstes Thema

nexulm

Hallo,

auch wenn der Wechsel vom betagten Beagle Bone Black zum Raspi4 in den letzten Tagen einen enormen Performance-Sprung hinsichtlich FileLog und Plots gebracht hat. Das ursprüngliche Problem mit der Umstellung FileLog auf DbLog besteht weiterhin. :-(

Hardware: Raspi 4
OS: Debian Bulleye (11.5)
Datenbank: PostgreSQL
FHEM: letztes Update

Fehlermeldung:

DBD::Pg::st execute failed: ERROR: unterminated quoted string at or near "'I_AC: 1.0" ZEILE 1: ...10:46:46','PV_GW_Inverter_HM_1500','MQTT2_DEVICE','I_AC: 1.0... ^ at ./FHEM/93_DbLog.pm line 2693.


Jedesmal mind. 1x pro Tag gibt es ein solches Ereignis via MQTT was in die Datenbank geloggt werden soll. FileLog moppert nicht und loggt brav weiter. DbLog bringt das Ereignis aber durcheinander und nach dem Error bleibt das Logging stehen und ein reread/reopen des DbLog devices ist mindestens erforderlich.

Gibt es bereits eine Möglichkeit oder ein Attribut um diesen fehlerhaften Zeichensatz zu ignorieren?
Was kann ich machen?

List des DbLog Device:

Internals:
   COLUMNS    field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
   CONFIGURATION ./db.conf
   DEF        ./db.conf .*:(temperature|dewpoint|humidity|measured-temp|desired-temp|ValvePosition|CONTROL_MODE|smoke.*|level|.*battery|sabotageError|energy.*|power.*|kWh|stat.*|userState|ENERGY_Power|ENERGY_Total|deviceState|presence|recentAlarm|download|upload|ping|.*P_DC|.*U_DC|.*I_DC|.*Q_AC|.*Frequenz|.*Temperature|.*Efficiency|P_DC|Ch1_Irradiation|.*Yield_Day|.*Yield_Total|.*P_AC|.*U_AC|.*I_AC|ENERGY_Current|ENERGY_ApparentPower|ENERGY_Total|ENERGY_Voltage|ENERGY_ReactivePower|ENERGY_Today|ENERGY_Factor|ENERGY_Yesterday|myState|DIRECTION|Lichtintensitaet|Wasserstand|FREQUENCY|CURRENT|VOLTAGE|POWER|ENERGY_COUNTER|control).*
   FUUID      6336164b-f33f-f7ea-3c59-3789a2ae4c6412c4
   FVERSION   93_DbLog.pm:v4.13.2-s26672/2022-11-07
   MODE       asynchronous
   MODEL      POSTGRESQL
   NAME       logdb
   NR         4140
   NTFY_ORDER 50-logdb
   PID        673
   REGEXP     .*:(temperature|dewpoint|humidity|measured-temp|desired-temp|ValvePosition|CONTROL_MODE|smoke.*|level|.*battery|sabotageError|energy.*|power.*|kWh|stat.*|userState|ENERGY_Power|ENERGY_Total|deviceState|presence|recentAlarm|download|upload|ping|.*P_DC|.*U_DC|.*I_DC|.*Q_AC|.*Frequenz|.*Temperature|.*Efficiency|P_DC|Ch1_Irradiation|.*Yield_Day|.*Yield_Total|.*P_AC|.*U_AC|.*I_AC|ENERGY_Current|ENERGY_ApparentPower|ENERGY_Total|ENERGY_Voltage|ENERGY_ReactivePower|ENERGY_Today|ENERGY_Factor|ENERGY_Yesterday|myState|DIRECTION|Lichtintensitaet|Wasserstand|FREQUENCY|CURRENT|VOLTAGE|POWER|ENERGY_COUNTER|control).*
   STATE      DBD::Pg::st execute failed: ERROR:  unterminated quoted string at or near "'P_AC: 0"
ZEILE 1: ... 15:56:47','PV_GW_Inverter_HM_1500','MQTT2_DEVICE','P_AC: 0
                                                               ^ at ./FHEM/93_DbLog.pm line 2693.

   TYPE       DbLog
   dbconn     Pg:database=postgres;host=192.168.99.100;port=49157
   dbuser     postgres
   eventCount 1851
   HELPER:
     COLSET     1
     DEVICECOL  64
     EVENTCOL   512
     LASTLIMITRUNTIME 1669302106.71547
     OLDSTATE   DBD::Pg::st execute failed: ERROR:  unterminated quoted string at or near "'P_AC: 0"
ZEILE 1: ... 15:56:47','PV_GW_Inverter_HM_1500','MQTT2_DEVICE','P_AC: 0
                                                               ^ at ./FHEM/93_DbLog.pm line 2693.

     PACKAGE    main
     READINGCOL 64
     TC         fhem.current
     TH         fhem.history
     TYPECOL    64
     UNITCOL    32
     VALUECOL   128
     VERSION    4.13.2
   READINGS:
     2022-11-24 16:01:46   CacheOverflowLastNum 21866
     2022-11-24 10:39:16   CacheOverflowLastState exceeded
     2022-11-24 16:02:41   CacheUsage      23931
     2022-11-24 16:01:46   NextSync        2022-11-24 16:03:46 or if CacheUsage 2000 reached
     2022-11-24 16:02:13   background_processing_time 11.5318
     2022-11-20 17:52:55   lastCachefile   
     2022-11-24 16:02:13   sql_processing_time 11.1193
     2022-11-24 16:02:13   state           DBD::Pg::st execute failed: ERROR:  unterminated quoted string at or near "'P_AC: 0"
ZEILE 1: ... 15:56:47','PV_GW_Inverter_HM_1500','MQTT2_DEVICE','P_AC: 0
                                                               ^ at ./FHEM/93_DbLog.pm line 2693.

Attributes:
   DbLogSelectionMode Exclude/Include
   DbLogType  Current/History
   addStateEvent 0
   asyncMode  1
   bulkInsert 1
   cacheEvents 2
   cacheLimit 2000
   dbSchema   fhem
   disable    0
   room       DbLog
   showproctime 1
   syncInterval 120


Danke für eure Hilfe(n)!
BeagleBone Black (Debian), FHEM SVN
HmLAN, 12x HM-LC-Bl1PBU-FM, 7xCC-RT-DN, >10x HM-SEC-SC-2, 3x HM-LC-SW1-FM, 1x HM-SEC-SD, 2x MK1010W, DM800, Yamaha RX-V771

DS_Starter

Hast du das Attr useCharfilter schon probiert ?

Mich würde interessieren was Filelog an Stelle des hier sichtbaren grauen Kastens ins Logfile schreibt.?
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

Frank_Huber

schau Dir mal das Attribut DbLogValueFn an. damit könntest Du es versuchen zu ignorieren.

Hier z.B. wie ich die 85°C Falschwerte von DS18B20 filtere:
attr Aussen_Temp DbLogValueFn {if ($READING eq "temperature" && $VALUE > 83){$IGNORE=1}}

Es bleibt aber dabei dass das eigentlich kein dblog Problem ist. ;)

betateilchen

Zitat von: DS_Starter am 24 November 2022, 16:14:35
Hast du das Attr useCharfilter schon probiert ?

Mich würde interessieren was Filelog an Stelle des hier sichtbaren grauen Kastens ins Logfile schreibt.?

es gibt einen Vorgänger-Thread, in dem diese Frage beantwortet ist:

https://forum.fhem.de/index.php/topic,130435.msg1246846.html#msg1246846

2022-11-21_10:02:11 PV_GW_Inverter_HM_1500 P_AC: 0HM
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

nexulm

#4
Zitat von: DS_Starter am 24 November 2022, 16:14:35
Hast du das Attr useCharfilter schon probiert ?
Bisher nicht, habe den Wert nun mal auf 1 gesetzt.

Zitat von: DS_Starter am 24 November 2022, 16:14:35
Mich würde interessieren was Filelog an Stelle des hier sichtbaren grauen Kastens ins Logfile schreibt.?
FileLog Zeile:

2022-11-24_10:46:46 PV_GW_Inverter_HM_1500 I_AC: 1.0
BeagleBone Black (Debian), FHEM SVN
HmLAN, 12x HM-LC-Bl1PBU-FM, 7xCC-RT-DN, >10x HM-SEC-SC-2, 3x HM-LC-SW1-FM, 1x HM-SEC-SD, 2x MK1010W, DM800, Yamaha RX-V771

nexulm

Zur Info:
Fehler lag wohl an einem Bug in der verwendeten AhoyDTU Firmware.
https://github.com/lumapu/ahoy
---
Nach Update auf den letzten Stand (>= 0.5.41) konnte das Problem nicht mehr reproduziert werden. Daher habe ich den Beitrag auf [gelöst] gesetzt.
BeagleBone Black (Debian), FHEM SVN
HmLAN, 12x HM-LC-Bl1PBU-FM, 7xCC-RT-DN, >10x HM-SEC-SC-2, 3x HM-LC-SW1-FM, 1x HM-SEC-SD, 2x MK1010W, DM800, Yamaha RX-V771