ODER Verknüpfung in Abfrage und Ausführungsteil?

Begonnen von M_I_B, 23 Juli 2018, 20:25:43

Vorheriges Thema - Nächstes Thema

M_I_B

Moin Kinnaz,

habe lange nichts mehr in FHEM gemacht, bin mir sicher, das es geht, finde es aber nicht mehr und komme nicht drauf...

Folgende Situation: Mehrere MAX- Taster, durchnummeriert als MAX01, MAX02, MAX.... Die arbeiten in einer Gruppe, heißt z.B., bei zwei Tastern unten gedrückt soll Licht X toggeln.

Lange Schreibweise wäre ja z.B.:
define set_122_l2 DOIF ([MAX01] eq "closed" or [MAX02] eq "closed") (set HM4SW2_2 toggle, setstate MAX01 0, setstate MAX02 0)

Wenn das jetzt aber mehrere Taster sind und dann noch Verschränkungen hinzu kommen, wird das ein elendiger ...or ...or ...or ...or - Verhau... Doof. Ich bin aber der Meinung, das man das mit einer ODER- Verknüpfung in Form des Pipe direkt im Devicenamen machen kann. Dummerweise bekomme ich das nicht hin. Eine Variante war z.B.:
define set_122_l2 DOIF ([MAX0(1|2)] eq "closed") (set HM4SW2_2 toggle, setstate MAX01 0, setstate MAX02 0)
... oder auch ...
define set_122_l2 DOIF ([MAX0[1|2]] eq "closed") (set HM4SW2_2 toggle, setstate MAX01 0, setstate MAX02 0)
... oder auch ...
define set_122_l2 DOIF ([MAX0([1|2])] eq "closed") (set HM4SW2_2 toggle, setstate MAX01 0, setstate MAX02 0)

Irgendwie geht nix davon. Selbige Frage bezieht sich auch auf den Ausführungsteil, hier auf das "setstate"

Könnte mal bitte wer so lieb sein, mir auf die Sprünge zu helfen? Oder geht das ab FHEM xy nicht mehr?




Damian

(["MAX0(1|2):closed"]) sollte als Ereignistrigger (keine Zustandsabfrage) funktionieren.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

M_I_B

Hallo Damian,

vielen Dank für Deine schnelle Hilfe; dat tut so ;o)

Aber mal zum Verständnis:

1.
Das "?" ist die Zustandsabfrage, oder? Wenn ich das einsetze, klappt das nicht mehr...

2.
Ich hatte das irgend wann mal mit "eq" gemacht, das scheint aber nicht (mehr?) zu funktionieren?

3.
Kann man diese OR- Verknüpfung auch auf den Ausführungsteil, hier explizit auf das "setstate" verwenden?

Damian

Zitat von: M_I_B am 23 Juli 2018, 20:44:17
Hallo Damian,

vielen Dank für Deine schnelle Hilfe; dat tut so ;o)

Aber mal zum Verständnis:

1.
Das "?" ist die Zustandsabfrage, oder? Wenn ich das einsetze, klappt das nicht mehr...

2.
Ich hatte das irgend wann mal mit "eq" gemacht, das scheint aber nicht (mehr?) zu funktionieren?

3.
Kann man diese OR- Verknüpfung auch auf den Ausführungsteil, hier explizit auf das "setstate" verwenden?

Zustandsabfragen sind Angaben ohne Anführungszeichen z. B. [dummy] oder [dummy:reading] hier sind keine Regex-Angaben möglich, sie triggern (ohne ?).

["..."] sind Ereignisse und sind meistens nur wahr oder nicht wahr, deswegen wird hier kein Status mit eq o.ä. verglichen.

setstate ist ein eigener Befehl, er kann auch mit Regex umgehen, da musst du mal in der Commandref zu setstate nachschauen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

M_I_B