Conga Cecotec 1790 almost fully working with localtuya

Hi, I finally managed to get my Conga 1790 working in Home Assistant through localtuya.
I’m sharing what I did in the case it can be useful for others. I’m a new user and can only post 1 f***ing screenshot . Now updated with screenshots.

The vacuum was originally set in the official app, what I did was to remove it and add it to the Smart Life app (any troubles to add it).

In order to make the Stop and Locate button to work it is necessary to modify one file of the localtuya component, but this is optional.

If you don’t want to modify the file it will also fully work, but, the vacuum has no STOP, it has PAUSE, then if you ask Google Home to stop the vacuum it gives you an error, and in a vacuum card the Stop button doesn’t work.

The option to Locate (Seek) in a vacuum card also doesn’t work, but you can use the switch you are going to add later in this guide to Locate the vaccum.

What doesn’t work (yet):

  • Map
  • Reset: filters, mop, edge and main brush life
  • Directions: left and right. Didn’t find the corrects words yet. In fact, the word forward has to be misspelled to correctly work (later in this guide).

MODIFICATION FOR THE STOP TO WORK (optional)

Modify:
/config/custom_components/localtuya/vacuum.py
About line 186:

async def async_stop(self, **kwargs):
    """Turn the vacuum off stopping the cleaning."""
    if self.has_config(CONF_STOP_STATUS):
        await self._device.set_dp(
            self._config[CONF_STOP_STATUS], self._config[CONF_MODE_DP]
        )
    else:
        _LOGGER.error("Missing command for stop in commands set.")

Change it for:

async def async_stop(self, **kwargs):
    """Turn the vacuum off stopping the cleaning."""
    await self._device.set_dp(False, self._config[CONF_POWERGO_DP])

MODIFICATION FOR THE LOCATE (SEEK) TO WORK (optional)

Modify:
/config/custom_components/localtuya/vacuum.py
About line 199:

async def async_locate(self, **kwargs):
    """Locate the vacuum cleaner."""
    if self.has_config(CONF_LOCATE_DP):
        await self._device.set_dp("", self._config[CONF_LOCATE_DP])

Change it for:

async def async_locate(self, **kwargs):
    """Locate the vacuum cleaner."""
    if self.has_config(CONF_LOCATE_DP):
        await self._device.set_dp(True, self._config[CONF_LOCATE_DP])

ADDIN THE VACUUM TO LOCALTUYA INTEGRATION

Configuration → Add a new device →

Manual DPS to add: 3,13

imagen

DPS TO CONFIGURE (case sensitive)

  • ID: 5

  • Idle Status: Standby

  • Power: 2

  • Docked Status: Charging_Base,Charge_Comp

  • Returning Stat: Docking

  • Battery: 6

  • Mode: 3

  • Modes list: auto,Punctual,Area,Edges

  • Return home: ChargeGo

  • Fan Speed: 14

  • Fan Speed List: 1,2,3

  • Clean Time: 17

  • Clean Area: 16

  • Clean Record: 15

  • Locate: 13

  • Fault DP: 18

  • Pause State: Standby

  • Stop Status: Standby

Fill all the entries, click SEND, and VERY IMPORTANT, in the next screen UNCHECK “Do not add more entities”

Here we are going to add every sensor, switch and selector related to the vacuum.

For example, the DND switch:

Select switch and SEND
imagen

DP: 111 Do Not Disturb

imagen

Click on SEND, uncheck again “Do not add more entities”, then add the next entity and so on.

ENTITIES TO ADD:
I named my vacuum as “Aspirador”, put the same name here that you used to name your Device, it will be removed in the name of the entity but not in the description of it. I.E. I have a sensor named “Filter Life” but the entitiy name is “sensor.aspirador_filter_life”.

DPS Tipe Value Unity Class Name Observations
3 select auto;Punctual;Area;Edges Aspirador Mode
7 sensor duration Aspirador Edge brush life
8 sensor Aspirador Main/Rotatory brush life
9 sensor Aspirador Filter life
16 sensor m2 Aspirador Cleaned Area m2 Scaling: 0.1
17 sensor min duration Aspirador Cleaning Time
18 sensor Aspirador Failures
101 number 1 to 3 increment of 1 Aspirador Water Qty.
107 switch Aspirador Carpet Adaptive
110 binary_sensor Aspirador Mop
111 switch Aspirador DND
4 select foward;backward;turn_left;turn_right;stop Aspirador Directions (foward no foRward)

DPS I was not able to add:

10 Reset edge brush life
11 Reset main brush life
12 Reset filter life
108 Mop life
109 Reset mop life
112 Sound

Map is DP 19

Hope this helps someone.

5 Likes

Is this also working for the 4960 ultra?

If you can link the vacuum with the Smart Life app it should work. If you can make the vacuum work with Smart Life then look for the DP at Tuya IoT Platform.
In Tuya IoT go to Cloud → API Explorer
Verify you have selected your project in the upper.
Then on the left navigate to: Smart Home Device System → Device Control → Get Device Specification Attribute
Fill de device_id and “Submit Request” Here you have all de DP available for the device and the possible values.

If you can’t find the correct word for a command (like the one for the docking status) you can try to delete de device from localtuya and re-add the device again while the device is performing that command, then if you check the DP in localtuya you will see the correct word in the DP status.

You can also try to send the command to the vaccum from the Tuya IoT for testing:
General Device Capabilities → General Devices Control → Send commands
And also:
Cloud → Development → your project → Devices (in the upper) → Debug Device → Device Debugging

CARD WITH ALL THE OPTIONS FOR THE VACUUM

Needed:
Mushroom card: GitHub - piitaya/lovelace-mushroom: Mushroom Cards - Build a beautiful dashboard easily 🍄
Vacuum card: GitHub - denysdovhan/vacuum-card: Vacuum cleaner card for Home Assistant Lovelace UI
Layout card: GitHub - thomasloven/lovelace-layout-card: 🔹 Get more control over the placement of lovelace cards.

Check vacuum card documentation on how to change vacuum image.
Or just change line 6:
image: /local/images/vacuum_picture.png

Click to show code
type: custom:layout-card
layout_type: custom:horizontal-layout
cards:
  - type: custom:vacuum-card
    entity: vacuum.aspirador
    image: default
    compact_view: false
    show_status: true
    show_name: true
    show_toolbar: true
    stats:
      default:
        - entity_id: sensor.aspirador_tiempo_limpiando
          unit: hs
          subtitle: Limpiando
        - entity_id: sensor.aspirador_area_limpiada
          unit: m2
          subtitle: Limpiados
        - entity_id: binary_sensor.aspirador_mopa_puesta
          subtitle: Mopa
        - entity_id: sensor.aspirador_fallos
          subtitle: Error
  - type: horizontal-stack
    cards:
      - type: custom:mushroom-select-card
        entity: select.aspirador_modo_aspiracion
        name: Modo Aspiración
      - type: custom:mushroom-number-card
        entity: number.aspirador_cantidad_agua
        fill_container: false
        display_mode: buttons
        name: Cantidad Agua
        secondary_info: none
  - type: horizontal-stack
    cards:
      - type: custom:mushroom-chips-card
        chips:
          - type: action
            tap_action:
              action: call-service
              service: localtuya.set_dp
              data:
                device_id: your_device_id
                dp: 4
                value: turn_left
            icon: mdi:arrow-left-bold
        alignment: start
      - type: custom:mushroom-chips-card
        chips:
          - type: action
            tap_action:
              action: call-service
              service: localtuya.set_dp
              data:
                device_id: your_device_id
                dp: 4
                value: turn_right
            icon: mdi:arrow-right-bold
        alignment: start
      - type: custom:mushroom-chips-card
        chips:
          - type: action
            tap_action:
              action: call-service
              service: localtuya.set_dp
              data:
                device_id: your_device_id
                dp: 4
                value: foward
            icon: mdi:arrow-up-bold
        alignment: start
      - type: custom:mushroom-chips-card
        chips:
          - type: action
            tap_action:
              action: call-service
              service: localtuya.set_dp
              data:
                device_id: your_device_id
                dp: 4
                value: backward
            icon: mdi:arrow-down-bold
        alignment: start
      - type: custom:mushroom-chips-card
        chips:
          - type: action
            tap_action:
              action: call-service
              service: localtuya.set_dp
              data:
                device_id: your_device_id
                dp: 4
                value: stop
            icon: mdi:stop
        alignment: start
      - square: true
        columns: 1
        type: grid
        cards: []
      - type: custom:mushroom-chips-card
        chips:
          - type: template
            tap_action:
              action: toggle
            entity: switch.aspirador_limpiar_alfombra
            icon: mdi:rug
            icon_color: |-
              {% if is_state('switch.aspirador_limpiar_alfombra', 'off') %}
                grey
              {% else %}
                blue
              {% endif %}
            content: Alfombra
        alignment: end
      - type: custom:mushroom-chips-card
        chips:
          - type: template
            tap_action:
              action: toggle
            entity: switch.aspirador_silencio
            icon: mdi:volume-off
            icon_color: |-
              {% if is_state('switch.aspirador_silencio', 'on') %}
                blue
              {% else %}
                grey
              {% endif %}
            content: ''
        alignment: end
  - type: horizontal-stack
    cards:
      - type: custom:mushroom-template-card
        primary: ''
        secondary: Reset Cepillos
        icon: ''
        layout: vertical
        fill_container: true
        multiline_secondary: true
        tap_action:
          action: none
        hold_action:
          action: none
        double_tap_action:
          action: none
      - type: custom:mushroom-entity-card
        icon_type: none
        entity: sensor.aspirador_vida_cepillo_borde
        name: Lateral
        hold_action:
          action: none
        double_tap_action:
          action: none
        tap_action:
          action: call-service
          service: localtuya.set_dp
          data:
            device_id: your_device_id
            dp: 10
            value: true
      - type: custom:mushroom-entity-card
        entity: sensor.aspirador_vida_cepillo_central
        icon_type: none
        name: Central
        hold_action:
          action: none
        double_tap_action:
          action: none
        tap_action:
          action: call-service
          service: localtuya.set_dp
          data:
            device_id: your_device_id
            dp: 11
            value: true
      - type: custom:mushroom-entity-card
        entity: sensor.aspirador_vida_filtro
        icon_type: none
        name: Filtro
        hold_action:
          action: none
        double_tap_action:
          action: none
        tap_action:
          action: call-service
          service: localtuya.set_dp
          data:
            device_id: your_device_id
            dp: 12
            value: true

Thank you for this! I’m trying to follow your steps but I can’t add it correctly (the DPS part)
Is it possible to contact you?

Muchas gracias de nuevo

Hi.
When you add the device is when you have to add the extra DPS, comma separated.


Feel free to ask.
Cualquier cosa pregunta.

Buenas. Si, hasta aquí bien. Los dps van aquí o en la ventana siguiente a esta? Yo lo hice es la siguiente.
Mi Telegram es mi nickname, allí lo dejo xD.
Muchas gracias de nuevo.

A ver si esta noche puedo subir alguna captura

Mejor en inglés así llega a mas gente.
You have to add the extra DPS in the screenshot of the prevoius post, then set the DPS as the next image:


Once finished click on SEND (“Enviar” in the screenshot).
In the next window UNSELECT “Do not add more entities”
imagen
And then add the extra DPs that you couldn’t add in the previous window. As DP 111 wich is “Do Not Disturb”
imagen
Then Send again, uncheck “Do not add more entities” and add the remaining DPs.

1 Like

Sorry for my clumsiness. I have the feeling that I am stuck in some nonsense, but I still don’t understand where to put the DPS

Here?

I guess I shouldn’t put anything here, and do it in the next window.

You just added the DPS correctly, but you must leave blank “DPIDs to send in RESET…”


Then click on “ENVIAR” and select “vacuum”.
imagen
Click “ENVIAR” again and you will see the following screen:

You have to select every DPS in here. Be careful with the words, all are case sensitive, and some are mispelled.
I just updated the first post with all the screenshots, take a look.

1 Like

Hi

I don´t have the local key for the robot. Device ID shown in Local Tuya but i need the local key. How i can get that? Thank you

Hi!

You have to go to iot.tuya.com → cloud → API Explorer → Device management → Query device details, and in device_id you put the device ID and click Submit Request. On the right all the information will appear, and you will see the local_key field

Do the manual controls work for you? (front, back, right, left)

What component did you put the arrows with?

Thank you