Der Benutzer war zu doof für das System, war mal [DbRep] diff funktioniert nicht

Begonnen von SaibotRetsevlis, 28 November 2021, 10:15:49

Vorheriges Thema - Nächstes Thema

SaibotRetsevlis

Hallo Forum,
irgendwann die letzten Wochen habe ich ein update gestartet.

Das diffValue writeToDB zeigt immer noch die Daten an die auch plausibel aussehen.
Aber im SVG werden die Daten nicht mehr angezeigt, siehe Grafik.

averageValue für die Temperatur funktioniert noch ohne Probleme.

Ich bin ratlos.
Wer hat eine Idee?


...
2021-11-22_21-45-16__Buderus2107__Brenner_Laufzeit1_Minuten__DIFF__2021-11-22

170.0000

2021-11-28 10:12:29
2021-11-23_23-39-41__Buderus2107__Brenner_Laufzeit1_Minuten__DIFF__2021-11-23

194.0000

2021-11-28 10:12:29
2021-11-24_23-54-25__Buderus2107__Brenner_Laufzeit1_Minuten__DIFF__2021-11-24

241.0000

2021-11-28 10:12:29
2021-11-25_23-22-22__Buderus2107__Brenner_Laufzeit1_Minuten__DIFF__2021-11-25

282.0000

2021-11-28 10:12:29
2021-11-26_23-50-33__Buderus2107__Brenner_Laufzeit1_Minuten__DIFF__2021-11-26

219.0000

2021-11-28 10:12:29
2021-11-27_23-52-37__Buderus2107__Brenner_Laufzeit1_Minuten__DIFF__2021-11-27

249.0000

2021-11-28 10:12:29
2021-11-28_10-03-00__Buderus2107__Brenner_Laufzeit1_Minuten__DIFF__2021-11-28

98.0000

2021-11-28 10:12:29
db_lines_processed

89

2021-11-28 10:12:29
state

done

2021-11-28 10:12:2

DS_Starter

SVG kann nur das anzeigen was in der DB steht. Wird denn der Ergebniswert noch in die DB geschrieben und an SVG geliefert ?
Im SVG sieht man mit "show preprocessed input" die Daten welche von der DB geliefert werden.
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

SaibotRetsevlis

#2
Nein da fehlen die Diff Daten "diff_day_Brenner_Laufzeit1_Minuten",
die Durchschnittwerte der Temperatur "avgam_day_Aussentemperatur:" sind vorhanden.

Da aber bei einem erneuten Ausführen von DbRep Diff folgendes im Log steht,
021.11.28 10:12:29 3: DbRep Rep.BrennerMinuten - number of lines updated in "myDbLog": 85
2021.11.28 10:12:29 3: DbRep Rep.BrennerMinuten - number of lines inserted into "myDbLog": 4
denke ich das die Daten schon in der Datenbank stehen.

Der Sherlock in mir vermutet das Daten mit einem anderen Zeichen oder eins zu viel zu wenig gespeichert werden.

DS_Starter

Habe es gerade bei mir probiert und sehe erstmal keinen Fehler im Modul, schon mal gut zum Vergleich:


2021.11.28 10:40:31.391 4: DbRep Rep.SMAEM - -------- New selection ---------
2021.11.28 10:40:31.392 4: DbRep Rep.SMAEM - Command: diffValue writeToDB
2021.11.28 10:40:31.392 4: DbRep Rep.SMAEM - FullDay option: 0
2021.11.28 10:40:31.393 4: DbRep Rep.SMAEM - Timestamp begin human readable: 2021-11-28 00:00:00
2021.11.28 10:40:31.393 4: DbRep Rep.SMAEM - Timestamp end human readable: 2021-11-28 10:40:31
2021.11.28 10:40:31.394 4: DbRep Rep.SMAEM - Aggregation: no
2021.11.28 10:40:31.421 4: DbRep Rep.SMAEM - SQL execute: SELECT TIMESTAMP,VALUE, if(VALUE-@V < 0 OR @RB = 1 , @diff:= 0, @diff:= VALUE-@V ) as DIFF, @V:= VALUE as VALUEBEFORE, @RB:= '0' as RBIT  FROM history where ( DEVICE = 'SMA_Energymeter' ) AND ( READING = 'Bezug_Wirkleistung_Zaehler' ) AND TIMESTAMP >= '2021-11-28 00:00:00' AND TIMESTAMP <= '2021-11-28 10:40:31' ORDER BY TIMESTAMP;
2021.11.28 10:40:31.501 4: DbRep Rep.SMAEM - result of diffValue calculation before encoding:
2021.11.28 10:40:31.502 4: runtimestring Key: no_aggregation, value: no_aggregation|4.5996|2021-11-28_10:38:08
2021.11.28 10:40:31.502 4: DbRep Rep.SMAEM - count of values used for calc:
2021.11.28 10:40:31.503 4: no_aggregation => 637
2021.11.28 10:40:31.511 4: DbRep Rep.SMAEM - UPDATE history: 2021-11-28 10:38:08|SMA_Energymeter|SMAEM|calculated|diff_no_Bezug_Wirkleistung_Zaehler|4.5996|, RESULT: 0E0
2021.11.28 10:40:31.512 4: DbRep Rep.SMAEM - INSERT history: 2021-11-28 10:38:08|SMA_Energymeter|SMAEM|calculated|diff_no_Bezug_Wirkleistung_Zaehler|4.5996|, RESULT: 1
2021.11.28 10:40:31.516 3: DbRep Rep.SMAEM - number of lines updated in "LogDB": 0
2021.11.28 10:40:31.516 3: DbRep Rep.SMAEM - number of lines inserted into "LogDB": 1
2021.11.28 10:40:31.519 4: DbRep Rep.SMAEM - result of diffValue calculation after decoding:
2021.11.28 10:40:31.520 4: DbRep Rep.SMAEM - runtimestring Key: no_aggregation, value: no_aggregation|4.5996|2021-11-28_10:38:08


verbose 4 im Device einstellen und mal vergleichen. Auf DB Fehlermitteilungen achten.
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

SaibotRetsevlis

#4
8|Buderus2107|KM271|calculated|diff_week_Brenner_Laufzeit1_Minu|254.0000|, RESULT: 1
Mist ich weis was los ist, nach dem Update hab ich die die "Fehler" im DbLog korrigiert.
Da standen etwas von 32 und 64 Zeichen.

DANKE!

DS_Starter

Ja, "ganz früher" war die Spaltenbreite von READING auf 32 festgelegt. Seit mittlerweile vllt. zwei Jahren wird bei der Installation diese Spalte mit einer Breite von 64 bestimmt.

Man kann es in einer bestehenden Installation (MySQL) im nachhinein leicht anpassen:


alter table history modify READING varchar(64);


DbRep sqlCmd.
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