Experience integrating Duux products?

@louisr has honored my request and implemented an option to use a user/password in version 1.1.1 (including a Linux/EMQX howto), so forget the remark ** in my previous post.

Awesome work again :grinning:!

1 Like

How were you able to connect it to Tuya? I have a gateway (multimode, but seems only to support bluetooth and zigbee… Do I need a wifi enabled gateway), but this one does not find the fan. The Duux (gen 1, the fan is a series 20xxxx) app is fine connecting to it. So don’t understand what is going wrong here

That sounds amazing. I also have a Duux 360 2 and Node red running, can you share the configuration?

Thanks!

Not sure if this is useful or not, but I put out this blog and an integration on HACS

1 Like

Hi, did you ever manage to get a custom firmware working?

If its the same fan model as im using, then the wifi icon flashing doesnt mean it disconnects from WiFi. If you add it in homeassistant by ip then it should change to solid wifi icon

I used the following for my Duux Whisper Flex: GitHub - LouisR-git/duux-fan-local: Home Assistant Integration for Duux products with local handling · GitHub

I did do a few things different. First I pointed *.cloudgarden.nl DNS to my PC and used socat to grab the fan's MQTT credentials (just like the repo describes).

After capturing, I updated the DNS record to point to my server (running EMQX).
But port 443 was already used by another Docker container (nginx-proxy-manager).

I added an iptables rule inside the DOCKER chain to forward only the fan's traffic from port 443 to EMQX's container port 8883: (inside the DOCKER chain because npm/docker was already bound to 443. At least I think that's why. Making a separate rule in front of docker didn't seem to work)

sudo iptables -t nat -I DOCKER 1 \       
  -s FAN_IP_ADDRESS \
  -p tcp --dport 443 \
  -j DNAT --to-destination EMQX_DOCKER_IP:8883

Replace FAN_IP_ADDRESS and EMQX_DOCKER_IP with your own.
And then to make the rule permanent:

sudo apt install iptables-persistent -y
sudo netfilter-persistent save

And finally instead of messing with emqx.conf or environment variables, I did this in the EMQX web UI:

  • Added a new managed certificate using my self‑signed cert (the same one from the socat step)
  • Edited the SSL listener (port 8883) to use that certificate

Then finally when setting up the integration I changed the configuration to point directly to the MQTT broker instead of the prefilled cloudgarden.nl (For me that was localhost:8883)

That was it. (took me way too long) I could then use the HACS HA integration to control my fan. Thank you LouisR for making this possible <3