Hallo,
ich wollte aus Performance-Gründen von FileLog auf DbLog umsteigen. Der Umstieg erweist sich aber leider als sehr steinig. Seit letzter Woche habe ich nun mein dblog device laufen, welches aber quasi täglich "hängen" bleibt. Bisher meistes aufgrund eines blocking Themas sodass forever gecacht wird. Da hat bisher immer nur ein "shutdown restart" geholfen.
Heute habe ich dann "wieder ein solches Ereignis im state stehen, weshalb kein weiteres Logging im DbLog device passiert:
DBD::Pg::st execute failed: ERROR: unterminated quoted string at or near "'P_AC: 0"
ZEILE 1: ... 10:02:11','PV_GW_Inverter_HM_1500','MQTT2_DEVICE','P_AC: 0
Was kann ich tun, dass solche Ereignisse, die für das FileLog kein Problem darstellen nicht den Dienst vom DbLog device einstellen?
Hier noch das Listing des devices und ich nutze PostgreSQL v9.6 mit Debian Stretch und aktuellsten FHEM:
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 4146
NTFY_ORDER 50-logdb
PID 648
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: ... 10:02:11','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=49164
dbuser postgres
eventCount 1788
HELPER:
COLSET 1
DEVICECOL 64
EVENTCOL 512
LASTLIMITRUNTIME 1669038791.07134
OLDSTATE DBD::Pg::st execute failed: ERROR: unterminated quoted string at or near "'P_AC: 0"
ZEILE 1: ... 10:02:11','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-21 14:53:09 CacheOverflowLastNum 16234
2022-11-21 14:51:32 CacheOverflowLastState exceeded
2022-11-21 14:54:14 CacheUsage 53
2022-11-21 14:53:10 NextSync 2022-11-21 14:55:10 or if CacheUsage 2000 reached
2022-11-21 14:53:09 background_processing_time 4.0093
2022-11-20 17:52:55 lastCachefile
2022-11-21 14:53:09 sql_processing_time 2.2978
2022-11-21 14:53:10 state DBD::Pg::st execute failed: ERROR: unterminated quoted string at or near "'P_AC: 0"
ZEILE 1: ... 10:02:11','PV_GW_Inverter_HM_1500','MQTT2_DEVICE','P_AC: 0
^ at ./FHEM/93_DbLog.pm line 2693.
Attributes:
DbLogSelectionMode Exclude/Include
DbLogType History
addStateEvent 0
asyncMode 1
bulkInsert 1
cacheEvents 2
cacheLimit 2000
dbSchema fhem
disable 0
room DbLog
showproctime 1
syncInterval 120
Gruß
Mike
Das sieht mir nicht nach einem wirklichen DbLog Problem aus, sondern danach, dass der Wert des readings einfach nicht stimmt. Dieser komische viereckige "Kasten" am Ende sieht danach aus, dass ein unicode Zeichen kommt, das nicht korrekt dargestellt werden kann und weswegen dann das abschließende Hochkomma fehlt.
Naja, im logfile steht für diesen Zeitpunkt Folgendes:
2022-11-21_10:02:11 PV_GW_Inverter_HM_1500 P_AC: 0HM
FileLog ist davon halt unbeeindruckt und log alle Events weiter.
DbLog wiederum hat seit 10:02 keinerlei Einträge in die Datenbank gebracht.
Das sehe ich ganz klar als DbLog Fehler. Oder gibt es hier einen Schalter, der so einen unerwarteten Eintrag ignoriert und weiter logt?
Zitat von: nexulm am 21 November 2022, 16:47:49
Das sehe ich ganz klar als DbLog Fehler.
Warum fragst Du dann nicht im richtigen Unterforum zum Thema DbLog anstatt in den Anfängerfragen?
Sorry, aber mir ist nicht klar in welches Unterforum die Frage gehört und wie ich diese nun dorthin verschiebe!?!
Ein spezifisches DbLog-Forum hatte ich vorhin nicht gesehen.
In der FHEM-Commandozeile:
help dblog
Ergibt in der ersten Zeile:
ZitatModule: 93_DbLog.pm Maintainer: DS_Starter Forum: Automatisierung
also im Forumteil Automatisierung
anstatt help kannst Du auch die Modulspezifische Hilfe im Device anklicke, dort steht das gleiche (Da es das gleiche ist)
https://forum.fhem.de/index.php/topic,13092.0.html
Der Beitrag ist nicht ohne Grund oben angepinnt...
Hast ja recht, anstatt es zu schreiben hätte ich auch verweisen können ... aber der Inhalt ist doch praktisch gleich ;)
Schon klar, aber diese immer zu findende "Ausrede" ärgert mich jedesmal..
ZitatSorry, aber mir ist nicht klar in welches Unterforum die Frage gehört
OT:
Mich ja auch, aber man muß den TE dann darauf Hinweisen, wo er es findet. Sonst wird es nicht gelernt, dort mal reinzuschauen ... insofern ist die Verlinkung von Dir besser. Nur ohne ... wird es niemand lernen ... leider.
Nur .. nerven wir lieber den TE nicht weiter .. oder?
Zitat von: Wernieman am 21 November 2022, 18:03:43
OT:
Mich ja auch, aber man muß den TE dann darauf Hinweisen, wo er es findet.
Naja, das Unterforum "Anfängerfragen" wird gefunden - aber die darin enthaltenen oben angepinnten Beiträge nicht?
Irgendwie komisch...
Danke für die Hinweise, werde dann mal den Beitrag nochmal im entsprechenden Unterforum posten.
Wieder was dazu gelernt. So ist das mit den Gelegenheits-Usern. :-)