geöffnetes Fenster soll Aktion auslösen, geschlossenes beenden

Begonnen von andies, 10 Juni 2018, 22:56:39

Vorheriges Thema - Nächstes Thema

andies

Ich habe folgendes Problem und hätte gern einen Stupser in die richtige Richtung. Wenn das Fenster offen ist und zudem die Temperatur im Raum kleiner als X°C, dann soll alle zehn Minuten eine EMail geschickt werden. Wenn das Fenster wieder zu ist, dann soll keine Email mehr rausgehen. Das habe ich jetzt so entworfen:
defmod SchlafzimmerDoif DOIF (([Schlafzimmerfenster:state] eq "open") and ([Schlafzimmer:temperatur] < 11))
(defmod MailSchlafzimmerfensterOffen at +*00:12:00 {DebianMail("<Adresse>","Fenster offen!","Das Fenster im Schlafzimmer ist seit zwölf Minuten offen! Dort sind es jetzt ".sprintf("%.0f°C",ReadingsVal("Schlafzimmer","Temperature",""))." und das ist KALT. Bitte schließen.","/opt/fhem/www/snapshots/SchlafzimmerFensterOffen.jpg")})
DOELSEIF ([Schlafzimmerfenster:state] eq "closed") (delete MailSchlafzimmerfensterOffen)

Ist das so ok? Wenn das Gerät nicht angelegt wurde (weil die Temperatur nicht tief genug war), dann löst "delete MailSchlafzimmerfensterOffen" ja eine Fehlermeldung aus!

Ich setze zum ersten Mal ein komplexeres DOIF ein...
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

amenomade

#1
defmod SchlafzimmerDoif DOIF (([Schlafzimmerfenster:state] eq "open") and ([Schlafzimmer:temperatur] < 11)
   {DebianMail(...der Roman...)}
attr SchlafzimmerDoif repeatcmd 600
attr SchlafzimmerDoif wait 600
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

andies

Wenn das Fenster frühzeitig geschlossen wird, wird dann kein Roman gesendet?
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

amenomade

Zitat von: andies am 11 Juni 2018, 06:25:57
Wenn das Fenster frühzeitig geschlossen wird, wird dann kein Roman gesendet?
Nw. richtig, da das DOIF auf cmd_2 springen wird, und der Timer wait 600 damit abgebrochen wird.
Wenn die Temperatur wieder über 11 kommt, genauso.
Aber teste mal ;)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Per

Zitat von: amenomade am 11 Juni 2018, 10:03:26Nw. richtig, da das DOIF auf cmd_2 springen wird, und der Timer wait 600 damit abgebrochen wird.
Dafür fehlt in deinem Beispiel aber cmd_2. Also einfach DOELSE dranhängen.

Zitat von: amenomade am 11 Juni 2018, 00:36:53...der Roman...
;D ;D ;D

amenomade

#5
Nein, in DOIFs mit einziger Bedingung ohne do always braucht man kein leeres DOELSE. DOIF macht das selbst (implizit).
Aber weh tut es nicht ;)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Damian

Zitat von: amenomade am 11 Juni 2018, 12:20:36
Nein, in DOIFs mit einziger Bedingung ohne do always braucht man kein leeres DOELSE. DOIF macht das selbst (implizit).
Aber weh tut es nicht ;)

So ist es - steht auch in der Commandref. Ansonsten könnte DOIF bei solch einer Definition nur einmal schalten, weil es aus cmd1 nicht mehr herauskäme ;)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

sash.sc

Bist Du sicher dass das Reading "temperatur" und nicht "temperature" heisst? Ist Schlafzimmer ein Dummy oder device?

Gruß Sascha

Gesendet von meinem SM-T560 mit Tapatalk

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

andies

Ist ein device, HM-MOD-Sec plus angeschlossenes wemos mit DTH-22.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann