Ligio / ozmo

GNU General Public License v3.0
23 stars 12 forks source link

Deebot ozmo 950 timeouts on sending commands #5

Open Foxi352 opened 4 years ago

Foxi352 commented 4 years ago

Hi,

I want to use the lib to write an integration plugin for a smarthome system. I own myself a Deebot Ozmo 950 for testing.

Until now i have just a few lines of code to get a first POC. Sadly i fail miserably to get the bot t do anything because of timeouts. Here is an example code.

#!/usr/bin/env python3

import logging
from ozmo import *

logging.basicConfig(level=logging.DEBUG)

config = { 'device_id': 'my_devices_name', 
    'email':'myemail@email.com',
    'password_hash':EcoVacsAPI.md5('XXXXXXX'), 
    'country':'lu',
    'continent':'eu'};

logging.debug('Getting API')
api = EcoVacsAPI(config['device_id'], config['email'], config['password_hash'],config['country'], config['continent'])
my_vac = api.devices()[0]

logging.debug('Connecting to vacbot')
vacbot = VacBot(api.uid, api.REALM, api.resource, api.user_access_token, my_vac, config['continent'])
vacbot.connect_and_wait_until_ready()

logging.debug('Requesting statuses from vacbot')
vacbot.request_all_statuses()

And here is the result DEBUG log

DEBUG:root:Getting API
DEBUG:ozmo:Setting up EcoVacsAPI
DEBUG:ozmo:calling main api user/login with (('account', 
'kDsMHtqkwo7p8XXXXXXXpb7RLdyQD8E/RSVWF639g6CzkoRKFVDCE4xVFmoqsbPDijJRCn4gudKW66bxkcNdwmOFLKitDeiVBsuWUZSDpUiVADInwewXXXXXXXgTnYBfuUCvVdavv80/OTj4tnukRT52PGo3vIv2/ehzSxyTPfw='), ('password', 'l+KMWRH59/36QGbsKa34lk4Dju3XlR2fZ+wKkDzY+T2liVPde2dpbE7Dgr/9d6Wjm7tBR56rd84bgM66zREAAMfc5eII7ydU0D//JfDQKIu1HKbdrh/E61CsCL2TItgXbsSxaDx8qJNdzq4XZ88BXXXXXXX5hBRlPjrHtIIEse8='))
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): eco-lu-api.ecovacs.com:443
DEBUG:urllib3.connectionpool:https://eco-lu-api.ecovacs.com:443 "GET /v1/private/lu/en/<robot_name>/i_eco_e/1.3.5/c_googleplay/1/user/login?account=kDsMHtqkwo7p8XXXXXXXpb7RLdyQD8E%2FRSVWF639g6CzkoRKFVDCE4xVFmoqsbPDijJRCn4gudKW66bxkcNdwmOFLKitDeiVBsuWUZSDpUiVADInwewXXXXXXXgTnYBfuUCvVdavv80%2FOTj4tnukRT52PGo3vIv2%2FehzSxyTPfw%3D&password=l%2BKMWRH59%2F36QGbsKa34lk4Dju3XlR2fZ%2BwKkDzY%2BT2liVPde2dpbE7Dgr%2F9d6Wjm7tBR56rd84bgM66zREAAMfc5eII7ydU0D%2F%2FJfDQKIu1HKbdrh%2FE61CsCL2TItgXbsSxaDx8qJNdzq4XZ88BFI%2Bdz905hBRlPjrHtIIEse8%3D&requestId=2e82bf1ffa02b8357a43ba53b05e0481&authTimespan=1589122212908&authTimeZone=GMT-8&authAppkey=eJUWrzRv34qFSaYk&authSign=0ddc0e81aa33c8c86a905c612c5c6d3b HTTP/1.1" 200 None
DEBUG:ozmo:got {'code': '0000', 'msg': '操作成功', 'time': 1589122212971, 'data': {'uid': '20200509120103_3f9876d102d5XXXXXXXe6ddec7baee7b', 'username': 'EXXXXAV8', 'email': 'myemail@email.com', 'country': 'lu', 'accessToken': 'b70b1c9a7dfba7XXXXXXX67fb8e7bb49'}}
DEBUG:ozmo:calling main api user/getAuthCode with (('uid', '20200509120103_3f9876d102d5XXXXXXXe6ddec7baee7b'), ('accessToken', 'b70b1c9a7dfba7XXXXXXX67fb8e7bb49'))
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): eco-lu-api.ecovacs.com:443
DEBUG:urllib3.connectionpool:https://eco-lu-api.ecovacs.com:443 "GET /v1/private/lu/en/<robot_name>/i_eco_e/1.3.5/c_googleplay/1/user/getAuthCode?uid=20200509120103_3f9876d102d5XXXXXXXe6ddec7baee7b&accessToken=b70b1c9a7dfba7XXXXXXX67fb8e7bb49&requestId=607b5d1580c1c68df340ad125cbe9363&authTimespan=1589122213163&authTimeZone=GMT-8&authAppkey=eJUWrzRv34qFSaYk&authSign=f77a8b6efbaf808fa0785f1da61bcc19 HTTP/1.1" 200 None
DEBUG:ozmo:got {'code': '0000', 'msg': '操作成功', 'time': 1589122213213, 'data': {'authCode': 'lu_XXXXXXX77783bc93a4ab36fe1adbf33b', 'ecovacsUid': '20200507102953_4ab873b6b6a69a5555f4980d10e0f11b'}}
DEBUG:ozmo:calling portal api users/user.do function loginByItToken with {'todo': 'loginByItToken', 'country': 'LU', 'resource': '<robot_name>', 'realm': 'ecouser.net', 'userId': '20200509120103_3f9876d102d5XXXXXXXe6ddec7baee7b', 'token': 'lu_XXXXXXX77783bc93a4ab36fe1adbf33b'}
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): portal-eu.ecouser.net:443
DEBUG:urllib3.connectionpool:https://portal-eu.ecouser.net:443 "POST /api/users/user.do HTTP/1.1" 200 139
DEBUG:ozmo:got {'todo': 'result', 'result': 'ok', 'userId': 'eXXXXXXXd554ea99', 'resource': '<robot_name>', 'token': 'pjnqNaWXXXXXXXTF6EZcIEh3hLhSsPEu', 'last': 604800000}
DEBUG:root:Switching to shorter UID eXXXXXXXd554ea99
DEBUG:root:EcoVacsAPI connection complete
DEBUG:ozmo:calling portal api users/user.do function GetDeviceList with {'todo': 'GetDeviceList', 'userid': 'eXXXXXXXd554ea99', 'auth': {'with': 'users', 'userid': 'eXXXXXXXd554ea99', 'realm': 'ecouser.net', 'token': 'pjnqNaWXXXXXXXTF6EZcIEh3hLhSsPEu', 'resource': '<robot_name>'}}
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): portal-eu.ecouser.net:443
DEBUG:urllib3.connectionpool:https://portal-eu.ecouser.net:443 "POST /api/users/user.do HTTP/1.1" 200 213
DEBUG:ozmo:got {'todo': 'result', 'result': 'ok', 'devices': [{'did': 'd3e7200e-XXXX-XXXX-ab21-27d299717698', 'name': 'E0001279610066170069', 'class': 'yna5xi', 'resource': 'wilG', 'nick': '<robot_name>', 'company': 'eco-ng', 'bindTs': 1588862063839}]}
DEBUG:root:Connecting to vacbot
DEBUG:ozmo:EcoVacsMQTT - Connected with result code 0
DEBUG:ozmo:EcoVacsMQTT - Subscribing to all
DEBUG:root:Requesting statuses from vacbot
DEBUG:ozmo:Sending command {'auth': {'realm': 'ecouser.net', 'resource': '<robot_name>', 'token': 'pjnqNaWXXXXXXXTF6EZcIEh3hLhSsPEu', 'userid': 'eXXXXXXXd554ea99', 'with': 'users'}, 'cmdName': 'GetCleanState', 'payload': '<ctl />', 'payloadType': 'x', 'td': 'q', 'toId': 'd3e7200e-XXXX-XXXX-ab21-27d299717698', 'toRes': 'wilG', 'toType': 'yna5xi'}
DEBUG:ozmo:calling iotdevmanager api with {'auth': {'realm': 'ecouser.net', 'resource': '<robot_name>', 'token': 'pjnqNaWXXXXXXXTF6EZcIEh3hLhSsPEu', 'userid': 'eXXXXXXXd554ea99', 'with': 'users'}, 'cmdName': 'GetCleanState', 'payload': '<ctl />', 'payloadType': 'x', 'td': 'q', 'toId': 'd3e7200e-XXXX-XXXX-ab21-27d299717698', 'toRes': 'wilG', 'toType': 'yna5xi'}
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): portal-eu.ecouser.net:443
DEBUG:ozmo:call to iotdevmanager failed with ReadTimeout
DEBUG:ozmo:Sending command {'auth': {'realm': 'ecouser.net', 'resource': '<robot_name>', 'token': 'pjnqNaWXXXXXXXTF6EZcIEh3hLhSsPEu', 'userid': 'eXXXXXXXd554ea99', 'with': 'users'}, 'cmdName': 'GetChargeState', 'payload': '<ctl />', 'payloadType': 'x', 'td': 'q', 'toId': 'd3e7200e-XXXX-XXXX-ab21-27d299717698', 'toRes': 'wilG', 'toType': 'yna5xi'}
DEBUG:ozmo:calling iotdevmanager api with {'auth': {'realm': 'ecouser.net', 'resource': '<robot_name>', 'token': 'pjnqNaWXXXXXXXTF6EZcIEh3hLhSsPEu', 'userid': 'eXXXXXXXd554ea99', 'with': 'users'}, 'cmdName': 'GetChargeState', 'payload': '<ctl />', 'payloadType': 'x', 'td': 'q', 'toId': 'd3e7200e-XXXX-XXXX-ab21-27d299717698', 'toRes': 'wilG', 'toType': 'yna5xi'}
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): portal-eu.ecouser.net:443
DEBUG:ozmo:call to iotdevmanager failed with ReadTimeout
DEBUG:ozmo:Sending command {'auth': {'realm': 'ecouser.net', 'resource': '<robot_name>', 'token': 'pjnqNaWXXXXXXXTF6EZcIEh3hLhSsPEu', 'userid': 'eXXXXXXXd554ea99', 'with': 'users'}, 'cmdName': 'GetBatteryInfo', 'payload': '<ctl />', 'payloadType': 'x', 'td': 'q', 'toId': 'd3e7200e-XXXX-XXXX-ab21-27d299717698', 'toRes': 'wilG', 'toType': 'yna5xi'}
DEBUG:ozmo:calling iotdevmanager api with {'auth': {'realm': 'ecouser.net', 'resource': '<robot_name>', 'token': 'pjnqNaWXXXXXXXTF6EZcIEh3hLhSsPEu', 'userid': 'eXXXXXXXd554ea99', 'with': 'users'}, 'cmdName': 'GetBatteryInfo', 'payload': '<ctl />', 'payloadType': 'x', 'td': 'q', 'toId': 'd3e7200e-XXXX-XXXX-ab21-27d299717698', 'toRes': 'wilG', 'toType': 'yna5xi'}
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): portal-eu.ecouser.net:443
DEBUG:ozmo:call to iotdevmanager failed with ReadTimeout
DEBUG:ozmo:Sending command {'auth': {'realm': 'ecouser.net', 'resource': '<robot_name>', 'token': 'pjnqNaWXXXXXXXTF6EZcIEh3hLhSsPEu', 'userid': 'eXXXXXXXd554ea99', 'with': 'users'}, 'cmdName': 'GetCleanSpeed', 'payload': '<ctl />', 'payloadType': 'x', 'td': 'q', 'toId': 'd3e7200e-XXXX-XXXX-ab21-27d299717698', 'toRes': 'wilG', 'toType': 'yna5xi'}
DEBUG:ozmo:calling iotdevmanager api with {'auth': {'realm': 'ecouser.net', 'resource': '<robot_name>', 'token': 'pjnqNaWXXXXXXXTF6EZcIEh3hLhSsPEu', 'userid': 'eXXXXXXXd554ea99', 'with': 'users'}, 'cmdName': 'GetCleanSpeed', 'payload': '<ctl />', 'payloadType': 'x', 'td': 'q', 'toId': 'd3e7200e-XXXX-XXXX-ab21-27d299717698', 'toRes': 'wilG', 'toType': 'yna5xi'}
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): portal-eu.ecouser.net:443
DEBUG:ozmo:call to iotdevmanager failed with ReadTimeout
DEBUG:ozmo:Sending command {'auth': {'realm': 'ecouser.net', 'resource': '<robot_name>', 'token': 'pjnqNaWXXXXXXXTF6EZcIEh3hLhSsPEu', 'userid': 'eXXXXXXXd554ea99', 'with': 'users'}, 'cmdName': 'GetLifeSpan', 'payload': '<ctl type="Brush" />', 'payloadType': 'x', 'td': 'q', 'toId': 'd3e7200e-XXXX-XXXX-ab21-27d299717698', 'toRes': 'wilG', 'toType': 'yna5xi'}
DEBUG:ozmo:calling iotdevmanager api with {'auth': {'realm': 'ecouser.net', 'resource': '<robot_name>', 'token': 'pjnqNaWXXXXXXXTF6EZcIEh3hLhSsPEu', 'userid': 'eXXXXXXXd554ea99', 'with': 'users'}, 'cmdName': 'GetLifeSpan', 'payload': '<ctl type="Brush" />', 'payloadType': 'x', 'td': 'q', 'toId': 'd3e7200e-XXXX-XXXX-ab21-27d299717698', 'toRes': 'wilG', 'toType': 'yna5xi'}
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): portal-eu.ecouser.net:443
DEBUG:ozmo:call to iotdevmanager failed with ReadTimeout
DEBUG:ozmo:Sending command {'auth': {'realm': 'ecouser.net', 'resource': '<robot_name>', 'token': 'pjnqNaWXXXXXXXTF6EZcIEh3hLhSsPEu', 'userid': 'eXXXXXXXd554ea99', 'with': 'users'}, 'cmdName': 'GetLifeSpan', 'payload': '<ctl type="SideBrush" />', 'payloadType': 'x', 'td': 'q', 'toId': 'd3e7200e-XXXX-XXXX-ab21-27d299717698', 'toRes': 'wilG', 'toType': 'yna5xi'}
DEBUG:ozmo:calling iotdevmanager api with {'auth': {'realm': 'ecouser.net', 'resource': '<robot_name>', 'token': 'pjnqNaWXXXXXXXTF6EZcIEh3hLhSsPEu', 'userid': 'eXXXXXXXd554ea99', 'with': 'users'}, 'cmdName': 'GetLifeSpan', 'payload': '<ctl type="SideBrush" />', 'payloadType': 'x', 'td': 'q', 'toId': 'd3e7200e-XXXX-XXXX-ab21-27d299717698', 'toRes': 'wilG', 'toType': 'yna5xi'}
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): portal-eu.ecouser.net:443
DEBUG:ozmo:call to iotdevmanager failed with ReadTimeout
DEBUG:ozmo:Sending command {'auth': {'realm': 'ecouser.net', 'resource': '<robot_name>', 'token': 'pjnqNaWXXXXXXXTF6EZcIEh3hLhSsPEu', 'userid': 'eXXXXXXXd554ea99', 'with': 'users'}, 'cmdName': 'GetLifeSpan', 'payload': '<ctl type="DustCaseHeap" />', 'payloadType': 'x', 'td': 'q', 'toId': 'd3e7200e-XXXX-XXXX-ab21-27d299717698', 'toRes': 'wilG', 'toType': 'yna5xi'}
DEBUG:ozmo:calling iotdevmanager api with {'auth': {'realm': 'ecouser.net', 'resource': '<robot_name>', 'token': 'pjnqNaWXXXXXXXTF6EZcIEh3hLhSsPEu', 'userid': 'eXXXXXXXd554ea99', 'with': 'users'}, 'cmdName': 'GetLifeSpan', 'payload': '<ctl type="DustCaseHeap" />', 'payloadType': 'x', 'td': 'q', 'toId': 'd3e7200e-XXXX-XXXX-ab21-27d299717698', 'toRes': 'wilG', 'toType': 'yna5xi'}
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): portal-eu.ecouser.net:443
DEBUG:ozmo:call to iotdevmanager failed with ReadTimeout
Lork88 commented 3 years ago

Hello, did you have found the solution? I have a different problem on a 930. Currently I'm wondering which are the models really supported by this library.

edenhaus commented 2 years ago

The 950 is not supported by this library, but you can use https://github.com/And3rsL/Deebotozmo instead. Or if you use HA, then use directly https://github.com/And3rsL/Deebot-for-Home-Assistant