folgende Konstellation im Code lässt fhem neu starten:

Begonnen von Invers, 28 Dezember 2022, 13:51:03

Vorheriges Thema - Nächstes Thema

Invers

Bei einem kleinen Testcode ist mir aufgefallen:

defmod DI_Kueche_anwesend DOIF ([Tuer_Kueche:"closed"] )\
    (IF ([BM_Kueche] eq "motion") (say "jemand in Küche", set DU_Kueche_Dauerlicht on))\

attr DI_Kueche_anwesend do always
attr DI_Kueche_anwesend room Wohnung->Küche
attr DI_Kueche_anwesend wait 30


Wenn hier versehentlich ein Semikolon eingegeben wird, startet fhem sofort neu:
(say "jemand in Küche"; set DU_Kueche_Dauerlicht on)

Vielleicht kann man das ja auch eleganter lösen.
Ich will eigentlich dass ein Dummy geschaltet wird, wenn zweimal oder öfter innerhalb von 30 Sekunden nach dem Türschliessen eine Bewegung erfolgt. Der Bewegungsmelder erzeugt alle 15 Sekunden ein Event. Ist halt bei Homematic etwas kompliziert.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Damian

Bei mir funktioniert alles wie programmiert ohne irgendwelche Abstürze. Es gibt natürlich eine Fehlermeldung beim Semikolon. Vermutlich hängt es mit dem say-Befehl zusammen, den ich nicht benutzt habe.

ZitatCFGFN     
   DEF        ([bla:"test4"] )
    (IF ([bla]) (set test 1; set test 2))

   FUUID      63ad67fa-f33f-c0d4-a45f-6eb6aa7af8a143fa
   MODEL      FHEM
   NAME       DI_Kueche_anwesend
   NOTIFYDEV  global,bla
   NR         227
   NTFY_ORDER 50-DI_Kueche_anwesend
   STATE      cmd_1
   TYPE       DOIF
   VERSION    26909 2022-12-27 15:21:12
   READINGS:
     2022-12-29 11:16:31   cmd             1
     2022-12-29 11:16:31   cmd_event       set_cmd_1
     2022-12-29 11:16:31   cmd_nr          1
     2022-12-29 11:16:31   error           IF ([bla]) (set test 1; set test 2): IF: no right bracket: (set test 1
     2022-12-29 11:16:09   mode            enabled
     2022-12-29 11:16:31   state           cmd_1
   Regex:
     accu:
     bars:
     collect:
     cond:
       bla:
         0:
           &STATE     ^bla$
   attr:
     cmdState:
     wait:
       0:
         30
   condition:
     0          ::EventDoIf('bla',$hash,'test4',1)
   do:
     0:
       0          IF ([bla]) (set test 1; set test 2)
     1:
   helper:
     NOTIFYDEV  global,bla
     globalinit 1
     last_timer 0
     sleeptimer -1
   trigger:
     all         bla
   uiState:
   uiTable:
Attributes:
   do         always
   room       Wohnung->Küche
   wait       30
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Invers

OK, danke. Eine Fehlermeldung habe ich nicht. Es handelt sich um einen cmdAlias. Seltsam.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2