Experience integrating Duux products?

Thanks! I got my recent purchase working using your config with a generic ESP-07 ESP8266 module wired to the 4 pin connector - just changed the TX/RX pins to suit. I did try programming the Duux board but it wasn’t having it - either locked now or I had some other issue.

@KipK I didn’t know about macvlan, sound like a good additional tool!

After getting the MQTT part sorted out I now also created an MQTT Fan config in Home Assistant:

# MQTT fan
mqtt:
  - fan:
      name: "DUUX Whisper Flex 1"
      unique_id: "DUUX Whisper Flex 1"
      
      # On/Off command and state
      command_topic: "sensor/[mac-address]/command"
      command_template: "tune set power {{ value }}"
      state_topic: "sensor/[mac-address]/in"
      state_value_template: "{{ value_json.sub.Tune[0].power }}"
      payload_on: 1
      payload_off: 0
      
      # Oscillation command and state
      oscillation_command_topic: "sensor/[mac-address]/command"
      oscillation_command_template: "tune set swing {{ value }}"
      oscillation_state_topic: "sensor/[mac-address]/in"
      oscillation_value_template: "{{ value_json.sub.Tune[0].swing }}"
      payload_oscillation_on: 1
      payload_oscillation_off: 0
      
      # Preset modes
      preset_mode_command_topic: "sensor/[mac-address]/command"
      preset_mode_command_template: "{{ {'normal': 'tune set mode 0', 'wind': 'tune set mode 1', 'night': 'tune set mode 2'}[value] | default('tune set mode 0') }}"
      preset_mode_state_topic: "sensor/[mac-address]/in"
      preset_mode_value_template: "{{ {0: 'normal', 1: 'wind', 2: 'night'}[value_json.sub.Tune[0].mode] | default('0') }}"
      preset_modes:
        -  "normal"
        -  "wind"
        -  "night"
      
      # Fan speed
      percentage_command_topic: "sensor/[mac-address]/command"
      percentage_command_template: "tune set speed {{ value }}"
      percentage_state_topic: "sensor/[mac-address]/in"
      percentage_value_template: "{{ value_json.sub.Tune[0].speed }}"
      speed_range_max: 26
      speed_range_min: 1

this should allow you to not use DNAT but just DNS entry.
DNAT can slow down a bit your browsing experience ( depending of your router/fw specs )

1 Like

I have my Threesixty 2 working now, through MQTT with a load of DHCP, DNS and mosquitto magic. In case anyone is interested, here’s my configuration:

mqtt:
  climate:
    - name: Duux Threesixty 2
      unique_id: duux360_1
      modes: ["off", "auto"]
      mode_state_topic: "sensor/90:38:0c:eb:5a:80/in"
      mode_state_template: "{% if value_json.sub.Tune[0].power == 0 %}off{% else %}auto{% endif %}"
      mode_command_topic: "sensor/90:38:0c:eb:5a:80/command"
      mode_command_template: "tune set power {% if value == 'off' %}0{% else %}1{% endif %}"
      payload_on: 1
      payload_off: 0
      fan_modes: ["low", "medium", "high"]
      fan_mode_state_topic: "sensor/90:38:0c:eb:5a:80/in"
      fan_mode_state_template: "{% if value_json.sub.Tune[0].mode == 0 %}high{% elif value_json.sub.Tune[0].mode == 1 %}normal{% else %}low{% endif %}"
      fan_mode_command_topic: "sensor/90:38:0c:eb:5a:80/command"
      fan_mode_command_template: "tune set mode {% if value == 'high' %}0{% elif value == 'medium' %}1{% else %}2{% endif %}"
      temperature_state_topic: "sensor/90:38:0c:eb:5a:80/in"
      temperature_state_template: "{{ value_json.sub.Tune[0].sp }}"
      temperature_unit: "C"
      temp_step: 1
      max_temp: 25
      min_temp: 15
      temperature_command_topic: "sensor/90:38:0c:eb:5a:80/command"
      temperature_command_template: "tune set sp {{ value }}"
      current_temperature_topic: "sensor/90:38:0c:eb:5a:80/in"
      current_temperature_template: "{{ value_json.sub.Tune[0].temp }}"