Zehnder ComfoAir E300/E400 ESPHome component

Hi,

I’ve create a ESPHome component for interacting with the Zehnder ComfoAir E300/E400 devices. The project is likely to work with the ComfoAir PRO 200/250/300 series as well, but this remains untested.

It works by connecting to an undocumented RS485 serial interface using Modbus RTU.

Current capabilities:

  • Fan speed control.
  • Read fan states (RPM, duty cycle, flow rate)
  • Read temperature & humidify (extract, supply, exhaust, intake).
  • Read bypass & heater state.
  • Read external setpoints (RF, 3 way-switch, bathroom switch)
  • Read device fault/errors.
  • Diagnostics (model, orientation, FW, etc)

Here you can find the code. If anyone’s interested, let me know since we need data from more devices to complete the register discovery.

:rocket: New Release

I’ve released version 1.1.0 of the Zehnder ComfoAir ESPHome component.

:wrench: What’s Changed

  • Check for unknown state in bypass sensor.
  • Change VCC to 3v3 for build instructions.
  • Change status to offline when modbus device cannot be reached.
  • Add mapping for transient states.
  • Add boost mode switch.
  • Add register dump capability.

The new release can be found here:

Give it a try and let me know what you think! Your feedback is appreciated.

:rocket: New Release

I’ve released version 1.2.0 of the Zehnder ComfoAir ESPHome component.

:wrench: What’s Changed

  • Speed count is now configurable.
  • Add optional air quality sensors.
  • Add/update sensor icons.
  • Add m5stack example.
  • Update example configurations.
  • Bugfix: Set correct pre-boost setpoint.

The new release can be found here:

Give it a try and let me know what you think! Your feedback is appreciated.

:rocket: New Release

I’ve released version 1.3.0 of the Zehnder ComfoAir ESPHome component.

:wrench: What’s Changed

  • Implemented filter replacement timer.
  • Configurable replacement interval.
  • Automatic filter replacement detection.
  • Update deprecated AsyncWebServerRequest::url().
  • Update deprecated word_from_hex_str.
  • Change reference hardware to ESP32.
  • Add CI/CD pipeline.

The new release can be found here:

Give it a try and let me know what you think! Your feedback is appreciated.

:rocket: New Release

I’ve released version 2.1.0 of the Zehnder ComfoAir ESPHome component.

Breaking changes

This release contains a breaking change to the config in order to support newer FW versions. The config is now firmware dependent.

1. Check your FW version

On older FW versions (1.x.x):

Menu -> login (pwd 4210) -> toestel specificatie -> SW

Or on the newer FW models (2.x.x) and (3.x.x):

Menu -> Opties -> SW

2. Update your configuration

Old config:

packages:
  remote_package:
    url: https://github.com/CodedCactus/zehnder-comfoair
    ref: main
    files: [components/zehnder.yaml]
    refresh: 0s

New config:

packages:
  remote_package:
    url: https://github.com/CodedCactus/zehnder-comfoair
    ref: main
    files: [components/zehnder_fw{major}.yaml]   # use fw1, fw2 or fw3 depending on your unit
    refresh: 0s

:wrench: What’s Changed

  • Add support for units with firmware version 3.x.x.
  • Add error code sensors.
  • Add defrost cycles, heat exchanger type and humidity control sensors.
  • Add Running Mean Outdoor Temperature (RMOT) sensor.
  • Change parity bit to NONE.

The new release can be found here: