Hauptmenü

DOIF im falschen Status??

Begonnen von RockThisParty, 24 April 2018, 08:32:29

Vorheriges Thema - Nächstes Thema

Damian

Zitat von: RockThisParty am 28 April 2018, 19:13:40
So ... nun habe ich das noch mal mit komplett "frischen" devices und frischem Code getestet und kann vermelden: funktioniert. Habe wohl in den 99 probierten Varianten die funktionierende nicht erwischt  8) >:(

So jedenfalls funktioniert es:
(([test_1:state] eq "on") || ([test_2:state]))
(IF (([test_1] eq "on") and ([test_2] eq "on"))
(set Test on)
ELSE( set Test off))


Dabei sind einige Klammern überflüssig:

([test_1:state] eq "on" or [test_2:state])
(IF ([test_1] eq "on" and [test_2] eq "on")
(set Test on)
ELSE( set Test off))



Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Per

Zitat von: Damian am 24 April 2018, 09:37:56
Das wird nicht helfen, eher:
Mich würde mal interessieren, warum die Ursprungsvariante nicht geht (gehen soll)?!

Damian

Zitat von: Per am 02 Mai 2018, 11:42:01
Mich würde mal interessieren, warum die Ursprungsvariante nicht geht (gehen soll)?!

Die andere Variante geht natürlich auch, wenn man auch die anderen Kombinationen aufzählt, bei zwei Namen kann man es machen, das ergibt hier insgesamt drei Abfragen (siehe Vorschlag von Frank_Huber). Allerdings würde man bei drei oder vier Namen schnell die Übersicht der möglichen Kombination verlieren.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Frank_Huber

Zitat von: Damian am 02 Mai 2018, 14:49:27Allerdings würde man bei drei oder vier Namen schnell die Übersicht der möglichen Kombination verlieren.
Hier würde sich dann evtl ein Structure Device anbieten.

Damian

#19
Falls tiefere Hierarchien benötigt werden, würde ich es heute mit DOIF-Perl realisieren:

Bsp:

DOIF { if ([device1] eq "on") {
         if ([device2] eq "on") {
           if ([device3] eq "on") {
           ...
           }
         }
       }
     }


Alle angegebenen Devices triggern hier.

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF