[gelöst] Reading wird nicht (richtig) aktualisiert

Begonnen von tndx, 04 November 2023, 15:51:41

Vorheriges Thema - Nächstes Thema

tndx

Moin,

ich habe endlich einigermaßen "Tages-, Monats- und Jahresstatistik für Strom-, Gas-, Wasserzähler und andere Zähler" aus dem Wiki ans Laufen bekommen. Ich nutze das nur für Strombezuf und -einspeisung, beide Datenquellen sind strukturell identisch (Kanal 1 und 2 vom HM-ES-TX-WM). Trotzdem funktioniert das Aktualisieren der Readings bei der Einspeisung nicht, obwohl es beim Bezug zu funktionieren scheint.

Konkret wird das Reading
HWR_Stromzaehler_IEC_02.energyIEC_kWh.hour
nicht mit einem sinnvolen Wert befüllt, sondern bleibt bei "0" stehen, obwohl ich am Zeitstempel sehe, dass FHEM da dran geht.

In den beiden anderen Readings, aus denen nach meinem Verständnis nur die Differenz gebildet werden soll (.hour_counter, .last_counter) stehen sinnvolle Werte (1492.92, 1488.07) drin. Interessanterweise scheint die Aggregation im .day aber zu funktionieren, zumindest ist dieser Wert nicht 0.

Hat jemand eine Idee, woran es scheitert? Ist das irgendein Format-Konvertierungsfehler, dass am Ende doch auf 0 gerundet wird?

Per

Sinnvoll wäre ein List vom DOIF, bis jetzt steht da nur ein Name...

tndx

Ein List von dem Doif hat gefühlt eine Million Zeilen, das ist nicht in einem Code-Block unterzubringen.

Gibt es irgendwas Spezielles, was ich posten kann, zwecks besserer Fehlersuche?

Damian

Interessant sind die Readings im DOIF, die etwas mit HWR_Stromzaehler_IEC_02.energyIEC_kWh zu tun haben.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

tndx

Hier sind alle Readings:
READINGS:
     2023-11-04 18:44:14   Device          HWR_Stromzaehler_IEC_01
     2023-11-04 18:00:00   HWR_Stromzaehler_IEC_01.energyIEC_kWh.day 3.06
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_01.energyIEC_kWh.day_counter 244.38
     2023-11-04 18:44:14   HWR_Stromzaehler_IEC_01.energyIEC_kWh.hour 0.02
     2023-11-04 18:00:00   HWR_Stromzaehler_IEC_01.energyIEC_kWh.hour_counter 247.44
     2023-11-04 18:44:14   HWR_Stromzaehler_IEC_01.energyIEC_kWh.last_counter 247.46
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_01.energyIEC_kWh.last_day 0
     2023-11-04 18:00:00   HWR_Stromzaehler_IEC_01.energyIEC_kWh.last_hour 0.02
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_01.energyIEC_kWh.last_month 0
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_01.energyIEC_kWh.last_year 0
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_01.energyIEC_kWh.month 0
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_01.energyIEC_kWh.month_counter 244.38
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_01.energyIEC_kWh.year 0
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_01.energyIEC_kWh.year_counter 244.38
     2023-11-04 18:00:00   HWR_Stromzaehler_IEC_02.energyIEC_kWh.day 4.9
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_02.energyIEC_kWh.day_counter 1488.07
     2023-11-04 18:00:00   HWR_Stromzaehler_IEC_02.energyIEC_kWh.hour 0
     2023-11-04 18:00:00   HWR_Stromzaehler_IEC_02.energyIEC_kWh.hour_counter 1492.97
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_02.energyIEC_kWh.last_counter 1488.07
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_02.energyIEC_kWh.last_day 0
     2023-11-04 18:00:00   HWR_Stromzaehler_IEC_02.energyIEC_kWh.last_hour 0
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_02.energyIEC_kWh.last_month 0
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_02.energyIEC_kWh.last_year 0
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_02.energyIEC_kWh.month 0
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_02.energyIEC_kWh.month_counter 1488.07
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_02.energyIEC_kWh.year 0
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_02.energyIEC_kWh.year_counter 1488.07
     2023-11-04 18:44:14   block_day_count_HWR_Stromzaehler_IEC_01_energyIEC_kWh executed
     2023-11-04 18:00:00   block_hour      executed
     2023-11-04 01:32:52   block_init      executed
     2023-11-04 18:44:14   e_HWR_Stromzaehler_IEC_01_energyIEC_kWh 247.46
     2023-11-04 01:32:52   mode            enabled
     2023-11-04 01:32:52   state           initialized
     2023-11-04 18:00:00   timer_01_c02    04.11.2023 19:00:00
     2023-11-04 01:32:52   timer_02_c03    05.11.2023 00:01:00

Damian

Die erste Frage stellt sich mir, warum last_day um 01:32 Uhr bei dir gelaufen ist, lt. Programm sollte es um Mitternacht laufen. last_month wird nur zum Monatsende aktualiesiert, last_year dann zum Jahresende. Da musst du etwas warten.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

tndx

Moin,
hier die aktuelle Fassung:
READINGS:
     2023-11-05 12:13:54   Device          HWR_Stromzaehler_IEC_01
     2023-11-05 12:00:00   HWR_Stromzaehler_IEC_01.energyIEC_kWh.day 3.91
     2023-11-05 00:01:00   HWR_Stromzaehler_IEC_01.energyIEC_kWh.day_counter 247.89
     2023-11-05 12:13:54   HWR_Stromzaehler_IEC_01.energyIEC_kWh.hour 0
     2023-11-05 12:00:00   HWR_Stromzaehler_IEC_01.energyIEC_kWh.hour_counter 251.80
     2023-11-05 12:13:54   HWR_Stromzaehler_IEC_01.energyIEC_kWh.last_counter 251.80
     2023-11-05 00:01:00   HWR_Stromzaehler_IEC_01.energyIEC_kWh.last_day 3.48
     2023-11-05 12:00:00   HWR_Stromzaehler_IEC_01.energyIEC_kWh.last_hour 0.02
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_01.energyIEC_kWh.last_month 0
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_01.energyIEC_kWh.last_year 0
     2023-11-05 00:01:00   HWR_Stromzaehler_IEC_01.energyIEC_kWh.month 3.509
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_01.energyIEC_kWh.month_counter 244.38
     2023-11-05 00:01:00   HWR_Stromzaehler_IEC_01.energyIEC_kWh.year 3.509
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_01.energyIEC_kWh.year_counter 244.38
     2023-11-05 12:00:00   HWR_Stromzaehler_IEC_02.energyIEC_kWh.day 2.18
     2023-11-05 00:01:00   HWR_Stromzaehler_IEC_02.energyIEC_kWh.day_counter 1493.02
     2023-11-05 12:00:00   HWR_Stromzaehler_IEC_02.energyIEC_kWh.hour 0
     2023-11-05 12:00:00   HWR_Stromzaehler_IEC_02.energyIEC_kWh.hour_counter 1495.20
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_02.energyIEC_kWh.last_counter 1488.07
     2023-11-05 00:01:00   HWR_Stromzaehler_IEC_02.energyIEC_kWh.last_day 4.95
     2023-11-05 12:00:00   HWR_Stromzaehler_IEC_02.energyIEC_kWh.last_hour 0
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_02.energyIEC_kWh.last_month 0
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_02.energyIEC_kWh.last_year 0
     2023-11-05 00:01:00   HWR_Stromzaehler_IEC_02.energyIEC_kWh.month 4.95
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_02.energyIEC_kWh.month_counter 1488.07
     2023-11-05 00:01:00   HWR_Stromzaehler_IEC_02.energyIEC_kWh.year 4.95
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_02.energyIEC_kWh.year_counter 1488.07
     2023-11-05 12:13:54   block_day_count_HWR_Stromzaehler_IEC_01_energyIEC_kWh executed
     2023-11-05 12:00:00   block_hour      executed
     2023-11-04 01:32:52   block_init      executed
     2023-11-05 00:01:00   block_midnight  executed
     2023-11-05 12:13:54   e_HWR_Stromzaehler_IEC_01_energyIEC_kWh 251.80
     2023-11-04 01:32:52   mode            enabled
     2023-11-04 01:32:52   state           initialized
     2023-11-05 12:00:00   timer_01_c02    05.11.2023 13:00:00
     2023-11-05 00:01:00   timer_02_c03    06.11.2023 00:01:00

Hier die aktuelle Fassung, last_day um 1:32 war wohl bedingt dadurch, dass das die allererste Befüllung nach dem Einrichten war. Jetzt sieht es wieder anders aus. Aber nach wie vor keine Funktion bei
2023-11-05 12:00:00   HWR_Stromzaehler_IEC_02.energyIEC_kWh.hour 0

Damian

hiernach stimmt es:

     2023-11-05 12:13:54   HWR_Stromzaehler_IEC_01.energyIEC_kWh.hour 0
     2023-11-05 12:00:00   HWR_Stromzaehler_IEC_01.energyIEC_kWh.hour_counter 251.80
     2023-11-05 12:13:54   HWR_Stromzaehler_IEC_01.energyIEC_kWh.last_counter 251.80

denn last_counter-hour.counter ist hour

Offenbar ist die Auflösung deines Readings mit zwei Nachkommastellen zu klein.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

tndx

#8
Hi,

das ist ja auch Bezug, der darf um diese Zeit ruhig 0 sein. Aber je nach Uhrzeit stehen da auch schon mal sinnvolle Werte. Aber nicht in HWR_Stromzaehler_IEC_02.energyIEC_kWh.hour.

Und an der Auflösung des Readings habe ich nichts bewusst geändert, das ist so wie FHEM das per "Raw definition" angelegt hat.

Damian

Zitat von: tndx am 05 November 2023, 17:10:34Hi,

das ist ja auch Bezug, der darf um diese Zeit ruhig 0 sein. Aber je nach Uhrzeit stehen da auch schon mal sinnvolle Werte. Aber nicht in HWR_Stromzaehler_IEC_02.energyIEC_kWh.hour.

Und an der Auflösung des Readings habe ich nichts bewusst geändert, das ist so wie FHEM das per "Raw definition" angelegt hat.

Solange die beiden Readings gleich sind, kann da ja nur Null stehen. Inkonsistenz wäre dann, wenn die Readings last_counter und hour.counter unterschiedlich wären und in hour Null stünde. Solange das nicht der Fall ist, funktioniert alles wie programmiert.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

tndx

Ja, schon klar, aber genau das funktionert hier nicht:

     2023-11-05 12:00:00   HWR_Stromzaehler_IEC_02.energyIEC_kWh.hour 0
     2023-11-05 12:00:00   HWR_Stromzaehler_IEC_02.energyIEC_kWh.hour_counter 1495.20
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_02.energyIEC_kWh.last_counter 1488.07

Oder stehe ich auf dem Schlauch?  ???

Damian

Zitat von: tndx am 05 November 2023, 18:40:01Ja, schon klar, aber genau das funktionert hier nicht:

     2023-11-05 12:00:00   HWR_Stromzaehler_IEC_02.energyIEC_kWh.hour 0
     2023-11-05 12:00:00   HWR_Stromzaehler_IEC_02.energyIEC_kWh.hour_counter 1495.20
     2023-11-04 01:32:24   HWR_Stromzaehler_IEC_02.energyIEC_kWh.last_counter 1488.07

Oder stehe ich auf dem Schlauch?  ???

Ok, ich habe bei 01 geschaut.

Also hier sieht man, dass vom angegebenen Reading keine Events ankommen, denn last_counter ist von 01:32 Uhr müsste aber die Uhrzeit nach 12:00 Uhr haben und größer als 1495,20 sein.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

tndx

OK, dann ist aber die Frage, warum nicht? Der Daycounter scheint ja zu funktionieren

Damian

Das kann ich dir nicht sagen. Das ist dann kein DOIF-Problem.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

tndx

Ich denke aber schon, denn das entsprechende Reading im Device (HWR_Stromzaehler_IEC_02.energyIEC_kWh) wird aktualisiert, die Übertragung in Doif wird ja durch Doif gesteuert, auch das Anlegen des Readings. Irgendwo hier zwischen scheint es verloren zu gehen. Irgendeine Möglichkeit, das zu Debuggen?