Status von zwei Fensterkontakte an Dummy weitergeben

Begonnen von jailbreaker07, 14 Juli 2017, 16:18:33

Vorheriges Thema - Nächstes Thema

jailbreaker07

Hallo, ich steuere mit dem Modul THRESHOLD einen Entfeuchter. Jetzt möchte ich das der Entfeuchter aus geht sobald eines der beiden Fenster im Raum geöffnet wird. Mit einem Fenster ist das kein Problem. Nur zwei Fensterkontakte kann ich bei dem THRESHOLD nicht angeben. Ich wollte ich einen Dummy erstellen mit dem Name Fenster auf. Die Dummy soll eingeschaltet sein wenn eines der Fenster auf ist.

Mit dem unten stehen Code müsste es ja theoretisch bei einem Fenster funktionieren ( tut es aber nicht.....) Wenn das funktionieren würde dann würde ich versuchen den Code irgendwie auf zwei Fenster umzubasteln.... man merkt ich bin da nicht ganz so fit......


Fensterkontakt_Sch {\
if (ReadingsVal("Fensterkontakt_Sch", "state ", "open") eq "open"){\
   fhem("Fenster_Sch_auf on");;\
}else{\
   fhem("Fenster_Sch_auf off");;\
}\
}



vielen dank für eure Hilfe

Beta-User

Kennst Du das Modul structure?

Als <struct_type> "room" angeben, das sollte statt des Dummy in Verbindung mit clientstate_priority auf "open" das gewünschte Ergebnis liefern.

Gruß, Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Esjay

#2
Warum nimmst du nicht Doif?define Entfeuchter doif ([Fenster:state] eq "opened" or [Fenster2:state] eq "opened") ( set Endfeuchter on) Doelse (set Entfeuchter off)
Zumindest in der Art und weise!
Grüße

Beta-User

Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Damian

#4
Zitat von: Esjay am 14 Juli 2017, 16:24:17
Warum nimmst du nicht Doif?define Entfeuchter doif ([Fenster:state] eq "opened" or [Fenster2:state] eq "opened") ( set Endfeuchter on) Doelse (set Entfeuchter off)
Zumindest in der Art und weise!
Grüße

Wenn die Fensternamen einer bestimmten Systematik folgen, dann kann man bei DOIF inzwischen Mehrfach-Abfragen mithilfe von https://fhem.de/commandref_DE.html#DOIF_aggregation recht einfach definieren:


fenster_offen DOIF ([#"^Fenster":state:"opened"] == 2)
attr fenster_offen cmdState on|off



übersetzt heißt das, wenn die Anzahl der Devices, die mit "Fenster" im Namen beginnen und den Status "opened" haben, zwei ist, dann ist fenster_offen on sonst off.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

CoolTux

Das korrekte Modul für diese Anforderung ist Structure. Genau dafür ist es gedacht.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

jailbreaker07

Hallo,
ich habe es jetzt mit dem Modul Structure gemacht und es funtioniert so wie ich es haben wollte :-) Ich habe ja lange gegoogelt.... aber auf das Modul bin ich nicht gestoßen...

Vielen vielen dank für die schnelle Hilfe!

Kann man eigentlich in den THRESHOLD eine Einschaltverzögerung einbauen? Also wenn beide Fenster zu sind soll erst nach 5 Minuten der Entfeuchter angehen....  Aber ich glaube das währe ein neues Thema... fals ich es selber nicht hinbekomme......

Gruß

Thorsten

Damian

#7
Zitat von: jailbreaker07 am 14 Juli 2017, 21:05:19
Kann man eigentlich in den THRESHOLD eine Einschaltverzögerung einbauen? Also wenn beide Fenster zu sind soll erst nach 5 Minuten der Entfeuchter

Gruß

Thorsten

nein, das kann THRESHOLD nicht, alternativ ohne THRESHOLD


entfeuchter DOIF ([#"^Fenster":state:"opened"] == 0 and [sensor:humid] > [desired:humid]) (set entfeuchter on) DOELSE (set entfeuchter off)
attr entfeuchter wait 300:300


ohne THRESHOLD und ohne Structure - kürzer wirst du es nicht hinbekommen ;)

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