FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: chq am 03 September 2018, 08:09:33

Titel: Kleine DOIF-Unterstützung
Beitrag von: chq am 03 September 2018, 08:09:33
Hallo,

ich bräuchte mal eine kleine DOIF-Unterstützung.

Bisheriger Code:

([06:20|AT]) (set HM_rolloWohnzimmer pct 77, IF ([HM_rolloEsszimmer:state] eq "closed") (set HM_rolloEsszimmer pct 100))

Ergebnis aktuell:

Um 6:20 Uhr fährt der Wohnzimmerrollo unter der Woche auf 77% und der Esszimmerrollo nur dann auf 100%, wenn dieser vorher geschlossen war.

Angestrebtes Ergebnis:

Um 6:20 Uhr soll der Wohnzimmerrollo unter der Woche nur dann auf 100% fahren, wenn [wettervorhersage:fc1_high_c] <= 22, ansonsten soll dieser nur auf 27% fahren. Zusätzlich soll der Esszimmerrollo wie bisher auch schon nur dann auf 100% fahren, wenn dieser vorher geschlossen war.

Geht das noch in ein DOIF und falls ja, wie? Speziell das Fettgedruckte bekomme ich nicht hin.

Gruß Chris
Titel: Antw:Kleine DOIF-Unterstützung
Beitrag von: Frank_Huber am 03 September 2018, 11:05:41
Esszimmer soll auch fahren wenn [wettervorhersage:fc1_high_c] > 22 ist?

ungetesteter Versuch:

([06:20|AT]) ([wettervorhersage:fc1_high_c] <= 22 set HM_rolloWohnzimmer pct 77) (IF [HM_rolloEsszimmer:state] eq "closed" set HM_rolloEsszimmer pct 100)
Titel: Antw:Kleine DOIF-Unterstützung
Beitrag von: amenomade am 03 September 2018, 11:34:47
 ([wettervorhersage:fc1_high_c] <= 22 set HM_rolloWohnzimmer pct 77)

Da fehlt etwas...
Titel: Antw:Kleine DOIF-Unterstützung
Beitrag von: chq am 03 September 2018, 12:55:01
Ich möchte das, was ich gerne erreichen würde nochmals verdeutlichen.

Folgendes soll erreicht werden:

a) Um 6:20 Uhr soll der Wohnzimmerrollo unter der Woche nur dann auf 100% fahren, wenn [wettervorhersage:fc1_high_c] <= "22", ansonsten soll dieser auf 27% fahren.

und

b) Der Esszimmerrollo soll (unabhängig von a) nur dann auf 100% fahren, wenn dieser vorher geschlossen war.

Im Zweifelsfall löse ich das Ganze halt mit zwei DOIFs.

Gruß Chris
Titel: Antw:Kleine DOIF-Unterstützung
Beitrag von: Otto123 am 03 September 2018, 15:45:07
Hi,

([06:20|AT] and [?wettervorhersage:fc1_high_c] <= 22)(set HM_rolloEsszimmer:FILTER=STATE=closed pct 100) DOELSE (set HM_rolloEsszimmer pct 27)

Oder ich habe diesen Wirrwar nicht verstanden  :o

Gruß Otto
Titel: Antw:Kleine DOIF-Unterstützung
Beitrag von: rabehd am 03 September 2018, 15:56:43
ZitatWirrwar nicht verstanden
Geht mir auch so.

Bei b) fehlt mir eine Bedingung. Ich vermute da gilt ebenso 06:20|AT.

Hier käme ich nicht auf die Idee ein DOIF zu nehmen. Da reicht doch ein AT und 2 mal Wenn-Dann.
Titel: Antw:Kleine DOIF-Unterstützung
Beitrag von: chq am 03 September 2018, 16:26:45
Richtig.

Gruß Chris

Zitat von: Otto123 am 03 September 2018, 15:45:07([06:20|AT] and [?wettervorhersage:fc1_high_c] <= 22)(set HM_rolloEsszimmer:FILTER=STATE=closed pct 100) DOELSE (set HM_rolloEsszimmer pct 27)

Da würde aber das falsche Rollo fahren. Es handelt sich aber um zwei unterschiedliche Rollos, die innerhalb eines DOIFs gesteuert werden sollen.
Titel: Antw:Kleine DOIF-Unterstützung
Beitrag von: Otto123 am 03 September 2018, 16:29:29
Zitat von: chq am 03 September 2018, 16:26:45
Richtig.

Gruß Chris
Klasse!  ::)
Titel: Antw:Kleine DOIF-Unterstützung
Beitrag von: chq am 03 September 2018, 20:33:10
So, nun sind es halt zwei DOIFs (im Vergleich zur ursprünglichen Fragestellung noch minimalst verfeinert). Ich find's gar nicht mal so schlecht, da nun jeder Rollo einzeln gesteuert wird.

Esszimmerrollo:

([06:20|AT] and [HM_rolloEsszimmer:state] eq "closed") (set HM_rolloEsszimmer pct 100)

DOELSEIF ([07:20|WE] and [HM_rolloEsszimmer:state] eq "closed") (set HM_rolloEsszimmer pct 100)

DOELSEIF ([{sunset("HORIZON=0",0,"17:00","22:00")}] and ([HM_markise:state] eq "closed" and [HM_rolloEsszimmer:control] > "68")) (set HM_rolloEsszimmer pct 59)

DOELSEIF ([22:00]) (set HM_rolloEsszimmer pct 0)


Wohnzimmerrollo:

([06:20|AT] and [wettervorhersage:fc1_high_c] <= "22") (set HM_rolloWohnzimmer pct 100)

DOELSEIF ([06:20|AT] and [wettervorhersage:fc1_high_c] > "22") (set HM_rolloWohnzimmer pct 27)

DOELSEIF ([07:20|WE] and [wettervorhersage:fc1_high_c] <= "22") (set HM_rolloWohnzimmer pct 77)

DOELSEIF ([07:20|WE] and [wettervorhersage:fc1_high_c] > "22") (set HM_rolloWohnzimmer pct 27)

DOELSEIF ([{sunset("HORIZON=0",0,"17:00","22:00")}] and [HM_rolloWohnzimmer:control] > "77") (set HM_rolloWohnzimmer pct 77)

DOELSEIF ([22:00]) (set HM_rolloWohnzimmer pct 0)


Ob sich noch ein Bug versteckt wird sich zeigen.  :)

Gruß Chris