FHEM Forum

FHEM => Sonstiges => Thema gestartet von: SaibotRetsevlis am 28 November 2021, 10:15:49

Titel: Der Benutzer war zu doof für das System, war mal [DbRep] diff funktioniert nicht
Beitrag von: SaibotRetsevlis am 28 November 2021, 10:15:49
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
Titel: Antw:[DbRep] Diff writeToDB funktioniert nicht mehr
Beitrag von: DS_Starter am 28 November 2021, 10:30:52
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.
Titel: Antw:[DbRep] Diff writeToDB funktioniert nicht mehr
Beitrag von: SaibotRetsevlis am 28 November 2021, 10:34:58
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.
Titel: Antw:[DbRep] Diff writeToDB funktioniert nicht mehr
Beitrag von: DS_Starter am 28 November 2021, 10:43:25
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.
Titel: Antw:[DbRep] Diff writeToDB funktioniert nicht mehr
Beitrag von: SaibotRetsevlis am 28 November 2021, 10:49:47
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!
Titel: Antw:Der Benutzer war zu doof für das System, war mal [DbRep] diff funktioniert nicht
Beitrag von: DS_Starter am 28 November 2021, 12:24:37
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.