Event einfach zu bestimmten Zeiten erzeugen: event-on-date?

Begonnen von FhemPiUser, 09 August 2015, 10:06:11

Vorheriges Thema - Nächstes Thema

FhemPiUser

Hallo,

kann man ein event für ein filelog auch zu bestimmten Zeiten erzeugen? Nett wäre eine Art event-on-date.

Use Case: Ich habe avg Werte mit dem Modul statistics erzeugt und möchte diese in ein Filelog schreiben. Es macht aber nur Sinn die Werte am Ende einer Periode zu loggen (z.B. Tageswerte täglich um 23:59 Uhr etc). Momentan mache ich das indem ich mit einem at um 23:59 Uhr den Wert in ein dummy schreibe und diesen dann mit event-on-change in ein filelog, aber das würde einfacher gehen mit einem event-on-date...

Puschel74

Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

FhemPiUser

Welches Modul ist das? addLog finde ich nicht in der commandref.

Puschel74

#3
addLog ist auch kein FHEM-Modul.
Im Wiki wirst du aber fündig.  ;)
http://www.fhemwiki.de/wiki/Plot-Abriss_vermeiden
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

FhemPiUser

ok, mit addlog kann ich log-einträge generieren. aber wie verhindere ich, dass er sonst keine logeinträge vornimmt? ich will ja nur zum ende der periode (z.b. täglich 23:59 uhr) loggen.

marvin78

Das kannst du einfach mit einem eigenen Reading machen. Du erstellst dieses reading per setreading zu dieser Uhrzeit und lässt nur dieses loggen (Regex etc.).

Zrrronggg!

Wow, das ist mal ne gute Idee. Da fällt mir auch gleich was ein, was ich damit lösen kann.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

FhemPiUser

#7
ok, das habe ich ja bisher genau so gemacht (nur mit dummy), aber ich hatte gehofft es gibt eine simplere lösung, da ich das häufiger brauche. würde ein neues attribut wie z.b. event-on-date nicht sinn machen?

oder besser ein event-at mit einer at-zeitangabe (z.b. *23:59)

Ellert

Könnte man das mit dem Attribut event-min-interval und reading:86400 machen, wenn es um 23:59 gesetzt wird?

marvin78

Warum nicht einfach ein at mit setreading? Das ist doch deutlich unkomplizierter.

chappo59

ZitatDas kannst du einfach mit einem eigenen Reading machen. Du erstellst dieses reading per setreading zu dieser Uhrzeit und lässt nur dieses loggen (Regex etc.).

Ich habe das gleiche Problem. Kann mir jemand erklären, wie man das mit setreading genau macht? Ich möchte ja um 23:59 den aktuellen Wert verwenden und mit setreading kann ich ja nur einen eigenen Wert definieren, oder gibt es dafür eine mir nicht bekannte Lösung?

marvin78

Hier ging es um einen dummy. Da kann man mit set oder setreading arbeiten. Ein reading kann man per setreading (siehe commandref) jederzeit setzen. Bei Hardware-Devices wäre ich da vorsichtig. Aber es ist ja kein Problem userReadings oder eigene Readings zusätzlich zu loggen. Dein Stichwort ist dann sicher noch ReadingsVal().

chappo59

Hallo,
um mein Problem noch einmal zu erklären. Ich möchte täglich um 23:59:00 den Wert des Readings "rain_day" von meinem Device "Wetterstation" in mein dazugehöriges (oder von mir aus auch eigenes) Logfile schreiben.
Vermutlich ganz einfach aber ich habs leider nicht drauf :-(

betateilchen

Es geht doch nur darum, einen Event zu erzeugen, nicht um das Setzen eines readings...


define at_2359 at *23:59 { CommandTrigger(undef,"Wetterstation rain_day ".ReadingsVal('Wetterstation','rain_day',0)) }

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

chappo59

#14
DANKE!
Funktioniert perfekt. So, jetzt werde ich diese Zeile mal genau "untersuchen", damit ich sie letztendlich dann auch verstehe.
LG Karl