Giter Site home page Giter Site logo

ozmo's People

Contributors

afonsofgarcia avatar bmartin5692 avatar ecpunk avatar eracknaphobia avatar joe248 avatar ligio avatar majorbreakfast avatar overloadut avatar sh00t2kill avatar tirkarthi avatar torbjornaxelsson avatar wpietri avatar zenconomy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

ozmo's Issues

Publish 1.0.4 to PyPi

hacc-ozmo is currently failing to install. It looks like version 1.0.4 hasn't yet been published to PyPI.

Deebot ozmo 950 timeouts on sending commands

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':'[email protected]',
    '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': '[email protected]', '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

No longer getting a response back -- potentially after Ecovacs app update

Using an ozmo 900/905. Im not sure exactly when it stopped working as my vacuum was offline for a little while waiting for a new battery.

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 304, in _async_setup_platform
    await asyncio.shield(task)
  File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/deebot/vacuum.py", line 46, in setup_platform
    vacuums.append(EcovacsDeebotVacuum(device, hass.data[ECOVACS_CONFIG][0]))
  File "/config/custom_components/deebot/vacuum.py", line 59, in __init__
    self.device.connect_and_wait_until_ready()
  File "/usr/local/lib/python3.10/site-packages/ozmo/__init__.py", line 461, in connect_and_wait_until_ready                                                                                                         self.send_ping()                                                                                                                                                                                               File "/usr/local/lib/python3.10/site-packages/ozmo/__init__.py", line 628, in send_ping                                                                                                                            self.request_all_statuses()                                                                                                                                                                                    File "/usr/local/lib/python3.10/site-packages/ozmo/__init__.py", line 662, in request_all_statuses                                                                                                                 self.refresh_statuses()                                                                                                                                                                                        File "/usr/local/lib/python3.10/site-packages/ozmo/__init__.py", line 647, in refresh_statuses
    self.run(GetCleanState())                                                                                                                                                                                      File "/usr/local/lib/python3.10/site-packages/ozmo/__init__.py", line 673, in run
    self.send_command(action)
  File "/usr/local/lib/python3.10/site-packages/ozmo/__init__.py", line 670, in send_command
    self.iotmq.send_command(action, self._vacuum_address())  #IOTMQ devices need the full action for additional parsing
  File "/usr/local/lib/python3.10/site-packages/ozmo/__init__.py", line 789, in send_command
    self._handle_ctl_api(
  File "/usr/local/lib/python3.10/site-packages/ozmo/__init__.py", line 862, in _handle_ctl_api
    if 'resp' in message:
TypeError: argument of type 'NoneType' is not iterable

ozmo DEBUG *** MQTT sending ping ***

Hi all,

I have a Deebot OZMO 920, with mop, that, due to special price on amazon it's very popular in Italy.

Unfortunately as you know the Ecovacs APP and mini integration in IFTTT lacks of a lot of thing (e.g. clean a specific room with Google Assistant).

So i found "sucks" but doesn't work wit 920. Then I have tried "ozmo" and it seems to work but doesn't perform any command and is stuck on the object of this issue. This is what I obtain. Any suggestion?

C:\Users\Lork>ozmo --debug charge
ozmo.cli DEBUG will run [<ozmo.cli.CliAction object at 0x03FE65E0>]
ozmo DEBUG Setting up EcoVacsAPI
ozmo DEBUG calling main api user/login with (('account', 'vDcsX8LgNOvpVYjF25VoL2eQV6v/HpoNY0HtvWZnwAa8oUOV7agXCzgPUNuigycHsI4+6v+wW9Mm0rLI2jMJ4Olib4B+b3YwcCDD7A9YkM8L0a9fy1j9PVf4VDbjHmH6HU66chpYVq1zAqBAeJV0379OhiHDJUbIDQb0ks/L1Pw='), ('password', 'PASSWORD'))
ozmo DEBUG got {'code': '0000', 'msg': '操作成功', 'time': 1597439759191, 'data': {'uid': '20200504082734_abf769c005c9cd8cdd9207af88c91877', 'username': 'EA4EF9GV', 'email': 'MYEMAIL', 'country': 'it', 'accessToken': '20cacc0b300b68f1e5a79a8d15f48add'}}
ozmo DEBUG calling main api user/getAuthCode with (('uid', '20200504082734_abf769c005c9cd8cdd9207af88c91877'), ('accessToken', '20cacc0b300b68f1e5a79a8d15f48add'))
ozmo DEBUG got {'code': '0000', 'msg': '操作成功', 'time': 1597439759548, 'data': {'authCode': 'it_33b9cc79db1479b0669272dd2fbc9461', 'ecovacsUid': '20200422160431_e6d576211a316c42b1b9472e99f09e03'}}
ozmo DEBUG calling portal api users/user.do function loginByItToken with {'todo': 'loginByItToken', 'country': 'IT', 'resource': '52e969d5', 'realm': 'ecouser.net', 'userId': 'USERID_DIFFERENT FROM OTHER', 'token': 'it_33b9cc79db1479b0669272dd2fbc9461'}
ozmo DEBUG got {'todo': 'result', 'result': 'ok', 'userId': 'USERID', 'resource': '52e969d5', 'token': 'c7a55aa84b224be9b4f60806e1323d90', 'last': 604800000}
ozmo DEBUG calling portal api users/user.do function GetDeviceList with {'todo': 'GetDeviceList', 'userid': 'edwue6o28ace5945', 'auth': {'with': 'users', 'userid': 'USERID', 'realm': 'ecouser.net', 'token': 'c7a55aa84b224be9b4f60806e1323d90', 'resource': '52e969d5'}}
ozmo DEBUG got {'todo': 'result', 'result': 'ok', 'devices': [{'did': 'f82a9642-cb40-495f-ba99-82a93003c977', 'name': 'E0001278919603320623', 'class': 'vi829v', 'resource': 'TwRK', 'nick': None, 'company': 'eco-ng', 'bindTs': 1587625479827}]}
ozmo DEBUG EcoVacsMQTT - Connected with result code 0
ozmo DEBUG EcoVacsMQTT - Subscribing to all
performing charge command
ozmo DEBUG Sending command {'auth': {'realm': 'ecouser.net', 'resource': '52e969d5', 'token': 'c7a55aa84b224be9b4f60806e1323d90', 'userid': 'USERID', 'with': 'users'}, 'cmdName': 'Charge', 'payload': '', 'payloadType': 'x', 'td': 'q', 'toId': 'f82a9642-cb40-495f-ba99-82a93003c977', 'toRes': 'TwRK', 'toType': 'vi829v'}
ozmo DEBUG calling iotdevmanager api with {'auth': {'realm': 'ecouser.net', 'resource': '52e969d5', 'token': 'c7a55aa84b224be9b4f60806e1323d90', 'userid': 'USERID', 'with': 'users'}, 'cmdName': 'Charge', 'payload': '', 'payloadType': 'x', 'td': 'q', 'toId': 'f82a9642-cb40-495f-ba99-82a93003c977', 'toRes': 'TwRK', 'toType': 'vi829v'}
ozmo DEBUG call to iotdevmanager failed with ReadTimeout
ozmo.cli DEBUG waiting on charge_status for value charging
ozmo DEBUG *** MQTT sending ping ***
ozmo DEBUG *** MQTT sending ping ***
ozmo DEBUG *** MQTT sending ping ***
ozmo DEBUG *** MQTT sending ping ***
ozmo DEBUG *** MQTT sending ping ***
ozmo DEBUG *** MQTT sending ping ***
ozmo DEBUG *** MQTT sending ping ***
ozmo DEBUG *** MQTT sending ping ***
ozmo DEBUG *** MQTT sending ping ***
ozmo DEBUG EcoVacsMQTT - Connected with result code 0
ozmo DEBUG EcoVacsMQTT - Subscribing to all
ozmo DEBUG *** MQTT sending ping ***
ozmo DEBUG *** MQTT sending ping ***
ozmo DEBUG *** MQTT sending ping ***
ozmo DEBUG *** MQTT sending ping ***
ozmo DEBUG *** MQTT sending ping ***

and so on...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.