Experience integrating Duux products?

I’m useing HA for a few weeks now on a Raspberry and I managed to get most of my devices in. Either using the official integrations or HACS integrations. One major group is still missing: My Duux products (high end fans and other air quality devices).

Their Smart home integration is a bit iffy. They have their own app but I think they use Tuya behind the scenes? They offer integration with Homey and major assistants (alexa, google). HA is not on their roadmap.

I read that some people got them into the Tuya app and as such into HA. But you lose almost all functionality beyond on/off and speed. And they drop out of the official app. So then I really cannot use those settings anymore save for an IR remote.

Curious if anybody managed to get them into their HA without losing functionality? I’ve been thinking of adding a IR blaster next to them, but that just seems a bit excessive.

2 Likes

I have come across the same limitation. In fact, I never used Duux app at all and integrate the fan to Tuya straightaway, where all settings are available as well. Further to that, I set a couple of scenes (incl. modes and oscillations) in the Tuya app that gets synced to HA and makes them available for automation.

Not ideal, but works well.

1 Like

If I understand you correctly the options such as nightmode, natural wind, timer, direction, etc. are all available using Tuya? That would be great news!

I currently experimented with one being controled by a Broadlink IR blaster. Works in principle, but you never know the state. Might experiment trying to get one into Tuya.

You can fully control the fan from the Tuya app. In HA integration the settings are limited to on/off, horizontal oscillation, speed, and mode. The missing settings you can get to HA by setting the scene in the Tuya app which then appears in HA.

I am however experiencing some issues with the fan not receiving the command on the first attempt and I need to repeat it in automation a couple of times to achieve the intended state. I assume the issue is on the fan side as I can see the command is recorded in Tuya IoT log.

1 Like

Good reminder I was going to experiment with this and Tuya! I’ve been so caught up in other projects recently. It does sound very promising. For sure going to try it.

How did you manage to get oscillation, speed and mode and other settings in HA? I am using the Local Tuya integration btw, but in the HA integration only on/off can be seen/used whereas in the Tuya App all settings can be seen and used.

I’ve been working on other projects (mainly getting my itho central Air-ventilation system into HA and fully setup with automations) I’ve not gotten to trying to get a Duux one into Tuya. Might get started back on Duux integration next weekend or when I get some holiday time and keep you posted.

I’m using standard Tuya integration (not Local Tuya) and this is what I get.
image

The remaining settings are available through scenes set in Tuya App as described earlier.

Please let me know if you manage to get Local Tuya working. I think I did try it too but without a success.

Btw Duux fan occasionally ignores some commands so in automation I use the following workaround.

image

1 Like

I’ve finally moved one of my fans to Tuya and tried Local Tuya to start. First attempt I also only get the option to turn it on/off. Going to investigate it more.

I noticed running the Local Tuya HACS integration that even while I added only one fan to Tuya and left the other two fans in the Duux app, it detects both the other fans regardless. Just without a name (based on IP I can figure out what is what). But no idea what I should be using as a local key. Anyone run into this yet?

Has anyone managed to connect a Duux three-sixty 2 through the Tuya Smart app? I can’t get it to pair at all, but I have several other devices that work fine, and this new heater is working with the Duux app.

1 Like

Which ‘Duux App’ do you use? They have two - at this moment - and the ‘Gen1’ version is NOT compatible with ‘Gen2’ products, although they seem to label 'em with the same product name.

Recently I encountered the Duux customer service with this joke regarding their “new” app. And they are serious on it… sadly it seems their website is happy on it (The new Duux app | Duux | Designed for better air.).

Although I haven´t found out a way to configure ‘Gen1’-products with Tuya, it seems that ‘Gen2’ is a whole different kind of cookie…

Gen2 as that is required for my Threesixty 2 heater. I also have a (Gen1) Whisper Flex fan, and that was easy to pair using the Tuya Smart app.
From a user perspective there’s not much magic about the new app. It includes some scheduling and “insights” which are currently next to useless. That doesn’t matter to me as I am hoping to be leveraging HA for that. It looks like I might need to bring Google Home into the loop though.

i also have a DUUX 360, the control is now via a template (calculating nett solar power excess, a helper and automation) so ALEXA gets the boolean that my powerexcess is sufficient to switch on the DUUX 360.
Will see once the sun comes up.

If I understand you correctly, HA tells Alexa about your power, and Alexa tells the Duux when to switch on and off? Duux have just enabled the proper Google Assistant and Alexa integrations (here in NL anyway) so that is definitely an angle to investigate!

Yes, a template calculates the excesspower, a helper converts the type and toggles a boolean which is read by alexa. A routine in alexa switches the DUUX on/off. At least that is the intent, now waiting for the sun to provide the 1000W excess so i can see whether is really works.
Whether the on/off switching is triggered correctly is still unclear.

Re: Duux integration

I have a DUUX Threesixty 2 which has the new chip and doesn’t support the old methods of adding it to Tuya. My workaround is similar to @acjtaal : use IFTTT Webhooks + Alexa to trigger commands and helpers + automation on the Home Assistant side.

How to:

  1. In the DUUX App (Gen 2), set up the Alexa integration
  2. In IFTTT, set up Alexa Actions by mkZense integrations. The free account allows you to set up 3 actions, you will need 2 of them. Make sure to not name them Heater since that can conflict with voice commands. I named them Virtual-Switch-On and -Off.
  3. In Alexa, set up 2 routines using those virtual buttons as triggers. Add an action → Smart Home → Thermostats → DUUX Threesixty 2.

For powering on, you can also set the desired temperature. What I noticed is that if you set the temperatue, it will turn on in Mode III (high = 1800W). If you don’t set the temperature it uses the lowest Mode I = 800W in my case. I haven’t found a way to power it on in Mode II (~1200W).

  1. In IFTTT: Create applets to turn the heater on and off. I use a webhook request with a specific event turn_duux_heater_on, which triggers the corresponding Alexa routine through mkzense (e.g. Virtual-Switch-On)


  2. Set up in home assistant

ifttt:
  key: !secret ifttt_key
  • Add a helper boolean switch
input_boolean:
  duux_heater_switch:
    name: DUUX Heater Switch
    initial: false
    icon: mdi:radiator
  • Use an automation to trigger IFTTT events when you toggle the switch
description: "DUUX Heater Alexa + IFTTT On/Off"
mode: queued
trigger:
  - platform: state
    entity_id:
      - input_boolean.duux_heater_switch
action:
  - if:
      - condition: state
        entity_id: input_boolean.duux_heater_switch
        state: "on"
    then:
      - service: ifttt.trigger
        data:
          event: turn_duux_heater_on
    else:
      - if:
          - condition: state
            entity_id: input_boolean.duux_heater_switch
            state: "off"
        then:
          - service: ifttt.trigger
            data:
              event: turn_duux_heater_off
max: 5

That should make the helper switch work (on/off). I’ve added 2 more bonus things:

  • Sometimes the Alexa routine doesn’t execute properly / needs a retry. I have a power plug meter, so for example I wrapped the turn_duux_heater_off in a Repeat/Until the power meter draw is < 1W, where I repeat + sleep 30 seconds until it’s off.
  • I have a separate temperature sensor in the room, which allows you to use Generic Thermostat - Home Assistant and have a nicer UX. It uses the helper switch to turn things on and off. This is what I added to my configuration.yaml.
climate:
  - platform: generic_thermostat
    unique_id: duux_heater_thermostat
    name: DUUX Heater
    heater: input_boolean.duux_heater_switch
    initial_hvac_mode: heat
    target_sensor: sensor.upstairs_temperature
    max_temp: 23
    target_temp: 17
    target_temp_step: 0.1
    sleep_temp: 17
    comfort_temp: 19
    away_temp: 15
    min_cycle_duration:
      seconds: 15

And using the Mushroom climate card it looks like this, which means you get temperature control + switch off/on when temperature is reached:
duux-heater-hass

Thanks for sharing!

I solved it by creating a helper: input_boolean.duux_on which is toggled by an automation (triggered each 5 mins). The automation checks whether the excess power provided by the solar panels is more than 800watts and if so, sets the boolean to ON.
There is a condition based on the actual room temperature which is provided by the thermostat of the central heating system so it stops at 20 degrees C.
The excess power calculation is a template in which i take the numeric values of the entities provided by the smart meter and calculate current_consumption - current_solar_production.
In ALEXA, a routine monitors the opening of the state of the boolean (i use nabu casa for the connection). And if the “latch opens” as ALEXA calls it, it switches the DUUX on. ALEXA-DUUX is via a skill in ALEXA. Vice versa when the excess power is too low (eg the dishwasher switches on).

1 Like

I took a look at the traffic from the app. And it seems Tuya isn’t used anymore as api requests go to v4.api.cloudgarden.nl

I successfully managed to control my gen 2 unit with some manual calls to this api. But you need an oauth token for it. (I captured it from the app)

Edit: I also successfully created a auth token from outside the app. So this should be fairly easy to make into a plugin

1 Like

Can you explain how you did that? How did you capture the tokens? I tried with a packet capture app on an Android phone using SSL MITM but that didn’t work - I assume it is checking the certificates. Do you have any docs on the cloudgarden API?