Unknown command in DOIF aber warum?

Begonnen von Udomatic, 06 Juli 2020, 21:39:16

Vorheriges Thema - Nächstes Thema

Udomatic

Hallo,

ich habe mir folgendes DOIF WC_Regen geschrieben

([WC_Fenster] eq "open" or [WC_Fenster] eq "tilted" and [Regen_TH27:rain] > 0){fhem("set Rollo_WC go-my")}
DOELSE
([Rollo_WC] eq "go-my" and [Regen_TH27:rain] == 0){fhem("set Rollo_WC off")}


List DOIF

Internals:
   DEF        ([WC_Fenster] eq "open" or [WC_Fenster] eq "tilted" and [Regen_TH27:rain] > 0){fhem("set Rollo_WC go-my")}
DOELSE
([Rollo_WC] eq "go-my" and [Regen_TH27:rain] == 0){fhem("set Rollo_WC off")}
   FUUID      5f00ec0a-f33f-45fc-78a0-2262debcd6790d4a
   MODEL      FHEM
   NAME       WC_Regen
   NOTIFYDEV  global,WC_Fenster,Regen_TH27
   NR         479
   NTFY_ORDER 50-WC_Regen
   STATE      cmd_2
   TYPE       DOIF
   VERSION    22195 2020-06-18 16:38:55
   .attraggr:
   .attrminint:
   READINGS:
     2020-07-06 21:33:02   Device          WC_Fenster
     2020-07-06 21:33:02   cmd             2.2
     2020-07-06 21:33:02   cmd_event       WC_Fenster
     2020-07-06 21:33:02   cmd_nr          2
     2020-07-06 21:33:02   cmd_seqnr       2
     2020-07-06 21:33:02   e_WC_Fenster_STATE closed
     2020-07-06 20:54:17   mode            enabled
     2020-07-06 21:33:02   state           cmd_2
   Regex:
     accu:
     cond:
       Regen_TH27:
         0:
           rain       ^Regen_TH27$:^rain:
       WC_Fenster:
         0:
           &STATE     ^WC_Fenster$
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::InternalDoIf($hash,'WC_Fenster','STATE') eq "open" or ::InternalDoIf($hash,'WC_Fenster','STATE') eq "tilted" and ::ReadingValDoIf($hash,'Regen_TH27','rain') > 0
   do:
     0:
       0          {fhem("set Rollo_WC go-my")}
     1:
       0          [Rollo_WC] eq "go-my" and [Regen_TH27:rain] == 0
       1          {fhem("set Rollo_WC off")}
   helper:
     DEVFILTER  ^global$|^Regen_TH27$|^WC_Fenster$
     NOTIFYDEV  global|Regen_TH27|WC_Fenster
     event      battery: ok,commState: CMDs_done,contact: closed (to VCCU),closed,trigger_cnt: 153
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   WC_Fenster
     timerevent battery: ok,commState: CMDs_done,contact: closed (to VCCU),closed,trigger_cnt: 153
     triggerDev WC_Fenster
     DOIF_eventa:
       cmd_nr: 2
       cmd_seqnr: 2
       cmd_event: WC_Fenster
       cmd_2
     DOIF_eventas:
       cmd_nr: 2
       cmd_seqnr: 2
       cmd_event: WC_Fenster
       state: cmd_2
     timerevents:
       battery: ok
       commState: CMDs_done
       contact: closed (to VCCU)
       closed
       trigger_cnt: 153
     timereventsState:
       battery: ok
       commState: CMDs_done
       contact: closed (to VCCU)
       state: closed
       trigger_cnt: 153
     triggerEvents:
       battery: ok
       commState: CMDs_done
       contact: closed (to VCCU)
       closed
       trigger_cnt: 153
     triggerEventsState:
       battery: ok
       commState: CMDs_done
       contact: closed (to VCCU)
       state: closed
       trigger_cnt: 153
   internals:
     all         WC_Fenster:STATE
   readings:
     all         Regen_TH27:rain
   trigger:
   uiState:
   uiTable:
Attributes:
   do         always
   room       DOIF,WC


Im Log kommt dann aber diese Meldung
WC_Regen: open eq "go-my" and 0 == 0: Unknown command open, try help.
und ich verstehe nicht warum??
2x Raspberry 3B+, 1x Raspberry 4, Signalduino 433 (Somfy), CUL_HM (HM-MOD-RPI-PCB), MQTT, Hue, ConBee 2, Sonos, AVM DECT, Netatmo, eufy, Nuki,

amenomade

Warum der Umweg über Perl??
Statt {fhem("set Rollo_WC go-my")} kannst Du einfach (set Rollo_WC go-my)schreiben

Wegen Fehler:
DOELSE => Keine Bedingung
Wenn Du weitere Bedingungen brauchst => DOELSEIF
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Udomatic

Zitat von: amenomade am 06 Juli 2020, 21:55:52
Warum der Umweg über Perl??
Statt {fhem("set Rollo_WC go-my")} kannst Du einfach (set Rollo_WC go-my)schreiben

Dachte erst es liegt vlt. daran, dass der Code nicht in Perl geschrieben ist Wann muss ich den zwingend Code in Perl schreiben?

Zitat von: amenomade am 06 Juli 2020, 21:55:52
Wegen Fehler:
DOELSE => Keine Bedingung
Wenn Du weitere Bedingungen brauchst => DOELSEIF

Dann kann das nix werden --> Danke!
2x Raspberry 3B+, 1x Raspberry 4, Signalduino 433 (Somfy), CUL_HM (HM-MOD-RPI-PCB), MQTT, Hue, ConBee 2, Sonos, AVM DECT, Netatmo, eufy, Nuki,