LAN-Anbindung für Lüftung Zehnder ComfoD

Begonnen von Accureve, 31 Januar 2021, 21:35:52

Vorheriges Thema - Nächstes Thema

Accureve

Hallo,
ich habe die Lüftung ComfoD 350 von Zehnder im Einsatz, die ich über einen Arduino an FHEM angebunden habe mit den folgenden Funktionen:

  • Auslesen der Parameter der Lüftung
  • Setzen von Parametern der Lüftung (aktuell nur Setzen der Lüftungsstufe implementiert)
  • Reduktion der Lüftungsstufe bei schlechter Außenluft (z.B. schlechte Holzheizungen in der Umgebung)
  • Senden von Werten an MQTT Broker
  • Empfang von Befehlen über MQTT

Da wir unser Haus in einem Wohngebiet mit vielen Holzheizern haben (die keine Ahnung was zum Heizen nutzen) kam es öfter dazu, dass es durch die angesaugte Luft im ganzen Haus stank.
Daher habe ich das Comfo-LAN Interface umgesetzt und mit einen Luftgütesensor ausgestattet, den ich im Zuluftkanal hinter den Filtern platziert habe.
Bei schlechter Luft reduziert er die Lüftungsstufe bis zum kompletten Stillstand und prüft regelmäßig ob sich die Luftqualität gebessert hat - dann wird wieder die ursprüngliche Stufe gesetzt.
Funktioniert bei mir wunderbar :-)

Im Gäste WC habe ich zudem einen Präsenzmelder eingebaut, der ab einer eingestellten Zeit über FHEM die Lüftungsstufe für 5 min auf volle Stufe setzt.

Da das Auslesen der Parameter aus der Lüftung eine kurze Zeit braucht, habe ich zudem MQTT implementiert, sodass die Parameter bequem empfangen werden können. Die von Comfo-LAN zu sendenden Parameter lassen sich genauso wie das Sendeintervall einstellen.

Anbei die Definitionen zur Einbindung als HTTPMOD:
defmod Lueftung HTTPMOD http://192.168.178.11/2/4/10/20 120
attr Lueftung userattr set01NoArg:0,1 set02NoArg:0,1 set03NoArg:0,1 set04NoArg:0,1 set05Name set05NoArg:0,1 set05URL
attr Lueftung enableControlSet 1
attr Lueftung icon vent_ventilation_level_0
attr Lueftung reading01Name Bypass
attr Lueftung reading01Regex Bypass: ([0-9]*) %
attr Lueftung reading02Name Stufe
attr Lueftung reading02Regex Stufe aktuell: [0-9] - [a-zA-Z]* \(([0-9])
attr Lueftung reading03Name Aussenluft
attr Lueftung reading03Regex Aussenluft: ([0-9]*.[0-9]*) °C
attr Lueftung reading04Name Zuluft
attr Lueftung reading04Regex Zuluft: ([0-9]*.[0-9]*) °C
attr Lueftung reading05Name Abluft
attr Lueftung reading05Regex Abluft: ([0-9]*.[0-9]*) °C
attr Lueftung reading06Name Fortluft
attr Lueftung reading06Regex Fortluft: ([0-9]*.[0-9]*) °C
attr Lueftung reading07Name Betriebsstunden1
attr Lueftung reading07Regex Stufe 1: ([0-9]*) h
attr Lueftung reading08Name Betriebsstunden2
attr Lueftung reading08Regex Stufe 2: ([0-9]*) h
attr Lueftung reading09Name Betriebsstunden3
attr Lueftung reading09Regex Stufe 3: ([0-9]*) h
attr Lueftung reading10Name BetriebsstundenFilter
attr Lueftung reading10Regex Filter: ([0-9]*) h
attr Lueftung reading11Name BetriebsstundenBypass
attr Lueftung reading11Regex Bypass offen: ([0-9]*) h
attr Lueftung reading12Name BetriebsstundenVorheizung
attr Lueftung reading12Regex Vorheizung: ([0-9]*) h
attr Lueftung reading13Name BetriebsstundenAbwesend
attr Lueftung reading13Regex Stufe 0: ([0-9]*) h
attr Lueftung room Lueftung
attr Lueftung set01Name StufeAbwesend
attr Lueftung set01NoArg 1
attr Lueftung set01URL http://192.168.178.11/S153=1
attr Lueftung set02Name Stufe1
attr Lueftung set02NoArg 1
attr Lueftung set02URL http://192.168.178.11/S153=2
attr Lueftung set03Name Stufe2
attr Lueftung set03NoArg 1
attr Lueftung set03URL http://192.168.178.11/S153=3
attr Lueftung set04Name Stufe3
attr Lueftung set04NoArg 1
attr Lueftung set04URL http://192.168.178.11/S153=4
attr Lueftung stateFormat S:Stufe Z:Zuluft Ab:Abluft Au:Aussenluft B:Bypass
attr Lueftung timeout 10


MQTT:
defmod MQTT2_ComfoD_LAN MQTT2_DEVICE Comfo_LAN
attr MQTT2_ComfoD_LAN IODev MqttServer
attr MQTT2_ComfoD_LAN readingList Comfo_LAN:Comfo-LAN/Klappenstatus/Bypass:.* Bypass\
Comfo_LAN:Comfo-LAN/Ventilationsstufen/Stufe_aktuell:.* Stufe_aktuell\
Comfo_LAN:Comfo-LAN/Temperaturstatus/T1_-_Aussenluft:.* T1_-_Aussenluft\
Comfo_LAN:Comfo-LAN/Temperaturstatus/T2_-_Zuluft:.* T2_-_Zuluft\
Comfo_LAN:Comfo-LAN/Temperaturstatus/T3_-_Abluft:.* T3_-_Abluft\
Comfo_LAN:Comfo-LAN/Temperaturstatus/T4_-_Fortluft:.* T4_-_Fortluft\
Comfo_LAN:Comfo-LAN/Betriebsstunden/Stufe_0:.* Stufe_0\
Comfo_LAN:Comfo-LAN/Betriebsstunden/Stufe_1:.* Stufe_1\
Comfo_LAN:Comfo-LAN/Betriebsstunden/Stufe_2:.* Stufe_2\
Comfo_LAN:Comfo-LAN/Betriebsstunden/Vorheizung:.* Vorheizung\
Comfo_LAN:Comfo-LAN/Betriebsstunden/Bypass_offen:.* Bypass_offen\
Comfo_LAN:Comfo-LAN/Betriebsstunden/Filter:.* Filter\
Comfo_LAN:Comfo-LAN/Betriebsstunden/Stufe_3:.* Stufe_3\
Comfo_LAN:Comfo-LAN/Air_Quality_Sensor/Sensor_Status:.* Sensor_Status\
Comfo_LAN:Comfo-LAN/Air_Quality_Sensor/CO2:.* CO2\
Comfo_LAN:Comfo-LAN/Air_Quality_Sensor/TVoCs:.* TVoCs\
Comfo_LAN:Comfo-LAN/Air_Quality_Sensor/Widerstand:.* Widerstand\
Comfo_LAN:Comfo-LAN/Betriebsstunden/Frostschutz:.* Frostschutz\
Comfo_LAN:Comfo-LAN/Stufe_2/Stufe_2:.* Stufe_2\
attr MQTT2_ComfoD_LAN room MQTT2_DEVICE
attr MQTT2_ComfoD_LAN setList StufeAbwesend:noArg fhem/Comfo-LAN/Lueftung/Stufe 1\
Stufe1:noArg fhem/Comfo-LAN/Lueftung/Stufe 2\
Stufe2:noArg fhem/Comfo-LAN/Lueftung/Stufe 3\
Stufe3:noArg fhem/Comfo-LAN/Lueftung/Stufe 4\


Hier die Verknüpfung mit dem Präsenzmelder (Smartwares SH5-TSO-A ~14€):
defmod di_WcLueftung DOIF ([IT_V3_0c0b0001] eq "on")\
(set SetBadezimmerLueftung Trigger) DOELSE
attr di_WcLueftung do resetwait
attr di_WcLueftung room Lueftung
attr di_WcLueftung wait 300

defmod SetBadezimmerLueftung dummy
attr SetBadezimmerLueftung webCmd Trigger

defmod n_BadezimmerLueftung notify SetBadezimmerLueftung:Trigger set Lueftung Stufe3;; define BackTo2 at +00:15:00 set Lueftung Stufe2

Basis der Implementierung war BSB-LAN (https://github.com/fredlcore/bsb_lan), sowie die Protokoll Beschreibung von See-Solutions (http://www.see-solutions.de/sonstiges/sonstiges.htm#Zehnder).

Hier ist das Repository mit Anleitung in der ReadMe: Comfo-LAN (https://github.com/Duesentrieb5413/Comfo-LAN)

Falls ihr eine andere Lüftung als die ComfoD 350 erfolgreich damit anbindet, dann erweitere ich die Geräteliste anhand der Rückmeldungen.

Gruß