on-for-timer soll nach ablauf schalten

Begonnen von achim60, 31 Januar 2017, 13:07:38

Vorheriges Thema - Nächstes Thema

achim60

Hallo,
ich möchte mit dem Timer schalten wenn er abgelaufen ist.

<div data-type="push" data-device="erinnerung" data-set-on="on-for-timer 100" ></div>


Jedoch schaltet er beim aktivieren und nach Ablauf der 100 Sekunden passiert nichts!


Internals:
   CFGFN
   NAME       erinnerung
   NR         20357
   STATE      on-for-timer 100
   TYPE       dummy
   Readings:
     2017-01-31 12:47:48   on              0
     2017-01-31 12:59:54   state           on-for-timer 100
Attributes:
   room       Erinnerungen
   webCmd     on:off



automatisierer

ok, was willst du wo mit schalten??



was mir mal so direkt auffällt:

<div> data-type="push" data-device="erinnerung" data-set-on="on-for-timer 100" </div>

so siehts besser aus...

sinus61


achim60

Zitat von: automatisierer am 31 Januar 2017, 13:46:04
ok, was willst du wo mit schalten??



was mir mal so direkt auffällt:

<div> data-type="push" data-device="erinnerung" data-set-on="on-for-timer 100" </div>

so siehts besser aus...


Danke! Den > habe ich jetzt raus genommen.
Hier einmal was ich überhaupt vor habe. ;)


Ich möchte, wenn ich auf einen Button drücke, das ein fester Timer abläuft und dann den Dummy "erinnerung" auf on schaltet.
DOIF wertet das aus und spielt ein Ton ab.

Schalte ich den Dummy "erinnerung" per Hand auf On wird der Ton abgespielt. Nur klappt das nicht mit dem Timer :(



Internals:
   CFGFN
   DEF        ([erinnerung:"on"])(set Sprachausgabe playTone 013)

   NAME       erinnerung_schalter
   NR         20368
   NTFY_ORDER 50-erinnerung_schalter
   STATE      cmd_1
   TYPE       DOIF
   Readings:
     2017-01-31 13:50:29   Device          erinnerung
     2017-01-31 13:40:15   cmd             1
     2017-01-31 13:40:15   cmd_event       erinnerung
     2017-01-31 13:40:15   cmd_nr          1
     2017-01-31 13:50:29   e_erinnerung_events on-for-timer 30
     2017-01-31 13:40:15   state           cmd_1
   Condition:
     0          EventDoIf('erinnerung',$hash,'on',1)
   Devices:
     0           erinnerung
     all         erinnerung
   Do:
     0:
       0          set Sprachausgabe playTone 013
     1:
   Helper:
     event      on-for-timer 30
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   erinnerung
     timerevent on-for-timer 30
     triggerDev erinnerung
     timerevents:
       on-for-timer 30
     timereventsState:
       state: on-for-timer 30
     triggerEvents:
       on-for-timer 30
     triggerEventsState:
       state: on-for-timer 30
   Internals:
   Itimer:
   Readings:
   Regexp:
     0:
     All:
   State:
   Trigger:
     all         erinnerung
Attributes:
   room       Erinnerungen



 

achim60

Zitat von: sinus61 am 31 Januar 2017, 14:00:35
Nö.

Können Dummys überhaupt on-for-timer ?

ich bin Anfänger und habe deswegen auch ein dummy genommen. Wenn es mit einem anderen data-type besser geht immer her damit.

automatisierer

data-type??

also das ist die falsche Herangehensweise.

ein Dummy kann nur einen Status annehmen. Der ist prinzipiel strunz doof.

Wenn du mit einem DOIF darauf reagierst, dann muss dein DOIF halt das on-for-timer (das kann auch erinnerung in 100 Sekunden heißen - ist dem DOIF egal | oder aber nur 100 - dann könntest du damit im DOIF als Zeitwert arbeiten - aber das führt erst mal zu weit, vermute ich) erkennen und dann dem entsprechend das machen was du willst. Die gewünschte Ausführung des DOIF kannst du dann entsprechend verzögern.

Aktuell triggert dein DOIF vermutlich auch schon auf das 'on' , deswegen wird der Befehl sofort ausgeführt.

automatisierer

den Dummy kannst du quasi auch direkt in das DOIF integrieren.

sinus61

Mal ungetestet:

<div data-type="push" data-cmd="define" data-device="erinnerung_timer" data-set="at +00:02:00" data-set-on="set erinnerung on" ></div>


im Prinzip der Befehl für fhem:

define erinnerung_timer at +00:02:00 set erinnerung on

Der Timer läuft 2 Minuten und schaltet dann den dummy auf on

automatisierer

defmod erinnerung_timer at +00:02:00 set Sprachausgabe playTone 013

dann machs doch sofort so, kannste dir den dummy und das DOIF sparen..

achim60

Zitat von: sinus61 am 31 Januar 2017, 14:23:03
Mal ungetestet:

<div data-type="push" data-cmd="define" data-device="erinnerung_timer" data-set="at +00:02:00" data-set-on="set erinnerung on" ></div>


im Prinzip der Befehl für fhem:

define erinnerung_timer at +00:02:00 set erinnerung on

Der Timer läuft 2 Minuten und schaltet dann den dummy auf on

so habe ich es hinbekommen. Besten DANK. ;)
Gibt es noch eine Möglichkeit so etwas wie eine Statusanzeige für den Timer anzuzeigen, also das man sieht wie er runter zählt?
(Bei dem push veränderte sich der äußere Rand beim runter zählen)


<div> data-type="push" data-device="erinnerung" data-set-on="on-for-timer 100" </div>