[gelöst] Probleme mit Statistics und ..HourLast

Begonnen von KNUT345, 17 Juni 2020, 20:18:59

Vorheriges Thema - Nächstes Thema

KNUT345

Hallo Zusammen,
ich nutze schon seit längerem das Statistics Modul,
funktionierte nun auch recht zuverlässig, bis ich wieder mal ein Update gemacht habe.
Seit ein paar Tagen habe ich nun das Problem,
dass bei diversen Readings nun plötzlich ...HourLast nicht mehr erzeugt wird
sondern nur beim Tageswechsel.
Ich steh auf dem Schlauch und hab keinen Plan woran das nun plötzlich liegen kann.
Das Reading das ich triggere heißt: myErtrag

Hat jemand einen Tipp?

VG
Knut


defmod Statistik_SolvisBen statistics SolarNeu|WWasserNeu|SolvisBenBrenner
attr Statistik_SolvisBen deltaReadings myOnTimeH,myErtrag,myVerbrauch
attr Statistik_SolvisBen disable 0
attr Statistik_SolvisBen ignoreDefaultAssignments 1
attr Statistik_SolvisBen room System->FHEM
attr Statistik_SolvisBen singularReadings (SolvisBenBrenner|SolarNeu|WWasserNeu):(myOnTimeH|myErtrag|myVerbrauch):Delta:(Hour|Day|Month|Year)



defmod SolarNeu dummy
attr SolarNeu alias Solarkollektoren
attr SolarNeu devStateIcon on:ios-on-red_fh off:ios-on-blue2_fh
attr SolarNeu event-min-interval .*:3500
attr SolarNeu event-on-change-reading .*.temperatur:0.5,myLeistung:10,Durchfluss:1,stat.*, myMI:1,.*
attr SolarNeu group Energie
attr SolarNeu room Unsorted
attr SolarNeu sortby 008
*
*
*
setstate SolarNeu 2020-06-17 20:07:40 statMyErtrag Hour: 0.2 Day: 0.2 Month: 146.6 Year: 1620.8
setstate SolarNeu 2020-06-17 20:07:40 statMyErtragDay 0.2
setstate SolarNeu 2020-06-17 00:00:22 statMyErtragDayLast 3.7
setstate SolarNeu 2020-06-17 20:07:40 statMyErtragHour 0.2
setstate SolarNeu 2020-06-17 00:00:22 statMyErtragHourLast 3.7
setstate SolarNeu 2020-06-17 00:00:22 statMyErtragLast Hour: 3.7 Day: 3.7 Month: 442.5 Year: 1529.8 (since: 2019-06-22 )

KNUT345

Hallo Zusammen,
nach etwas mehr rumprobieren und erneutem Neustart funktioniert das System wieder.

Was mir aufgefallen ist, dass ein Statistics Objekt mit periodChangePreset=10 funktionierte
hingegen ein Objekt ohne dieses Attribut nicht.
Nachdem ich das nichtfunktionierende Objekt auf periodChangePreset=5 gestellt habe funktioniert es.
Hat sich da was verändert?
Neustart kann nicht wirklich die Lösung sein, denn ich habe den RPi vorher mehrere Male gestartet.

Grüße
Knut

amenomade

Die Funktionen von statistics wurden seit März 2018 nicht geändert.

Du zeigst die Readings nicht, die zur Kalkulation gehören, bzw. die Änderungen davon.

Mit deinem event-min-interval hast Du maximal ein Event pro Stunde.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

KNUT345

Mein Konstrukt hat vor dem Update in der gezeigten Form funktioniert
und ich möchte auch nicht behaupten dass mein Konstrukt optimal war/ist,
ich will es ja nur verstehen.

Das vorheriges Update war am 17.08.2019

Ich habe
attr SolarNeu event-min-interval .*:3500
attr SolarNeu event-on-change-reading .*.temperatur:0.5,myLeistung:10,Durchfluss:1,stat.*, myMI:1,.*

so verstanden, dass
- mit Änderung jederzeit (solange der Differenzbetrag überschritten ist)
- ohne Änderung dann spätestens nach einer Stunde
ein Event erzeugt (zugelassen?) wird.
Dieses Konstrukt hatte ich auch gleich im Verdacht, aber anhand der rot Einfärbung der Events
konnte ich ja sehen, dass die Ereignisse weiterhin durchkommen.
Irritierend war halt, dass ein statistics mit periodChangePreset ja weiterhin funktionierte
und seit dieser Änderung (incl. restart) funktioniert es ja wieder wie zuvor.

Was meinst du mit?
ZitatDu zeigst die Readings nicht, die zur Kalkulation gehören, bzw. die Änderungen davon.

das besagte Reading hab ich doch hier gezeigt
setstate SolarNeu 2020-06-17 20:07:40 statMyErtrag Hour: 0.2 Day: 0.2 Month: 146.6 Year: 1620.8
setstate SolarNeu 2020-06-17 20:07:40 statMyErtragDay 0.2
setstate SolarNeu 2020-06-17 00:00:22 statMyErtragDayLast 3.7
setstate SolarNeu 2020-06-17 20:07:40 statMyErtragHour 0.2
setstate SolarNeu 2020-06-17 00:00:22 statMyErtragHourLast 3.7
setstate SolarNeu 2020-06-17 00:00:22 statMyErtragLast Hour: 3.7 Day: 3.7 Month: 442.5 Year: 1529.8 (since: 2019-06-22 )

amenomade

Zitat von: KNUT345 am 20 Juni 2020, 15:55:23
Mein Konstrukt hat vor dem Update in der gezeigten Form funktioniert
und ich möchte auch nicht behaupten dass mein Konstrukt optimal war/ist,
ich will es ja nur verstehen.

Das vorheriges Update war am 17.08.2019


Wie gesasgt: hier sind die Änderungen des Moduls:
@20819    23 déc. 2019 23:07:57 tupol JSONMETER/statistics: POD Correction
@16438    18 mars 2018 18:51:57 tupol LUXTRONIK2,OPENWEATHER,PROPLANTA,JSONMETER,FRITZBOX,statistics: docu
@16416    16 mars 2018 07:09:02 tupol LUXTRONIK2+statistics: docu
@16357    9 mars 2018 09:01:35 tupol statistics: NOTIFYDEV
@16281    26 févr. 2018 18:40:38 tupol statistics: bugfix _count:

Seit dem 9 März 2018 gab es nur Änderungen in der Doku / CommandRef und neue "knownReadings". Du kannst gerne auch im Diff gucken: https://svn.fhem.de/trac/changeset?reponame=&new=20819%40trunk%2Ffhem%2FFHEM%2F98_statistics.pm&old=16357%40trunk%2Ffhem%2FFHEM%2F98_statistics.pm

Deswegen kannst Du auch ruhig das Modul statistics.pm aus dem restoreDir wieder holen. Und gucken, ob das Problem noch besteht.

Zitat von: KNUT345 am 20 Juni 2020, 15:55:23

Ich habe
attr SolarNeu event-min-interval .*:3500
attr SolarNeu event-on-change-reading .*.temperatur:0.5,myLeistung:10,Durchfluss:1,stat.*, myMI:1,.*

so verstanden, dass
- mit Änderung jederzeit (solange der Differenzbetrag überschritten ist)
- ohne Änderung dann spätestens nach einer Stunde
ein Event erzeugt (zugelassen?) wird.

Hast auch richtig verstanden, aber das gielt nur für die Readings, die in event-on-change-reading stehen. Ich hatte das ".*" am Ende übersehen, und dachte, die Events mit "MyErtrag" werden nicht berücksichtigt.

Letztens: mit
ZitatDu zeigst die Readings nicht, die zur Kalkulation gehören, bzw. die Änderungen davon.
meinte ich die Events, die zur Kalkulation führen, nicht die vom statistics Modul.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

KNUT345

Seltsam.
Dann hat es evtl. doch mit Restart zu tun.

Meinst du die?

attr SolarNeu userReadings myLeistungN:(Vorlauftemperatur.*|Ruecklauftemperatur.*|Durchfluss.*) {sprintf("%.1f",(ReadingsVal($name,"Vorlauftemperatur",0)-ReadingsVal($name,"Ruecklauftemperatur",0))*ReadingsVal($name,"Durchfluss",0)*ReadingsVal($name,"WFaktor",0))},\
myLeistung:myLeistungN.* {my $a=ReadingsVal($name,"myLeistungN",0);;;; if ($a<=0) {return 0.0} else {return $a}},\
myErtragN:myLeistungN.* integral {ReadingsVal($name,"myLeistung",0)},\
myErtrag:myLeistungN.* {sprintf("%.1f",ReadingsVal($name,"myErtragN",0)/1000/3600)},\


Danke und Grüße
Knut

amenomade

Nein, ich meine die Events aus dem Eventmonitor (oder evtl. aus der Log), bei Änderungen von SolarNeu:myErtrag.

Evtl. könnten die setstates aus der raw Def reichen, aber nicht nur von den "stat...." Readings sondern auch von den Werte, die zur Kalkulation führen.

Z.B.: ich möchte die Korrelation zwischen statMyErtragHour und myErtrag, oder zwischen statMyLeistungHour und myLeistung sehen

Alternativ: ein kompletes "list" von SolarNeu
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

KNUT345

Du hast sowas gemeint?

2020-06-21 16:09:19 dummy SolarNeu Vorlauftemperatur: 62.1
2020-06-21 16:09:19 dummy SolarNeu myLeistungN: 5748.7
2020-06-21 16:09:19 dummy SolarNeu myLeistung: 5748.7
2020-06-21 16:09:19 dummy SolarNeu myErtragN: 11484395470.2797
2020-06-21 16:09:19 dummy SolarNeu myEffizienz: 174.892
2020-06-21 16:09:19 dummy SolarNeu Durchfluss: 362
2020-06-21 16:09:19 dummy SolarNeu myLeistungN: 5308.8
2020-06-21 16:09:19 dummy SolarNeu myLeistung: 5308.8
2020-06-21 16:09:19 dummy SolarNeu myEffizienz: 161.509
2020-06-21 16:09:48 dummy SolarNeu Durchfluss: 340
2020-06-21 16:09:48 dummy SolarNeu myLeistungN: 4986.1
2020-06-21 16:09:48 dummy SolarNeu myLeistung: 4986.1
2020-06-21 16:09:48 dummy SolarNeu myErtragN: 11484546421.6137
2020-06-21 16:09:48 dummy SolarNeu myErtrag: 3190.2
2020-06-21 16:09:48 dummy SolarNeu mySolvis: 3272.4
2020-06-21 16:09:48 dummy SolarNeu myEffizienz: 151.692
2020-06-21 16:09:48 dummy SolarNeu statMyErtrag: Hour: 0.5 Day: 8.6 Month: 186.2 Year: 1660.4
2020-06-21 16:09:48 dummy SolarNeu statMyErtragHour: 0.5
2020-06-21 16:09:48 dummy SolarNeu statMyErtragDay: 8.6
2020-06-21 16:09:48 dummy SolarNeu statMyErtragMonth: 186.2
2020-06-21 16:09:48 dummy SolarNeu statMyErtragYear: 1660.4
2020-06-21 16:09:48 dummy SolarNeu statMyErtragTrend: 3510.6
2020-06-21 16:10:18 dummy SolarNeu Vorlauftemperatur: 61.4
2020-06-21 16:10:18 dummy SolarNeu myLeistungN: 4709.1
2020-06-21 16:10:18 dummy SolarNeu myLeistung: 4709.1
2020-06-21 16:10:18 dummy SolarNeu myErtragN: 11484691605.9776
2020-06-21 16:10:18 dummy SolarNeu myEffizienz: 904.552
2020-06-21 16:10:18 dummy SolarNeu Ruecklauftemperatur: 50.1
2020-06-21 16:10:18 dummy SolarNeu myLeistungN: 4471.7
2020-06-21 16:10:18 dummy SolarNeu myLeistung: 4471.7
2020-06-21 16:10:18 dummy SolarNeu myEffizienz: 858.951
2020-06-21 16:10:18 dummy SolarNeu Durchfluss: 273
2020-06-21 16:10:18 dummy SolarNeu myLeistungN: 3590.5
2020-06-21 16:10:18 dummy SolarNeu myLeistung: 3590.5
2020-06-21 16:10:18 dummy SolarNeu myEffizienz: 689.685

amenomade

Genau das meinte ich ja.
Da sieht man aber, dass myErtragHour doch gesetzt wird. Vielleicht weil Du noch periodChangePreset hast?
Wie sieht es ohne aus?

Gleichzeitig wäre es interessant, mit verbose 4 auf statistics zu sehen, was die Log bei der Kalkulation sagt.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus