Fenster-offen-Warnung abhängig vom Ventilstatus

Begonnen von justme75, 15 Januar 2017, 18:32:13

Vorheriges Thema - Nächstes Thema

justme75

Moin moin,
ich versuche gerade, meiner in FHEM eingebundenen MAX-Heizungssteuerung etwas Zusatzintelligenz zu verpassen - u.a. hätte ich wie viele andere gerne eine Fenster-Offen-Warnung, allerdings nicht stur nach Zeitablauf, sondern dann, wenn bei offenem Fenster der Frostschutz des zugehörigen Ventils aktiv wird. Und da scheitere ich gerade schon in der Konzeptphase - je mehr ich lese, umso verwirrter werde ich, was denn nun der richtige Weg wäre, das zu implementieren, weil mir mit fhem auch absolut Erfahrung fehlt.
Meine Ideen bisher:
-ich lasse mir von dem Fensterkontakt einen Dummy setzen, der nach dem öffnen eine Zeit x wartet bis er einen Status 'offen' setzt (um dem Ventil Gelegenheit zu geben, zu schließen)
-wenn dieser Dummy im Status 'offen' steht und das assoziierte Ventil einen Positionswert !=0 annimmt, triggere eine Warnung.
Ja, und da stehe ich nun... wie verknüpft man denn am sinnvollsten Status und Event, und dann vielleicht auch noch ohne daß man alle y Sekunden eine Prüfschleife durchläuft im FHEM (sprich, vom Event getrieben)? Irgendwie hab ich da noch einen absoluten Knoten im Hirn... kann mir jemand da einen sinnvollen Tip geben?

Besten Dank im Voraus,
justme

Morgennebel

define DI_BlaBlaBla DOIF ([Positionswert] > 0 and [Fensterstatus] eq "open")
   (set Alarm)
DOELSE
   (set NoAlarm)
wait DI_BlaBlaBla 60:30

Commandref lesen...

Ciao, -MN
Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 24 Monaten

FHEM: MacMini/ESXi, 2-3 FHEM Instanzen produktiv
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT,  Homematic, Luftsensor.info, ESP8266, ESERA

pcbastler

Dein Ansatz würde vorraussetzen, dass beim Öffnen des Fensters die Heizung auf 0 steht. Ich setze bei "Fenster auf" die Temperatur am Ventil auf 5°C, das sollte als Frostschutz reichen. Falls das fenster längere Zeit offen steht müsste man beim Öffnen evtl. einen Timer starten un diesen abfragen.

justme75

Moin moin,

Zitat von: pcbastler am 15 Januar 2017, 20:09:04
Dein Ansatz würde vorraussetzen, dass beim Öffnen des Fensters die Heizung auf 0 steht. Ich setze bei "Fenster auf" die Temperatur am Ventil auf 5°C, das sollte als Frostschutz reichen. Falls das fenster längere Zeit offen steht müsste man beim Öffnen evtl. einen Timer starten un diesen abfragen.

um diesen Fall abzufangen hatte ich mit der Idee gespielt, nicht direkt den Fensterkontakt zu lesen sondern einen Dummy, der erst Zeit X nach dem Öffnen eines Fensters (und dem davon angestoßenen Schließen des Ventils, da zu diesem Zeitpunkt die Raumtemperatur ziemlich sicher über den von mir gewählten 8°C Frostschutztemperatur steht) seinen Status auf 'Open' ändert - daher kam auch meine Frage, wie man am sinnvollsten einen solchen Status und ein das Event 'Ventil !=0' verbindet...

lg, justme

justme75

Moin moin,

Zitat von: Morgennebel am 15 Januar 2017, 19:29:43
define DI_BlaBlaBla DOIF ([Positionswert] > 0 and [Fensterstatus] eq "open")
   (set Alarm)
DOELSE
   (set NoAlarm)
wait DI_BlaBlaBla 60:30

Commandref lesen...

Ciao, -MN

Thx! Die commandref zu DOIF hatte ich auch als eine von mehreren Möglichkeiten in Betracht gezogen, aber wenn ich das richtig sehe ist das ja genau die zeitgesteuerte Schleife, oder? Eigentlich hatte ich ja gehofft, das rein eventgesteuert zu realisieren - ich hab irgendwie eine Abneigung gegen zeitgesteuerte Schleifen...
Würde denn ein Ansatz mit einen notify in keinem Fall funktionieren?

lg, justme

Damian

Zitat von: justme75 am 15 Januar 2017, 21:47:59
Moin moin,

Thx! Die commandref zu DOIF hatte ich auch als eine von mehreren Möglichkeiten in Betracht gezogen, aber wenn ich das richtig sehe ist das ja genau die zeitgesteuerte Schleife, oder? Eigentlich hatte ich ja gehofft, das rein eventgesteuert zu realisieren - ich hab irgendwie eine Abneigung gegen zeitgesteuerte Schleifen...
Würde denn ein Ansatz mit einen notify in keinem Fall funktionieren?

lg, justme

Wie kommst du darauf, dass es zeitgesteuert ist? Hier wird nichts "gepollt", sondern funktioniert ereignisgesteuert, evtl. Commandref zum Modul noch mal lesen.

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

justme75

Moin moin,

Zitat von: Damian am 15 Januar 2017, 21:56:40
Wie kommst du darauf, dass es zeitgesteuert ist? Hier wird nichts "gepollt", sondern funktioniert ereignisgesteuert, evtl. Commandref zum Modul noch mal lesen.

ich würde sagen, mangelnde Erfahrung meinerseits - sprich, falsch interpretiert. Ich bin tatsächlich noch ziemlich am Anfang der Lernkurve mit fhem, und gerade der Teil rund um DOIF kam mir nochmal deutlich steiler vor als ohnehin, daher hatte ich da erstmal einen gedanklichen Bogen drumrum gemacht.
Aber es scheint sich ja der Konsens recht deutlich zu DOIF abzuzeichnen, von daher werd ich's einfach mal damit probieren.

Vielen Dank auf jeden Fall schon mal!