The ESP32 Modbus module is designed for integrating Modbus-enabled devices with Home Assistant. It supports various devices including:
- Nilan Ventilation (CTS602/602Light and CTS400 with Modbus)
- Wavin AHC9000 (Floor heating)
- Wavin Sentio (Floor heating)
- EM340 (Electricity meter with Modbus)
- NIBE F1255 (Heatpump)
The module is flexible and can be adapted for other Modbus applications, although no promises are made for unsupported devices.
Use at your own risk! Improper connections could potentially damage hardware. The hardware and software have been tested with the listed devices without issues.
- Modbus communication with popular home automation systems (e.g., Home Assistant, ESPHome).
- Supports multiple devices (Nilan, Wavin, EM340, NIBE, and more).
- Provides wiring and software guides to get started quickly.
Please be advised that the hardware have been updated with the major changes that the 2 x optocoupler outputs have been removed (legacy functionality), the 2 x pin rows are gone and the flow-control pin has been rewired to GPIO3. Nothing that impacts or degrades performance !
For the adapted code (adjusted flow-control pin) look here: rev2
If you have a rev2 - it'll look like this:
If you have a rev1 - it'll look like this:
And the right code (GPIO10 flow-control pin) is here: rev1
- RJ45 Interface: Works specifically with Wavin AHC9000/Sentio.
- Use a patch cable to connect the module to the Modbus port for these devices.
To connect the module, use an RJ45B cable. Cut the cable to expose colored wires, which serve the following functions:
- A (Modbus+)
- B (Modbus-)
- GND
- +12V (optional) for power, or use a USB-C cable from a charger.
- Home Assistant & ESPHome: The module integrates seamlessly with these platforms.
- Video Guide: USB + WiFi Upload for AHC9000
You can find example code for Nilan, Nibe, EM340, and more in the code folder. A generic setup for Nilan is available here.
Example configuration for Nilan:
esphome:
name: nilan
esp32:
board: esp32-c3-devkitm-1
framework:
type: arduino
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
output_power: "8.5"
uart:
rx_pin: 20
tx_pin: 21
parity: EVEN
baud_rate: 19200
id: uart_modbus
stop_bits: 1
modbus:
id: modbus_id
flow_control_pin: 10
uart_id: uart_modbus








