Hallo zusammen,
mal wieder eine Anfängerfrage von mir:
Ich habe mir einen Dummy gebaut der meinen HM-USB-Adapter in den Pair-Zustand versetzen soll.
define HMUSB_ADD dummy
attr HMUSB_ADD room CUL_HM
attr HMUSB_ADD webCmd 60secPair
define HMUSB_ADDon notify HMUSB_ADD:60secPair set HMUSB hmPairForSec 60
Wie kann ich jetzt einen Timer einbauen der mir einen Countdown von 60 Sekunden abwärts anzeigt, wie lange der HM-USB noch im Pairmodus ist, nachdem ich den Dummy ausgelöst habe?
Grüße, Manu
Ein Reading des dummys per at jede Sekunde aktualisieren. Sollte einfach sein. Ein klein wenig Perl wird aber nötig sein.
Hab mir sowas mal als Überwachung für eine zu lange Öffnung gebaut:
Ein Dummy
Internals:
NAME rolltor
NR 1104
STATE 03:00
TYPE dummy
Readings:
2016-05-18 12:18:56 open-since 180
2016-05-18 12:18:56 open-since-h 03:00
2016-05-18 12:18:56 state closed
Attributes:
stateFormat open-since-h
webCmd open:closed
Ein DOIF
Internals:
DEF ([rolltor:"open$"])(
sleep 0.001; setreading rolltor open-since {([rolltor:open-since] - 1)},
sleep 0.001; setreading rolltor open-since-h {(sprintf("%02d:%02d",(gmtime([rolltor:open-since] - 1))[1,0]))}
)
DOELSEIF
([rolltor:"closed$"])(
setreading rolltor open-since 180,
setreading rolltor open-since-h 03:00
)
DOELSEIF
([rolltor:open-since] == 0)(
set rolltor sabotage,
setreading rolltor open-since 180
)
NAME rolltor_DOIF
NR 1105
NTFY_ORDER 50-rolltor_DOIF
STATE cmd_2
TYPE DOIF
Readings:
2016-05-18 12:18:56 Device rolltor
2016-05-18 12:18:56 cmd 2
2016-05-18 12:18:56 cmd_event rolltor
2016-05-18 12:18:56 cmd_nr 2
2016-05-18 12:18:56 e_rolltor_events closed
2016-05-18 12:18:56 e_rolltor_open-since 178
2016-05-18 12:18:56 state cmd_2
2016-05-18 12:18:56 wait_timer no timer
Condition:
0 EventDoIf('rolltor',$hash,'open$',1)
1 EventDoIf('rolltor',$hash,'closed$',1)
2 ReadingValDoIf($hash,'rolltor','open-since','','',AttrVal($hash->{NAME},'notexist',undef)) == 0
Devices:
0 rolltor
1 rolltor
2 rolltor
all rolltor
Do:
0:
0 sleep 0.001; setreading rolltor open-since {([rolltor:open-since] - 1)}, sleep 0.001; setreading rolltor open-since-h {(sprintf("%02d:%02d",(gmtime([rolltor:open-since] - 1))[1,0]))}
1:
0 setreading rolltor open-since 180, setreading rolltor open-since-h 03:00
2:
0 set rolltor sabotage, setreading rolltor open-since 180
Helper:
globalinit 1
last_timer 0
sleeptimer -1
Itimer:
Readings:
2 rolltor:open-since
all rolltor:open-since
Regexp:
All:
State:
Trigger:
all rolltor
Attributes:
repeatcmd 1
super, das probier ich gleich mal aus ;)
dankeschön
ZitatWie kann ich jetzt einen Timer einbauen der mir einen Countdown von 60 Sekunden abwärts anzeigt, wie lange der HM-USB noch im Pairmodus ist, nachdem ich den Dummy ausgelöst habe?
hoffentlich vermasselt dir der countdown nicht das timing beim pairen. ;)
falls dir die zeit zu kurz ist, einfach auf zb 3600s setzen und noch gemütlich einen kaffee kochen.