FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: cwagner am 06 Oktober 2019, 19:13:15

Titel: Verständnisproblem mit Filter-Funktion im Perlmodus
Beitrag von: cwagner am 06 Oktober 2019, 19:13:15
Aus der Command_Ref. habe ich das Beispiel mit dem :FILTER=STATE!=ON  erfolgreich nachgebaut, um bei einem zyklisch sendenden Sensor mehrfaches Schalten zu vermeiden. Das funktioniert bei einem fhem_set("Switch_Pumpe:FILTER=STATE!=ON ON") perfekt.

Bei einem anderen Device ist der Set-Befehl dreigliedrig und ich kann nicht den Status verweneden. Deswegen dachte ichfhem_set("Switch_Heizkeller output Brenner:FILTER=Brenner!=ON ON" hätte ich richtig interpretiert. Gesendet werden soll fhem_set("Switch_Heizkeller output Brenner ON") wenn das Reading im Device mit dem Status des Schalters Brenner heißt. Auch  fhem_set("Switch_Heizkeller Brenner output:FILTER=Switch_Heizkeller:Brenner!=ON ON) funktioniert nicht.

Eigentlich fand ich die Methode im Vergleich zu einem if-Konstrukt sehr elegant, aber offenbar habe ich sie noch nicht richtig verstanden.

Hat jemand einen hilfreichen Tipp?

Danke im Voraus
Christian
Titel: Antw:Verständnisproblem mit Filter-Funktion im Perlmodus
Beitrag von: amenomade am 06 Oktober 2019, 19:20:02
"on" oder "ON"?
Titel: Antw:Verständnisproblem mit Filter-Funktion im Perlmodus
Beitrag von: cwagner am 06 Oktober 2019, 19:41:22
Zitat von: amenomade am 06 Oktober 2019, 19:20:02
"on" oder "ON"?

Danke, habe die Ungenauigkeit korrigiert, es hat auch bei meinen Versuchen ON geheißen.
Titel: Antw:Verständnisproblem mit Filter-Funktion im Perlmodus
Beitrag von: Damian am 06 Oktober 2019, 22:10:55
Was funktioniert oder was nicht, würde ich in der Kommandozeile per set-Befehl testen. Beim Filter habe ich keine Karten im Spiel.

Wenn es in der Kommandozeile per set-Befehl funktioniert, dann sollte es auch per fhem_set funktionieren.
Titel: Antw:Verständnisproblem mit Filter-Funktion im Perlmodus
Beitrag von: cwagner am 07 Oktober 2019, 06:04:46
Ah, danke, Damian, ist also eine von mir übersehene Grundfunktionalität im FHEM und keine Spezialität von DOIF.
Da arbeite ich mal die 16 Fundstellen in der Command_Ref durch.

Und damit ist klar: Der Filterausdruck gehört hinter das Device, dann funktioniert es:

set Switch_Heizkeller:FILTER=Brenner=ON output F OFF

Christian