Doif für Rolladenschaltung (Twilight, Weather & ENIGMA2)

Begonnen von ThiemoSt, 27 Juni 2016, 16:31:08

Vorheriges Thema - Nächstes Thema

ThiemoSt

Hallo Zusammen,

ich habe (sehr wahrscheinlich) ein kleines Verständnissproblem.
Und zwar schalte ich zwei Rolladen abhängig von o.g. Modulen.

Wenn der Receiver VU (ENIGMA2) an ist und über Twilight fest steht das es "hell" ist soll der aktuelle Level-Stand in zwei Dummys geschrieben werden und die Rolladen runter fahren.
Wenn es zwischenzeitlich dunkel wird sollen die Rolladen wieder hoch fahren. Soweit kein Problem.
Jetzt sollen diese aber auch runterfahren wenn die Sonne auf die Haushälfte (über Twilight:azimuth) scheint und es eine Vorhersage für eine Temperatur über 15°C (über Weather) gibt.
Ebenso sollen die Rolladen hoch fahren wenn der VU ausgeschaltet wird.

Mein Doif sieht folgendermaßen aus:
([VU:state] eq "on" and [Twilight:twilight_weather] > 60) ##1
(set OG.wz.RO.FensterLinks.dum.StatusVorRunterfahren [OG.wz.RO.FensterLinks:level])
(set OG.wz.RO.FensterRechts.dum.StatusVorRunterfahren [OG.wz.RO.FensterRechts:level])
(set OG.wz.RO.FensterLinks down)
(set OG.wz.RO.FensterRechts down)
DOELSEIF
([VU:state] eq "on" and [Twilight:twilight_weather] < 60) ##2
(set OG.wz.RO.FensterLinks [OG.wz.RO.FensterLinks.dum.StatusVorRunterfahren])
(set OG.wz.RO.FensterRechts [OG.wz.RO.FensterRechts.dum.StatusVorRunterfahren])
DOELSEIF
([Twilight:azimuth] > 90 and [Wetter_Overath:fc1_high_c] > 15) ##3 
(set OG.wz.RO.FensterLinks down)
(set OG.wz.RO.FensterRechts down)
DOELSEIF
([VU:state] eq "off") ##4
(set OG.wz.RO.FensterLinks [OG.wz.RO.FensterLinks.dum.StatusVorRunterfahren])
(set OG.wz.RO.FensterRechts [OG.wz.RO.FensterRechts.dum.StatusVorRunterfahren])
##DOELSE ##5
##(set OG.wz.RO.FensterLinks up)
##(set OG.wz.RO.FensterRechts up)


Problem ist das dieser kurzzeitig auf cmd_3 springt, und dann auf cmd_4 ist.

Hier ein Auszug aus dem Log:
2016.06.27 16:20:13 3: CUL_HM set OG.wz.RO.FensterLinks off
2016.06.27 16:20:13 3: listDOIF: Gerät: RolladenFernseherAn:cmd_3_1 --> Event: cmd_nr: 3,cmd_seqnr: 1,cmd: 3.1,cmd_event: Twilight,cmd_3_1
2016.06.27 16:20:14 3: CUL_HM set OG.wz.RO.FensterRechts off
2016.06.27 16:20:14 3: listDOIF: Gerät: RolladenFernseherAn:cmd_3 --> Event: cmd_nr: 3,cmd_seqnr: 2,cmd: 3.2,cmd_event: Twilight,cmd_3
2016.06.27 16:20:14 1: General 100-0
2016.06.27 16:20:14 1: General 100-0
2016.06.27 16:20:14 1: General 100-0
2016.06.27 16:20:14 1: General 100-0
2016.06.27 16:20:28 3: CUL_HM set OG.wz.RO.FensterLinks on
2016.06.27 16:20:28 3: listDOIF: Gerät: RolladenFernseherAn:cmd_4_1 --> Event: cmd_nr: 4,cmd_seqnr: 1,cmd: 4.1,cmd_event: VU,cmd_4_1
2016.06.27 16:20:28 3: CUL_HM set OG.wz.RO.FensterRechts on
2016.06.27 16:20:28 3: listDOIF: Gerät: RolladenFernseherAn:cmd_4 --> Event: cmd_nr: 4,cmd_seqnr: 2,cmd: 4.2,cmd_event: VU,cmd_4
2016.06.27 16:20:28 1: General 9.5-0
2016.06.27 16:20:28 1: General 9.5-0
2016.06.27 16:20:29 1: General 10-0
2016.06.27 16:20:29 1: General 10-0
2016.06.27 16:20:47 1: General 100-0
2016.06.27 16:20:47 1: General 100-0
2016.06.27 16:20:47 1: General 100-0
2016.06.27 16:20:47 1: General 100-0
2016.06.27 16:25:14 3: CUL_HM set OG.wz.RO.FensterLinks off
2016.06.27 16:25:14 3: listDOIF: Gerät: RolladenFernseherAn:cmd_3_1 --> Event: cmd_nr: 3,cmd_seqnr: 1,cmd: 3.1,cmd_event: Twilight,cmd_3_1
2016.06.27 16:25:14 3: CUL_HM set OG.wz.RO.FensterRechts off
2016.06.27 16:25:14 3: listDOIF: Gerät: RolladenFernseherAn:cmd_3 --> Event: cmd_nr: 3,cmd_seqnr: 2,cmd: 3.2,cmd_event: Twilight,cmd_3
2016.06.27 16:25:14 1: General 100-0
2016.06.27 16:25:14 1: General 100-0
2016.06.27 16:25:14 1: General 98-0
2016.06.27 16:25:14 1: General 98-0
2016.06.27 16:25:33 1: General 0-0
2016.06.27 16:25:33 1: General 0-0
2016.06.27 16:25:33 1: General 0-0
2016.06.27 16:25:33 1: General 0-0
2016.06.27 16:25:43 3: CUL_HM set OG.wz.RO.FensterLinks on
2016.06.27 16:25:43 3: listDOIF: Gerät: RolladenFernseherAn:cmd_4_1 --> Event: cmd_nr: 4,cmd_seqnr: 1,cmd: 4.1,cmd_event: VU,cmd_4_1
2016.06.27 16:25:43 3: CUL_HM set OG.wz.RO.FensterRechts on
2016.06.27 16:25:43 3: listDOIF: Gerät: RolladenFernseherAn:cmd_4 --> Event: cmd_nr: 4,cmd_seqnr: 2,cmd: 4.2,cmd_event: VU,cmd_4
2016.06.27 16:25:43 1: General 0-0
2016.06.27 16:25:43 1: General 0-0
2016.06.27 16:25:43 1: General 0-0
2016.06.27 16:25:43 1: General 0-0
2016.06.27 16:26:03 1: General 100-0
2016.06.27 16:26:03 1: General 100-0
2016.06.27 16:26:04 1: General 100-0
2016.06.27 16:26:04 1: General 100-0


Eventuell kann mir ja jemand schnell auf die Sprünge helfen wo ich den Fehler suchen sollte.

Danke!
FHEM, Ubuntu unter Proxmox (NUCi7)
FHT80B; CUL_FHTTK; HMUARTLGW; HUE; Netatmo; ENIGMA2; FRITZBOX; S7 und viele weitere.

Ellert

ZitatProblem ist das dieser kurzzeitig auf cmd_3 springt, und dann auf cmd_4 ist.

Wie sollte es richtigerweise schalten?

ThiemoSt

Ja die Info ist wohl sehr wichtig  >:(

Da die Bedingungen für cmd_3 wahr sind erwarte ich eigentlich das es dort bleibt. Warum dies nun teilweise "übersprungen" wird ist mir nicht klar.
Die Bedingung für cmd_4 war zu dem Zeitpunkt auch war, allerdings steht das im Ablauf ja dahinter und sollte ignoriert werden oder?
FHEM, Ubuntu unter Proxmox (NUCi7)
FHT80B; CUL_FHTTK; HMUARTLGW; HUE; Netatmo; ENIGMA2; FRITZBOX; S7 und viele weitere.

Ellert

Zitat2016.06.27 16:20:13 3: listDOIF: Gerät: RolladenFernseherAn:cmd_3_1 --> Event: cmd_nr: 3,cmd_seqnr: 1,cmd: 3.1,cmd_event: Twilight,cmd_3_1
Hier triggert Twilight und danach triggert VU
Zitat2016.06.27 16:20:28 3: listDOIF: Gerät: RolladenFernseherAn:cmd_4_1 --> Event: cmd_nr: 4,cmd_seqnr: 1,cmd: 4.1,cmd_event: VU,cmd_4_1
insofern hat das DOIF keinen Grund bei cmd_3 stehen zu bleiben.

Du könntest die Events bei VU mit dem Attribut event-on-change-reading auf Zustandswechsel einschränken, siehe http://fhem.de/commandref.html#attributes unter readingFnAttributes