Aktivierbarer 1x Tagestimer

Begonnen von ChristianK., 02 April 2014, 07:37:45

Vorheriges Thema - Nächstes Thema

ChristianK.

Hallo zusammen,

vielleicht hat jemand von euch eine Idee...
Ich habe für eine Fernsehersteckdose im Kinderzimmer einen Timer definiert:

define TIMER dummy
attr TIMER alias Timer 2Std.
attr TIMER room Kinderzimmer
attr TIMER webCmd on
define TIMERAn notify TIMER:on set Fernseher on-for-timer 01:00:00
define TIMERAus notify Fernseher:off set TIMER off

Derzeit ist es eben so, wenn der Timer abgelaufen ist, drückt man nochmal auf die FB, und weiter gehts... das möchte ich verhindern...  8)
Weiss jemand ob man diesen Timer auf 1x/Tag beschränken kann, oder hat eine Idee dazu?

Viele Grüße

Christian
FHEM: 5.5 auf NUC unter Ubuntu
1x RFXTRX433, 1x CUL868_V3.4 (fw1.58)
CUL-MAX: MAX! Funk-Heizkörperthermostat, Fensterschalter
IT: 2 AB440 kompatible :-)

betateilchen

Das notify trägt im state den Zeitpunkt der letzten Ausführung. Du brauchst doch nur nachschauen, ob es "heute" (bzw. innerhalb eines gewünschten Zeitraums) schonmal getriggert wurde?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

ChristianK.

bin da wirklich ein blutiger anfänger... kannst Du mir da evtl. mit ein wenig code behilflich sein?  :-[
FHEM: 5.5 auf NUC unter Ubuntu
1x RFXTRX433, 1x CUL868_V3.4 (fw1.58)
CUL-MAX: MAX! Funk-Heizkörperthermostat, Fensterschalter
IT: 2 AB440 kompatible :-)

betateilchen

Naja, schau Dir doch mal ein notify an:

(http://up.picr.de/17844184ng.png)

Der Zeitstempel zeigt Dir an, wann das notify zum letzten Mal gestartet wurde.
Da stecken Datum und Uhrzeit drin. EIgentlich brauchst Du doch das Datum nur darauf vergleichen, ob es "heute" ist (schon war).

Alternativ kannst Du die Ausführung auch an anderen Stellen feststellen, denn jede Reading hat ja auch einen Zeitstempel, den Du mit ReadingsTimestamp() genauso abfragen kannst wie den Wert mit ReadingsVal()

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