DOIF - Raspberry bei Fehlern neu starten

Begonnen von Motivierte linke Hände, 25 Oktober 2015, 09:51:08

Vorheriges Thema - Nächstes Thema

Motivierte linke Hände

Hi,

ich habe einen CUL an einem Raspberry im Garten hängen (wie in 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
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.