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 }}"