Autor Thema: Fenster offen -> nach 10 min. Mail  (Gelesen 20952 mal)

Offline andies

  • Tester
  • Hero Member
  • ****
  • Beiträge: 2718
Antw:Fenster offen -> nach 10 min. Mail
« Antwort #30 am: 13 November 2019, 06:23:23 »
Ich lasse die Nachricht nach einer Weile auch löschen und prüfe vorher, wie kalt es draussen ist bzw was die vorhergesagte Minimaltemperatur des Tages ist. Dann kriege ich eine Telegramnachricht die mir anbietet, mit einem Kurzbefehl (hier /o2) noch eine Mail zu versenden:
defmod BadUntenfensterMail DOIF ([BadUntenfenster:state] =~ "open" and [BresserTemeo_1:temperature]<12 and [MeinWetter:fc0_tempMax]<14) (set TelegramBot _msg Badezimmerfenster unten ist offen! mit /o2;;sleep 2;; defmod BaduntenMailWeg at +1:00:00 set TelegramBot msgDelete [TelegramBot:sentMsgId])



Gesendet von iPad mit Tapatalk Pro
FHEM 6.0 auf RaspPi3 (Raspbian:  4.19.97-v7+ ); Perl: v5.28.1
SIGNALduino (433 MHz) und HM-UART (868 MHz)
wenige Brennenstuhl-IT, Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Offline eddso

  • New Member
  • *
  • Beiträge: 27
Antw:Fenster offen -> nach 10 min. Mail
« Antwort #31 am: 13 November 2019, 22:15:29 »
Danke für die Anregungen,
die Aufgabe ist ja im Beitragnamen. Lösungen:
a) Habe zuvor mit einem watchdog für alle Fenster hantiert das Problem war das ich im <command> watchdog keine Variablen wie $DEVICE, $EVENT, usw. benutzen kann und damit nicht weis von welchem Fenster der Event kommt. Watchdog wäre eigentlich das richtige dafür.
Damit bleibt mit watchdog nur die Lösung für jedes Fenster eigenen watchdog:
define wd_Fenster_HWR watchdog Fenster_HWR:contact:.open 00:05:00 Fenster_HWR:contact:.close {
 if ( ReadingsVal('_WEATHER', 'temperature', 25) < 15 ) {
    fhem('set _TELEGRAM send @@eddso36 Das Fenster HWR ist schon seit mindestens 5 Minuten offen')
 }
}

b) Immer AT Devices anlegen ist nicht zweckmäßig.

c) DOIF kann das <command> verzögern aber falls das Fenster innerhalb der erlaubter Zeit offen ist dann wird das DOIF trotzdem ausgeführt was nicht erwünscht ist. Ich hoffe das die laufenden verzögerten DOIFs stören sich nicht untereinander da habe ich wenig Erfahrung mit. Etwa so: nach wait 5 min noch mal prüfen ob Fenster immer noch offen erst dann Senden.
defmod di_FensterStatusOpened DOIF (["^Fenster_:open"] and [_WEATHER:temperature] < 15) {
 if ( ReadingsVal($DEVICE, 'contact', 'close') eq 'open' ) {
    fhem("set _TELEGRAM send @@eddso36 Das Fenster $DEVICE ist schon seit mindestens 5 Minuten offen")
 }
}
attr di_FensterStatusOpened wait 300

Würde die Variante c) Probleme machen? Ist das $DEVICE immer vom richtigem Gerät? Fehlauslösung sehe ich nur wenn ich Fenster für 1 min öffne und nach 4 Minuten wieder für 1 Minute öffne.
Gibt es noch jemanden der es schöner gelöst hat?
MfG Edu
BananaPI+SATA SSD: Docker: fhem + alexa-fhem, zigbee2mqtt, nginx, mqtt, mysql.

Online amenomade

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5586
Antw:Fenster offen -> nach 10 min. Mail
« Antwort #32 am: 14 November 2019, 00:52:26 »
DOIF kann das <command> verzögern aber falls das Fenster innerhalb der erlaubter Zeit offen ist dann wird das DOIF trotzdem ausgeführt was nicht erwünscht ist.
Nicht wenn eine Zustandsänderung erfolgt. In dem Fall wird der Timer abgebrochen, und das Kommando nicht ausgeführt.

Das flexibelste ist warhscheinlich DOIF im Perl Modus mit set_Exec wie schon erwähnt: Du kannst genannte Timers pro Device setzen und löschen. Es gibt sogar im CommandRef ein Beispiel, was ungefähr macht, was Du möchstest: siehe "Verzögerte Fenster-offen-Meldung mit Wiederholung für mehrere Fenster"
« Letzte Änderung: 14 November 2019, 00:55:40 von amenomade »
FHEM 5.9 Pi 3, EchoDot, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Offline eddso

  • New Member
  • *
  • Beiträge: 27
Antw:Fenster offen -> nach 10 min. Mail
« Antwort #33 am: 14 November 2019, 21:04:52 »
vielen dank amenomade, das ist wirklich guter schubs an die richtige stelle. Das Teste ich mal.
MfG Edu
BananaPI+SATA SSD: Docker: fhem + alexa-fhem, zigbee2mqtt, nginx, mqtt, mysql.