FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: holle75 am 10 Juli 2019, 10:59:36

Titel: DOIF state / STATE cmd status
Beitrag von: holle75 am 10 Juli 2019, 10:59:36
Mal ganz kurz und blöd. Habe gerade DOIFs, seit vielen Jahren gewachsen, angeschaut.
Da habe ich so Sachen programmiert wie

... DOELSEIF ([?$SELF] ne "cmd_1_1" and ([?Waschhaus_TRIGGER_Luefter] eq "off" or [?$SELF] eq "cmd_2_1") and ...

wobei mir gerade auffällt, dass es im "state" wohl nur ganze Schritte (cmd_1, cmd_2, usw) geben kann?

sprich es sollte dann wohl eher

... DOELSEIF ([?$SELF:cmd] ne "1.1" ...

heißen?

Danke für euer Statement, bevor ich 10 DOIF´s umbaue

H.

ps: interessant, dass alle DOIFs meiner Meinung nach die ganze Zeit das vermeintlich Gewollte exzellent umgesetzt haben ;)

Titel: Antw:DOIF state / STATE cmd status
Beitrag von: Damian am 10 Juli 2019, 11:41:12
Zitat von: holle75 am 10 Juli 2019, 10:59:36
Mal ganz kurz und blöd. Habe gerade DOIFs, seit vielen Jahren gewachsen, angeschaut.
Da habe ich so Sachen programmiert wie

... DOELSEIF ([?$SELF] ne "cmd_1_1" and ([?Waschhaus_TRIGGER_Luefter] eq "off" or [?$SELF] eq "cmd_2_1") and ...

wobei mir gerade auffällt, dass es im "state" wohl nur ganze Schritte (cmd_1, cmd_2, usw) geben kann?

sprich es sollte dann wohl eher

... DOELSEIF ([?$SELF:cmd] ne "1.1" ...

heißen?

Danke für euer Statement, bevor ich 10 DOIF´s umbaue

H.

ps: interessant, dass alle DOIFs meiner Meinung nach die ganze Zeit das vermeintlich Gewollte exzellent umgesetzt haben ;)

Wenn du pro Zweig mehrere Sequenzen hast, z. B.: (set bla 1)(set bla 2) ..., dann gibt es aus Zwischenzustände der Art cmd_1_1. Im Reading cmd steht dann 1.1.
Titel: Antw:DOIF state / STATE cmd status
Beitrag von: holle75 am 10 Juli 2019, 12:19:42
Danke Damian .... Reading "state" zeigt bei mir "volle Werte" (cmd_1, cmd_2, usw) auch wenn zB:

cmd 1.2
cmd_nr 1
cmd_seqnr 2

state cmd_1

richtig so?
Titel: Antw:DOIF state / STATE cmd status
Beitrag von: Damian am 10 Juli 2019, 20:46:24
Zitat von: holle75 am 10 Juli 2019, 12:19:42
Danke Damian .... Reading "state" zeigt bei mir "volle Werte" (cmd_1, cmd_2, usw) auch wenn zB:

cmd 1.2
cmd_nr 1
cmd_seqnr 2

state cmd_1

richtig so?

Das wird dann der letzte Zustand einer Sequenz sein, um kompatibel zu bleiben.

Bsp:

(set bla 1) (set bla 2)(set bla 3)

cmd_1_1, cmd_1_2, cmd_1
Titel: Antw:DOIF state / STATE cmd status
Beitrag von: holle75 am 10 Juli 2019, 22:10:22
Zitat von: Damian am 10 Juli 2019, 20:46:24
Das wird dann der letzte Zustand einer Sequenz sein, um kompatibel zu bleiben.

Bsp:

(set bla 1) (set bla 2)(set bla 3)

cmd_1_1, cmd_1_2, cmd_1

Ahh, ok, aber irgendwie inkonsistent, oder nicht? Deinem Beispiel nach würde dann cmd_1_3 nie im state stehen?
Denke mal, ich baue alle DOIF´s auf :cmd um. Danke für deine Infos!
Titel: Antw:DOIF state / STATE cmd status
Beitrag von: Damian am 10 Juli 2019, 22:40:54
Zitat von: holle75 am 10 Juli 2019, 22:10:22
Ahh, ok, aber irgendwie inkonsistent, oder nicht? Deinem Beispiel nach würde dann cmd_1_3 nie im state stehen?
Denke mal, ich baue alle DOIF´s auf :cmd um. Danke für deine Infos!

Nein und zwar deswegen, damit jeder IF-Zweig einen eindeutigen Endzustand hat, egal ob mit Sequenz oder nicht.

cmd_1
cmd_2
cmd_3
usw.

Dafür ist eben das Reading cmd gedacht, um einheitlich zwischen den einzelnen Zwischenzuständen zu unterscheiden.