Vacplus 50 Pint Dehumidifier
Vacplus 50 Pint

Available from:

Install method:
USB to Serial

GPIO #Component
GPIO00 None
GPIO01 None
GPIO02 None
GPIO03 None
GPIO04 None
GPIO05 None
GPIO09 None
GPIO10 None
GPIO12 None
GPIO13 Tuya Rx
GPIO14 None
GPIO15 Tuya Tx
GPIO16 None
GPIO17 None
{"NAME":"VacPlus Dehumidifier","GPIO":[0,0,0,0,0,0,0,0,0,2304,0,2272,0,0],"FLAG":0,"BASE":54}

This dehumidifier has a TYWE1S on a TYJW2S-5V board. It’s worth noting that I did not try tuya-convert. I went straight for flashing it over serial, which is very easy on this model.

This device uses TuyaMCU. For more information, see https://tasmota.github.io/docs/TuyaMCU/.

  1. Unplug the dehumidifier.
  2. Take all the screws out of the back of the dehumidifier and take off the back.
  3. Take out the necessary screws to remove the top panel, and carefully set the panel to the side. There’s some cables connecting the top display and buttons to the rest of the unit. I left these connected, but be careful not to damage them!
  4. With the top panel of the unit removed, The TYJW2S board should be visible. Carefully disconnect the cable leading to it, remove the single screw holding it into place, and remove the board.
  5. On the TYJW2S board, there are should be 6 unsoldered header pins on the left. Solder header pins to the ones labeled (on the back) TXD0, RXD0, GND, and 3.3V. If you put the pins on the “top” of the board, there’s plenty of room to leave them permanently in the dehumidifier
  6. Using some sort of 3.3V FTDI connection (I used a CH340G), wire:
    • GND [TYJW2S] to GND [FTDI]
    • 3.3V [TYJW2S] to VCC [FTDI]
    • TXD0 [TYJW2S] to RX [FTDI]
    • RXD0 [TYJW2S] to TX [FTDI]
  7. Hold down the button on the board and plug in the FTDI to your computer. Continue holding the button for 10 seconds or so, then let go
  8. Flash tasmota.bin using your favorite flashing tool (I used Tasmotizer). I was also able to safely back up the stock firmware for safe keeping.
  9. Disconnect the wires from the TYJW2S board and completely reassemble the dehumidifier. If you tilted at any point, leave it upright for at least 2 hours before continuing.
  10. Plug in the unit and turn it on. Go through the normal process to connect Tasmota to your WiFi network.
  11. Apply the template provided
  12. Run the following commands to map TuyaMCU dpIds to Tasmota Functions:
Backlog TuyaMCU 11,1; TuyaMCU 74,2; TuyaMCU 61,5; TuyaMCU 73,6; TuyaMCU 71,7; TuyaMCU 62,8; TuyaMCU 12,12; HumRes 0; TempRes 0; SetOption8 1

Enum configurations:

Backlog TuyaEnumlist 1,3; TuyaEnumlist 2,5

Tank full error message


Backlog SO66 1; Rule1 on tuyareceived#dptype5id101 do publish stat/%topic%/error %value% endon; Rule1 1
  • TuyaMCU 71,7 - Ambient Temperature
  • TuyaMCU 73,6 - Current Humidity
  • TuyaMCU 74,2 - Humidity Set
  • TuyaMCU 11,1 - Power
  • TuyaMCU 12,12 - Anion on/off
  • TuyaMCU 61,5 - Mode Selector
  • TuyaMCU 62,8 - Timer Selector (0 - off, 1..5 hours delay)
  • TempRes 0 - Correct decimal shift for temperature
  • HumRes 0 - Correct decimal shift for humidity
  • SetOption8 1 - If in Fahrenheit
  • SetOption66 1 - Publish TuyaMCU events

Now you have control of all functions. Target humidity is set by TuyaSend2 2,xx (where xx is a 2-digit number) to set the humidity.

Home Assistant configuration

Full tank auto discovery

rule3 on system#boot do publish2 homeassistant/binary_sensor/%deviceid%_error/config {"availability_topic":"tele/%topic%/LWT","payload_available":"Online","payload_not_available":"Offline","name":"%topic% Alert", "state_topic":"stat/%topic%/error","value_template":"{{ 'ON' if value=='0x01' else 'OFF' }}","unique_id":"%deviceid%_error","device":{"connections":[["mac","%macaddr%"]]}} endon

Manual dehumidifier config (change your topic)

  - platform: mqtt
    name: "Dehumidifier"
    device_class: "dehumidifier"
    state_topic: "stat/dehumidifier/POWER1"
    command_topic: cmnd/dehumidifier/POWER1
    target_humidity_command_topic: cmnd/dehumidifier/TUYASEND2
    target_humidity_command_template: >-
      2,{{ value }}
    target_humidity_state_topic: tele/dehumidifier/SENSOR
    target_humidity_state_template: >
      {%- if value_json.TuyaSNS is defined %}
        {%- if value_json.TuyaSNS.HumSet is defined %}
          {{ value_json['TuyaSNS']['HumSet'] | int }}
        {%- endif %}
      {%- endif -%}
    optimistic: false
    availability_topic: "tele/dehumidifier/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"
      - standard
      - raining
      - drying
      - sleep
    mode_state_topic: "tele/dehumidifier/RESULT"
    mode_state_template: |
        {%- set modes = {0: "standard", 1: "raining", 2: "drying", 3: "sleep"} %}
        {%- if "TuyaReceived" in value_json %}
          {%- if "5" in value_json.TuyaReceived %}
            {% set mode_id = value_json.TuyaReceived["5"].DpIdData | int %}
            {{ modes[mode_id] }}
          {%- endif %}
        {%- endif %}
    mode_command_topic: cmnd/dehumidifier/TUYASEND4
    mode_command_template: |
      {%- set mode_enum = {"standard": "0", "raining": "1", "drying": "2","sleep": 3} %}
      {%- set enum = mode_enum[value] %}
      5,{{ enum }}