Ecovacs Deebot N79 (and others) integration

Hi guys. A couple months ago I bought a Deebot Ecovacs N79 robot.

I kept looking for ways of integrating it with OpenHAB but none found.

So I finally googled and found a good library wich does the heavylifting. I just finished a small gateway that translate it to MQTT in order to integrate it with OpenHAB.

I now have full monitoring and control of the vacuum cleaner.

Feel free to take a look.

Thanks

2 Likes

Hi,
you will hear from me…
I will test it soon :wink:

I just try to install sucks, when starting the “first test”, I get:

[15:15:27] root@openHABianPi:/etc/openhab2# sucks login
Traceback (most recent call last):
  File "/usr/local/bin/sucks", line 7, in <module>
    from sucks.cli import cli
  File "/usr/local/lib/python2.7/dist-packages/sucks/__init__.py", line 360
    def is_charging(self) -> bool:
                          ^

Maby cause ferom my Pthon version, seems I have:
python --version => Python 2.7.13

Can I update? How? Will I run in issues with oH when I update Python to 3.x ?

Hi,

how to run installation step “sucks login”? In python console on the raspberry?

“Run sucks login , in order to generate the necesary sucks.conf config file.”

thx a lot for implementation. regards

My OpenHAB installation is based on Openhabian, which includes both python 2.7 as well as python 3.

You can tell if your system has python3 by issuing the following command:

python3 -V

Or alternatively by inspecting the output of the following command. If it mentions python3 in addition to python2, you’re good.

dpkg -l | grep -e "python[23]"

In order for sucks to work on my system, I had to perform the following commands:

apt-get install python3-pip
pip3 install sucks

After which I edited the shebang (on line 1) /usr/local/bin/sucks for it to use python3, i.e. changed it to:

#!/usr/bin/python3

@Guillermo_Schimmel not sure if you would like to update the installation notes to reflect this?

You run this from the linux CLI, not from the openhab-cli

will do

Hi
Thanks for the scripts.
I just got the same robot and I’m trying to set it up with openHAB.
I have managed to get it working with running command with sucks.
But I have problem with integrate sucks with openHAB (MQTT).

When I look at your python script (openhab-sucks/scripts/ecovacs-mqtt-gateway.py at master · guillebot/openhab-sucks · GitHub) on line 27 you have set ip address.
What IP is this? openHAB? robot?

This is the error I got when running the python script:

Blockquote
pi@raspberry:~ $ sudo python3 /home/pi/openhab-sucks/scripts/ecovacs-mqtt-gateway.py
Ecovac Sucks 0.2
Device ID: E000XXXXXXXXXXXXXX
WARNING:sleekxmppfs.basexmpp:fulljid property deprecated. Use boundjid.resource
WARNING:sleekxmppfs.xmlstream.handler.waiter:Timed out waiting for IqWait_149f3087-9660-4ff3-a9b0-f946a3d3ad2c-3
WARNING:sucks:Ping did not reach VacBot. Will retry.
Traceback (most recent call last):
File “/home/pi/openhab-sucks/scripts/ecovacs-mqtt-gateway.py”, line 27, in
mqttclient.connect(“192.168.1.2”, port=8884, keepalive=60,bind_address=“”)
File “/usr/local/lib/python3.5/dist-packages/paho/mqtt/client.py”, line 937, in connect
return self.reconnect()
File “/usr/local/lib/python3.5/dist-packages/paho/mqtt/client.py”, line 1071, in reconnect
sock = self._create_socket_connection()
File “/usr/local/lib/python3.5/dist-packages/paho/mqtt/client.py”, line 3522, in _create_socket_connection
return socket.create_connection(addr, source_address=source, timeout=self._keepalive)
File “/usr/lib/python3.5/socket.py”, line 712, in create_connection
raise err
File “/usr/lib/python3.5/socket.py”, line 703, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused