diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a7abc9b..64f6086 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -62,6 +62,11 @@ repos: rev: v2.6.2 hooks: - id: prettier + additional_dependencies: + - prettier@2.6.2 + - prettier-plugin-sort-json@0.0.2 + exclude_types: + - python - repo: https://github.com/adrienverge/yamllint.git rev: v1.26.3 hooks: diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..c91a87c --- /dev/null +++ b/.prettierrc @@ -0,0 +1,3 @@ +{ + "jsonRecursiveSort": true +} diff --git a/bumper/web/plugins/api/pim.py b/bumper/web/plugins/api/pim.py deleted file mode 100644 index ea19543..0000000 --- a/bumper/web/plugins/api/pim.py +++ /dev/null @@ -1,2571 +0,0 @@ -"""Pim plugin module.""" -import json -import logging -from typing import Iterable - -from aiohttp import web -from aiohttp.web_exceptions import HTTPInternalServerError -from aiohttp.web_request import Request -from aiohttp.web_response import Response -from aiohttp.web_routedef import AbstractRouteDef - -from bumper.models import RETURN_API_SUCCESS, EcoVacsHomeProducts - -from ...images import get_bot_image -from .. import WebserverPlugin - - -class PimPlugin(WebserverPlugin): - """Pim plugin.""" - - @property - def routes(self) -> Iterable[AbstractRouteDef]: - """Plugin routes.""" - return [ - web.route( - "*", - "/pim/product/getProductIotMap", - _handle_get_product_iot_map, - ), - web.route( - "*", - "/pim/file/get/{id}", - get_bot_image, - ), - web.route( - "*", - "/pim/product/getConfignetAll", - _handle_get_confignet_all, - ), - web.route( - "*", - "/pim/product/getConfigGroups", - _handle_get_config_groups, - ), - web.route( - "*", - "/pim/dictionary/getErrDetail", - _handle_get_err_detail, - ), - web.route( - "*", - "/pim/product/software/config/batch", - _handle_product_config_batch, - ), - ] - - -async def _handle_get_product_iot_map(_: Request) -> Response: - """Get product iot map.""" - try: - body = { - "code": RETURN_API_SUCCESS, - "data": EcoVacsHomeProducts, - } - return web.json_response(body) - except Exception: # pylint: disable=broad-except - logging.error("An exception occurred during handling request.", exc_info=True) - raise HTTPInternalServerError - - -async def _handle_get_confignet_all(_: Request) -> Response: - """Get config net all.""" - try: - body = confignetAllResponse - return web.json_response(body) - except Exception: # pylint: disable=broad-except - logging.error("An exception occurred during handling request.", exc_info=True) - raise HTTPInternalServerError - - -async def _handle_get_config_groups(_: Request) -> Response: - """Get config groups.""" - try: - body = configGroupsResponse - return web.json_response(body) - except Exception: # pylint: disable=broad-except - logging.error("An exception occurred during handling request.", exc_info=True) - raise HTTPInternalServerError - - -async def _handle_get_err_detail(_: Request) -> Response: - """Get error details.""" - try: - body = { - "code": -1, - "data": [], - "msg": "This errcode's detail is not exists", - } - return web.json_response(body) - except Exception: # pylint: disable=broad-except - logging.error("An exception occurred during handling request.", exc_info=True) - raise HTTPInternalServerError - - -async def _handle_product_config_batch(request: Request) -> Response: - """Handle product config batch.""" - try: - json_body = json.loads(await request.text()) - data = [] - for pid in json_body["pids"]: - for product_config in productConfigBatch: - if pid == product_config["pid"]: - data.append(product_config) - continue - - # not found in productConfigBatch - # some devices don't have any product configuration - data.append({"cfg": {}, "pid": pid}) - - body = {"code": 200, "data": data, "message": "success"} - return web.json_response(body) - except Exception: # pylint: disable=broad-except - logging.error("An exception occurred during handling request.", exc_info=True) - raise HTTPInternalServerError - - -confignetAllResponse = { - "code": 0, - "data": [ - { - "groupId": "5ae147f27ccd1a0001e1f69c", - "sort": 60, - "groupName": "DEEBOT OZMO Slim10 Series", - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1715-0201", - "mid": "02uwxm", - "ota": False, - "supportVer": {"Android": "1.0.0", "IOS": "1.0.0"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5b1dddc48bc45700014035a1", - }, - { - "groupId": "5ca32b5de9e9270001354b3f", - "sort": 80, - "groupName": "DEEBOT OZMO 601", - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "SPA", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1629-0203", - "mid": "159", - "ota": False, - "supportVer": {"Android": "1.1.7", "IOS": "1.1.7"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d4b7606de51dd0001fee12d", - }, - { - "groupId": "5ca32b5de9e9270001354b3f", - "sort": 80, - "groupName": "DEEBOT", - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "SPA", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1629-0203", - "mid": "159", - "ota": False, - "supportVer": {"Android": "1.1.7", "IOS": "1.1.7"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d4b7628de51dd0001fee12f", - }, - { - "groupId": "5ca32b5de9e9270001354b3f", - "sort": 80, - "groupName": "DEEBOT OZMO 610 Series", - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "SPA", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1629-0203", - "mid": "159", - "ota": False, - "supportVer": {"Android": "1.1.7", "IOS": "1.1.7"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d4b7640de51dd0001fee131", - }, - { - "groupId": "5cae9662e9e9270001354b55", - "sort": 150, - "groupName": "DEEBOT M80 Pro", - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "SPA", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1638-0102", - "mid": "125", - "ota": False, - "supportVer": {"Android": "1.1.7", "IOS": "1.1.7"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d2c14414d60de0001eaf1f2", - }, - { - "groupId": "5bbedcd922d57f00018c13b6", - "sort": 30, - "groupName": "DEEBOT OZMO/PRO 930 Series", - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "HK_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1803-0101", - "mid": "115", - "ota": False, - "supportVer": {"Android": "1.1.8", "IOS": "1.1.8"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5cf711aeb0acfc000179ff8a", - }, - { - "groupId": "5b6560760506b100015c8867", - "sort": 130, - "groupName": "DEEBOT 900 Series", - "isPopular": False, - "belongApp": ["ecoglobal", "ecodeebot"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1711-0201", - "mid": "ls1ok3", - "ota": False, - "supportVer": {"Android": "1.0.7", "IOS": "1.0.7"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5ba4a2cb6c2f120001c32839", - }, - { - "groupId": "5b6560760506b100015c8867", - "sort": 130, - "groupName": "DEEBOT 910", - "isPopular": False, - "belongApp": ["ecoglobal", "ecodeebot"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1711-0201", - "mid": "ls1ok3", - "ota": False, - "supportVer": {"Android": "1.0.7", "IOS": "1.0.7"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5c778731280fda0001770ba0", - }, - { - "groupId": "5cae9793e9e9270001354b57", - "sort": 160, - "groupName": "DEEBOT M81 Pro", - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "SPA", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1638-0101", - "mid": "141", - "ota": False, - "supportVer": {"Android": "1.1.7", "IOS": "1.1.7"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d2c2aa64d60de0001eaf1f6", - }, - { - "groupId": "5c19a835a1e6ee0001782245", - "sort": 20, - "groupName": "DEEBOT OZMO 920 Series", - "isPopular": True, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 1, - "materialNo": "110-1819-0101", - "mid": "vi829v", - "ota": False, - "supportVer": {"Android": "1.1.5", "IOS": "1.1.5"}, - "smartTypes": ["MQ_AP"], - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "Briefly press the RESET button for 1 second and then release. You will hear that DEEBOT is ready for network setup.", - "retryText": "", - "confirmText": "I've heard the sound", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5c9c7995e9e9270001354ab4", - }, - { - "groupId": "5bc8187422d57f00018c13ba", - "sort": 50, - "groupName": "DEEBOT OZMO 960", - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1803-0101", - "mid": "gd4uut", - "ota": False, - "supportVer": {"Android": "1.1.5", "IOS": "1.1.5"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5c7384767b93c700013f12e7", - }, - { - "groupId": "5b04bf1d7ccd1a0001e1f6a6", - "sort": 10, - "groupName": "DEEBOT OZMO 900 Series", - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1810-0101", - "mid": "y79a7u", - "ota": False, - "supportVer": {"Android": "1.0.0", "IOS": "1.0.0"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5b04c0217ccd1a0001e1f6a7", - }, - { - "groupId": "5b04bf1d7ccd1a0001e1f6a6", - "sort": 10, - "groupName": "DEEBOT OZMO 905", - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1810-0101", - "mid": "y79a7u", - "ota": False, - "supportVer": {"Android": "1.0.0", "IOS": "1.0.0"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d1474632a6bd50001b5b6f3", - }, - { - "groupId": "5c763de8280fda0001770b7f", - "sort": 100, - "groupName": "DEEBOT 500", - "isPopular": True, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "702-0000-0163", - "mid": "vsc5ia", - "ota": False, - "supportVer": {"Android": "1.1.5", "IOS": "1.1.5"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "image", - "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5df9d6b7c783810001d3d06b", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "image", - "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5dfc34d15d21490001700e14", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5c874326280fda0001770d2a", - }, - { - "groupId": "5c763de8280fda0001770b7f", - "sort": 100, - "groupName": "DEEBOT 501", - "isPopular": True, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "702-0000-0163", - "mid": "vsc5ia", - "ota": False, - "supportVer": {"Android": "1.1.5", "IOS": "1.1.5"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "image", - "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5df9d6b7c783810001d3d06b", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "image", - "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5dfc34d15d21490001700e14", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5c931fef280fda0001770d7e", - }, - { - "groupId": "5c763de8280fda0001770b7f", - "sort": 100, - "groupName": "DEEBOT 502", - "isPopular": True, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "702-0000-0163", - "mid": "vsc5ia", - "ota": False, - "supportVer": {"Android": "1.1.5", "IOS": "1.1.5"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "image", - "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5df9d6b7c783810001d3d06b", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "image", - "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5dfc34d15d21490001700e14", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5c93204b63023c0001e7faa7", - }, - { - "groupId": "5c763de8280fda0001770b7f", - "sort": 100, - "groupName": "DEEBOT 505", - "isPopular": True, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "702-0000-0163", - "mid": "vsc5ia", - "ota": False, - "supportVer": {"Android": "1.1.5", "IOS": "1.1.5"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "image", - "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5df9d6b7c783810001d3d06b", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "image", - "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5dfc34d15d21490001700e14", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5c932067280fda0001770d7f", - }, - { - "groupId": "5cae9aa5e9e9270001354b5d", - "sort": 230, - "groupName": "DEEBOT Slim2 Series", - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "SPA", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1639-0102", - "mid": "123", - "ota": False, - "supportVer": {"Android": "1.1.7", "IOS": "1.1.7"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d2c150dba13eb00013feaae", - }, - { - "groupId": "5cae9aa5e9e9270001354b5d", - "sort": 230, - "groupName": "DEEBOT Slim Neo", - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "SPA", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1639-0102", - "mid": "123", - "ota": False, - "supportVer": {"Android": "1.1.7", "IOS": "1.1.7"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d2c152f4d60de0001eaf1f4", - }, - { - "groupId": "5c19a8a0ddfc1f0001ede8e0", - "sort": 40, - "groupName": "DEEBOT OZMO 950 Series", - "isPopular": True, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 1, - "materialNo": "110-1820-0101", - "mid": "yna5xi", - "ota": False, - "supportVer": {"Android": "1.1.5", "IOS": "1.1.5"}, - "smartTypes": ["MQ_AP"], - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "Briefly press the RESET button for 1 second and then release. You will hear that DEEBOT is ready for network setup.", - "retryText": "", - "confirmText": "I've heard the sound", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5caafd7e1285190001685965", - }, - { - "groupId": "5ca4711412851900016858cb", - "sort": 70, - "groupName": "DEEBOT OZMO 700", - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 1, - "materialNo": "110-1825-0201", - "mid": "0xyhhr", - "ota": False, - "supportVer": {"Android": "1.1.5", "IOS": "1.1.5"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "Briefly press the RESET button for 1 second and then release. You will hear that DEEBOT is ready for network setup.", - "retryText": "", - "confirmText": "I've heard the sound", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d117d4f0ac6ad00012b792d", - }, - { - "groupId": "5ca4711412851900016858cb", - "sort": 70, - "groupName": "DEEBOT OZMO 750", - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 1, - "materialNo": "110-1825-0201", - "mid": "0xyhhr", - "ota": False, - "supportVer": {"Android": "1.1.5", "IOS": "1.1.5"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "Briefly press the RESET button for 1 second and then release. You will hear that DEEBOT is ready for network setup.", - "retryText": "", - "confirmText": "I've heard the sound", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d3aa309ba13eb00013feb69", - }, - { - "groupId": "5acb0f2e7c295c0001876eb4", - "sort": 110, - "groupName": "DEEBOT 600 Series", - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "702-0000-0170", - "mid": "dl8fht", - "ota": False, - "supportVer": {"Android": "1.0.0", "IOS": "1.0.0"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "image", - "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5ce8e36591fd5d0001892541", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "image", - "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5b8cd75f76f7f10001e9a0de", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5acc32067c295c0001876eea", - }, - { - "groupId": "5acb0f2e7c295c0001876eb4", - "sort": 110, - "groupName": "DEEBOT 661", - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "702-0000-0170", - "mid": "dl8fht", - "ota": False, - "supportVer": {"Android": "1.0.0", "IOS": "1.0.0"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "image", - "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5ce8e36591fd5d0001892541", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "image", - "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5b8cd75f76f7f10001e9a0de", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d280ce3350e7a0001e84c95", - }, - { - "groupId": "5ca31ce8e9e9270001354b33", - "sort": 170, - "groupName": "DEEBOT M86", - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "SPA", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1628-0101", - "mid": "129", - "ota": False, - "supportVer": {"Android": "1.1.7", "IOS": "1.1.7"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5ca31df112851900016858c0", - }, - { - "groupId": "5d2460f244af360001383992", - "sort": 9, - "groupName": "DEEBOT U3", - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "939393939393", - "mid": "xb83mv", - "ota": False, - "supportVer": {"Android": "1.1.8", "IOS": "1.1.8"}, - "smartTypes": ["MQ_AP"], - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "Briefly press the RESET button for 1 second and then release. You will hear that DEEBOT is ready for network setup.", - "retryText": "", - "confirmText": "I've heard the sound", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d3fe649de51dd0001fee0de", - }, - { - "groupId": "5d2460f244af360001383992", - "sort": 9, - "groupName": "DEEBOT U3 LINE FRIENDS", - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "939393939393", - "mid": "xb83mv", - "ota": False, - "supportVer": {"Android": "1.1.8", "IOS": "1.1.8"}, - "smartTypes": ["MQ_AP"], - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "Briefly press the RESET button for 1 second and then release. You will hear that DEEBOT is ready for network setup.", - "retryText": "", - "confirmText": "I've heard the sound", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5da834a8d66cd10001f58265", - }, - { - "groupId": "5ca1c9a3e9e9270001354b2b", - "sort": 240, - "groupName": "DEEBOT Mini2", - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "SPA", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1640-0101", - "mid": "142", - "ota": False, - "supportVer": {"Android": "1.1.7", "IOS": "1.1.7"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5ca1ca79e9e9270001354b2d", - }, - { - "groupId": "5ca31e8212851900016858c2", - "sort": 140, - "groupName": "DEEBOT N79", - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "SPA", - "failCount": 0, - "checkTips": 0, - "materialNo": "702-0000-0136", - "mid": "126", - "ota": False, - "supportVer": {"Android": "1.1.7", "IOS": "1.1.7"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5ca32ab2e9e9270001354b3d", - }, - { - "groupId": "5ca31e8212851900016858c2", - "sort": 140, - "groupName": "DEEBOT N79S/SE", - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "SPA", - "failCount": 0, - "checkTips": 0, - "materialNo": "702-0000-0136", - "mid": "126", - "ota": False, - "supportVer": {"Android": "1.1.7", "IOS": "1.1.7"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5cd4ca505b032200015a455d", - }, - { - "groupId": "5ca31e8212851900016858c2", - "sort": 140, - "groupName": "DEEBOT N79T/W", - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "SPA", - "failCount": 0, - "checkTips": 0, - "materialNo": "702-0000-0136", - "mid": "126", - "ota": False, - "supportVer": {"Android": "1.1.7", "IOS": "1.1.7"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5ca32a1012851900016858c6", - }, - { - "groupId": "5ae197be7ccd1a0001e1f6a1", - "sort": 120, - "groupName": "DEEBOT 711", - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "702-0000-0205", - "mid": "uv242z", - "ota": False, - "supportVer": {"Android": "1.0.5", "IOS": "1.0.5"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "image", - "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5b7fc85976f7f10001e9a0d0", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "image", - "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5ce8e5d5d85b4d0001776484", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5b5ac4cc8d5a56000111e769", - }, - { - "groupId": "5ae197be7ccd1a0001e1f6a1", - "sort": 120, - "groupName": "DEEBOT 710", - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "702-0000-0205", - "mid": "uv242z", - "ota": False, - "supportVer": {"Android": "1.0.5", "IOS": "1.0.5"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "image", - "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5b7fc85976f7f10001e9a0d0", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "image", - "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5ce8e5d5d85b4d0001776484", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5b5ac4e45f21100001882bb9", - }, - { - "groupId": "5ae197be7ccd1a0001e1f6a1", - "sort": 120, - "groupName": "DEEBOT 715", - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "702-0000-0205", - "mid": "uv242z", - "ota": False, - "supportVer": {"Android": "1.0.5", "IOS": "1.0.5"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "image", - "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5b7fc85976f7f10001e9a0d0", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "image", - "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5ce8e5d5d85b4d0001776484", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5b7b65f176f7f10001e9a0c2", - }, - { - "groupId": "5ae197be7ccd1a0001e1f6a1", - "sort": 120, - "groupName": "DEEBOT 711s", - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "702-0000-0205", - "mid": "uv242z", - "ota": False, - "supportVer": {"Android": "1.0.5", "IOS": "1.0.5"}, - "smartTypes": [], - "steps": [ - { - "guideImageType": "image", - "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5b7fc85976f7f10001e9a0d0", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "image", - "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5ce8e5d5d85b4d0001776484", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d157f9f77a3a60001051f69", - }, - ], - "msg": "success", - "configFAQ": { - "wifiFAQUrl": "https://portal-ww.ecouser.net/api/pim/wififaq.html?lang=en&defaultLang=en", - "notFoundAPUrl": "https://portal-ww.ecouser.net/api/pim/findWifi.html?lang=en&defaultLang=en", - "configFailedUrl": "https://portal-ww.ecouser.net/api/pim/configfail.html?lang=en&defaultLang=en", - "contactUS": "helper", - }, -} - -configGroupsResponse = { - "code": 0, - "data": [ - { - "sort": 1, - "id": "5c19a743e916ba00019a4e32", - "name": "DEEBOT OZMO", - "robots": [ - { - "groupId": "5d2460f244af360001383992", - "category": "", - "groupName": "DEEBOT U3", - "sort": 9, - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "939393939393", - "mid": "xb83mv", - "ota": False, - "supportVer": {"Android": "1.1.8", "IOS": "1.1.8"}, - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "Briefly press the RESET button for 1 second and then release. You will hear that DEEBOT is ready for network setup.", - "retryText": "", - "confirmText": "I've heard the sound", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d3fe66cea1a2e0001d2f243", - "products": [ - "5d246180350e7a0001e84bea", - "5d78f4e878d8b60001e23edc", - ], - "smartTypes": ["MQ_AP", "MQ_AP"], - "seriesId": "5c19a743e916ba00019a4e32", - }, - { - "groupId": "5b04bf1d7ccd1a0001e1f6a6", - "category": "", - "groupName": "DEEBOT OZMO 900 Series", - "sort": 10, - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1810-0101", - "mid": "y79a7u", - "ota": False, - "supportVer": {"Android": "1.0.0", "IOS": "1.0.0"}, - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d1472a62a6bd50001b5b6f2", - "products": [ - "5b04c0227ccd1a0001e1f6a8", - "5d1474630ac6ad00012b7940", - ], - "smartTypes": [], - "seriesId": "5c19a743e916ba00019a4e32", - }, - { - "groupId": "5c19a835a1e6ee0001782245", - "category": "", - "groupName": "DEEBOT OZMO 920 Series", - "sort": 20, - "isPopular": True, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 1, - "materialNo": "110-1819-0101", - "mid": "vi829v", - "ota": False, - "supportVer": {"Android": "1.1.5", "IOS": "1.1.5"}, - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "Briefly press the RESET button for 1 second and then release. You will hear that DEEBOT is ready for network setup.", - "retryText": "", - "confirmText": "I've heard the sound", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5c9c79c1e9e9270001354ab5", - "products": ["5c19a8f3a1e6ee0001782247"], - "smartTypes": ["MQ_AP"], - "seriesId": "5c19a743e916ba00019a4e32", - }, - { - "groupId": "5bbedcd922d57f00018c13b6", - "category": "", - "groupName": "DEEBOT OZMO/PRO 930 Series", - "sort": 30, - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "HK_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1803-0101", - "mid": "115", - "ota": False, - "supportVer": {"Android": "1.1.8", "IOS": "1.1.8"}, - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5cf66652b0acfc000179ff83", - "products": [ - "5bbedd2822d57f00018c13b7", - "5cd4dd385b032200015a4561", - ], - "smartTypes": [], - "seriesId": "5c19a743e916ba00019a4e32", - }, - { - "groupId": "5c19a8a0ddfc1f0001ede8e0", - "category": "", - "groupName": "DEEBOT OZMO 950 Series", - "sort": 40, - "isPopular": True, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 1, - "materialNo": "110-1820-0101", - "mid": "yna5xi", - "ota": False, - "supportVer": {"Android": "1.1.5", "IOS": "1.1.5"}, - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "Briefly press the RESET button for 1 second and then release. You will hear that DEEBOT is ready for network setup.", - "retryText": "", - "confirmText": "I've heard the sound", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5caafd981285190001685966", - "products": ["5c19a91ca1e6ee000178224a"], - "smartTypes": ["MQ_AP"], - "seriesId": "5c19a743e916ba00019a4e32", - }, - { - "groupId": "5bc8187422d57f00018c13ba", - "category": "", - "groupName": "DEEBOT OZMO 960 Series", - "sort": 50, - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1803-0101", - "mid": "gd4uut", - "ota": False, - "supportVer": {"Android": "1.1.5", "IOS": "1.1.5"}, - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d0899b00ac6ad00012b78f7", - "products": ["5bc8189d68142800016a6937"], - "smartTypes": [], - "seriesId": "5c19a743e916ba00019a4e32", - }, - { - "groupId": "5ae147f27ccd1a0001e1f69c", - "category": "", - "groupName": "DEEBOT OZMO Slim10 Series", - "sort": 60, - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1715-0201", - "mid": "02uwxm", - "ota": False, - "supportVer": {"Android": "1.0.0", "IOS": "1.0.0"}, - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5b5ebc34822f0b00013a2e1a", - "products": ["5ae1481e7ccd1a0001e1f69e"], - "smartTypes": [], - "seriesId": "5c19a743e916ba00019a4e32", - }, - { - "groupId": "5ca4711412851900016858cb", - "category": "", - "groupName": "DEEBOT OZMO 700 Series", - "sort": 70, - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 1, - "materialNo": "110-1825-0201", - "mid": "0xyhhr", - "ota": False, - "supportVer": {"Android": "1.1.5", "IOS": "1.1.5"}, - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "Briefly press the RESET button for 1 second and then release. You will hear that DEEBOT is ready for network setup.", - "retryText": "", - "confirmText": "I've heard the sound", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d117d680ac6ad00012b792e", - "products": [ - "5ca4716312851900016858cd", - "5ce7870cd85b4d0001775db9", - ], - "smartTypes": [], - "seriesId": "5c19a743e916ba00019a4e32", - }, - { - "groupId": "5ca32b5de9e9270001354b3f", - "category": "", - "groupName": "DEEBOT OZMO 600 Series", - "sort": 80, - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "SPA", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1629-0203", - "mid": "159", - "ota": False, - "supportVer": {"Android": "1.1.7", "IOS": "1.1.7"}, - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d4b75a8ea1a2e0001d2f28e", - "products": [ - "5ca32bc2e9e9270001354b41", - "5cbd97b961526a00019799bd", - "5cae98d01285190001685974", - ], - "smartTypes": [], - "seriesId": "5c19a743e916ba00019a4e32", - }, - ], - }, - { - "sort": 2, - "id": "5c2599b6a1e6ee0001782328", - "name": "DEEBOT", - "robots": [ - { - "groupId": "5c763de8280fda0001770b7f", - "category": "", - "groupName": "DEEBOT 500 Series", - "sort": 100, - "isPopular": True, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "702-0000-0163", - "mid": "vsc5ia", - "ota": False, - "supportVer": {"Android": "1.1.5", "IOS": "1.1.5"}, - "steps": [ - { - "guideImageType": "image", - "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5df9d6b7c783810001d3d06b", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "image", - "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5dfc34d15d21490001700e14", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5cf6668bda73e90001dc3b98", - "products": [ - "5c763eba280fda0001770b81", - "5c763f35280fda0001770b84", - "5c763f63280fda0001770b88", - "5c763f8263023c0001e7f855", - ], - "smartTypes": [], - "seriesId": "5c2599b6a1e6ee0001782328", - }, - { - "groupId": "5acb0f2e7c295c0001876eb4", - "category": "", - "groupName": "DEEBOT 600 Series", - "sort": 110, - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "702-0000-0170", - "mid": "dl8fht", - "ota": False, - "supportVer": {"Android": "1.0.0", "IOS": "1.0.0"}, - "steps": [ - { - "guideImageType": "image", - "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5ce8e36591fd5d0001892541", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "image", - "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5b8cd75f76f7f10001e9a0de", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5cf6669ab0acfc000179ff85", - "products": [ - "5acb0fa87c295c0001876ecf", - "5d280ce344af3600013839ab", - ], - "smartTypes": [], - "seriesId": "5c2599b6a1e6ee0001782328", - }, - { - "groupId": "5ae197be7ccd1a0001e1f6a1", - "category": "", - "groupName": "DEEBOT 700 Series", - "sort": 120, - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "702-0000-0205", - "mid": "uv242z", - "ota": False, - "supportVer": {"Android": "1.0.5", "IOS": "1.0.5"}, - "steps": [ - { - "guideImageType": "image", - "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5b7fc85976f7f10001e9a0d0", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "image", - "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5ce8e5d5d85b4d0001776484", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5b5ec2b1822f0b00013a2e1c", - "products": [ - "5b43077b8bc457000140363e", - "5b5149b4ac0b87000148c128", - "5b7b65f364e1680001a08b54", - "5ceba1c6d85b4d0001776986", - ], - "smartTypes": [], - "seriesId": "5c2599b6a1e6ee0001782328", - }, - { - "groupId": "5b6560760506b100015c8867", - "category": "", - "groupName": "DEEBOT 900 Series", - "sort": 130, - "isPopular": False, - "belongApp": ["ecoglobal", "ecodeebot"], - "smartType": "MQ_AP", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1711-0201", - "mid": "ls1ok3", - "ota": False, - "supportVer": {"Android": "1.0.7", "IOS": "1.0.7"}, - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d1472b70ac6ad00012b793f", - "products": [ - "5b6561060506b100015c8868", - "5bf2596f23244a00013f2f13", - ], - "smartTypes": [], - "seriesId": "5c2599b6a1e6ee0001782328", - }, - { - "groupId": "5ca31e8212851900016858c2", - "category": "", - "groupName": "DEEBOT N79 Series", - "sort": 140, - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "SPA", - "failCount": 0, - "checkTips": 0, - "materialNo": "702-0000-0136", - "mid": "126", - "ota": False, - "supportVer": {"Android": "1.1.7", "IOS": "1.1.7"}, - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5cf666bdda73e90001dc3b9a", - "products": [ - "5ca32ab212851900016858c7", - "5cce893813afb7000195d6af", - "5ca32a11e9e9270001354b39", - ], - "smartTypes": [], - "seriesId": "5c2599b6a1e6ee0001782328", - }, - { - "groupId": "5cae9662e9e9270001354b55", - "category": "", - "groupName": "DEEBOT M80 Pro", - "sort": 150, - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "SPA", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1638-0102", - "mid": "125", - "ota": False, - "supportVer": {"Android": "1.1.7", "IOS": "1.1.7"}, - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d2c1000ba13eb00013feaa4", - "products": ["5cae9703128519000168596a"], - "smartTypes": [], - "seriesId": "5c2599b6a1e6ee0001782328", - }, - { - "groupId": "5cae9793e9e9270001354b57", - "category": "", - "groupName": "DEEBOT M81 Pro", - "sort": 160, - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "SPA", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1638-0101", - "mid": "141", - "ota": False, - "supportVer": {"Android": "1.1.7", "IOS": "1.1.7"}, - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d2c10224d60de0001eaf1ea", - "products": ["5cae97c9128519000168596f"], - "smartTypes": [], - "seriesId": "5c2599b6a1e6ee0001782328", - }, - { - "groupId": "5ca31ce8e9e9270001354b33", - "category": "", - "groupName": "DEEBOT M86", - "sort": 170, - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "SPA", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1628-0101", - "mid": "129", - "ota": False, - "supportVer": {"Android": "1.1.7", "IOS": "1.1.7"}, - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5cf66704da73e90001dc3b9b", - "products": ["5ca31df1e9e9270001354b35"], - "smartTypes": [], - "seriesId": "5c2599b6a1e6ee0001782328", - }, - { - "groupId": "5cd4df825b032200015a4567", - "category": "", - "groupName": "DEEBOT M87", - "sort": 180, - "isPopular": False, - "belongApp": ["ecodeebot"], - "smartType": "SCM0", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1517-1001", - "mid": "121", - "ota": False, - "supportVer": {"Android": "1.1.7", "IOS": "1.1.7"}, - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5ce8ea21d85b4d0001776489", - "products": [], - "smartTypes": [], - "seriesId": "5c2599b6a1e6ee0001782328", - }, - { - "groupId": "5cd4dfc9f542e00001dc2df8", - "category": "", - "groupName": "DEEBOT M88", - "sort": 190, - "isPopular": False, - "belongApp": ["ecodeebot"], - "smartType": "SCM0", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1517-0701", - "mid": "107", - "ota": False, - "supportVer": {"Android": "1.1.7", "IOS": "1.1.7"}, - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5ce8eaa5d85b4d000177648a", - "products": [], - "smartTypes": [], - "seriesId": "5c2599b6a1e6ee0001782328", - }, - { - "groupId": "5cd4e077f542e00001dc2dfb", - "category": "", - "groupName": "DEEBOT R95", - "sort": 200, - "isPopular": False, - "belongApp": ["ecodeebot"], - "smartType": "SCM0", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1412-0001", - "mid": "113", - "ota": False, - "supportVer": {"Android": "1.1.7", "IOS": "1.1.7"}, - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5ce8eb7091fd5d000189254a", - "products": [], - "smartTypes": [], - "seriesId": "5c2599b6a1e6ee0001782328", - }, - { - "groupId": "5cd4e0b25b032200015a4569", - "category": "", - "groupName": "DEEBOT R96", - "sort": 210, - "isPopular": False, - "belongApp": ["ecodeebot"], - "smartType": "SCM0", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1510-0501", - "mid": "118", - "ota": False, - "supportVer": {"Android": "1.1.7", "IOS": "1.1.7"}, - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5ce8ebd791fd5d000189254b", - "products": [], - "smartTypes": [], - "seriesId": "5c2599b6a1e6ee0001782328", - }, - { - "groupId": "5cd4e0e15b032200015a456c", - "category": "", - "groupName": "DEEBOT R98", - "sort": 220, - "isPopular": False, - "belongApp": ["ecodeebot"], - "smartType": "SCM0", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1510-0601", - "mid": "117", - "ota": False, - "supportVer": {"Android": "1.1.7", "IOS": "1.1.7"}, - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5ce8ec13d85b4d000177648b", - "products": [], - "smartTypes": [], - "seriesId": "5c2599b6a1e6ee0001782328", - }, - { - "groupId": "5cae9aa5e9e9270001354b5d", - "category": "", - "groupName": "DEEBOT Slim Series", - "sort": 230, - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "SPA", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1639-0102", - "mid": "123", - "ota": False, - "supportVer": {"Android": "1.1.7", "IOS": "1.1.7"}, - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d2c11fa4d60de0001eaf1ef", - "products": [ - "5cae9b201285190001685977", - "5cd43b4cf542e00001dc2dec", - ], - "smartTypes": [], - "seriesId": "5c2599b6a1e6ee0001782328", - }, - { - "groupId": "5ca1c9a3e9e9270001354b2b", - "category": "", - "groupName": "DEEBOT Mini2", - "sort": 240, - "isPopular": False, - "belongApp": ["ecoglobal"], - "smartType": "SPA", - "failCount": 0, - "checkTips": 0, - "materialNo": "110-1640-0101", - "mid": "142", - "ota": False, - "supportVer": {"Android": "1.1.7", "IOS": "1.1.7"}, - "steps": [ - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - { - "guideImageType": "", - "guideImageUrl": "", - "title": "", - "guideText": "", - "retryText": "", - "confirmText": "", - "btnText": "", - }, - ], - "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5ca1c901e9e9270001354b2a", - "products": ["5ca1ca7a12851900016858bd"], - "smartTypes": [], - "seriesId": "5c2599b6a1e6ee0001782328", - }, - ], - }, - ], - "msg": "success", - "configFAQ": { - "wifiFAQUrl": "https://portal-ww.ecouser.net/api/pim/wififaq.html?lang=en&defaultLang=en", - "notFoundAPUrl": "https://portal-ww.ecouser.net/api/pim/findWifi.html?lang=en&defaultLang=en", - "configFailedUrl": "https://portal-ww.ecouser.net/api/pim/configfail.html?lang=en&defaultLang=en", - "contactUS": "helper", - }, -} - -productConfigBatch = [ - { - "pid": "5e14196a6e71b80001b60fda", - "cfg": { - "supported": { - "tmallstand": False, - "video": False, - "battery": True, - "clean": True, - "charge": True, - } - }, - }, - { - "pid": "5e8e8d8a032edd8457c66bfb", - "cfg": { - "supported": { - "tmallstand": False, - "video": False, - "battery": True, - "clean": True, - "charge": True, - } - }, - }, - { - "pid": "5c19a91ca1e6ee000178224a", - "cfg": { - "supported": { - "tmallstand": False, - "video": False, - "battery": True, - "clean": True, - "charge": True, - } - }, - }, - { - "pid": "5e8e8d2a032edd3c03c66bf7", - "cfg": { - "supported": { - "tmallstand": False, - "video": False, - "battery": True, - "clean": True, - "charge": True, - } - }, - }, - { - "pid": "5de0d86ed88546000195239a", - "cfg": { - "supported": { - "tmallstand": False, - "video": True, - "battery": True, - "clean": True, - "charge": True, - } - }, - }, - { - "pid": "5c19a8f3a1e6ee0001782247", - "cfg": { - "supported": { - "tmallstand": False, - "video": False, - "battery": True, - "clean": True, - "charge": True, - } - }, - }, - { - "pid": "5e698a6306f6de52c264c61b", - "cfg": { - "supported": { - "tmallstand": False, - "video": False, - "battery": True, - "clean": True, - "charge": True, - } - }, - }, - { - "pid": "5e699a4106f6de83ea64c620", - "cfg": { - "supported": { - "tmallstand": False, - "video": False, - "battery": True, - "clean": True, - "charge": True, - } - }, - }, - { - "pid": "5edd998afdd6a30008da039b", - "cfg": { - "supported": { - "tmallstand": False, - "video": True, - "battery": True, - "clean": True, - "charge": True, - } - }, - }, - { - "pid": "5edd9a4075f2fc000636086c", - "cfg": { - "supported": { - "tmallstand": False, - "video": True, - "battery": True, - "clean": True, - "charge": True, - } - }, - }, - { - "pid": "5ed5e4d3a719ea460ec3216c", - "cfg": { - "supported": { - "tmallstand": False, - "video": False, - "battery": True, - "clean": True, - "charge": True, - } - }, - }, - { - "pid": "5f88195e6cf8de0008ed7c11", - "cfg": { - "supported": { - "tmallstand": False, - "video": False, - "battery": True, - "clean": True, - "charge": True, - } - }, - }, - { - "pid": "5f8819156cf8de0008ed7c0d", - "cfg": { - "supported": { - "tmallstand": False, - "video": False, - "battery": True, - "clean": True, - "charge": True, - } - }, - }, - { - "pid": "5fa105c6d16a99000667eb54", - "cfg": { - "supported": { - "tmallstand": False, - "video": False, - "battery": True, - "clean": True, - "charge": True, - } - }, - }, -] diff --git a/bumper/web/plugins/api/pim/__init__.py b/bumper/web/plugins/api/pim/__init__.py new file mode 100644 index 0000000..13a499c --- /dev/null +++ b/bumper/web/plugins/api/pim/__init__.py @@ -0,0 +1 @@ +"""Api pim module plugin.""" diff --git a/bumper/web/plugins/api/pim/configGroupsResponse.json b/bumper/web/plugins/api/pim/configGroupsResponse.json new file mode 100644 index 0000000..7e6cfc9 --- /dev/null +++ b/bumper/web/plugins/api/pim/configGroupsResponse.json @@ -0,0 +1,1052 @@ +{ + "code": 0, + "configFAQ": { + "configFailedUrl": "https://portal-ww.ecouser.net/api/pim/configfail.html?lang=en&defaultLang=en", + "contactUS": "helper", + "notFoundAPUrl": "https://portal-ww.ecouser.net/api/pim/findWifi.html?lang=en&defaultLang=en", + "wifiFAQUrl": "https://portal-ww.ecouser.net/api/pim/wififaq.html?lang=en&defaultLang=en" + }, + "data": [ + { + "id": "5c19a743e916ba00019a4e32", + "name": "DEEBOT OZMO", + "robots": [ + { + "belongApp": ["ecoglobal"], + "category": "", + "checkTips": 0, + "failCount": 0, + "groupId": "5d2460f244af360001383992", + "groupName": "DEEBOT U3", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d3fe66cea1a2e0001d2f243", + "isPopular": false, + "materialNo": "939393939393", + "mid": "xb83mv", + "ota": false, + "products": ["5d246180350e7a0001e84bea", "5d78f4e878d8b60001e23edc"], + "seriesId": "5c19a743e916ba00019a4e32", + "smartType": "MQ_AP", + "smartTypes": ["MQ_AP", "MQ_AP"], + "sort": 9, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "I've heard the sound", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "Briefly press the RESET button for 1 second and then release. You will hear that DEEBOT is ready for network setup.", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.8", + "IOS": "1.1.8" + } + }, + { + "belongApp": ["ecoglobal"], + "category": "", + "checkTips": 0, + "failCount": 0, + "groupId": "5b04bf1d7ccd1a0001e1f6a6", + "groupName": "DEEBOT OZMO 900 Series", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d1472a62a6bd50001b5b6f2", + "isPopular": false, + "materialNo": "110-1810-0101", + "mid": "y79a7u", + "ota": false, + "products": ["5b04c0227ccd1a0001e1f6a8", "5d1474630ac6ad00012b7940"], + "seriesId": "5c19a743e916ba00019a4e32", + "smartType": "MQ_AP", + "smartTypes": [], + "sort": 10, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.0.0", + "IOS": "1.0.0" + } + }, + { + "belongApp": ["ecoglobal"], + "category": "", + "checkTips": 1, + "failCount": 0, + "groupId": "5c19a835a1e6ee0001782245", + "groupName": "DEEBOT OZMO 920 Series", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5c9c79c1e9e9270001354ab5", + "isPopular": true, + "materialNo": "110-1819-0101", + "mid": "vi829v", + "ota": false, + "products": ["5c19a8f3a1e6ee0001782247"], + "seriesId": "5c19a743e916ba00019a4e32", + "smartType": "MQ_AP", + "smartTypes": ["MQ_AP"], + "sort": 20, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "I've heard the sound", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "Briefly press the RESET button for 1 second and then release. You will hear that DEEBOT is ready for network setup.", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.5", + "IOS": "1.1.5" + } + }, + { + "belongApp": ["ecoglobal"], + "category": "", + "checkTips": 0, + "failCount": 0, + "groupId": "5bbedcd922d57f00018c13b6", + "groupName": "DEEBOT OZMO/PRO 930 Series", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5cf66652b0acfc000179ff83", + "isPopular": false, + "materialNo": "110-1803-0101", + "mid": "115", + "ota": false, + "products": ["5bbedd2822d57f00018c13b7", "5cd4dd385b032200015a4561"], + "seriesId": "5c19a743e916ba00019a4e32", + "smartType": "HK_AP", + "smartTypes": [], + "sort": 30, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.8", + "IOS": "1.1.8" + } + }, + { + "belongApp": ["ecoglobal"], + "category": "", + "checkTips": 1, + "failCount": 0, + "groupId": "5c19a8a0ddfc1f0001ede8e0", + "groupName": "DEEBOT OZMO 950 Series", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5caafd981285190001685966", + "isPopular": true, + "materialNo": "110-1820-0101", + "mid": "yna5xi", + "ota": false, + "products": ["5c19a91ca1e6ee000178224a"], + "seriesId": "5c19a743e916ba00019a4e32", + "smartType": "MQ_AP", + "smartTypes": ["MQ_AP"], + "sort": 40, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "I've heard the sound", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "Briefly press the RESET button for 1 second and then release. You will hear that DEEBOT is ready for network setup.", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.5", + "IOS": "1.1.5" + } + }, + { + "belongApp": ["ecoglobal"], + "category": "", + "checkTips": 0, + "failCount": 0, + "groupId": "5bc8187422d57f00018c13ba", + "groupName": "DEEBOT OZMO 960 Series", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d0899b00ac6ad00012b78f7", + "isPopular": false, + "materialNo": "110-1803-0101", + "mid": "gd4uut", + "ota": false, + "products": ["5bc8189d68142800016a6937"], + "seriesId": "5c19a743e916ba00019a4e32", + "smartType": "MQ_AP", + "smartTypes": [], + "sort": 50, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.5", + "IOS": "1.1.5" + } + }, + { + "belongApp": ["ecoglobal"], + "category": "", + "checkTips": 0, + "failCount": 0, + "groupId": "5ae147f27ccd1a0001e1f69c", + "groupName": "DEEBOT OZMO Slim10 Series", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5b5ebc34822f0b00013a2e1a", + "isPopular": false, + "materialNo": "110-1715-0201", + "mid": "02uwxm", + "ota": false, + "products": ["5ae1481e7ccd1a0001e1f69e"], + "seriesId": "5c19a743e916ba00019a4e32", + "smartType": "MQ_AP", + "smartTypes": [], + "sort": 60, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.0.0", + "IOS": "1.0.0" + } + }, + { + "belongApp": ["ecoglobal"], + "category": "", + "checkTips": 1, + "failCount": 0, + "groupId": "5ca4711412851900016858cb", + "groupName": "DEEBOT OZMO 700 Series", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d117d680ac6ad00012b792e", + "isPopular": false, + "materialNo": "110-1825-0201", + "mid": "0xyhhr", + "ota": false, + "products": ["5ca4716312851900016858cd", "5ce7870cd85b4d0001775db9"], + "seriesId": "5c19a743e916ba00019a4e32", + "smartType": "MQ_AP", + "smartTypes": [], + "sort": 70, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "I've heard the sound", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "Briefly press the RESET button for 1 second and then release. You will hear that DEEBOT is ready for network setup.", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.5", + "IOS": "1.1.5" + } + }, + { + "belongApp": ["ecoglobal"], + "category": "", + "checkTips": 0, + "failCount": 0, + "groupId": "5ca32b5de9e9270001354b3f", + "groupName": "DEEBOT OZMO 600 Series", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d4b75a8ea1a2e0001d2f28e", + "isPopular": false, + "materialNo": "110-1629-0203", + "mid": "159", + "ota": false, + "products": [ + "5ca32bc2e9e9270001354b41", + "5cbd97b961526a00019799bd", + "5cae98d01285190001685974" + ], + "seriesId": "5c19a743e916ba00019a4e32", + "smartType": "SPA", + "smartTypes": [], + "sort": 80, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.7", + "IOS": "1.1.7" + } + } + ], + "sort": 1 + }, + { + "id": "5c2599b6a1e6ee0001782328", + "name": "DEEBOT", + "robots": [ + { + "belongApp": ["ecoglobal"], + "category": "", + "checkTips": 0, + "failCount": 0, + "groupId": "5c763de8280fda0001770b7f", + "groupName": "DEEBOT 500 Series", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5cf6668bda73e90001dc3b98", + "isPopular": true, + "materialNo": "702-0000-0163", + "mid": "vsc5ia", + "ota": false, + "products": [ + "5c763eba280fda0001770b81", + "5c763f35280fda0001770b84", + "5c763f63280fda0001770b88", + "5c763f8263023c0001e7f855" + ], + "seriesId": "5c2599b6a1e6ee0001782328", + "smartType": "MQ_AP", + "smartTypes": [], + "sort": 100, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "image", + "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5df9d6b7c783810001d3d06b", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "image", + "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5dfc34d15d21490001700e14", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.5", + "IOS": "1.1.5" + } + }, + { + "belongApp": ["ecoglobal"], + "category": "", + "checkTips": 0, + "failCount": 0, + "groupId": "5acb0f2e7c295c0001876eb4", + "groupName": "DEEBOT 600 Series", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5cf6669ab0acfc000179ff85", + "isPopular": false, + "materialNo": "702-0000-0170", + "mid": "dl8fht", + "ota": false, + "products": ["5acb0fa87c295c0001876ecf", "5d280ce344af3600013839ab"], + "seriesId": "5c2599b6a1e6ee0001782328", + "smartType": "MQ_AP", + "smartTypes": [], + "sort": 110, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "image", + "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5ce8e36591fd5d0001892541", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "image", + "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5b8cd75f76f7f10001e9a0de", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.0.0", + "IOS": "1.0.0" + } + }, + { + "belongApp": ["ecoglobal"], + "category": "", + "checkTips": 0, + "failCount": 0, + "groupId": "5ae197be7ccd1a0001e1f6a1", + "groupName": "DEEBOT 700 Series", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5b5ec2b1822f0b00013a2e1c", + "isPopular": false, + "materialNo": "702-0000-0205", + "mid": "uv242z", + "ota": false, + "products": [ + "5b43077b8bc457000140363e", + "5b5149b4ac0b87000148c128", + "5b7b65f364e1680001a08b54", + "5ceba1c6d85b4d0001776986" + ], + "seriesId": "5c2599b6a1e6ee0001782328", + "smartType": "MQ_AP", + "smartTypes": [], + "sort": 120, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "image", + "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5b7fc85976f7f10001e9a0d0", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "image", + "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5ce8e5d5d85b4d0001776484", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.0.5", + "IOS": "1.0.5" + } + }, + { + "belongApp": ["ecoglobal", "ecodeebot"], + "category": "", + "checkTips": 0, + "failCount": 0, + "groupId": "5b6560760506b100015c8867", + "groupName": "DEEBOT 900 Series", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d1472b70ac6ad00012b793f", + "isPopular": false, + "materialNo": "110-1711-0201", + "mid": "ls1ok3", + "ota": false, + "products": ["5b6561060506b100015c8868", "5bf2596f23244a00013f2f13"], + "seriesId": "5c2599b6a1e6ee0001782328", + "smartType": "MQ_AP", + "smartTypes": [], + "sort": 130, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.0.7", + "IOS": "1.0.7" + } + }, + { + "belongApp": ["ecoglobal"], + "category": "", + "checkTips": 0, + "failCount": 0, + "groupId": "5ca31e8212851900016858c2", + "groupName": "DEEBOT N79 Series", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5cf666bdda73e90001dc3b9a", + "isPopular": false, + "materialNo": "702-0000-0136", + "mid": "126", + "ota": false, + "products": [ + "5ca32ab212851900016858c7", + "5cce893813afb7000195d6af", + "5ca32a11e9e9270001354b39" + ], + "seriesId": "5c2599b6a1e6ee0001782328", + "smartType": "SPA", + "smartTypes": [], + "sort": 140, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.7", + "IOS": "1.1.7" + } + }, + { + "belongApp": ["ecoglobal"], + "category": "", + "checkTips": 0, + "failCount": 0, + "groupId": "5cae9662e9e9270001354b55", + "groupName": "DEEBOT M80 Pro", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d2c1000ba13eb00013feaa4", + "isPopular": false, + "materialNo": "110-1638-0102", + "mid": "125", + "ota": false, + "products": ["5cae9703128519000168596a"], + "seriesId": "5c2599b6a1e6ee0001782328", + "smartType": "SPA", + "smartTypes": [], + "sort": 150, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.7", + "IOS": "1.1.7" + } + }, + { + "belongApp": ["ecoglobal"], + "category": "", + "checkTips": 0, + "failCount": 0, + "groupId": "5cae9793e9e9270001354b57", + "groupName": "DEEBOT M81 Pro", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d2c10224d60de0001eaf1ea", + "isPopular": false, + "materialNo": "110-1638-0101", + "mid": "141", + "ota": false, + "products": ["5cae97c9128519000168596f"], + "seriesId": "5c2599b6a1e6ee0001782328", + "smartType": "SPA", + "smartTypes": [], + "sort": 160, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.7", + "IOS": "1.1.7" + } + }, + { + "belongApp": ["ecoglobal"], + "category": "", + "checkTips": 0, + "failCount": 0, + "groupId": "5ca31ce8e9e9270001354b33", + "groupName": "DEEBOT M86", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5cf66704da73e90001dc3b9b", + "isPopular": false, + "materialNo": "110-1628-0101", + "mid": "129", + "ota": false, + "products": ["5ca31df1e9e9270001354b35"], + "seriesId": "5c2599b6a1e6ee0001782328", + "smartType": "SPA", + "smartTypes": [], + "sort": 170, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.7", + "IOS": "1.1.7" + } + }, + { + "belongApp": ["ecodeebot"], + "category": "", + "checkTips": 0, + "failCount": 0, + "groupId": "5cd4df825b032200015a4567", + "groupName": "DEEBOT M87", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5ce8ea21d85b4d0001776489", + "isPopular": false, + "materialNo": "110-1517-1001", + "mid": "121", + "ota": false, + "products": [], + "seriesId": "5c2599b6a1e6ee0001782328", + "smartType": "SCM0", + "smartTypes": [], + "sort": 180, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.7", + "IOS": "1.1.7" + } + }, + { + "belongApp": ["ecodeebot"], + "category": "", + "checkTips": 0, + "failCount": 0, + "groupId": "5cd4dfc9f542e00001dc2df8", + "groupName": "DEEBOT M88", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5ce8eaa5d85b4d000177648a", + "isPopular": false, + "materialNo": "110-1517-0701", + "mid": "107", + "ota": false, + "products": [], + "seriesId": "5c2599b6a1e6ee0001782328", + "smartType": "SCM0", + "smartTypes": [], + "sort": 190, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.7", + "IOS": "1.1.7" + } + }, + { + "belongApp": ["ecodeebot"], + "category": "", + "checkTips": 0, + "failCount": 0, + "groupId": "5cd4e077f542e00001dc2dfb", + "groupName": "DEEBOT R95", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5ce8eb7091fd5d000189254a", + "isPopular": false, + "materialNo": "110-1412-0001", + "mid": "113", + "ota": false, + "products": [], + "seriesId": "5c2599b6a1e6ee0001782328", + "smartType": "SCM0", + "smartTypes": [], + "sort": 200, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.7", + "IOS": "1.1.7" + } + }, + { + "belongApp": ["ecodeebot"], + "category": "", + "checkTips": 0, + "failCount": 0, + "groupId": "5cd4e0b25b032200015a4569", + "groupName": "DEEBOT R96", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5ce8ebd791fd5d000189254b", + "isPopular": false, + "materialNo": "110-1510-0501", + "mid": "118", + "ota": false, + "products": [], + "seriesId": "5c2599b6a1e6ee0001782328", + "smartType": "SCM0", + "smartTypes": [], + "sort": 210, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.7", + "IOS": "1.1.7" + } + }, + { + "belongApp": ["ecodeebot"], + "category": "", + "checkTips": 0, + "failCount": 0, + "groupId": "5cd4e0e15b032200015a456c", + "groupName": "DEEBOT R98", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5ce8ec13d85b4d000177648b", + "isPopular": false, + "materialNo": "110-1510-0601", + "mid": "117", + "ota": false, + "products": [], + "seriesId": "5c2599b6a1e6ee0001782328", + "smartType": "SCM0", + "smartTypes": [], + "sort": 220, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.7", + "IOS": "1.1.7" + } + }, + { + "belongApp": ["ecoglobal"], + "category": "", + "checkTips": 0, + "failCount": 0, + "groupId": "5cae9aa5e9e9270001354b5d", + "groupName": "DEEBOT Slim Series", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d2c11fa4d60de0001eaf1ef", + "isPopular": false, + "materialNo": "110-1639-0102", + "mid": "123", + "ota": false, + "products": ["5cae9b201285190001685977", "5cd43b4cf542e00001dc2dec"], + "seriesId": "5c2599b6a1e6ee0001782328", + "smartType": "SPA", + "smartTypes": [], + "sort": 230, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.7", + "IOS": "1.1.7" + } + }, + { + "belongApp": ["ecoglobal"], + "category": "", + "checkTips": 0, + "failCount": 0, + "groupId": "5ca1c9a3e9e9270001354b2b", + "groupName": "DEEBOT Mini2", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5ca1c901e9e9270001354b2a", + "isPopular": false, + "materialNo": "110-1640-0101", + "mid": "142", + "ota": false, + "products": ["5ca1ca7a12851900016858bd"], + "seriesId": "5c2599b6a1e6ee0001782328", + "smartType": "SPA", + "smartTypes": [], + "sort": 240, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.7", + "IOS": "1.1.7" + } + } + ], + "sort": 2 + } + ], + "msg": "success" +} diff --git a/bumper/web/plugins/api/pim/configNetAllResponse.json b/bumper/web/plugins/api/pim/configNetAllResponse.json new file mode 100644 index 0000000..67f6e0d --- /dev/null +++ b/bumper/web/plugins/api/pim/configNetAllResponse.json @@ -0,0 +1,1377 @@ +{ + "code": 0, + "configFAQ": { + "configFailedUrl": "https://portal-ww.ecouser.net/api/pim/configfail.html?lang=en&defaultLang=en", + "contactUS": "helper", + "notFoundAPUrl": "https://portal-ww.ecouser.net/api/pim/findWifi.html?lang=en&defaultLang=en", + "wifiFAQUrl": "https://portal-ww.ecouser.net/api/pim/wififaq.html?lang=en&defaultLang=en" + }, + "data": [ + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5ae147f27ccd1a0001e1f69c", + "groupName": "DEEBOT OZMO Slim10 Series", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5b1dddc48bc45700014035a1", + "isPopular": false, + "materialNo": "110-1715-0201", + "mid": "02uwxm", + "ota": false, + "smartType": "MQ_AP", + "smartTypes": [], + "sort": 60, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.0.0", + "IOS": "1.0.0" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5ca32b5de9e9270001354b3f", + "groupName": "DEEBOT OZMO 601", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d4b7606de51dd0001fee12d", + "isPopular": false, + "materialNo": "110-1629-0203", + "mid": "159", + "ota": false, + "smartType": "SPA", + "smartTypes": [], + "sort": 80, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.7", + "IOS": "1.1.7" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5ca32b5de9e9270001354b3f", + "groupName": "DEEBOT", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d4b7628de51dd0001fee12f", + "isPopular": false, + "materialNo": "110-1629-0203", + "mid": "159", + "ota": false, + "smartType": "SPA", + "smartTypes": [], + "sort": 80, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.7", + "IOS": "1.1.7" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5ca32b5de9e9270001354b3f", + "groupName": "DEEBOT OZMO 610 Series", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d4b7640de51dd0001fee131", + "isPopular": false, + "materialNo": "110-1629-0203", + "mid": "159", + "ota": false, + "smartType": "SPA", + "smartTypes": [], + "sort": 80, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.7", + "IOS": "1.1.7" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5cae9662e9e9270001354b55", + "groupName": "DEEBOT M80 Pro", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d2c14414d60de0001eaf1f2", + "isPopular": false, + "materialNo": "110-1638-0102", + "mid": "125", + "ota": false, + "smartType": "SPA", + "smartTypes": [], + "sort": 150, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.7", + "IOS": "1.1.7" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5bbedcd922d57f00018c13b6", + "groupName": "DEEBOT OZMO/PRO 930 Series", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5cf711aeb0acfc000179ff8a", + "isPopular": false, + "materialNo": "110-1803-0101", + "mid": "115", + "ota": false, + "smartType": "HK_AP", + "smartTypes": [], + "sort": 30, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.8", + "IOS": "1.1.8" + } + }, + { + "belongApp": ["ecoglobal", "ecodeebot"], + "checkTips": 0, + "failCount": 0, + "groupId": "5b6560760506b100015c8867", + "groupName": "DEEBOT 900 Series", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5ba4a2cb6c2f120001c32839", + "isPopular": false, + "materialNo": "110-1711-0201", + "mid": "ls1ok3", + "ota": false, + "smartType": "MQ_AP", + "smartTypes": [], + "sort": 130, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.0.7", + "IOS": "1.0.7" + } + }, + { + "belongApp": ["ecoglobal", "ecodeebot"], + "checkTips": 0, + "failCount": 0, + "groupId": "5b6560760506b100015c8867", + "groupName": "DEEBOT 910", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5c778731280fda0001770ba0", + "isPopular": false, + "materialNo": "110-1711-0201", + "mid": "ls1ok3", + "ota": false, + "smartType": "MQ_AP", + "smartTypes": [], + "sort": 130, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.0.7", + "IOS": "1.0.7" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5cae9793e9e9270001354b57", + "groupName": "DEEBOT M81 Pro", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d2c2aa64d60de0001eaf1f6", + "isPopular": false, + "materialNo": "110-1638-0101", + "mid": "141", + "ota": false, + "smartType": "SPA", + "smartTypes": [], + "sort": 160, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.7", + "IOS": "1.1.7" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 1, + "failCount": 0, + "groupId": "5c19a835a1e6ee0001782245", + "groupName": "DEEBOT OZMO 920 Series", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5c9c7995e9e9270001354ab4", + "isPopular": true, + "materialNo": "110-1819-0101", + "mid": "vi829v", + "ota": false, + "smartType": "MQ_AP", + "smartTypes": ["MQ_AP"], + "sort": 20, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "I've heard the sound", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "Briefly press the RESET button for 1 second and then release. You will hear that DEEBOT is ready for network setup.", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.5", + "IOS": "1.1.5" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5bc8187422d57f00018c13ba", + "groupName": "DEEBOT OZMO 960", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5c7384767b93c700013f12e7", + "isPopular": false, + "materialNo": "110-1803-0101", + "mid": "gd4uut", + "ota": false, + "smartType": "MQ_AP", + "smartTypes": [], + "sort": 50, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.5", + "IOS": "1.1.5" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5b04bf1d7ccd1a0001e1f6a6", + "groupName": "DEEBOT OZMO 900 Series", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5b04c0217ccd1a0001e1f6a7", + "isPopular": false, + "materialNo": "110-1810-0101", + "mid": "y79a7u", + "ota": false, + "smartType": "MQ_AP", + "smartTypes": [], + "sort": 10, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.0.0", + "IOS": "1.0.0" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5b04bf1d7ccd1a0001e1f6a6", + "groupName": "DEEBOT OZMO 905", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d1474632a6bd50001b5b6f3", + "isPopular": false, + "materialNo": "110-1810-0101", + "mid": "y79a7u", + "ota": false, + "smartType": "MQ_AP", + "smartTypes": [], + "sort": 10, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.0.0", + "IOS": "1.0.0" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5c763de8280fda0001770b7f", + "groupName": "DEEBOT 500", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5c874326280fda0001770d2a", + "isPopular": true, + "materialNo": "702-0000-0163", + "mid": "vsc5ia", + "ota": false, + "smartType": "MQ_AP", + "smartTypes": [], + "sort": 100, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "image", + "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5df9d6b7c783810001d3d06b", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "image", + "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5dfc34d15d21490001700e14", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.5", + "IOS": "1.1.5" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5c763de8280fda0001770b7f", + "groupName": "DEEBOT 501", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5c931fef280fda0001770d7e", + "isPopular": true, + "materialNo": "702-0000-0163", + "mid": "vsc5ia", + "ota": false, + "smartType": "MQ_AP", + "smartTypes": [], + "sort": 100, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "image", + "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5df9d6b7c783810001d3d06b", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "image", + "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5dfc34d15d21490001700e14", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.5", + "IOS": "1.1.5" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5c763de8280fda0001770b7f", + "groupName": "DEEBOT 502", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5c93204b63023c0001e7faa7", + "isPopular": true, + "materialNo": "702-0000-0163", + "mid": "vsc5ia", + "ota": false, + "smartType": "MQ_AP", + "smartTypes": [], + "sort": 100, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "image", + "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5df9d6b7c783810001d3d06b", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "image", + "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5dfc34d15d21490001700e14", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.5", + "IOS": "1.1.5" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5c763de8280fda0001770b7f", + "groupName": "DEEBOT 505", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5c932067280fda0001770d7f", + "isPopular": true, + "materialNo": "702-0000-0163", + "mid": "vsc5ia", + "ota": false, + "smartType": "MQ_AP", + "smartTypes": [], + "sort": 100, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "image", + "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5df9d6b7c783810001d3d06b", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "image", + "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5dfc34d15d21490001700e14", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.5", + "IOS": "1.1.5" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5cae9aa5e9e9270001354b5d", + "groupName": "DEEBOT Slim2 Series", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d2c150dba13eb00013feaae", + "isPopular": false, + "materialNo": "110-1639-0102", + "mid": "123", + "ota": false, + "smartType": "SPA", + "smartTypes": [], + "sort": 230, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.7", + "IOS": "1.1.7" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5cae9aa5e9e9270001354b5d", + "groupName": "DEEBOT Slim Neo", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d2c152f4d60de0001eaf1f4", + "isPopular": false, + "materialNo": "110-1639-0102", + "mid": "123", + "ota": false, + "smartType": "SPA", + "smartTypes": [], + "sort": 230, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.7", + "IOS": "1.1.7" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 1, + "failCount": 0, + "groupId": "5c19a8a0ddfc1f0001ede8e0", + "groupName": "DEEBOT OZMO 950 Series", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5caafd7e1285190001685965", + "isPopular": true, + "materialNo": "110-1820-0101", + "mid": "yna5xi", + "ota": false, + "smartType": "MQ_AP", + "smartTypes": ["MQ_AP"], + "sort": 40, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "I've heard the sound", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "Briefly press the RESET button for 1 second and then release. You will hear that DEEBOT is ready for network setup.", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.5", + "IOS": "1.1.5" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 1, + "failCount": 0, + "groupId": "5ca4711412851900016858cb", + "groupName": "DEEBOT OZMO 700", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d117d4f0ac6ad00012b792d", + "isPopular": false, + "materialNo": "110-1825-0201", + "mid": "0xyhhr", + "ota": false, + "smartType": "MQ_AP", + "smartTypes": [], + "sort": 70, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "I've heard the sound", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "Briefly press the RESET button for 1 second and then release. You will hear that DEEBOT is ready for network setup.", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.5", + "IOS": "1.1.5" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 1, + "failCount": 0, + "groupId": "5ca4711412851900016858cb", + "groupName": "DEEBOT OZMO 750", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d3aa309ba13eb00013feb69", + "isPopular": false, + "materialNo": "110-1825-0201", + "mid": "0xyhhr", + "ota": false, + "smartType": "MQ_AP", + "smartTypes": [], + "sort": 70, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "I've heard the sound", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "Briefly press the RESET button for 1 second and then release. You will hear that DEEBOT is ready for network setup.", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.5", + "IOS": "1.1.5" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5acb0f2e7c295c0001876eb4", + "groupName": "DEEBOT 600 Series", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5acc32067c295c0001876eea", + "isPopular": false, + "materialNo": "702-0000-0170", + "mid": "dl8fht", + "ota": false, + "smartType": "MQ_AP", + "smartTypes": [], + "sort": 110, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "image", + "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5ce8e36591fd5d0001892541", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "image", + "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5b8cd75f76f7f10001e9a0de", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.0.0", + "IOS": "1.0.0" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5acb0f2e7c295c0001876eb4", + "groupName": "DEEBOT 661", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d280ce3350e7a0001e84c95", + "isPopular": false, + "materialNo": "702-0000-0170", + "mid": "dl8fht", + "ota": false, + "smartType": "MQ_AP", + "smartTypes": [], + "sort": 110, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "image", + "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5ce8e36591fd5d0001892541", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "image", + "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5b8cd75f76f7f10001e9a0de", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.0.0", + "IOS": "1.0.0" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5ca31ce8e9e9270001354b33", + "groupName": "DEEBOT M86", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5ca31df112851900016858c0", + "isPopular": false, + "materialNo": "110-1628-0101", + "mid": "129", + "ota": false, + "smartType": "SPA", + "smartTypes": [], + "sort": 170, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.7", + "IOS": "1.1.7" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5d2460f244af360001383992", + "groupName": "DEEBOT U3", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d3fe649de51dd0001fee0de", + "isPopular": false, + "materialNo": "939393939393", + "mid": "xb83mv", + "ota": false, + "smartType": "MQ_AP", + "smartTypes": ["MQ_AP"], + "sort": 9, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "I've heard the sound", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "Briefly press the RESET button for 1 second and then release. You will hear that DEEBOT is ready for network setup.", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.8", + "IOS": "1.1.8" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5d2460f244af360001383992", + "groupName": "DEEBOT U3 LINE FRIENDS", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5da834a8d66cd10001f58265", + "isPopular": false, + "materialNo": "939393939393", + "mid": "xb83mv", + "ota": false, + "smartType": "MQ_AP", + "smartTypes": ["MQ_AP"], + "sort": 9, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "I've heard the sound", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "Briefly press the RESET button for 1 second and then release. You will hear that DEEBOT is ready for network setup.", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.8", + "IOS": "1.1.8" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5ca1c9a3e9e9270001354b2b", + "groupName": "DEEBOT Mini2", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5ca1ca79e9e9270001354b2d", + "isPopular": false, + "materialNo": "110-1640-0101", + "mid": "142", + "ota": false, + "smartType": "SPA", + "smartTypes": [], + "sort": 240, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.7", + "IOS": "1.1.7" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5ca31e8212851900016858c2", + "groupName": "DEEBOT N79", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5ca32ab2e9e9270001354b3d", + "isPopular": false, + "materialNo": "702-0000-0136", + "mid": "126", + "ota": false, + "smartType": "SPA", + "smartTypes": [], + "sort": 140, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.7", + "IOS": "1.1.7" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5ca31e8212851900016858c2", + "groupName": "DEEBOT N79S/SE", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5cd4ca505b032200015a455d", + "isPopular": false, + "materialNo": "702-0000-0136", + "mid": "126", + "ota": false, + "smartType": "SPA", + "smartTypes": [], + "sort": 140, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.7", + "IOS": "1.1.7" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5ca31e8212851900016858c2", + "groupName": "DEEBOT N79T/W", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5ca32a1012851900016858c6", + "isPopular": false, + "materialNo": "702-0000-0136", + "mid": "126", + "ota": false, + "smartType": "SPA", + "smartTypes": [], + "sort": 140, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "", + "guideImageUrl": "", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.1.7", + "IOS": "1.1.7" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5ae197be7ccd1a0001e1f6a1", + "groupName": "DEEBOT 711", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5b5ac4cc8d5a56000111e769", + "isPopular": false, + "materialNo": "702-0000-0205", + "mid": "uv242z", + "ota": false, + "smartType": "MQ_AP", + "smartTypes": [], + "sort": 120, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "image", + "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5b7fc85976f7f10001e9a0d0", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "image", + "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5ce8e5d5d85b4d0001776484", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.0.5", + "IOS": "1.0.5" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5ae197be7ccd1a0001e1f6a1", + "groupName": "DEEBOT 710", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5b5ac4e45f21100001882bb9", + "isPopular": false, + "materialNo": "702-0000-0205", + "mid": "uv242z", + "ota": false, + "smartType": "MQ_AP", + "smartTypes": [], + "sort": 120, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "image", + "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5b7fc85976f7f10001e9a0d0", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "image", + "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5ce8e5d5d85b4d0001776484", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.0.5", + "IOS": "1.0.5" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5ae197be7ccd1a0001e1f6a1", + "groupName": "DEEBOT 715", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5b7b65f176f7f10001e9a0c2", + "isPopular": false, + "materialNo": "702-0000-0205", + "mid": "uv242z", + "ota": false, + "smartType": "MQ_AP", + "smartTypes": [], + "sort": 120, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "image", + "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5b7fc85976f7f10001e9a0d0", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "image", + "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5ce8e5d5d85b4d0001776484", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.0.5", + "IOS": "1.0.5" + } + }, + { + "belongApp": ["ecoglobal"], + "checkTips": 0, + "failCount": 0, + "groupId": "5ae197be7ccd1a0001e1f6a1", + "groupName": "DEEBOT 711s", + "icon": "https://portal-ww.ecouser.net/api/pim/file/get/5d157f9f77a3a60001051f69", + "isPopular": false, + "materialNo": "702-0000-0205", + "mid": "uv242z", + "ota": false, + "smartType": "MQ_AP", + "smartTypes": [], + "sort": 120, + "steps": [ + { + "btnText": "", + "confirmText": "", + "guideImageType": "image", + "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5b7fc85976f7f10001e9a0d0", + "guideText": "", + "retryText": "", + "title": "" + }, + { + "btnText": "", + "confirmText": "", + "guideImageType": "image", + "guideImageUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5ce8e5d5d85b4d0001776484", + "guideText": "", + "retryText": "", + "title": "" + } + ], + "supportVer": { + "Android": "1.0.5", + "IOS": "1.0.5" + } + } + ], + "msg": "success" +} diff --git a/bumper/web/plugins/api/pim/dictionary.py b/bumper/web/plugins/api/pim/dictionary.py new file mode 100644 index 0000000..c96756b --- /dev/null +++ b/bumper/web/plugins/api/pim/dictionary.py @@ -0,0 +1,40 @@ +"""Pim dictionary plugin module.""" +import logging +from typing import Iterable + +from aiohttp import web +from aiohttp.web_exceptions import HTTPInternalServerError +from aiohttp.web_request import Request +from aiohttp.web_response import Response +from aiohttp.web_routedef import AbstractRouteDef + +from bumper.web.plugins import WebserverPlugin + + +class DictionaryPlugin(WebserverPlugin): + """Dictionary plugin.""" + + @property + def routes(self) -> Iterable[AbstractRouteDef]: + """Plugin routes.""" + return [ + web.route( + "*", + "/dictionary/getErrDetail", + _handle_get_err_detail, + ), + ] + + +async def _handle_get_err_detail(_: Request) -> Response: + """Get error details.""" + try: + body = { + "code": -1, + "data": [], + "msg": "This errcode's detail is not exists", + } + return web.json_response(body) + except Exception: # pylint: disable=broad-except + logging.error("An exception occurred during handling request.", exc_info=True) + raise HTTPInternalServerError diff --git a/bumper/web/plugins/api/pim/file.py b/bumper/web/plugins/api/pim/file.py new file mode 100644 index 0000000..7ceff3d --- /dev/null +++ b/bumper/web/plugins/api/pim/file.py @@ -0,0 +1,23 @@ +"""File plugin module.""" +from typing import Iterable + +from aiohttp import web +from aiohttp.web_routedef import AbstractRouteDef + +from bumper.web.images import get_bot_image +from bumper.web.plugins import WebserverPlugin + + +class FilePlugin(WebserverPlugin): + """Pim file plugin.""" + + @property + def routes(self) -> Iterable[AbstractRouteDef]: + """Plugin routes.""" + return [ + web.route( + "*", + "/file/get/{id}", + get_bot_image, + ), + ] diff --git a/bumper/web/plugins/api/pim/product.py b/bumper/web/plugins/api/pim/product.py new file mode 100644 index 0000000..677c9df --- /dev/null +++ b/bumper/web/plugins/api/pim/product.py @@ -0,0 +1,111 @@ +"""Pim product plugin module.""" +import json +import logging +import os +from typing import Iterable + +from aiohttp import web +from aiohttp.web_exceptions import HTTPInternalServerError +from aiohttp.web_request import Request +from aiohttp.web_response import Response +from aiohttp.web_routedef import AbstractRouteDef + +from bumper.models import RETURN_API_SUCCESS, EcoVacsHomeProducts +from bumper.web.plugins import WebserverPlugin + + +class ProductPlugin(WebserverPlugin): + """Product plugin.""" + + @property + def routes(self) -> Iterable[AbstractRouteDef]: + """Plugin routes.""" + return [ + web.route( + "*", + "/product/getProductIotMap", + _handle_get_product_iot_map, + ), + web.route( + "*", + "/product/getConfignetAll", + _handle_get_confignet_all, + ), + web.route( + "*", + "/product/getConfigGroups", + _handle_get_config_groups, + ), + web.route( + "*", + "/product/software/config/batch", + _handle_product_config_batch, + ), + ] + + +async def _handle_get_product_iot_map(_: Request) -> Response: + """Get product iot map.""" + try: + body = { + "code": RETURN_API_SUCCESS, + "data": EcoVacsHomeProducts, + } + return web.json_response(body) + except Exception: # pylint: disable=broad-except + logging.error("An exception occurred during handling request.", exc_info=True) + raise HTTPInternalServerError + + +async def _handle_get_confignet_all(_: Request) -> Response: + """Get config net all.""" + try: + with open( + os.path.join(os.path.dirname(__file__), "confignetAllResponse.json"), + encoding="utf-8", + ) as file: + return web.json_response(json.load(file)) + except Exception: # pylint: disable=broad-except + logging.error("An exception occurred during handling request.", exc_info=True) + raise HTTPInternalServerError + + +async def _handle_get_config_groups(_: Request) -> Response: + """Get config groups.""" + try: + with open( + os.path.join(os.path.dirname(__file__), "configGroupsResponse.json"), + encoding="utf-8", + ) as file: + return web.json_response(json.load(file)) + except Exception: # pylint: disable=broad-except + logging.error("An exception occurred during handling request.", exc_info=True) + raise HTTPInternalServerError + + +async def _handle_product_config_batch(request: Request) -> Response: + """Handle product config batch.""" + try: + with open( + os.path.join(os.path.dirname(__file__), "productConfigBatch.json"), + encoding="utf-8", + ) as file: + product_config_batch = json.load(file) + + json_body = json.loads(await request.text()) + data = [] + for pid in json_body["pids"]: + for product_config in product_config_batch: + if pid == product_config["pid"]: + data.append(product_config) + continue + + # not found in product_config_batch + # some devices don't have any product configuration + data.append({"cfg": {}, "pid": pid}) + + body = {"code": 200, "data": data, "message": "success"} + return web.json_response(body) + except Exception: # pylint: disable=broad-except + logging.error("An exception occurred during handling request.", exc_info=True) + raise HTTPInternalServerError diff --git a/bumper/web/plugins/api/pim/productConfigBatch.json b/bumper/web/plugins/api/pim/productConfigBatch.json new file mode 100644 index 0000000..e69a2d0 --- /dev/null +++ b/bumper/web/plugins/api/pim/productConfigBatch.json @@ -0,0 +1,170 @@ +[ + { + "cfg": { + "supported": { + "battery": true, + "charge": true, + "clean": true, + "tmallstand": false, + "video": false + } + }, + "pid": "5e14196a6e71b80001b60fda" + }, + { + "cfg": { + "supported": { + "battery": true, + "charge": true, + "clean": true, + "tmallstand": false, + "video": false + } + }, + "pid": "5e8e8d8a032edd8457c66bfb" + }, + { + "cfg": { + "supported": { + "battery": true, + "charge": true, + "clean": true, + "tmallstand": false, + "video": false + } + }, + "pid": "5c19a91ca1e6ee000178224a" + }, + { + "cfg": { + "supported": { + "battery": true, + "charge": true, + "clean": true, + "tmallstand": false, + "video": false + } + }, + "pid": "5e8e8d2a032edd3c03c66bf7" + }, + { + "cfg": { + "supported": { + "battery": true, + "charge": true, + "clean": true, + "tmallstand": false, + "video": true + } + }, + "pid": "5de0d86ed88546000195239a" + }, + { + "cfg": { + "supported": { + "battery": true, + "charge": true, + "clean": true, + "tmallstand": false, + "video": false + } + }, + "pid": "5c19a8f3a1e6ee0001782247" + }, + { + "cfg": { + "supported": { + "battery": true, + "charge": true, + "clean": true, + "tmallstand": false, + "video": false + } + }, + "pid": "5e698a6306f6de52c264c61b" + }, + { + "cfg": { + "supported": { + "battery": true, + "charge": true, + "clean": true, + "tmallstand": false, + "video": false + } + }, + "pid": "5e699a4106f6de83ea64c620" + }, + { + "cfg": { + "supported": { + "battery": true, + "charge": true, + "clean": true, + "tmallstand": false, + "video": true + } + }, + "pid": "5edd998afdd6a30008da039b" + }, + { + "cfg": { + "supported": { + "battery": true, + "charge": true, + "clean": true, + "tmallstand": false, + "video": true + } + }, + "pid": "5edd9a4075f2fc000636086c" + }, + { + "cfg": { + "supported": { + "battery": true, + "charge": true, + "clean": true, + "tmallstand": false, + "video": false + } + }, + "pid": "5ed5e4d3a719ea460ec3216c" + }, + { + "cfg": { + "supported": { + "battery": true, + "charge": true, + "clean": true, + "tmallstand": false, + "video": false + } + }, + "pid": "5f88195e6cf8de0008ed7c11" + }, + { + "cfg": { + "supported": { + "battery": true, + "charge": true, + "clean": true, + "tmallstand": false, + "video": false + } + }, + "pid": "5f8819156cf8de0008ed7c0d" + }, + { + "cfg": { + "supported": { + "battery": true, + "charge": true, + "clean": true, + "tmallstand": false, + "video": false + } + }, + "pid": "5fa105c6d16a99000667eb54" + } +] diff --git a/conftest.py b/conftest.py deleted file mode 100644 index e69de29..0000000