[Gelöst] Nutzung des Moduls average - Reading zu fixer zeit in Log schreiben

Begonnen von Panger1337, 18 Dezember 2017, 09:56:38

Vorheriges Thema - Nächstes Thema

Panger1337

Hallo zusammen,

und direkt die nächste Frage:
Ich habe 2 Temperatursensoren und möchte zu diesen einen Tagesmittelwert (und gerne auch Min und Max Wert) in ein Filelog schreiben.

Die Temperatursensoren sind TX29DTH und über einen Jeelink v3c angeschlossen.
Das loggen habe ich schon angepasst, mit:
event-on-change-reading für Temperatur und Humidity (nicht für battery und state)
und event-min-interval für battery 5 Stunden, temp, humitidy und state für 10 Minuten

Ich habe dann für beide Temperatursensoren ein average konfiguriert und ich sehe in den beiden Temperatursensoren selbst unter Readings auch die entsprechenden Average Infos (also z.B. temp_avg_day).
Um das auch loggen zu können habe ich das so angepasst, dass ich event-min-interval angepasst und für die gewünschten Daten (temperatur avg, min, max/humidity avg, min, max) den Wert auf 86400 Sekunden gesetzt habe (also einen Tag)
bei einem Temperatursensor habe ich heute morgen dann auch im Filelog die entsprechenden Werte gefunden (einmal 00:05 (temp-daten) und einmal 00:07 (humidity-Daten))

Soweit so gut. Mir gefällt diese Lösung aber in einem Punkt nicht:
Ich hätte den Tagesmittelwert im Log gerne auf dem gleichen Tag, also sagen wir mal um 23:55 geschrieben, sonst ist der Bezug im Plot ja falsch (der avg. Wert wird ja dann auf den Tag des Logeintrags gesehen, ist aber ja der Vortageswert)

Ich hätte das gerne wie folgt gelöst:
- separater Filelog für die average-readings aus dem Temperatursensor
- sollen geschrieben werden jeden Tag 23:55 und am Ende jeden Monats um 23:55

Habe schon das Forum durchsucht und die Commandref, finde aber nicht wirklich einen Ansatz wie ich das umsetzen kann :-(
Logfile generell definieren bekomme ich hin, das ist nicht das problem.
Aber das loggen auszulösen bekomme ich irgendwie nicht hin...

Kann mir jemand einen Gedankenanstoss geben?

Grüße
Panger
Chromebox 3 mit 16GB RAM und 128GB SSD als FHEM Instanz
10x TX29DTH, WLAN Gateway PCA301 und LaCrosse, IR Lesekopf für Stromzähler, WLAN Gateway für Onewire (Heizung)
Modbus Heizung und PV, Wetter, Abfall etc
Weiterer Ausbau: TBD

Panger1337

Hallo zusammen,

habe gestern ein paar Stunden gesucht und ausprobiert und konnte das Thema für mich lösen.

Daher, falls noch mal jemand das gleiche sucht, hier die Lösung, so wie ich das umgesetzt habe:

1. Einen Dummy anlegen

define Temp_Durchschnitt dummy
attr Temp_Durchschnitt room 0.1_Test

2. Filelog zum Dummy anlegen:

define FileLog_Temp_Durchschnitt FileLog ./log/Temp_Durchschnitt-%Y.log Temp_Durchschnitt
attr FileLog_Temp_Durchschnitt room 0.1_Test

3. ein at konfigurieren welches den Wert aus einem vorhandenen "device" nimmt und in den Dummy schreibt

define Temp_Durschnitt_andummy at *23:58:00 { my $d= ReadingsVal("Temp_Esszimmer","temperature_avg_day",0);; fhem("set Temp_Durchschnitt $d");;}
attr Temp_Durschnitt_andummy room 0.1_Test

So klappt es bei mir wunderbar, genau 23:58 wird ein Eintrag ins Filelog geschrieben.

Grüße
Panger
Chromebox 3 mit 16GB RAM und 128GB SSD als FHEM Instanz
10x TX29DTH, WLAN Gateway PCA301 und LaCrosse, IR Lesekopf für Stromzähler, WLAN Gateway für Onewire (Heizung)
Modbus Heizung und PV, Wetter, Abfall etc
Weiterer Ausbau: TBD