event-aggregator / TimeSeries.pm Probleme

Begonnen von ht, 22 Mai 2016, 20:18:50

Vorheriges Thema - Nächstes Thema

ht

Hi Boris,

eigentlich gehört das hier eher nach Development, aber dort kann ich nicht schreiben, deshalb über diesen Weg.

Ich habe einen Temperatursensor, der alle 4 Sekunden einen Wert funkt (TX37 über JeeLink). In fhem hat das Device 3 Readings: battery, state und temperature.

Problem 1: Für temperature habe ich einen event-aggregator, der aber nicht so funktioniert wie erhofft:

define wg_Temperatur LaCrosse 08
attr wg_Temperatur IODev jeeLinkTemp
attr wg_Temperatur event-aggregator temperature:61:none:min
attr wg_Temperatur event-on-change-reading .*
attr wg_Temperatur group Temperatur
attr wg_Temperatur room Wohnzimmer,Haus


Ich kriege jetzt folgende Events für state und temperature:


2016-05-22 19:51:01 LaCrosse wg_Temperatur temperature: 25.9
2016-05-22 19:51:01 LaCrosse wg_Temperatur T: 25.8
2016-05-22 19:51:05 LaCrosse wg_Temperatur temperature: 25.8
2016-05-22 19:52:51 LaCrosse wg_Temperatur temperature: 25.8
2016-05-22 19:52:51 LaCrosse wg_Temperatur T: 25.7
2016-05-22 19:52:55 LaCrosse wg_Temperatur temperature: 25.7
2016-05-22 19:53:48 LaCrosse wg_Temperatur T: 25.6


Um 19:52:51 geht die Temperatur von 25.8 auf 25.7. Ich hätte erwartet, dass schon zu der Zeit der Wert von temperature 25.7 ist. Vor allem wundert mich aber, dass 4 Sekunden später ein neues Event kommt, das frühestens 61 Sekunden später kommen sollte. Mich stört weniger, dass mehr ins Log geschrieben wird, aber die daraus erzeugten SVGs sehen dadurch treppig aus, weil beim Übergang noch einmal der alte Wert geschrieben ist.

Frage: ist das Verhalten so beabsichtigt oder ist es eher ein Fehler?

Problem 2: Beim Testen bin ich auf ein Problem gestossen, hinter dem ich ein Rundungsproblem vermute. Hier meine Testdefinition:

define wg_Temperatur LaCrosse 08
attr wg_Temperatur IODev jeeLinkTemp
attr wg_Temperatur event-aggregator temperature:12:none:min
attr wg_Temperatur group Temperatur
attr wg_Temperatur room Wohnzimmer,Haus


Und das Event Log für temperature dazu:

2016-05-22 20:06:07 LaCrosse wg_Temperatur temperature: 24.7
2016-05-22 20:06:15 LaCrosse wg_Temperatur temperature: 24.7
2016-05-22 20:06:23 LaCrosse wg_Temperatur temperature: 24.7
2016-05-22 20:06:32 LaCrosse wg_Temperatur temperature: 24.7
2016-05-22 20:06:40 LaCrosse wg_Temperatur temperature: 24.7


Die Events kommen also alle 8 oder 9 Sekunden, ich hätte aber 12 Sekunden erwartet. Wäre das etwas, was in TimeSeries.pm ausgeglichen werden sollte? Mein Workaround war, eine Sekunde mehr zu wählen, also 13. Daher auch die 61 oben im Beispiel.

Ob die beiden Probleme miteinander zu tun haben weiss ich nicht, deshalb nur ein Post. Bisher habe ich noch nicht im Code geguckt, sondern wollte erst einmal Deine Meinung dazu haben. Wenn es hilft und ich die Zielrichtung kenne, kann ich gerne versuchen, dass zu Debuggen.

Viele Grüße,
Volker
FHEM 5.7, RasPI 2, HomeMatic über HMUSB, JeeLink Clone, Viessmann Heizung