FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Tedious am 25 Februar 2016, 11:11:36

Titel: [Gelöst] DOIF - mehrere Aktionen?
Beitrag von: Tedious am 25 Februar 2016, 11:11:36
Guten Morgen,

eine Frage zu den DOIFs, bei denen ich auch in der Commandref nicht ganz schlau werde. Ich habe existente DOIFs, die unter Bedingungen schalten. Z.B.:

([Familie:state] eq "gone") (set Alles_An_Aus off)

Soweit, so gut. Ich habe auch welche bei denen DOELSEIF zur Anwendung kommt:

([IT_00000FFF0F] eq "on") (set IT_11011010 on) DOELSEIF ([IT_00000FFF0F] eq "off") (set IT_11011010 off)

Prinzipiell nichts anderes als in BASIC, IF...THEN...ELSE.

Was aber wenn ich THEN-Parameter verbinden will? Ich also das DOIF um eine weitere Handlung erweitern möchte...
([Familie:state] eq "gone") (set Alles_An_Aus off)

in

([Familie:state] eq "gone") (set Alles_An_Aus off) [i]UND set Heizung desiredTemperature eco[/i]

[kursiv ohne Syntax die Erweiterung]. Wie verbinde ich das? ","? ";"?

Sicherlich ist es ganz einfach und ich stehe nur auf dem Schlauch...
Titel: Antw:DOIF - mehrere Aktionen?
Beitrag von: turo am 25 Februar 2016, 11:16:21
"," ist Dein Freund - aus der Commandref:

"Sollen mehrere FHEM-Befehle ausgeführt werden, so werden sie mit Komma statt mit Semikolon angegeben ... (set lamp1 on, set lamp2 off)"

Gruss,
turo
Titel: Antw:DOIF - mehrere Aktionen?
Beitrag von: Tedious am 25 Februar 2016, 11:30:32
Perfekt, besten Dank! Das hab ich scheinbar überlesen, obwohl ich mehrfach gestöbert habe. Danke!
Titel: Antw:[Gelöst] DOIF - mehrere Aktionen?
Beitrag von: EIB-Fan am 25 Februar 2016, 21:34:52
Hallo Tedious,

auch wenn deine Frage schon mit "gelöst" markiert ist, habe ich noch eine Bemerkung.

DOIF bietet ebenfalls die Möglichkeit die set-Befehle "optisch" zu trennen. Für mich wirkt das insgesamt übersichtlicher.

Das ist dann Geschmackssache ...

In deinem Beispiel würde das so aussehen:


([Familie:state] eq "gone")
(set Alles_An_Aus off)
(set Heizung desiredTemperature eco)



Hier könnte man auch noch mit dem Attribut "wait" arbeiten, um eine Verzögerung des 2. set-Befehls zu erziehlen (nur als Beispiel).

Viele Grüße

Jens
Titel: Antw:[Gelöst] DOIF - mehrere Aktionen?
Beitrag von: Tedious am 26 Februar 2016, 08:04:17
Danke für dem Hinweis. Macht es auf jeden Fall übersichtlich.
Titel: Antw:[Gelöst] DOIF - mehrere Aktionen?
Beitrag von: Damian am 26 Februar 2016, 08:19:23
Zitat von: Tedious am 26 Februar 2016, 08:04:17
Danke für dem Hinweis. Macht es auf jeden Fall übersichtlich.

Das schon, allerdings werden Zwischenzustände generiert, die auch Events erzeugen - das kostet zusätzliche Performance des Systems. Wenn man keine Verzögerungen zwischen den Befehlen braucht, würde ich die Befehle in einer Sequenz mit Komma angeben. Wenn es um die Übersicht geht, so kann man auch angeben:

DOIF (Bedingung)
(set bla1...,
set bla2...,
set ... )


Gruß

Damian
Titel: Antw:[Gelöst] DOIF - mehrere Aktionen?
Beitrag von: EIB-Fan am 26 Februar 2016, 10:48:09
Hallo Damian,

danke für den Performance-Hinweis.

Werde wohl meine DOIF´s jetzt entsprechend anpassen.

Viele Grüße

Jens