Skip to content

Deprecated plugin for Home Assistant for Cecotec Conga Vacuums.

Notifications You must be signed in to change notification settings

adrigzr/badconga

Repository files navigation

badconga

CI

Development has stopped in favor of Valetudo (fork).

Follow this tutorial to install Valetudo with our fork.

Contact us at Telegram | GitLab Group.


Proof of concept plugin for Home Assistant for Cecotec Conga Vacuums.

Please report the "model" state attribute of vacuum.conga along with the Conga model if it is a simple number instead of a model name.

All data has been reverse-engineered from Android app Conga 3000.

Compatible models: Conga 3290, 3390, 3490, 3590, 3690, 3790 and 5090.

Currently tested on: Conga 3490 and 5090.

Please report other compatible models.

Features

  • Vacuum entity

  • Camera entity

Home Assistant

Installation

HACS

Manual

Copy or link badconga subfolder to config/custom_components.

Configuration

Create a new account on the app and link the device to it.

This integration does not support having the same account in the app and in Home Assistant at the same time. If you try to use the same account as in the app, things will not work correctly as soon as you open the app. Using different accounts in Home Assistant and in the app is supported. Home Assistant will pause controlling the robot and show its state as unknown while the app is in use. Home assistant will resume controlling the robot a few minutes after the app is closed.

badconga:
  email: 'email'
  password: 'password'

# enable debug for now...
logger:
  default: info
  logs:
    custom_components.badconga: debug

Snippets

Lint project

$ pylint --ignore=schema_pb2.py badconga

Dump Android packets

$ adb shell
$ su
# tcpdump -i wlan0 -s0 -w - | nc -l -p 11111

Listen for packets on host

$ adb forward tcp:11111 tcp:11111
$ nc localhost 11111 | tcpflow -o flow -r - "port 4020 or port 4030"

Read app logs

$ adb logcat -c && adb logcat es.cecotec.s3590:V > flow.log

Compile protobuf schemas

$ protoc --python_out=. app/schema.proto

Parse flow

$ python3 parse.py flow/*~*.xml

Inspect hex string as protobuf

$ git clone https://github.com/mildsunrise/protobuf-inspector.git
$ echo "<hex string>" | xxd -r -p | ./protobuf-inspector/main.py