Verständnisproblem mit Filter-Funktion im Perlmodus

Begonnen von cwagner, 06 Oktober 2019, 19:13:15

Vorheriges Thema - Nächstes Thema

cwagner

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
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

cwagner

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.
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

Damian

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

cwagner

#4
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
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB