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
Raspbian 12, Perl 5.36.0, FHEM 6.4 auf PI5
320Devices in MariaDB: Steuerung Heizkessel & Speicher, FBH, Solarthermie, kontroll. Lüftung mit WRG
HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM ESP3), MQTT2, Shelly, SMA (eC2, PV, HM, HS)
DOIF (Perl/uiTable), PID20,Micropelt IRTV, SolarForecast,

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.
Raspbian 12, Perl 5.36.0, FHEM 6.4 auf PI5
320Devices in MariaDB: Steuerung Heizkessel & Speicher, FBH, Solarthermie, kontroll. Lüftung mit WRG
HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM ESP3), MQTT2, Shelly, SMA (eC2, PV, HM, HS)
DOIF (Perl/uiTable), PID20,Micropelt IRTV, SolarForecast,

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
Raspbian 12, Perl 5.36.0, FHEM 6.4 auf PI5
320Devices in MariaDB: Steuerung Heizkessel & Speicher, FBH, Solarthermie, kontroll. Lüftung mit WRG
HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM ESP3), MQTT2, Shelly, SMA (eC2, PV, HM, HS)
DOIF (Perl/uiTable), PID20,Micropelt IRTV, SolarForecast,