FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Udomatic am 24 November 2019, 11:11:04

Titel: Zweite DOIF Bedingung wird nicht ausgeführt
Beitrag von: Udomatic am 24 November 2019, 11:11:04
Hallo zusammen,

folgendes DOIF habe ich erstellt, was bei Prüfung über "checkall" soweit auch funktioniert. Heute wurde aber die zweite Bedingung nicht ausgeführt.

([?rgr_Bewohner] eq "zuhause" and [?Wecker:state] eq "on" and [Wecker:weckzeit|8]) 
(set Sonos_Kueche Volume 12; set Sonos_Kueche StartFavourite FFH; set Kuhla pct 100; set Kuhla on-for-timer 5400; set Arbeitsplatte on-for-timer 5400)
DOELSEIF ([?rgr_Bewohner] eq "zuhause" and [?Wecker:state] eq "on" and [Wecker:weckzeit_we|7])
    (set Sonos_Kueche Volume 12; set Sonos_Kueche StartFavourite FFH; set Kuhla pct 100; set Kuhla on; set Arbeitsplatte on)


Liegt es am Code?

Danke für eure Hilfe!

Gruß
Udo
Titel: Antw:Zweite DOIF Bedingung wird nicht ausgeführt
Beitrag von: amenomade am 24 November 2019, 12:32:53
Ein "list" vom DOIF im "falschen" Zustand wäre gut
Titel: Antw:Zweite DOIF Bedingung wird nicht ausgeführt
Beitrag von: Udomatic am 24 November 2019, 13:42:08
Zitat von: amenomade am 24 November 2019, 12:32:53
Ein "list" vom DOIF im "falschen" Zustand wäre gut
Hier ist das List.
Internals:
   DEF        ([?rgr_Bewohner] eq "zuhause" and [?Wecker:state] eq "on" and [Wecker:weckzeit|8]) 
(set Sonos_Kueche Volume 12; set Sonos_Kueche StartFavourite FFH; set Kuhla pct 100; set Kuhla on-for-timer 5400; set Arbeitsplatte on-for-timer 5400)
DOELSEIF ([?rgr_Bewohner] eq "zuhause" and [?Wecker:state] eq "on" and [Wecker:weckzeit_we|7])
    (set Sonos_Kueche Volume 12; set Sonos_Kueche StartFavourite FFH; set Kuhla pct 100; set Kuhla on; set Arbeitsplatte on)
   FUUID      5dd8464b-f33f-45fc-79d0-3b19c1abe2419934
   MODEL      FHEM
   NAME       Fruehstueck
   NOTIFYDEV  Wecker,global
   NR         403
   NTFY_ORDER 50-Fruehstueck_Wochentags
   STATE      initialized
   TYPE       DOIF
   VERSION    20500 2019-11-12 17:54:48
   .attraggr:
   .attrminint:
   READINGS:
     2019-11-24 08:11:24   cmd             0
     2019-11-24 08:11:24   mode            enabled
     2019-11-24 08:11:24   state           initialized
   Regex:
     accu:
     cond:
       Wecker:
         0:
           weckzeit|8 ^Wecker$:^weckzeit|8:
         1:
           weckzeit_we|7 ^Wecker$:^weckzeit_we|7:
   condition:
     0          ::InternalDoIf($hash,'rgr_Bewohner','STATE') eq "zuhause" and ::ReadingValDoIf($hash,'Wecker','state') eq "on" and ::ReadingValDoIf($hash,'Wecker','weckzeit|8')
     1          ::InternalDoIf($hash,'rgr_Bewohner','STATE') eq "zuhause" and ::ReadingValDoIf($hash,'Wecker','state') eq "on" and ::ReadingValDoIf($hash,'Wecker','weckzeit_we|7')
   do:
     0:
       0          set Sonos_Kueche Volume 12; set Sonos_Kueche StartFavourite FFH; set Kuhla pct 100; set Kuhla on-for-timer 5400; set Arbeitsplatte on-for-timer 5400
     1:
       0          set Sonos_Kueche Volume 12; set Sonos_Kueche StartFavourite FFH; set Kuhla pct 100; set Kuhla on; set Arbeitsplatte on
     2:
   helper:
     DEVFILTER  ^global$|^Wecker$
     NOTIFYDEV  global|Wecker
     globalinit 1
     last_timer 0
     sleeptimer -1
   internals:
     all         rgr_Bewohner:STATE
   readings:
     all         Wecker:weckzeit|8 Wecker:weckzeit_we|7
   uiState:
   uiTable:
Attributes:
   alias      Kueche: Fruehstuecken unter Woche
   room       DOIF,Kueche


Falscher Status?
Titel: Antw:Zweite DOIF Bedingung wird nicht ausgeführt
Beitrag von: amenomade am 24 November 2019, 13:47:03
     0          ::InternalDoIf($hash,'rgr_Bewohner','STATE') eq "zuhause" and ::ReadingValDoIf($hash,'Wecker','state') eq "on" and ::ReadingValDoIf($hash,'Wecker','weckzeit|8')
     1          ::InternalDoIf($hash,'rgr_Bewohner','STATE') eq "zuhause" and ::ReadingValDoIf($hash,'Wecker','state') eq "on" and ::ReadingValDoIf($hash,'Wecker','weckzeit_we|7')


Deine Zeiteingaben werden gar nicht mal interpretiert... da sie falsch geschrieben sind

Statt[Wecker:weckzeit|8])muss man[[Wecker:weckzeit]|8])schreiben
Titel: Antw:Zweite DOIF Bedingung wird nicht ausgeführt
Beitrag von: Udomatic am 24 November 2019, 14:32:10
Zitat von: amenomade am 24 November 2019, 13:47:03
     0          ::InternalDoIf($hash,'rgr_Bewohner','STATE') eq "zuhause" and ::ReadingValDoIf($hash,'Wecker','state') eq "on" and ::ReadingValDoIf($hash,'Wecker','weckzeit|8')
     1          ::InternalDoIf($hash,'rgr_Bewohner','STATE') eq "zuhause" and ::ReadingValDoIf($hash,'Wecker','state') eq "on" and ::ReadingValDoIf($hash,'Wecker','weckzeit_we|7')


Deine Zeiteingaben werden gar nicht mal interpretiert... da sie falsch geschrieben sind

Statt[Wecker:weckzeit|8])muss man[[Wecker:weckzeit]|8])schreiben

Ahhhrgg, diese Klammern, danke für die Unterstützung!