[GELÖST] DOIF mit zwei Bedingungen

Begonnen von BeJott, 18 September 2018, 13:13:52

Vorheriges Thema - Nächstes Thema

BeJott

Hallo zusammen,

ich habe ein Problem mit einem DOIF/DOELSEIF mit verUNDeter Bedingung.

Ich möchte, wenn der Homestatus auf "Nacht" (=2) wechselt UND mein Kind nicht zuhause ist (Variable KIND = "abwesend"), dass alle Lampen ausgehen, außer denen im Flur, Wohnzimmer und Schlafzimmer.
Wenn die Variable "KIND" auf "anwesend" steht, möchte ich zusätzlich das Kinderzimmer Licht anlassen.

Der folgende Code funkitioniert immer genau einmal, nach Initialisierung, danach nicht mehr.
([dummy.STATUS] eq "2" and [KIND] eq "abwesend")
   (set dummy.NIGHT on)
   (set bazi.Lampe1|kch.Lampe1|kizi.Lampe1|dummy.AWAY|dummy.HOME|dummy.HOLI off)
   (set flr.Lampe1|wozi.Lampe1|slzi.Lampe2 pct 50)
DOELSEIF
([dummy.STATUS] eq "2" and [KIND] eq "anwesend")
   (set dummy.NIGHT on)
   (set bazi.Lampe1|kch.Lampe1|dummy.AWAY|dummy.HOME|dummy.HOLI off)
   (set kizi.Lampe1|flr.Lampe1|wozi.Lampe1|slzi.Lampe2 pct 50)


Gibt es bei FHEM DOIF eine Syntax, um eine IF-Anweisung zu beenden, ähnlich wie bei C "end if" oder ähnliches?

Oder erkennt jemand, was ich falsch mache?

Vielen Dank im Voraus!

Gruß
Thomas

pc1246

Moin
Ein list Deines DOIF waere hilfreicher, als der Ausschnitt!
Wann moechtest du denn die Lampen wieder an, bzw. aus, machen?
Gruss Christoph
HP T610
Onkyo_AVR;Enigma2; SB_Server; SB_Player; HM-USB; PhilipsTV; harmony hub; Jeelink mit PCA301; Somfy; S7-300; LGW; HUE; HM-IP auf Charly; div

BeJott

Mahlzeit!

Was genau meinst du mit "ein list deines DOIF"?

Die Lichter mache ich nach Bedarf manuell an.

Gruß
Thomas

kumue

in der GUI oder auf der Console eingeben:
list <NAME_DEINES_DOIF>

BeJott

Internals:
   DEF        ([dy.STATUS] eq "2" and [dy.KIND] eq "abwesend")
   (set dy.NIGHT on)
   (set bz.Lampe1|kc.Lampe1|kizi.Lampe1|dy.AWAY|dy.HOME|dy.HOLI off)
   (set fr.Lampe1|wz.Lampe1|sz.Lampe2 pct 50)
DOELSEIF
([dy.STATUS] eq "2" and [dy.KIND] eq "anwesend")
   (set dy.NIGHT on)
   (set bz.Lampe1|kc.Lampe1|dy.AWAY|dy.HOME|dy.HOLI off)
   (set kizi.Lampe1|fr.Lampe1|wz.Lampe1|sz.Lampe2 pct 50)
   MODEL      FHEM
   NAME       s.NIGHT
   NR         57
   NTFY_ORDER 50-s.NIGHT
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2018-09-18 11:32:05   Device          dy.STATUS
     2018-09-14 12:28:13   cmd             1.3
     2018-09-14 12:28:13   cmd_event       dy.STATUS
     2018-09-14 12:28:13   cmd_nr          1
     2018-09-14 12:28:13   cmd_seqnr       3
     2018-09-16 19:04:18   e_dy.KIND_STATE off
     2018-09-18 11:32:05   e_dy.STATUS_STATE 3
     2018-09-14 12:28:06   mode            enabled
     2018-09-14 12:28:13   state           cmd_1
   Regex:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          InternalDoIf($hash,'dy.STATUS','STATE') eq "2" and InternalDoIf($hash,'dy.KIND','STATE') eq "abwesend"
     1          InternalDoIf($hash,'dy.STATUS','STATE') eq "2" and InternalDoIf($hash,'dy.KIND','STATE') eq "anwesend"
   devices:
     0           dy.STATUS dy.KIND
     1           dy.STATUS dy.KIND
     all         dy.STATUS dy.KIND
   do:
     0:
       0          set dy.NIGHT on
       1          set bz.Lampe1|kc.Lampe1|kizi.Lampe1|dy.AWAY|dy.HOME|dy.HOLI off
       2          set fr.Lampe1|wz.Lampe1|sz.Lampe2 pct 50
     1:
       0          set dy.NIGHT on
       1          set bz.Lampe1|kc.Lampe1|dy.AWAY|dy.HOME|dy.HOLI off
       2          set kizi.Lampe1|fr.Lampe1|wz.Lampe1|sz.Lampe2 pct 50
     2:
   helper:
     event      3
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   dy.STATUS
     timerevent 2
     triggerDev
     DOIF_eventas:
       cmd_nr: 1
       cmd_seqnr: 3
       cmd_event: dy.STATUS
       state: cmd_1
     timerevents:
       2
     timereventsState:
       state: 2
     triggerEvents:
       3
     triggerEventsState:
       state: 3
   internals:
     0           dy.STATUS:STATE dy.KIND:STATE
     1           dy.STATUS:STATE dy.KIND:STATE
     all         dy.STATUS:STATE dy.KIND:STATE
   itimer:
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:
   alias      do.NIGHT
   room       0.2 - DOIF



BeJott

@TomLEE: Vielen Dank, "do always" hat mein Problem gelöst.

Gruß
Thomas