93_DbLog - Überlegungen zur Optimierung (RPI und andere Systeme)

Begonnen von JoeALLb, 27 Januar 2017, 22:16:19

Vorheriges Thema - Nächstes Thema

Virsacer

Danke, hatte jetzt keine Warnungen mehr, aber im Plot Editor stet z.B. "VarTemperatureMin: : : " und wenn ich das so mit den Leerzeichen zwischen den Doppelpunkten speichere, funktioniert der Graph nicht mehr...

"2017.08.11 08:38:28 3: SVG_Thermometer: space is not allowed in DbLog definition: VarTemperatureMin: : : "

Sollte da auch nicht nur maximal ein Doppelpunkt drin sein?

DS_Starter

Manchmal sieht man die einfachste Lösung nicht .... habe die Version in #434  nochmal überarbeitet und ich denke dass wir das Problem nun völlig ohne unbeabsichtigte Nebenwirkungen erledigen konnten.
Test mal bitte ...

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

Virsacer

Im Plot Editor hängt er zwar immernoch "::" bzw. ":::" an, was zwar unnötig ist, aber wenigstens nicht zu Fehlern führt...

Sonst scheint es ok zu sein 8)

DS_Starter

ZitatIm Plot Editor hängt er zwar immernoch "::" bzw. ":::" an, was zwar unnötig ist,....

Das kenne ich nicht anders.

Schön dass es nun klappt !
Ich möchte noch weitere Mitstreiter ermutigen die Version 2.22.3 aus dem Beitrag #434 zu testen damit ich diese V guten Gewissens mal einchecken kann.

VG
Heiko
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

Omega

Hallo Heiko,

eine Rückmeldung zu v2.22.3.

Ich bin endlich dazu gekommen, meine ganzen Filelog-Plots auf DbLog umzustellen (knapp 50). Dabei hatte ich schon die v2.22.3 im Einsatz.
Das einzige, was mir jetzt aufgefallen ist, dass bei einem Zwave-Device der Luminance-Wert "2 %" in der DB nicht auf Wert "2" und Unit "%" aufteilt wird und daher PERL WARNINGs ausgegeben werden. Auch bei einigen Batteriewerten mit %-Angaben erfolgt keine Trennung in Value und Unit.

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

DS_Starter

Hallo Holger,

danke für die Info.
Bezüglich der Trennung Value/Unit gibt es in DbLog eine, sagen wir nicht umfassende, Behandlung der Devices. Unser Ziel ist es eigentlich, dass diese Splittingfunktion in dem Quelldevice (Modul) vorgenommen wird und nicht in DbLog selbst. Ich kann schauen dass ich das Splitting noch aufbohre, aber
zielführender und exakter wäre es wenn der Modulmaintainer die Funktion "DbLog_splitFn" einbauen würde. Vielleicht ihn mal darauf schubsen.
Infos dazu hier -> https://wiki.fhem.de/wiki/DevelopmentModuleIntro#X_DbLog_split.

LG
Heiko

   
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

Omega

#441
Hallo Heiko,

ich habe das Problem im ZWave-Bereich gemeldet. Mal sehen, die dort die Sicht der Dinge ist.

LG
Holger

Nachtrag:
Bzgl. DbLog_splitFn habe ich eine Absage bekommen.
Für mein aktuelles Problem habe ich jetzt für diese Situation eine Lösung für mich gefunden: im SVG nach den ::: noch chop($val) anfügen. Das entfernt das letzte Zeichen und es gibt keine Warnings mehr im Log.
Was ich nicht hinbekommen habe: ein RegEx zu definieren, dass im Prinzip das gleiche macht. Könnte man vielleicht gebrauchen, wenn die (nicht aufgetrennte) Unit mal länger als ein Zeichen ist.
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

DS_Starter

ZitatBzgl. DbLog_splitFn habe ich eine Absage bekommen.
Ja, habe gelesen was Rudi geantwortet hat.

ZitatWas ich nicht hinbekommen habe: ein RegEx zu definieren, dass im Prinzip das gleiche macht. Könnte man vielleicht gebrauchen, wenn die (nicht aufgetrennte) Unit mal länger als ein Zeichen ist.

Wenn nochmal ein konkreter Anwendungsfall für ein notwendiges Splitting vorliegt, könnte ich es noch im DbLog erweitern. Das sollte/ kann nur eine Notlösung sein.

Die V2.22.3 habe ich vorhin eingecheckt.

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

Omega

#443
Mit Perl stehe ich noch auf dem Kriegsfuß und bitte daher um Unterstützung.
Ich habe einige ZWave-Sensoren, bei denen DbLog im $VALUE auch die Unit (hier: %) speichert.
Die Idee ist jetzt, mit valueFn die Daten anzupassen.

attr myFHEMdb_LT valueFn {if ($DEVICE eq "ZW_.*"  && $VALUE  <hier verlassen sie mich>){chop($VALUE);$UNIT="%";}}


Meine Idee: prüfen, ob letztes Zeiches des $VALUE ein ,,%"-Zeichen enthält. Falls ja: $VALUE um das %-Zeichen kürzen und das $UNIT-Feld mit % befüllen.

LG
Holger


Nachtrag:

Ich habe es jetzt so
{if ($DEVICE eq "ZW_.*" && $READING eq ("battery"|"luminance") && $VALUE =~ m/%$/){chop($VALUE);$UNIT="%";}}
versucht. Funktioniert aber leider nicht. Wo ist mein Denkfehler?
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

DS_Starter

Versuche es mal so (ungetestet):

attr myFHEMdb_LT valueFn {if ($DEVICE =~ m/ZW_.*/  && $VALUE  =~ m/.*%$/) {$VALUE =~ tr/%//d; $UNIT="%";}} 

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

Omega

Ja, funktioniert so. Danke!
Verstehe allerdings nicht, warum meine Variante nicht funktioniert hat.

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

DS_Starter

z.B.

$DEVICE eq "ZW_.*"

wird nicht klappen denn "ZW_.*" soll ja eigentlich ein regulärer Ausdruck sein. So vergleichst du tatsächlich auf ein Device welches genau "ZW_.*" heißt.
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

DeeSPe

Zitat von: DS_Starter am 18 August 2017, 20:19:25
Versuche es mal so (ungetestet):

attr myFHEMdb_LT valueFn {if ($DEVICE =~ m/ZW_.*/  && $VALUE  =~ m/.*%$/) {$VALUE =~ tr/%//d; $UNIT="%";}} 

LG
Heiko

Evtl. hilft es so weiter:
attr myFHEMdb_LT valueFn {if($VALUE=~/\s%$/){$VALUE=~s/\s%$//;$UNIT="%";}}

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, hast du mich jetzt gefragt, weil du mich zitiert hast ?  ;)
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

DeeSPe

Zitat von: DS_Starter am 18 August 2017, 22:15:15
Hi Dan, hast du mich jetzt gefragt, weil du mich zitiert hast ?  ;)

Nö, hab nur versucht eine mögliche bessere Lösung aufzuzeigen.
Probiere diese nämlich auch gerade, da ich selbiges Verhalten meiner ZWave Sensoren in der DB festgestellt habe.

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