Success - TCP Smart Dehumidifier

I had to buy a dehumidifier yesterday so naturally wanted a smart one and hoped it might work in Home Assistant.

I Opted for the TCP Smart 20ltr dehumidifier version model number is SMAWDEHUM20LBD068CF from B&Q in the UK, though many other retailers also sell it. Aergos, Screwfix, Toolstation and so on. c£210 in September 2024.

On Screwfix website it does say ‘works with Home Assistant’ no mention on other retailers. TCP Smart 20Ltr Dehumidifier - Screwfix

I set up and followed the instructiosn but no luck. The TCP Smart app does connect to Alexa but I got a simple on/off option in there. During the process I thought it looked similar to Smartlife and Tuya so tried to add to the Tuya app instead. In teh app it is the same as the TCP Smart setup, smae in Alexa BUT this now means I can control using the Tuya intergration.

Better still, it offers lots of entities and control.

I did a search on here to see if it might work but didn’t get any positive results, so putting this post up to support anyone who might stumble across it or have the same requirement.
Not fussed enough to go down the local route, happy that this is spied upon if necessary!

1 Like

I have also successfully integrated the 12L model and am very pleased so far. Doesn’t have the ionizer control (not a feature of the model itself). And although it has a timer function on the device and in the Tuya app, that control isn’t pushed through to HA like it appears your 20L does. (Won’t be using that feature, of course, since HA would do it better.) Also no filter change reminder (pushed through or, so far as I can tell, on my model at all). Otherwise looks the same as your screenshot. Disappointing that the “tank full” notification (which occurs in the Tuya app) isn’t pushed to HA.

Great news the 12l model is the same. Yes agree, I have disabled some of those unnecessary features like ionizer, child lock, filter reset and timer and am missing the more helpful tank full feature too.

I see in the main fan control (shows as toggle) there is the option to change from dehumidify to dryer and high/low/off for the fan. So the main controls are all available.

Not sure if the float is a magnetic thing and some other zigbee window/door sensor could be utilised. Shame the in app alert from Tuya cannot be used in some way to trigger an alert. EDIT - it can, you can set it to alert your phone in the TUYA environment. But possible to improve on that…

The app has an option to notify on your phone

Seems to also provide a new scene in Hass that doesnt appear to be helpful so I have disabled that entity.

Whilst playing about, I remembered I once setup Local Tuya Developer Account.

When looking at this I can see various items to add, never done it before but the options seem to be:

1 (value: True) Main On/Off Toggle
2 value: 60) Target Humidity
4 (value: high) Fan Speed
5 (value: dehumidify) Working Mode (Dehumidify/Drying/Sleep)
6 (value: 62) Indoor Humidity Value
7 (value:19) Indoor Temp Value
10 (value: True) Ionizer Toggle
16 (value: False) Child Lock Toggle
17 (value: cancel) ???
19 (value: 0) Fault Codes with 0 = OK 16 = Tank Fall Warning
20 (value: False) ??? Not identified anything makes this change
24 (value: c) ??? Think 'C or 'F temp
102 (value: 68) ??? Not identified anything makes this change

So using the item 19 looks like it can be used too. If 0 Tank OK if 16 Tank Full. If anything else then ignore. Although I imagine other numbers will display for different ‘fault codes’.

Set up a binary sensor template (NOTE THIS IS FOR THE 20litre MODEL):

      dehumidifier_water_tank:
        friendly_name: "Dehumidifier Water Tank"
        unique_id: dehumidifier_tank_1
        value_template: >-
          {% if is_state('sensor.dehumidifier_fault_code', '16') %}
            on
          {% elif is_state('sensor.dehumidifier_fault_code', '0') %}
            off
          {% else %}
            unavailable
          {% endif %}
        device_class: problem

I have also setup an automation to alert me from HomeAssistant

alias: Dehumidifier Water Tank Full Warning
description: ""
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.dehumidifier_water_tank
    from: "off"
    to: "on"
conditions: []
actions:
  - action: notify.mobile_app_[xxxxxxxxxphone/person1]
    metadata: {}
    data:
      message: Water tank on dehumidifier is full. Please empty ASAP
      title: "ALERT: Action required"
  - action: notify.mobile_app_[xxxxxxxphone/person2]
    data:
      title: ALERT - Action required
      message: Water tank on dehumidifier is full. Please empty ASAP
mode: single

So on my dash I can now see:

Less positive news…

Today I noticed the device was off. The tank was full but the warning hadn’t triggered. Not in the Tuya app, nor the Home Assistant.

Seems there is a fault number 32 showing, that prevents the tank full code being shown, so whilst the machine had stopped and showed FL on the led screen, because fault 32 is registered, the fault number 16 can’t register.

Fault 32 is on, and in the app there is a fault code option for the message that is shown ‘It’s time to clean your Smart Dehumidifier’. Presume the mesh filter. That’s now clean but cannot reset the warning. There is nothing in Tuya app to toggle or change.
The filter reset toggle doesn’t take it away or have any impact in Tuya/Hass integration. Ionizer toggle also does nothing.

Might try a total removal and reset but for now its not great news.

If I can’t rely on the fault code, the only other option is to look out for unexpected humidity increase to alert for a ‘likely tank full’, if the device is on, and humidity rises quickly perhaps. Though need to create an ignore for when new wet washing is in the room.

Back to the drawing board!

update, added a question via the tuya app, they said it was a fault and to return the unit.

Done that and the 12L model was on price drop from £160 to £99 to I took that one and a refund of £111. Added this one in now, done the local tuya thing again to get the tank full warning. Though in the tuya app there is no way to identify a fault code as with the 20l model. This device uses code 0 for OK and 1 for tank full. So change the code accordingly!

Only item missing is the change between dehumidify and dry or timer. not that I used it but also looks like it is in local tuya if I need it, and can figure out how to setup a select entity.

Local Tuya options to configure are:
1 (value: True) Main On/Off Toggle
2 value: 60) Target Humidity
4 (value: high) Fan Speed
5 (value: normal) Working Mode (Normal(Dehumidify)/Continuous(Drying)/Sleep(Sleep))
6 (value: 62) Indoor Humidity Value
7 (value:19) Indoor Temp Value
16 (value: False) Child Lock Toggle
19 (value: 0) Fault Codes with 0 = OK 1 = Tank Fall Warning

Catching up on your work here. Look forward to trying the error code bit for a full tank notification. Just FWIW, I use the Mushroom Humidifier card, which doesn’t utilize the additional running states (and hat suits perfectly here). Nice and compact.

1 Like

No worries.

For the 12L model the code I have used for the sensor is obviously just a little differnt that a code 0 is OK and code 1 is NOT OK for the tank.

This is the binary sensor code:

      dehumidifier_water_tank:
        friendly_name: "Dehumidifier Water Tank"
        unique_id: dehumidifier_tank_1
        value_template: >-
          {% if is_state('sensor.dehumidifier_fault_code', '1') %}
            on
          {% elif is_state('sensor.dehumidifier_fault_code', '0') %}
            off
          {% else %}
            unavailable
          {% endif %}
        device_class: problem

Sensor from localtuya is the same ‘sensor.dehumidifier_fault_code’
Automation is the same

@richsimpson Thanks for posting this, this thread has been very useful. However, although the cloud integration works I am not able to connect to the device (12L) from Local Tuya. I get the following error message,


Are you able to provide some guidance as to what settings you used?

Hi Martin, @MartinFin

I had that once, when the copy and paste of the local key was not right, there was a random space in it so check it is 100% typed correctly. It does seem to change each time you reconnect WIFI. So if you move to another WIFI then back again to your home one, the local key will have changed and need to be setup again. ( I had this when I lent it someone to help dry a room out after a leak).

Setting out what I did, partly for when I forget and need to re-do this exercise, partly in case you haven’t figured it out, and finally for anyone else that might stumble across the thread and finds it helpful!

Not a pro on the tuya thing, but at some point i had set up the developer account.
I have logged in, with the central europe data centre selected (top right), I do see my dehumidifier listed.
I copy to a notepad file the Device ID
from the left menu for Cloud, I select API Explorer.
Then the next menu I select Device Management and the sub menu item Query Device Details.
In the next prompt I enter the Device ID and hit Submit Request.
The local key is then shown. I copy that ignoring the start and end " marks.

For the Hass setup, I then add the integration (Hacs first) rebot etc.
Then configure it. I left it as a name of localtuya and no DEV API , from memory. Can’t see that prompt now to be sure of the wording.
Then add a new device and I called is ‘Dehumidifier Fault Code’, entered the IP address ‘192.168.0.51’ (for me), then paste the local key - but check it is absolutely right.
I used latest protocol, then selected platform = sensor, then the ID (19), called it ‘Dehumidifier Fault Code’ as friendly name and left the rest blank.
Next screen, again said it was a sensor but no more to add.

The issue you are describing sounds like you know all of this already. The only bit I think you might have, is same as I spotted once, the key had a random space in the middle. No idea how it happened. Seemed to add but gave the same fail message as you showed just. Deleting and/or adding the key again sorted it.

Hope this helps!

Thanks for the response, it seems I have an issue with the Tuya Developer environment as I get the following error when querying the device:


I can’t see anywhere to renew or subscribe to a plan, other than the commercial agreements for vendors etc, which are hugely expensive.
EDIT Just found the application for trial extension section so I’ll do that and see what happens.

1 Like