FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: achim60 am 31 Januar 2017, 13:07:38

Titel: on-for-timer soll nach ablauf schalten
Beitrag von: achim60 am 31 Januar 2017, 13:07:38
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


Titel: Antw:on-for-timer soll nach ablauf schalten
Beitrag 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...
Titel: Antw:on-for-timer soll nach ablauf schalten
Beitrag von: sinus61 am 31 Januar 2017, 14:00:35
Zitat von: automatisierer am 31 Januar 2017, 13:46:04
so siehts besser aus...

Nö.

Können Dummys überhaupt on-for-timer ?
Titel: Antw:on-for-timer soll nach ablauf schalten
Beitrag von: achim60 am 31 Januar 2017, 14:08:08
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



 
Titel: Antw:on-for-timer soll nach ablauf schalten
Beitrag von: achim60 am 31 Januar 2017, 14:10:41
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.
Titel: Antw:on-for-timer soll nach ablauf schalten
Beitrag von: automatisierer am 31 Januar 2017, 14:19:01
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.
Titel: Antw:on-for-timer soll nach ablauf schalten
Beitrag von: automatisierer am 31 Januar 2017, 14:22:52
den Dummy kannst du quasi auch direkt in das DOIF integrieren.
Titel: Antw:on-for-timer soll nach ablauf schalten
Beitrag 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
Titel: Antw:on-for-timer soll nach ablauf schalten
Beitrag von: automatisierer am 31 Januar 2017, 14:30:56
defmod erinnerung_timer at +00:02:00 set Sprachausgabe playTone 013

dann machs doch sofort so, kannste dir den dummy und das DOIF sparen..
Titel: Antw:on-for-timer soll nach ablauf schalten
Beitrag von: achim60 am 31 Januar 2017, 17:32:32
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>