Mir hunn eng Zehnder Comfoair 350 Belüftungs Anlag mat just RS232 Interface (iwwert een RJ45 Stecker), ouni Méiglechkeet wéi se eng modern Anlag géif ubidden.
Fir de Moment wees den Home Assistant net op d’Anlag iwwerhapt ugeschalt ass (beim Grille schalte mir se aus…) oder op de Filter gewiesselt resp. gebotzt muss gin.
Glécklecherweise ginn et eng Rëtsch intelligent Persoune déi Programmer geschriwwe hunn fir en RS232 Interface mat Zehnder Protokoll un een Raspberry PI a souguer een ESP32 Mikro Kontrollerze hänken.
Raspberry Pi schéngt mir e bëssi overkill ze sinn, dohier sinn ech de Wee mam ESP32 gaang.
Wiesou ESP32 an net een ESP8266?
Virdeel vum ESP32 géint een ESP8266 ass den Hardware RX /TX Interface, op engem ESP8266 ass deen nëmme per Software Niveau définéiert. Bon, d’Vitesse déi benéidegt gëtt ass mat 9600Baud relativ geréng a sollt och vun engem ESP8266 gestemmt kënne ginn.
RS232 <-> TTL
Signal Pegel vun engerm RS232 Interface si verschidde zu den TTL Interface vun engem ESP32, dhier muss nach een Signal Wander zwësche geschalt ginn. A mengem Fall iwwerhëlt dat een SP3232 TTL To RS232 Modul.

De Kabel huet follgend Uschlëss:
| Stecker | PIN | |||
|---|---|---|---|---|
| RJ45 | 1 | 2 | 3 | 8 |
| TTL | NC (24V!) | RX | TX | GN |
ESPHome Code
Wéi ëmmer benotzen ech ESPHome als 1t Wiel fir d’Firmware vum ESP32
Mat folgendem Code (Basis hunn ech op Github fonnt)
<code>esphome:
name: comfoair-v2
esp32:
board: esp32-s3-devkitc-1
framework:
type: esp-idf
external_components:
- source:
type: git
url: https://github.com/nyxnyx/esphome-comfoair
components: [comfoair]
wifi:
min_auth_mode: WPA2
ssid: "Wifi"
password: "password"
fast_connect: False
reboot_timeout: 0s
ap:
ssid: "comfoair"
password: comfoair
captive_portal:
# Disable uart logging
logger:
baud_rate: 0
# Enable Home Assistant API
api:
reboot_timeout: 0s
web_server:
ota:
platform: esphome
# RJ45 1 2 3 8
# RS232 VDC RX TX GND
uart:
id: uart_bus
baud_rate: 9600
tx_pin: 6
rx_pin: 5
comfoair:
id: my_comfoair
name: "ComfoAir"
uart_id: uart_bus
# Core Sensors
fan_supply_percentage:
name: "Fan supply (%)"
fan_exhaust_percentage:
name: "Fan exhaust (%)"
fan_speed_supply:
name: "Supply fan speed"
fan_speed_exhaust:
name: "Exhaust fan speed"
# Temperature Sensors
outside_air_temperature:
name: "Outside temperature"
supply_air_temperature:
name: "Supply temperature"
return_air_temperature:
name: "Return temperature"
exhaust_air_temperature:
name: "Exhaust temperature"
enthalpy_temperature:
name: "Enthalpy temperature"
ewt_temperature:
name: "EWT temperature"
reheating_temperature:
name: "Reheating temperature"
kitchen_hood_temperature:
name: "Kitchen hood temperature"
# Status & Binary Sensors
is_bypass_valve_open:
name: "Bypass valve open"
id: comfoair_bypass_real
is_preheating:
name: "Is preheating active"
is_summer_mode:
name: "Is summer mode"
is_supply_fan_active:
name: "Is supply fan active"
is_filter_full:
name: "Is filter full"
id: comfoair_is_filter_full
# Ventilation Levels (required by the card)
return_air_level:
name: "Return level"
supply_air_level:
name: "Supply level"
# Operating Hours
fan_hours_supply:
name: "Supply Fan Hours"
fan_hours_exhaust:
name: "Exhaust Fan Hours"
bypass_hours:
name: "Bypass Hours"
preheater_hours:
name: "Preheater Hours"
filter_hours:
name: "Filter Hours"
ewt_hours:
name: "EWT Hours"
# Automation Features
auto_balance:
name: "Auto Temperature Balance"
# Diagnostics
error_code:
name: "Last Error Code"
binary_sensor:
- platform: template
name: "Is bypas open"
lambda: |-
return id(comfoair_bypass_real).state;
text_sensor:
- platform: template
name: "Filter Status"
lambda: |-
if (id(comfoair_is_filter_full).state) {
return {"Full"};
} else {
return {"Ok"};
}
update_interval: 60s
# Example button to reset the filter timer after maintenance
button:
- platform: template
name: "Reset Filter Timer"
icon: "mdi:filter-remove"
on_press:
then:
- lambda: |-
id(my_comfoair)->reset_filter();</code>
POC ESP mat TTL-> RS232 Konverter
De Prototype ass verbonnen an empfänkt och Donnéeë. Ass zwar immens rudimentär mee et erfëllt säin Zweck.

Elegant Alternative mat M5Stack ESP an RS232 Interface
Eng Besser a méi propper Alternativ bidd sech mat engem M5Stack Atom un, zesummen mat engem RS232 Interface Modul. Dëse kann direkt iwwert déi 24V vum Zehnder RS232 Interface bedriwwe ginn, sou dass ee kuerze Kabel duergeet.



Integratioun am Home Assistant
Vu que dass et sech ëm een ESPHome Gerät handelt, gëtt et och direkt am Home Assistant erkannt:

Alerte / Notifikatiounen am Home Assistant
Fir den Display an engem Dashboard benotze eng eng Custom Card: Lovelace-ComfoAir
Dofir mussen awer bestëmmte Sensoren ee fest définéierte Numm hunn, sooss ginn se vun der Lovelace Card net ugewise. Déi sin an der Card hard-coded an et ass méi einfach den Numm am Home Assistant unzepasse. (bei engem Update vun der Card géif d’Spill rëm vu vir starten)

Wat d’Alerte ugeet, zum Beispill wann d’Anlage aus ass, oder de Filter gewiesselt oder gebotzt muss ginn kënnt rëm d’AlertTicker Card zum Asatz.



No der nächster Grillparty vergiessen ech net méi d’Anlag rëm unzeschalte!























Rezent Kommentare