Modul 93_DbRep - Reporting und Management von Datenbankinhalten (DbLog)

Begonnen von DS_Starter, 19 Mai 2016, 22:52:13

Vorheriges Thema - Nächstes Thema

DS_Starter

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

der-Lolo

Jepp - Size ist der letzte in der Kette.
Keine Meldungen von den vorherigen DbReps - es gab auch nicht viel zu tun für die DbReps da ich ein paar minuten vorher auch schon ausgeführt hatte.

DS_Starter

Prima. Ich checke die Version ein. Ist dann morgen früh im Update drin.
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

betateilchen

Was ist eigentlich die Idee hinter dem Attribut readingNameMap?

Die kurze Beschreibung "A part of the created reading name will be replaced by the specified string" erschließt sich mir noch nicht wirklich.
Vor allem nicht, welcher Teil da warum ersetzt wird.

Aus 2023-01-24_19-18-00__<device>__<reading>__MAX__no_aggregation
wird 2023-01-24_19-21-00__bla__no_aggregation

wenn ich das Attribut auf "bla" setze und set ... maxValue display ausführe.

Kann ich den readingName komplett selbstbestimmen?
Oder welche eine einfache Möglichkeit gibt es, den Wert direkt (ohne Umweg über ein reading) einer Variablen zuzuweisen?
Irgendwie vermisse ich dafür ein "set ... maxValue raw"  :)

Wobei ich ehrlich gesagt nicht verstehe, warum das überhaupt mit "set" gemacht wird anstatt mit "get".
Aber das lasse ich mal als "künstlerische Freiheit des Entwicklers" durchgehen.
-----------------------
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

#1879
Zitat
Was ist eigentlich die Idee hinter dem Attribut readingNameMap?
Das readingNameMap soll dem User die Möglichkeit geben die entstehen Readingnamen bei Bedarf zu vereinheitlichen und ihnen einen sprechenden Namen bezüglich ihres Inhaltes zu geben.

Zum Beispiel:


READINGS:
     2023-01-24 20:20:22   2023-01-01_15-52-49__Tageserzeugung_kWh__2023-01-01 4.5430
     2023-01-24 20:20:22   2023-01-02_15-52-19__Tageserzeugung_kWh__2023-01-02 5.9120
     2023-01-24 20:20:22   2023-01-03_16-13-32__Tageserzeugung_kWh__2023-01-03 17.0710
     2023-01-24 20:20:22   2023-01-04_15-44-28__Tageserzeugung_kWh__2023-01-04 0.8900
     2023-01-24 20:20:22   2023-01-05_15-54-51__Tageserzeugung_kWh__2023-01-05 4.8030
     2023-01-24 20:20:22   2023-01-06_16-09-47__Tageserzeugung_kWh__2023-01-06 4.0190
     2023-01-24 20:20:22   2023-01-07_15-43-26__Tageserzeugung_kWh__2023-01-07 3.9460
     2023-01-24 20:20:22   2023-01-08_16-13-42__Tageserzeugung_kWh__2023-01-08 1.5690
     2023-01-24 20:20:22   2023-01-09_16-53-22__Tageserzeugung_kWh__2023-01-09 5.4100
     2023-01-24 20:20:22   2023-01-10_16-28-00__Tageserzeugung_kWh__2023-01-10 2.4710
     2023-01-24 20:20:22   2023-01-11_15-45-08__Tageserzeugung_kWh__2023-01-11 1.1600
     2023-01-24 20:20:22   2023-01-12_15-43-45__Tageserzeugung_kWh__2023-01-12 1.5890
     2023-01-24 20:20:22   2023-01-13_16-21-24__Tageserzeugung_kWh__2023-01-13 11.4810
     2023-01-24 20:20:22   2023-01-14_15-57-56__Tageserzeugung_kWh__2023-01-14 6.0470
     2023-01-24 20:20:22   2023-01-15_16-29-23__Tageserzeugung_kWh__2023-01-15 4.2050
     2023-01-24 20:20:22   2023-01-16_16-01-51__Tageserzeugung_kWh__2023-01-16 12.9730
     2023-01-24 20:20:22   2023-01-17_16-26-21__Tageserzeugung_kWh__2023-01-17 6.5970
     2023-01-24 20:20:22   2023-01-18_16-16-11__Tageserzeugung_kWh__2023-01-18 1.5610
     2023-01-24 20:20:22   2023-01-19_15-46-29__Tageserzeugung_kWh__2023-01-19 17.2280
     2023-01-24 20:20:22   2023-01-20_16-33-34__Tageserzeugung_kWh__2023-01-20 12.9760
     2023-01-24 20:20:22   2023-01-21_16-07-10__Tageserzeugung_kWh__2023-01-21 2.1700
     2023-01-24 20:20:22   2023-01-22_16-52-37__Tageserzeugung_kWh__2023-01-22 0.7180
     2023-01-24 20:20:22   2023-01-23_16-12-44__Tageserzeugung_kWh__2023-01-23 1.1810
     2023-01-24 20:20:22   2023-01-24_16-00-02__Tageserzeugung_kWh__2023-01-24 0.9950
     2023-01-24 20:20:22   background_processing_time 0.2217
     2023-01-24 20:20:22   sql_processing_time 0.1152
     2023-01-24 20:20:22   state           done


Es wird nur ein Teil des Namens ersetzt damit der zeitliche Kontext erhalten bleibt und sich die Readings nicht "überschreiben", d.h. wenn der Namen komplett gleich wäre, würde im obigen Beispiel nur ein einziges Reading im Frontend sichtbar sein.
Die Beschreibung werde ich mal etwas ausbauen damit es griffiger wird.

Zitat
Kann ich den readingName komplett selbstbestimmen?
Über readingNameMap wegen den oben dargestellten Zusammenhängen nicht, aber über das Attr userExitFn  kannst du dir die entstandenen Readings nach Belieben auswerten, neue Readings erstellen und im Prinzip auch auch die vom Device automatisch erstellten Readings löschen.

Hier ein Beispiel.


{
  if ($READING =~ /1_Brenner_Energy_Summe__DIFF/ && $VALUE ne '-') {
    my $date = (split '__', $READING)[0];
    my $cdd  = "VaillantControlDummy";                             # Steuerungsdummy Device
    my $mpk  = AttrVal($cdd, 'Multiplikator',    '0');
    my $zz   = AttrVal($cdd, 'Zustandszahl',     '0');
    my $bw   = AttrVal($cdd, 'Brennwert_kWh/m3', '0');
    my $tarf = AttrVal($cdd, 'Tarif', '0');                        # Kosten €/kWh           
    my $m3   = sprintf "%.3f", $VALUE/10000 * $mpk;                # verbrauchte m3
    my $kwh  = sprintf "%.3f", $m3 * $zz * $bw;                    # Umrechnung m3 -> kWh
    my $cost = sprintf "%.2f", $kwh * $tarf;
   
    my $hash = $defs{$NAME};
   
    readingsBulkUpdate ($hash, 'gas_consumption_m3',   $m3);
    readingsBulkUpdate ($hash, 'gas_consumption_kwh', $kwh);
    readingsBulkUpdate ($hash, 'gas_costs_euro',     $cost);
  }   
}



ZitatOder welche eine einfache Möglichkeit gibt es, den Wert direkt (ohne Umweg über ein reading) einer Variablen zuzuweisen?
Irgendwie vermisse ich dafür ein "set ... maxValue raw"  :)

Die ganzen "set" führen die Funktionen non-blocking, also asynchron aus. Deswegen klappt die direkte Zuweisung in eine Var nicht weil die FHEM-Schleife ja nicht wartet ... ;).

Momentan gibt es das blockierende "get ... sqlCmdBlocking" um das Ergebnis eines SQL's einer Variablen oder Array (man kann mehrzeilige Ergebnisse verarbeiten) zuzuweisen.

Es gibt auch noch ein bereitgestelltes FHEM Kommando bzw. eine Perl Funktion .... (Auszug aus Kommandref):


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 mit einem Standardtimeout von 10 Sekunden um eine dauerhafte Blockierung von FHEM zu verhindern. Der Timeout ist mit dem Attribut timeout anpassbar.

    Die Befehlssyntax für die Perl Funktion ist:

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

    Beispiel:

      $ret = DbReadingsVal("Rep.LogDB1","MyWetter:temperature","2018-01-13_08:00:00","");
      attr <name> userReadings oldtemp {DbReadingsVal("Rep.LogDB1","MyWetter:temperature","2018-04-13_08:00:00","")}
      attr <name> userReadings todayPowerIn
        {
           my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime(gettimeofday());
           $month++;
           $year+=1900;
           my $today = sprintf('%04d-%02d-%02d', $year,$month,$mday);
           DbReadingsVal("Rep.LogDB1","SMA_Energymeter:Bezug_Wirkleistung_Zaehler",$today."_00:00:00",0)
        }
     

    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.


Die get-Kommandos habe ich dem Abruf von internen Datenbankinformationen zugeordnet bzw. stelle dem User bei Bedarf blockierende Funktionen im Get bereit.
Also wenn es Bedarf an einem "get ... maxValue" welches blockierend arbeitet um die Ausgabe direkt einer Variable zuordnen zu können, kann ich die Getter gerne erweitern.  :)
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

betateilchen

Zitat von: DS_Starter am 24 Januar 2023, 20:56:56
Die Beschreibung werde ich mal etwas ausbauen damit es griffiger wird.
Über readingNameMap wegen den oben dargestellten Zusammenhängen nicht,

Schade, meine Hoffnung war, dass ich dort einfach eine regex angeben könnte und damit die komplette Kontrolle über den Namen habe. Auch damit könnte ich den zeitlichen Kontext beibehalten...

Alles andere, was Du beschrieben hast, ist nett, aber totaler Overkill für das, was ich eigentlich haben möchten: den Maximalwert eines bestimmten readings in eine Variable schreiben. Es ist eigentlich alles dafür da - nur ein einfacher Rückgabeweg für das Ergebnis existiert nicht.

Alternative Idee:

In DbLog.pm gibt es ja "get ... ReadingsVal ...".
Ein Blick in den Code zeigt mir, dass man da vermutlich ohne großen Aufwand auch "get ... ReadingsMaxVal ..." einbauen könnte  8)
-----------------------
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

Zitat
Schade, meine Hoffnung war, dass ich dort einfach eine regex angeben könnte und damit die komplette Kontrolle über den Namen habe. Auch damit könnte ich den zeitlichen Kontext beibehalten...
Du kannst das, das weiß ich.  :)
Bisher hatte ich es vermieden dem User die volle Kontrolle darüber zu geben.
Aber inzwischen ist schon viel Know How im Umgang mit dem Modul vorhanden, dass ich es mir vllt. keinen Stress macht die Möglichkeiten zu erweitern, mal schauen.

Zitat
In DbLog.pm gibt es ja "get ... ReadingsVal ...".
Ein Blick in den Code zeigt mir, dass man da vermutlich ohne großen Aufwand auch "get ... ReadingsMaxVal ..." einbauen könnte  8)
Ja, kommt auf die Liste.  ;)
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

DS_Starter

Zitat
In DbLog.pm gibt es ja "get ... ReadingsVal ...".
Ein Blick in den Code zeigt mir, dass man da vermutlich ohne großen Aufwand auch "get ... ReadingsMaxVal ..." einbauen könnte  8)

Schau mal hier: https://forum.fhem.de/index.php/topic,130588.msg1260124.html#msg1260124
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

300P

Hallo Heiko,

mir ist (leider) erst jetzt aufgefallen das ich immer wieder Fehlermeldungen im Log vom DbRep erhalte.
Leider hab ich längere Zeit dort nicht genau genug nachgesehen.....


2023.02.01 17:55:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 17:55:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:00:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:00:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:05:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:05:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:10:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:10:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:15:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:15:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:20:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:20:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:25:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:25:37 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:30:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:30:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:35:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:35:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:40:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:40:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:45:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:45:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:50:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:50:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:55:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 18:55:37 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 19:00:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 19:00:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 19:05:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 19:05:37 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 19:10:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 19:10:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 19:15:19 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.
2023.02.01 19:15:38 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/93_DbRep.pm line 4525.



Ich habe / nutze die FVERSION : 93_DbRep.pm:v8.51.3-s27102/2023-01-22

Ist da schon irgendwo etwas bekannt?
Da es immer im 2fach im 5 Minuten Abstand müsste ich ansonsten mal tiefer (woanders) in den schon 4 Jahre laufenden Energy-Routinabfragen suchen wenns unbekannt ist. Dort hab ich sicher solche Routinen im 5 Minuten-Abstand laufen.

Gruß
300P
FHEM 6.3 - Raspberry Pi 3 / Pi 4 - VControl300 mit VITOVALOR 300P - SMAEM - SMAInverter - DbLog/DbRep - MariaDB/QNAP - div. HTTPMOD - div. Modbus ser+TCP - SolarForecast - Tibber + Ladung mit SMA-SBS25

DS_Starter

Du hast einen oder mehrere Datensätze deren Wert leer ("") ist. Dadurch wird bei der Substraktion in diifValue dieser Fehler provoziert.
Ich könnte die Routine erweitern und nichtnumerische Werte überspringen.
Bin mir aber unsicher ob es nicht besser wäre in dem Fall Logausgaben mit dem betreffenden Datensatz zu erstellen damit der User diesen löschen kann und hat dadurch gleich eine Datenpflege seiner DB vorgenommen.

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

DS_Starter

@300P, ich habe dir eine Version in mein contrib geladen.
Sie bringt bei diffValue in deinem Fall eine solche Meldung:


2023.02.01 20:27:52.599 2: DbRep Rep.CPU - WARNING - dataset has no numeric value >bla< and is ignored, >2023-01-05 23:02:17<, device >SMA_Energymeter<, reading >Einspeisung_Wirkleistung<.
2023.02.01 20:27:52.599 2: DbRep Rep.CPU - WARNING - dataset has no numeric value >bla< and is ignored, >2023-01-05 23:03:17<, device >SMA_Energymeter<, reading >Einspeisung_Wirkleistung<.


Probiers mal aus.

Grüße,
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

300P

Ich glaube es kam aus dem Modul SMAInverter (seit Jahren) bis Ende letzten Jahres:
Immer wenn es dort bei "etotal" einen 0 Wert gab ("abnullen"), gab es auf jeden Fall bei dem Eintrag eines Wertes am Morgen von 0 in VALUE ein "".

Probiere auch gleich mal die Test-Version, vielleicht kommen ja noch mehr als die von mir bereits gelöschten "leeren" Werte in anderen Modulen bei 0.

Gruß
300P
FHEM 6.3 - Raspberry Pi 3 / Pi 4 - VControl300 mit VITOVALOR 300P - SMAEM - SMAInverter - DbLog/DbRep - MariaDB/QNAP - div. HTTPMOD - div. Modbus ser+TCP - SolarForecast - Tibber + Ladung mit SMA-SBS25

DS_Starter

Ich habe das Log auf verbose 3 gesetzt, ist ja nur eine Warnung.
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

300P

Danke:
Die Routine findet schon mal mehr als ich auf den ersten Blick per SQLDatenbankzugriff gefunden und gelöscht habe habe.
Ich habe mir das Log im Code mal auf 2 gesetzt, sonst muss ich sicherlich in alle diversen DiffValue-Aufrufe rein  ;)
Als Hilfe ist das sicherlich richtig so, ich beobachte mal was alles kommt.



2023.02.01 21:45:51 1: Including ./log/fhem.save
2023.02.01 21:45:53 2: netatmo: missing app refresh token!
2023.02.01 21:45:54 0: Featurelevel: 6.2
2023.02.01 21:45:54 0: Server started with 255 defined entities (fhem.pl:27110/2023-01-23 perl:5.032001 os:linux user:fhem pid:546702)
2023.02.01 21:45:56 2: AttrTemplates: got 258 entries
2023.02.01 21:48:11 2: DbRep Rep.SMAEM.Einspeisung.Gesamt - WARNING - dataset has no numeric value >< and is ignored
timestamp >2018-09-04 11:53:07<, device >SMA_Energymeter<, reading >Einspeisung_Wirkleistung_Zaehler<
2023.02.01 21:48:34 2: DbRep Rep.SMAEM.Bezug.Gesamt - WARNING - dataset has no numeric value >< and is ignored
timestamp >2018-09-04 11:53:07<, device >SMA_Energymeter<, reading >Bezug_Wirkleistung_Zaehler<
2023.02.01 21:49:09 2: DbRep Rep.SBS25_2.Entladung.Gesamt - WARNING - dataset has no numeric value >< and is ignored
timestamp >2021-04-17 20:08:56<, device >SBS25_2<, reading >bat_loadtotal<
2023.02.01 21:50:57 2: VCONTROL300: Error while sending command for parameter 5527 (Status 0x15) : Retry 0!!!
2023.02.01 21:50:57 2: VCONTROL300: Error while sending command for parameter 5527 (Status 0x15) : Retry 1!!!
2023.02.01 21:50:58 2: DbRep Rep.SMAEM.Einspeisung.Gesamt - WARNING - dataset has no numeric value >< and is ignored
timestamp >2018-09-04 11:53:07<, device >SMA_Energymeter<, reading >Einspeisung_Wirkleistung_Zaehler<
2023.02.01 21:51:20 2: DbRep Rep.SMAEM.Bezug.Gesamt - WARNING - dataset has no numeric value >< and is ignored
timestamp >2018-09-04 11:53:07<, device >SMA_Energymeter<, reading >Bezug_Wirkleistung_Zaehler<
2023.02.01 21:51:56 2: DbRep Rep.SBS25_2.Entladung.Gesamt - WARNING - dataset has no numeric value >< and is ignored
timestamp >2021-04-17 20:08:56<, device >SBS25_2<, reading >bat_loadtotal<



Gruß
300P
FHEM 6.3 - Raspberry Pi 3 / Pi 4 - VControl300 mit VITOVALOR 300P - SMAEM - SMAInverter - DbLog/DbRep - MariaDB/QNAP - div. HTTPMOD - div. Modbus ser+TCP - SolarForecast - Tibber + Ladung mit SMA-SBS25

DS_Starter

#1889
Ich packe die V ins Repo. Passt so.
Wie gesagt, wird produktiv dann als verbose 3 gemeldet, sonst nervt es zu sehr wenn man nicht gleich dazu kommt die DB zu pflegen.  ;)
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