Doif Fenster offen Erkennung,mehrere Kontakte, aktl. Temp abfragen, zurücksetzen

Begonnen von D3ltorohd, 24 November 2019, 10:05:25

Vorheriges Thema - Nächstes Thema

D3ltorohd

Zitat von: amenomade am 26 November 2019, 08:42:15
Ohne do always sendet das DOIF den Befehl 1 nicht mehr, so lange der eine oder andere Sensor kein closed geschickt hat.
Aber Vorsicht:
- Fenster1 wird geöffnet: cmd1
- Fenster2 wird geöffnet: nichts
- Fenster1 wird geschlossen: cmd2!!
- Fenster1 wird wieder geöffnent: cmd1!!
- Fenster 1 wird geschlossen: cmd2!!
- Fenster 2 wird geschlossen: nichts

Mit do always: die Befehle werden ggf wiederholt (statt "nichts" hieroben, wieder cmd1 bzw cmd2)

Ich weiss nicht genau, was Du machen möchtest (habe das ganze Thread nicht gelesen), aber in dem Fall würde ich eher mit Zustände statt mit Events arbeiten:
defmod HT_Fensteroffen_Buero DOIF ([Buero_links_Sensor] eq "open" or [Buero_rechts_Sensor] eq "open") (set Buero_HT desiredTemperature off) DOELSE (set Buero_HT desiredTemperature 18) ohne do always. Somit wird nur einmal cmd1 geschickt  und nichts mehr bis beide Fenster zu.
Einfach das wait attr für den zweiten DO-Fall ergänzen

Ich möchte das das HT abschaltet wenn das Fenster geöffnet wird und wieder in den ursprünglichen Zustand vor dem lüften zurück. Dafür kann ich den Befehl set cm Heizung 1 und 0 senden. Damit steuere ich die fakeshutter contacts von Max an.

Ich werde deine Variante mal ohne do always probieren und mit eq arbeiten und schauen was passiert. Das ist wahrscheinlich die sauberste Lösung.

Erst wenn beide Kontakte Close melden soll der Befehl Fenster zu gesendet werden. Ob nun ein oder beide Fenster offen sind ist egal, der offen Befehl wird ja dann geschickt.

Das wait attr erweitern mache ich wie ? Wie kann ich das für doelse. Da gibt es noch waitend glaub hab's grad nicht im Kopf.
Base : Intel NUC Debian 9, FHEM aktuell || Zigbee (Coordinator FW Z-Stack 1.2 default Koenkk) || MaxCUL (culfw V 1.67 nanoCUL868) || SIGNALduino 433MHz (V 3.3.2.1-rc8 ) || Shelly s1

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

D3ltorohd

Zitat von: amenomade am 26 November 2019, 08:42:15
Ohne do always sendet das DOIF den Befehl 1 nicht mehr, so lange der eine oder andere Sensor kein closed geschickt hat.
Aber Vorsicht:
- Fenster1 wird geöffnet: cmd1
- Fenster2 wird geöffnet: nichts
- Fenster1 wird geschlossen: cmd2!!
- Fenster1 wird wieder geöffnent: cmd1!!
- Fenster 1 wird geschlossen: cmd2!!
- Fenster 2 wird geschlossen: nichts

Mit do always: die Befehle werden ggf wiederholt (statt "nichts" hieroben, wieder cmd1 bzw cmd2)

Ich weiss nicht genau, was Du machen möchtest (habe das ganze Thread nicht gelesen), aber in dem Fall würde ich eher mit Zustände statt mit Events arbeiten:
defmod HT_Fensteroffen_Buero DOIF ([Buero_links_Sensor] eq "open" or [Buero_rechts_Sensor] eq "open") (set Buero_HT desiredTemperature off) DOELSE (set Buero_HT desiredTemperature 18) ohne do always. Somit wird nur einmal cmd1 geschickt  und nichts mehr bis beide Fenster zu.
Einfach das wait attr für den zweiten DO-Fall ergänzen

So scheint das zu funktionieren, mit eq und ohne "do always".
In meinem Fall müsste ich das wait mit : erweitern für das doelse, oder kommt hier noch das , zum Einsatz ?

Sollte ich auch bei nur einem FK mit eq arbeiten, oder ist das nur notwendig, wenn man mehrere Kontakte hat ?
Base : Intel NUC Debian 9, FHEM aktuell || Zigbee (Coordinator FW Z-Stack 1.2 default Koenkk) || MaxCUL (culfw V 1.67 nanoCUL868) || SIGNALduino 433MHz (V 3.3.2.1-rc8 ) || Shelly s1

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

D3ltorohd

So mit mehreren Sensoren klappt das, wie kann ich nun einem weiteren HT sagen, das es schalten soll ?

defmod Fensteroffen_WZ_EZ_HT DOIF ([Wohnzimmer_li_Sensor] eq "open" or [Wohnzimmer_mi_Sensor] eq "open" or [Wohnzimmer_re_Sensor] eq "open" or [Esszimmer_Sensor] eq "open" or [Terrasse_Sensor] eq "open") (set MaxCube fakeSC WZ_HT 1) DOELSE (set MaxCube fakeSC WZ_HT 0)

Ich bräuchte gleichzeitig noch ein (set MaxCube fakeSC EZ_HT 1) und dann natürlich später ein (set MaxCube fakeSC EZ_HT 0)

mit dem attr wait komm ich auch noch nicht so klar... wait 10 klappt aber wait 10,10 oder wait 10.10 klappt irgendwie nicht. Für den ersten Befehl, funktioniert es, er wartet 10 Sekunden und schaltet erst dann, beim zumachen, macht er es aber sofort.
Base : Intel NUC Debian 9, FHEM aktuell || Zigbee (Coordinator FW Z-Stack 1.2 default Koenkk) || MaxCUL (culfw V 1.67 nanoCUL868) || SIGNALduino 433MHz (V 3.3.2.1-rc8 ) || Shelly s1

moskito

FHEM auf Intel NUC/Proxmox & Debian 12 + HM-CFG-USB + zigbee2mqtt + Zwave + Enocean

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

D3ltorohd

Ich weiß nicht warum ich auf . gekommen bin, da ich in die Commandref geschaut habe. Aber vllt mach ich schon wieder zu viel auf einmal. Ich teste mal mit :

Und wegen mehreren Befehlen, oder brauch ich dann ein extra DOIF für den anderen HT ?
Base : Intel NUC Debian 9, FHEM aktuell || Zigbee (Coordinator FW Z-Stack 1.2 default Koenkk) || MaxCUL (culfw V 1.67 nanoCUL868) || SIGNALduino 433MHz (V 3.3.2.1-rc8 ) || Shelly s1

Beta-User

Man kann sowas auch generalisieren (geht vermutlich auch mit DOIF), ich nutze dazu notify-Code: https://github.com/rejoe2/FHEM/blob/master/99_myUtils_Homematic.pm (da ist ne cref dazu drin und müßte auf MAX angepaßt werden), der allerdings gleich nach Schließen auch den "geschlossen" versendet (wieso auch nicht gleich?).
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

D3ltorohd

Zitat von: Beta-User am 08 Dezember 2019, 14:26:50
Man kann sowas auch generalisieren (geht vermutlich auch mit DOIF), ich nutze dazu notify-Code: https://github.com/rejoe2/FHEM/blob/master/99_myUtils_Homematic.pm (da ist ne cref dazu drin und müßte auf MAX angepaßt werden), der allerdings gleich nach Schließen auch den "geschlossen" versendet (wieso auch nicht gleich?).

Weil ich grad bei dem Thema bin, HT aus beim lüften. Soll das HT nicht gleich wieder an und die Heizung auf volle pulle, sondern erst mal nach ner Zeit, die Luft aklimatisiert sich ja auch wieder. War hier nur mal ne Idee von jemand anderem der das so nutzt.
Base : Intel NUC Debian 9, FHEM aktuell || Zigbee (Coordinator FW Z-Stack 1.2 default Koenkk) || MaxCUL (culfw V 1.67 nanoCUL868) || SIGNALduino 433MHz (V 3.3.2.1-rc8 ) || Shelly s1

Beta-User

Na ja, aber 10 Sek. sind dann dafür auch wieder sehr kurz.
Bei den RT-DN scheint das aber nicht so zu sein, dass da gleich voll aufgedreht wird nach der "zu"-Info...
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

D3ltorohd

Das mit den 10 Sekunden war auch erst mal nur zum Test.

Also ich weiß nicht aber nach Fenster zu springt er direkt wieder auf die soll Temp. Denke der macht dann gleich volle Pulle. Müsste ich mal ausprobieren.

So das mit dem doppelten Befehl hat sich auch erledigt. Hab de beiden HT's die gleiche groupid gegeben. Somit schalten beide mit nur einem Befehl.
Base : Intel NUC Debian 9, FHEM aktuell || Zigbee (Coordinator FW Z-Stack 1.2 default Koenkk) || MaxCUL (culfw V 1.67 nanoCUL868) || SIGNALduino 433MHz (V 3.3.2.1-rc8 ) || Shelly s1