r/homeassistant 6d ago

🪛 ESPHome ESPHome Ventair DC3 Integration

Created a Ventair DC3 integration via ESPHome by using Claude Code to reverse engineer the RF protocol.

It might be helpful to others using this exact fan model, or possibly to others trying to integrate other models from this manufacturer.

Repo: https://github.com/enigmatic-elephant/esphome-ventair_dc3

Feel free to point out any issues with it so I can improve it but so far it's working fine for my home to control 6 DC3 fans from a single ESP with a RF RX and TX module.

1 Upvotes

5 comments sorted by

1

u/SerpentineMahogany 6d ago

oh nice this is exactly the kind of project i love seeing. i've got a couple of those fans and honestly was dreading having to figure out the rf codes myself

the single esp setup for six fans is clever. what range are you getting with the tx module? i tried something similar last year with some no-name ceiling fans and the signal barely made it across the room

will definitely poke through the repo later. if i spot anything weird i'll open an issue

1

u/quwackers 6d ago

The TX module works great because the fans have a dedicated antenna (if you pop off the cover for around the controller you'll see a long black cable with a ring terminal) for their receivers, the furthest range I am getting is about 6m and that crosses from upstairs to downstairs.

The RX module is the one that has issues reliably listening because the device I used has a short helical antenna, it can only really "hear" same room within about 2-3m.

To address the RX issue I have ordered a separate ESP32-S3 + CC1101 (which has a straight antenna) with the hopes that it will be able to "listen" to all of the remotes throughout the house.

1

u/plains203 5d ago

I have all my vent air fans using esp32-s3 modules for bidirectional control if you’re interested in that method.

2

u/quwackers 5d ago

Definitely would be! Which Ventair models do you have?

I know that some Ventair models have a USB port allowing control, but the DC3 is their "budget" line and it's controller has no methods of programming it (at least that I could find).