Erinnerung nach 10 Minuten Fenster auf

Begonnen von Invers, 21 Juli 2014, 17:05:15

Vorheriges Thema - Nächstes Thema

mi.ke

Also ich mache einen modify auf die Zeit des watchdog, abhängig von der Aussentemperatur.

Also, wenn Aussen_Temp > 16 Grad ist die Warnung völlig disabled.
Zwischen 12° und 15° modify auf 60min
Zwischen 9° und 12° modify auf 30min
Zwischen 6° und 9° modify auf 20min
Zwischen 3° und 6° modify auf 15min
Zwischen -2° und 3° modify auf 10 min
< -2 modify auf  5 min

Und dann unterscheide ich noch zwischen gekipped und ganz offen. 8)

Allerdings treibe ich den Aufwand nur in Badezimmer, weil ich dort das Fenster dort gerne vergesse.

Die anderen Fenster sind nicht so detailiert.

FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

Hollo

Zitat von: dieda am 07 September 2015, 12:11:24
Deinen Anforderungen fehlt leider doch noch was. Es ist sicherlich nicht sinnvoll bei Temperaturen von 16 bis 20 Grad während des Heizungsbetriebs (jetzt nicht der Heizkörper in dem betroffenen Raum) das Fenster Dauerzulüften...
Ich enable/disable die Fenster-Offen-Warnung mit meinem "Heizungsstatus". Nur wenn der auf "Auto" oder "FHEM" steht, kommt eine Ansage. Im Hochsommer fand ich das sonst zu nervig.   ;D
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

FhemPiUser

ich würde gerne mit espeak sagen lassen, welches fenster zu lange offen ist. ausserdem sollte die lueftungsdauer abhaengig von der aussentemperatur sein.

ich komme wohl nicht daran herum ein watchdog pro fenster zu machen. die erlaubte lueftungsdauer wuede ich ueber eine funktion in myutils ermitteln, nur wie gebe ich eine funktion im watchdog an anstelle von timespec?

Mumpitz

@ Mi.ke:
Deine Lösung interessiert mich sehr. Würdest Du deine Lösung posten?

bergadler

Zitat von: FhemPiUser am 12 September 2015, 21:58:02
ich würde gerne mit espeak sagen lassen, welches fenster zu lange offen ist. ausserdem sollte die lueftungsdauer abhaengig von der aussentemperatur sein.
Ich habe es z.B. so gelöst:
define Bad_temp_alarm DOIF ([Hzg_Bad:measured-temp] < 17) (set nexus_webview ttsSay Das Bad hat nur noch 17 Grad. macht doch mal einer das Fenster wieder zu!)

Gruß
aktuelles FHEM auf Raspberry B+, FHEM von fhem.de V.5.7, CUL868 V1.57, (6x FHT80B+ FHTTK, div. IT,div. FS20,Harmony Hub)

mi.ke

Zitat von: Mumpitz am 12 September 2015, 23:59:53
@ Mi.ke:
Deine Lösung interessiert mich sehr. Würdest Du deine Lösung posten?



Zitat von: mi.ke am 12 September 2015, 00:51:30
Also ich mache einen modify auf die Zeit des watchdog, abhängig von der Aussentemperatur.

Also, wenn Aussen_Temp > 16 Grad ist die Warnung völlig disabled.
Zwischen 12° und 15° modify auf 60min
Zwischen 9° und 12° modify auf 30min
Zwischen 6° und 9° modify auf 20min
Zwischen 3° und 6° modify auf 15min
Zwischen -2° und 3° modify auf 10 min
< -2 modify auf  5 min

Und dann unterscheide ich noch zwischen gekipped und ganz offen.




Du brauchst einen Dummy für TempTime, in den Du bei jeder Aktualisierung der Aussentemperatur den aktuellen Wert schreibst.

Dann wird der Timespec des Watchdogs mit dem Wert des TempTime modifiziert.
modify Bad_Fenster_Status_wd OG_Fenster_Bad:(offen) ".(Value("TempTime")).";

Der Rest ist dann nur "Aktustische Meldung und Sprachausgabe an und abschalten, bei Nachtruhe oder wenn ich nicht zu Hause bin"



define Bad_Fenster_Status_wd watchdog OG_Fenster_Bad:(offen) 01:00 OG_Fenster_Bad:(geschlossen|gekippt) {
my $Minuten = (ReadingsVal("TempTime","Minuten", 0));
if ((Value("MikeHandyS4") eq "zuHause") && (Value("Nachtruhe") eq "nein"))
{fhem ("set Pushover msg  'Fenster zu lange OFFEN' 'Das Badezimmer Fenster ist länger als $Minuten Minuten bei ".(Value("Aussentemperatur"))." geöffnet' 'Mike' 1 'Siren';
modify Bad_Fenster_Status_wd OG_Fenster_Bad:(offen) ".(Value("TempTime")).";
set ASure ttsSay Das Badezimmer Fenster kann geschlossen werden ;
trigger Bad_Fenster_Status_wd . ;")
}
elsif ((Value("MikeHandyS4") eq "zuHause") && (Value("Nachtruhe") eq "ja"))
{fhem ("set Pushover msg  'Fenster zu lange OFFEN' 'Das Badezimmer Fenster ist länger als $Minuten Minuten bei ".(Value("Aussentemperatur"))." geöffnet' 'Mike' 0 'Siren';
modify Bad_Fenster_Status_wd OG_Fenster_Bad:(offen) ".(Value("TempTime")).";
trigger Bad_Fenster_Status_wd . ")};
}
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

iHome

Zitat von: mi.ke am 14 September 2015, 14:29:30

Du brauchst einen Dummy für TempTime, in den Du bei jeder Aktualisierung der Aussentemperatur den aktuellen Wert schreibst.

Dann wird der Timespec des Watchdogs mit dem Wert des TempTime modifiziert.
modify Bad_Fenster_Status_wd OG_Fenster_Bad:(offen) ".(Value("TempTime")).";

Der Rest ist dann nur "Aktustische Meldung und Sprachausgabe an und abschalten, bei Nachtruhe oder wenn ich nicht zu Hause bin"



define Bad_Fenster_Status_wd watchdog OG_Fenster_Bad:(offen) 01:00 OG_Fenster_Bad:(geschlossen|gekippt) {
my $Minuten = (ReadingsVal("TempTime","Minuten", 0));
if ((Value("MikeHandyS4") eq "zuHause") && (Value("Nachtruhe") eq "nein"))
{fhem ("set Pushover msg  'Fenster zu lange OFFEN' 'Das Badezimmer Fenster ist länger als $Minuten Minuten bei ".(Value("Aussentemperatur"))." geöffnet' 'Mike' 1 'Siren';
modify Bad_Fenster_Status_wd OG_Fenster_Bad:(offen) ".(Value("TempTime")).";
set ASure ttsSay Das Badezimmer Fenster kann geschlossen werden ;
trigger Bad_Fenster_Status_wd . ;")
}
elsif ((Value("MikeHandyS4") eq "zuHause") && (Value("Nachtruhe") eq "ja"))
{fhem ("set Pushover msg  'Fenster zu lange OFFEN' 'Das Badezimmer Fenster ist länger als $Minuten Minuten bei ".(Value("Aussentemperatur"))." geöffnet' 'Mike' 0 'Siren';
modify Bad_Fenster_Status_wd OG_Fenster_Bad:(offen) ".(Value("TempTime")).";
trigger Bad_Fenster_Status_wd . ")};
}


Könntest Du den Code für den Dummy TempTime posten? Habs versucht nachzubauen bin dabei auf folgende Frage gestossen:
Was gibst Du für einen Wert ein wenn die Temperatur aussen höher als 15° Celsius ist? Dann sollte ja der Watchdog die öffnungszeit nicht mehr prüfen. Oder versteh ich das falsch?

Im Watchdog wird die Ansage/Pushmeldung ja erst nach 1 Stunde ausgeführt und mittels Ansage dann geagt das Fenster hätte nach 10 minuten geschlossen werden sollen?
Sollte der Watchdog nicht auch mit dem TempTimer Wert als Zeit für die Ansage genommen werden?

Für das Posten des ganzen Codes wäre ich Dir dankbar auch wenn dieser Thread schon etwas älter ist  ;D
Vielen Dank


Damian

Der Thread ist über drei Jahre alt.

Hier gibt es eine Lösung für mehrere Fenster:

siehe: Verzögerte Fenster-offen-Meldung mit Wiederholung für mehrere Fenster:

https://fhem.de/commandref_DE.html#DOIF_Einfache_Anwendungsbeispiele_Perl
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF