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

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

Vorheriges Thema - Nächstes Thema

betateilchen

Das ist eigentlich ganz einfach erklärt. FHEM kennt einen Befehl "trigger" der genau das tut, was Du möchtest: einen bestimmten event erzeugen (siehe commandref oder "help trigger")

Die Funktion CommandTrigger() ist die interne Funktion, die dabei ausgeführt wird. Das muss man als Anwender nicht wissen, aber für mich als Entwickler war es die kürzeste Lösung für die gestellte Aufgabe, ohne perl und FHEM Befehl mischen zu müssen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

chappo59

Hallo betateilchen,
danke für die Erklärung. Leider habe ich mit meiner Fragestellung das Pferd von hinten aufgezäumt :-( Was ich brauchen würde wäre, dass ich diesen Wert von 23:59 in ein eigenes, dafür neu erstelltes Logfile schreiben könnte. Nachdem ich nicht in der Lage bin diese "Profientwicklerversion" mangels Verständnis entsprechend umzuschreiben, würde ich dich bitten, mir eine, wie du sagst "perl Fhem gemischte Version" dafür zur Verfügung zu stellen. Vielleicht reicht mein Wissen dann aus diese Version zu verstehen und in Zukunft bei Bedarf auch entsprechend anzupassen und ggf. umzuschreiben.
LG Karl

Benni

Hallo Karl,

du brauchst doch jetzt nur noch ein FileLog-Device, das auf den erzeugten Event lauscht.

Also sowas hier:


define logRainDay FileLog ./log/logRainDay.log Wetterstation:rain_day.*


Wenn du wirklich nur einen Wert um 23:59 erzeugen willst kannst du den Trigger auch so anpassen , dass kein Event für ein tatsächliches Reading erzeugt wird, sondern ein beliebig benannter (hier mal der Vollständigkeit halber mit Vermischung von Perl und FHEM-Code):


define at_2359 at *23:59 { fhem('trigger Wetterstation mySpecialRainDayValue '.ReadingsVal('Wetterstation','rain_day',0)) }


Dann muss natürlich das FileLog entsprechend angepasst werden:


define logRainDay FileLog ./log/logRainDay.log Wetterstation:mySpecialRainDayValue.*


gb#

chappo59

Herzlichen Dank, funktioniert wie ich das benötige und ich glaube diese Zeilen hab ich auch verstanden, da ich damit schon ein wenig experimentiert habe. Ich bin euch allen wirklich dankbar, dass ihr einen alten Herrn aus der Analog Ära unterstützt, denn für mich sind diese Dinge nicht immer ganz einfach zu verstehen.
LG Karl