(Gelöst)Log einträge bei Dblogging

Begonnen von zernima, 05 Juli 2019, 08:47:47

Vorheriges Thema - Nächstes Thema

zernima

Hallo,

ich holen mir mit "get DBLogging......." Einträge aus der Datenbank.
Nun wird dabei jedes mal ein Logeintrag geschrieben ins Log geschrieben.

2019.07.05 08:23:44 3: get DBLogging - - 2019-07-04_08:23:00 2019-07-04_08:23:59 KeSolarEdge:AC-Power : 2019-07-04_08:23:45 4934
#KeSolarEdge:AC-Power:::

2019.07.05 08:24:47 3: get DBLogging - - 2019-07-04_08:24:00 2019-07-04_08:24:59 dum_pv_energytoday:state : 2019-07-04_08:24:46 5.39
#dum_pv_energytoday:state:::

2019.07.05 08:24:47 3: get DBLogging - - 2019-07-04_08:24:00 2019-07-04_08:24:59 KeSolarEdge:AC-Power : 2019-07-04_08:24:45 4937
#KeSolarEdge:AC-Power:::

2019.07.05 08:25:50 3: get DBLogging - - 2019-07-04_08:25:00 2019-07-04_08:25:59 dum_pv_energytoday:state : 2019-07-04_08:25:45 5.47
#dum_pv_energytoday:state:::

2019.07.05 08:25:50 3: get DBLogging - - 2019-07-04_08:25:00 2019-07-04_08:25:59 KeSolarEdge:AC-Power : 2019-07-04_08:25:45 4986

#KeSolarEdge:AC-Power:::

Gibt es eine Möglichkeit das zu verhindern?
Verbose hab ich schon beim Notify und beim Dblogging auf 0 gestellt.

Vielen Dank
Gruß Zernima

DS_Starter

Der Eintrag kommt nicht aus dem DbLog-Modul.
Wahrscheinlich wird er dort generiert wo der "get DBLogging......."  aufgerufen wird.

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

zernima

Hallo,
vielen lieben Dank für die Antwort.
Ich rufe das über ein Notify auf. Bei dem Notify hab ich aber auch schon verbose auf 0 gestellt. Da kann es glaub auch nicht herkommen.

DS_Starter

Zeig doch mal bitte den kompletten Aufruf bzw. die Definition des Notify.
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

zernima

KeSolarEdge:Zustand.* {my $zeit24h=strftime "%Y-%m-%d_%H:%M:00", localtime time-1440*60;my $zeit24h1min=strftime "%Y-%m-%d_%H:%M:59", localtime time-1440*60;my $Einergievor24h = fhem("get DBLogging - - $zeit24h $zeit24h1min dum_pv_energytoday:state");my $Powervor24h = fhem("get DBLogging - - $zeit24h $zeit24h1min KeSolarEdge:AC-Power");

if(length($Einergievor24h) != 29){
fhem("setreading Energie_24h state ".(split(" ", $Einergievor24h))[1]);
}

if(length($Powervor24h) != 25){
fhem("setreading Power_24h state ".(split(" ", $Powervor24h))[1]);
}

}


nicht schön aber funktioniert :-)

DS_Starter

Vermutlich kommt der Log-Eintrag doch aus dem Notify. Verbose 0 sollte da helfen und das Problem lösen.

Dann nur noch der Hinweis, dass du eventuell deinen Code etwas vereinfachen kannst mit einem DbRep-Aufruf. Kannst du mal probieren.
Auszug aus der Commandref:

Sobald ein DbRep-Device definiert ist, wird sowohl die Perl Funktion DbReadingsVal als auch das FHEM Kommando dbReadingsVal zur Verfügung gestellt. Mit dieser Funktion läßt sich, ähnlich dem allgemeinen ReadingsVal, der Wert eines Readings aus der Datenbank abrufen. Die Funktionsausführung erfolgt blockierend.

    Die Befehlssyntax für die Perl Funktion ist:

    DbReadingsVal("<name>","<device:reading>","<timestamp>","<default>")

    Beispiele:
    $ret = DbReadingsVal("Rep.LogDB1","MyWetter:temperature","2018-01-13_08:00:00","");

    Die Befehlssyntax als FHEM Kommando ist:

    dbReadingsVal <name> <device:reading> <timestamp> <default>

    Beispiel:
    dbReadingsVal Rep.LogDB1 MyWetter:temperature 2018-01-13_08:00:00 0

    <name>                   : Name des abzufragenden DbRep-Device
    <device:reading>    : Device:Reading dessen Wert geliefert werden soll
    <timestamp>           : Zeitpunkt des zu liefernden Readingwertes (*) im Format "YYYY-MM-DD_hh:mm:ss"
    <default>                : Defaultwert falls kein Readingwert ermittelt werden konnte


(*) Es wird der zeitlich zu <timestamp> passendste Readingwert zurück geliefert, falls kein Wert exakt zu dem angegebenen Zeitpunkt geloggt wurde.

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

zernima

Vielen lieben Dnak für den tollen Tipp das funktioniert echt prima. Muss ich heute mal die Funktion umbauen..Top.

verbose 0 hab ich schon am notify...das bringt nix. :-[

DS_Starter

Bitte  :)

Zitatverbose 0 hab ich schon am notify...das bringt nix. :-[
Hmm, komisch. Kann ich mir momentan nicht erklären an welcher Stelle dieser Eintrag im Log generiert wird.
Im Dblog habe ich auch nochmal das Modul durchsucht und nichts gefunden, zumindest nicht in der aktuellen Version 4.1.1.
Hattest ja auch schon DbLog auf verbose 0 gestellt mit negativem Ergebnis was dazu passt.

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

zernima

Ich hab auch keine Ahnung wo das her kommt. Aber wäre egal wenn ich das neue notify zum laufen bekommen würde...

KeSolarEdge:Zustand.* {my $a = strftime "%Y-%m-%d_%H:%M:00", localtime time-1440*60;
my $b = DbReadingsVal('Rep_LogDB1','dum_pv_energytoday:state','$a','0');
my $c = DbReadingsVal('Rep_LogDB1','KeSolarEdge:AC-Power','$a','0');
fhem('setreading Energie_24h state $b');
fhem('setreading Power_24h state $c');
}


2019.07.06 10:33:46 3: PV_Energie_24h return value: Unknown command {my, try help.
Unknown command my, try help.
Unknown command my, try help.
Unknown command fhem('setreading, try help.
Unknown command fhem('setreading, try help.
Unknown command }


Irgendwie will das nicht ..keine Ahnung wieso.
Sieht da jemnd einen Fehler?

DS_Starter

Nimm mal mein Beispiel als Vorlage. Habe ich getestet und funktioniert.


SMA_Energymeter:Einspeisung_Wirkleistung.* {my $a = strftime "%Y-%m-%d %H:%M:00", localtime time-1440*60;
my $b = DbReadingsVal('Rep.LogDB','SMA_Energymeter:Einspeisung_Wirkleistung',$a,'0');
fhem("setreading testdum Energy $b");
}


Achte auf die Leerzeichen im strftime und die Hochkommasetzung.

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

zernima

Sooooo
Vielen lieben Dank....Nachdem ich das Notify gelöscht und neu angelegt hab ist funktioniert nun alles  .... Top... So muss sein. Ohne Logeinträge.