[Gelöst] DOIF - mehrere Aktionen?

Begonnen von Tedious, 25 Februar 2016, 11:11:36

Vorheriges Thema - Nächstes Thema

Tedious

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...
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

turo

"," 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
3xRaspberry PI, Homematic, SELVE Rollos, 1-wire, Logitech Harmony, Alexa, Fussbodenheizung (ESP8266), Netatmo

Tedious

Perfekt, besten Dank! Das hab ich scheinbar überlesen, obwohl ich mehrfach gestöbert habe. Danke!
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

EIB-Fan

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

Tedious

Danke für dem Hinweis. Macht es auf jeden Fall übersichtlich.
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

Damian

#5
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
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

EIB-Fan

Hallo Damian,

danke für den Performance-Hinweis.

Werde wohl meine DOIF´s jetzt entsprechend anpassen.

Viele Grüße

Jens