FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Neelix am 17 Februar 2015, 21:22:49

Titel: Steuerung von Aktoren durch "UND"-Logik-Auswertung
Beitrag von: Neelix am 17 Februar 2015, 21:22:49
Hallo in die Runde,

ich habe mich nun auch in die FHEM-Automation gestürtzt und stehe aktuell vor einem kleinen Problem, welches ich durch die Suche hier und auch bei Google irgendwie nicht gelöst bekomme.

Zur Situation:
2 direkt nebeneinander liegende Räume (Küche, Stube) mit jeweils einer Aussentür (Haustür, Terasse) welche mit Tür-Kontakt HM-SEC-SC-2 versehen sind. Die in den Räumen befindlichen Heizungsthermostate HM_HM_CC_RT_DN werden jeweils durch einen Fensterkontakt HM-SEC-RHS gesteuert.

Das Problem:
Um beide Räume zu durchlüften nutzen wir täglich die Querlüftung in dem wir beide Türen öffnen. Wie kann ich in FHEM vorgehen, das nur wenn beide Türen gleichzeitig ("und"-Logik) geöffnet sind, beide Thermostate geschlossen werden. Die Tür-Kontakte möchte ich nicht direkt mit den Thermostaten peeren, da beide Türen täglich mehrmals von uns als Aus- und Eingang genutzt werden und somit ständig die Thermostate auf- und zufahren würden.

Ich möchte das mit FHEM steuern und suche nach den passenden Modul(en).  - Watchdoc?

FHEM läuft aktuell auf einem Synology-NAS mit HM-CFG-USB2. Da fehlt mir noch ein passendes Start-Script, da HMLAND nach einem Neustart nicht startet und ich immer über TelNet eingreifen muss.

MfG Neelix
Titel: Antw:Steuerung von Aktoren durch "UND"-Logik-Auswertung
Beitrag von: Brockmann am 18 Februar 2015, 12:42:31
Zitat von: Neelix am 17 Februar 2015, 21:22:49
Ich möchte das mit FHEM steuern und suche nach den passenden Modul(en).  - Watchdoc?
Schau Dir mal DOIF an, damit sollte sich das einfach umsetzen lassen.
Titel: Antw:Steuerung von Aktoren durch "UND"-Logik-Auswertung
Beitrag von: Hollo am 18 Februar 2015, 12:50:42
Vorschlag: Beide Kontakte in eine structure aufnehmen und diese als virtuellen Fensterkontakt mit den Thermostaten peeren.
Titel: Antw:Steuerung von Aktoren durch "UND"-Logik-Auswertung
Beitrag von: Neelix am 18 Februar 2015, 20:48:06
Hallo Brockmann,

DOIF werde ich als erstes ausprobieren. In commandref habe ich folgenden Anwendungsfall gefunden:

...
Benachrichtung beim Auslösen eines Alarms durch Öffnen eines Fensters:

define di_pushmsg DOIF ([window] eq "open" and [alarm] eq "armed") (set Pushover msg 'alarm' 'open windows [window:LastDevice]' '' 2 'persistent' 30 3600)
...

Wenn ich das richtig verstanden habe, würde ich das Bsp für meine Zwecke wie folgt abändern:

define EG_Lueften DOIF ([Kueche_Tuer] eq "open" and [WZ_Tuer] eq "open") (set Kueche_Heizung_WindowRec "open", set WZ_Heizung_WindowRec "open")

Diese Funktion sollte so funktionieren, das es egal ist, welche Tür als erstes geöffnet wird. Werden die Thermostate eigentlich wieder geöffnet, wenn eine der beiden Türen wieder geschlossen wird, also "logisch und" nicht mehr existent ist? Oder ist folgendes Attribut notwendig:

attr EG_Lueften do always

MfG Neelix
Titel: Antw:Steuerung von Aktoren durch "UND"-Logik-Auswertung
Beitrag von: Brockmann am 19 Februar 2015, 08:33:09
Damit die Heizung auch wieder angeht, sollte es komplett so aussehen:

define EG_Lueften DOIF ([Kueche_Tuer] eq "open" and [WZ_Tuer] eq "open") (set Kueche_Heizung_WindowRec open, set WZ_Heizung_WindowRec open) DOELSE (set Kueche_Heizung_WindowRec close, set WZ_Heizung_WindowRec close)

Oder was immer auch anstelle von "close" da gesetzt werden muss. Die Anführungszeichen bei den set-Anweisungen dürften zumindest überflüssig sein, vermutlich sind sie aber sogar falsch. Sie werden nur in der Bedingung für den Vergleich benötigt.

Ein do always würde ich nicht setzen.
Das DOIF wird jedes Mal getriggert, wenn sich bei einer der Türen der Status ändert. Mit do always würde bei jedem Öffnen EINER Tür die DOELSE-Aktion ausgeführt, was unnötig wäre.
Ohne do always wird das DOIF nur aktiv, wenn sich sein Zustand ändert, also ein Wechsel von DOIF zu DOELSE erfolgt. Das ist genau das, was man in Deinem Anwendungsfall möchte.
Titel: Antw:Steuerung von Aktoren durch "UND"-Logik-Auswertung
Beitrag von: Mitch am 19 Februar 2015, 08:58:08
So wird das nicht gehen, man kann das Thermostat nicht mit open schalten.

Du musst einen virtuellen Fensterkontakt anlegen, diesen mit beiden Thermostaten peeren und dann über diesen triggern.
Wie das geht, kannst Du hier nachlesen: http://www.fhemwiki.de/wiki/HM-CC-RT-DN_Funk-Heizk%C3%B6rperthermostat#Fensterkontakte

Dann kannst Du  auch den DOIF benutzten. Ich habe auch einen virtuellen, der sieht z.B. so aus:
([Haustuer2] eq "on" and [HCAutomatik] eq "demand") (set virtualHaustuer postEvent open,set d_Flur_unten.Fenster open) DOELSE (set virtualHaustuer postEvent closed,set d_Flur_unten.Fenster closed)
Titel: Antw:Steuerung von Aktoren durch "UND"-Logik-Auswertung
Beitrag von: Hollo am 19 Februar 2015, 12:47:51
Zitat von: Mitch am 19 Februar 2015, 08:58:08
...Du musst einen virtuellen Fensterkontakt anlegen, diesen mit beiden Thermostaten peeren und dann über diesen triggern...
So ziemlich genau das habe ich mit anderen Worten oben geschrieben.  ;D
Nur den Link hatte ich nicht so fix gefunden, Danke.
Titel: Antw:Steuerung von Aktoren durch "UND"-Logik-Auswertung
Beitrag von: Mitch am 19 Februar 2015, 14:21:55
Ja, aber ich bezog mich auf Brockmann, weil das eben so nicht geht.
Wollte dies nur noch mal klar stellen.
Titel: Antw:Steuerung von Aktoren durch "UND"-Logik-Auswertung
Beitrag von: Neelix am 19 Februar 2015, 20:39:07
Hallo Mitch,

ich habe anhand Deines empfohlenen Link zumindest einen funktionierenden virtuellen Türkontakt angelegt, welcher auch bei geöffneten Türen den Status "open" anzeigt.  Das peering mit den Heizungsthermostaten scheint jedoch nicht geklappt zu haben, da diese nicht reagieren.

Erst einmal vielen Dank für Hinweise in die notwendige Richtung zur Problemlösung. Ich werde mich im laufe des morgigen Tages noch einmal damit beschäftigen.
Titel: Antw:Steuerung von Aktoren durch "UND"-Logik-Auswertung
Beitrag von: Brockmann am 20 Februar 2015, 08:09:05
Zitat von: Neelix am 19 Februar 2015, 20:39:07
ich habe anhand Deines empfohlenen Link zumindest einen funktionierenden virtuellen Türkontakt angelegt, welcher auch bei geöffneten Türen den Status "open" anzeigt.  Das peering mit den Heizungsthermostaten scheint jedoch nicht geklappt zu haben, da diese nicht reagieren.
Nur als Hinweis: Die Thermostaten sind nicht die schnellsten bzw. wachen nur alle 150 oderso Sekunden für die Kommunikation auf. Bis Du im Frontend eine Reaktion der Thermostaten erkennst, kann es also etwas dauern. An den Thermostaten selbst (Display) kann man die Reaktion schon eher sehen.
Titel: Antw:Steuerung von Aktoren durch "UND"-Logik-Auswertung
Beitrag von: Mitch am 20 Februar 2015, 11:54:41
Schau mal, ob burst an ist (weiß jetzt den Register nicht aus dem Kopf).
Normalerweise wird dies beim Peering mit echten Kontakten auf on gesetzt.
Ansonsten braucht es länger (120 sec), bis das Thermostat die Info vom Kontakt bekommt.
Titel: Antw:Steuerung von Aktoren durch "UND"-Logik-Auswertung
Beitrag von: Neelix am 22 Februar 2015, 11:25:30
Hallo zusammen,

der virtuelle Türkontakt funktioniert soweit. Es lässt sich aber nur ein Thermostat peeren, welches dann auch nach meinen Vorstellungen funktioniert. Sobald ein zweites Thermostat gepeert wird läuft es auf Fehler. Es geht soweit, das die beiden physischen Türkontakte mit roter LED reagieren und die Thermostate mit "Fenster auf" stehen bleiben. Da half nur noch ein Reset.
Die Thermostate haben alle den gleichen aktuellen Software-Stand V1.4. Muss ich an einer bestimmten Stelle eventuell ein Delay einfügen, oder wo könnte der Fehler liegen?

MfG @ all Neelix