Hi,
ich habe einen CUL an einem Raspberry im Garten hängen (wie in http://www.fhemwiki.de/wiki/CUL_ueber_Netz (http://www.fhemwiki.de/wiki/CUL_ueber_Netz) beschrieben). Nun passiert es hin und wieder (warum auch immer), dass der CUL in fhem "DISCONNECTED" ist und sich das Ganze nur durch einen Reboot des Raspi und ein anschließendes reopen des CULs in fhem zum Leben erwecken lässt. Also wollte ich die Problemlösung mit einem DOIF automatisieren: Wenn der CUL für 3600 Sekunden auf "DISCONNECTED" steht, wird der Raspi rebootet.
DEF ([CUL1] eq "disconnected") ({ reboot_raspi })
NAME DI_CUL1_disconnected
[...]
Attributes:
do resetwait
wait 3600
Ich habe mich an dem "Waschmaschine fertig" Beispiel in der Commandref orientiert und ein "do resetwait" eingefügt, da teilweise mehrmals der Raspi rebootet werden möchte, d.h. das DOIF soll nicht erst wieder laufen, wenn der CUL auf "INITIALIZED" gegangen ist, sondern zur Not stündlich rebooten, bis es wieder läuft.
Problem: Das funktioniert nicht. Der CUL war nun gerade stundenlang offline, ohne dass eine Aktion ausgelöst wurde. Warum nicht?
Anbei noch ein List auf das komplette DOIF:
Internals:
DEF ([CUL1] eq "disconnected") ({ reboot_raspi })
NAME DI_CUL1_disconnected
NR 842
NTFY_ORDER 50-DI_CUL1_disconnected
STATE cmd_1
TYPE DOIF
Readings:
2015-10-25 09:29:36 Device CUL1
2015-10-24 20:52:55 cmd_event CUL1
2015-10-24 20:52:55 cmd_nr 1
2015-10-25 09:29:36 e_CUL1_STATE Initialized
2015-10-24 20:52:55 state cmd_1
2015-10-25 09:07:36 wait_timer 25.10.2015 10:07:36 cmd_1 CUL1
Condition:
0 InternalDoIf('CUL1','STATE','') eq "disconnected"
Devices:
0 CUL1
all CUL1
Do:
0:
0 { reboot_raspi }
1:
Helper:
globalinit 1
last_timer 0
sleepdevice CUL1
sleepsubtimer 0
sleeptimer 0
Bm:
Doif_notify:
cnt 8150
dmx 0
max 11
tot 50
mAr:
HASH(0x5f74860)
HASH(0x5ee2850)
Doif_set:
cnt 18
dmx 0
mAr
max 0
tot 0
Internals:
0 CUL1:STATE
all CUL1:STATE
Itimer:
Readings:
State:
Trigger:
Attributes:
do resetwait
room Cfg_868,Cfg_Hardware
wait 3600
Danke, Christian