pymammotion 0.2.17__tar.gz → 0.2.18__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pymammotion might be problematic. Click here for more details.
- {pymammotion-0.2.17 → pymammotion-0.2.18}/PKG-INFO +1 -1
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/aliyun/cloud_gateway.py +13 -7
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/aliyun/dataclass/login_by_oauth_response.py +1 -1
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/const.py +2 -2
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/data/mqtt/event.py +17 -5
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/http/http.py +1 -1
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/mammotion/devices/mammotion.py +1 -2
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pyproject.toml +2 -2
- {pymammotion-0.2.17 → pymammotion-0.2.18}/LICENSE +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/README.md +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/__init__.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/aliyun/__init__.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/aliyun/cloud_service.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/aliyun/dataclass/aep_response.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/aliyun/dataclass/connect_response.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/aliyun/dataclass/dev_by_account_response.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/aliyun/dataclass/regions_response.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/aliyun/dataclass/session_by_authcode_response.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/aliyun/tmp_constant.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/bluetooth/__init__.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/bluetooth/ble.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/bluetooth/ble_message.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/bluetooth/const.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/bluetooth/data/__init__.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/bluetooth/data/convert.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/bluetooth/data/framectrldata.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/bluetooth/data/notifydata.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/data/__init__.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/data/model/__init__.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/data/model/account.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/data/model/device.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/data/model/device_config.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/data/model/enums.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/data/model/excute_boarder_params.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/data/model/execute_boarder.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/data/model/generate_route_information.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/data/model/hash_list.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/data/model/location.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/data/model/mowing_modes.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/data/model/plan.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/data/model/rapid_state.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/data/model/region_data.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/data/model/report_info.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/data/mqtt/__init__.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/data/mqtt/properties.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/data/mqtt/status.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/data/state_manager.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/event/__init__.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/event/event.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/http/_init_.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/mammotion/__init__.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/mammotion/commands/__init__.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/mammotion/commands/abstract_message.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/mammotion/commands/mammotion_command.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/mammotion/commands/messages/__init__.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/mammotion/commands/messages/driver.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/mammotion/commands/messages/media.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/mammotion/commands/messages/navigation.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/mammotion/commands/messages/network.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/mammotion/commands/messages/ota.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/mammotion/commands/messages/system.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/mammotion/commands/messages/video.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/mammotion/control/__init__.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/mammotion/control/joystick.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/mammotion/devices/__init__.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/mqtt/__init__.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/mqtt/mammotion_future.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/mqtt/mammotion_mqtt.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/__init__.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/basestation.proto +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/basestation.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/basestation_pb2.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/basestation_pb2.pyi +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/common.proto +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/common.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/common_pb2.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/common_pb2.pyi +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/dev_net.proto +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/dev_net.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/dev_net_pb2.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/dev_net_pb2.pyi +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/luba_msg.proto +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/luba_msg.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/luba_msg_pb2.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/luba_msg_pb2.pyi +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/luba_mul.proto +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/luba_mul.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/luba_mul_pb2.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/luba_mul_pb2.pyi +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/mctrl_driver.proto +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/mctrl_driver.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/mctrl_driver_pb2.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/mctrl_driver_pb2.pyi +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/mctrl_nav.proto +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/mctrl_nav.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/mctrl_nav_pb2.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/mctrl_nav_pb2.pyi +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/mctrl_ota.proto +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/mctrl_ota.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/mctrl_ota_pb2.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/mctrl_ota_pb2.pyi +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/mctrl_pept.proto +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/mctrl_pept.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/mctrl_pept_pb2.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/mctrl_pept_pb2.pyi +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/mctrl_sys.proto +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/mctrl_sys.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/mctrl_sys_pb2.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/proto/mctrl_sys_pb2.pyi +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/py.typed +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/utility/constant/__init__.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/utility/constant/device_constant.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/utility/datatype_converter.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/utility/device_type.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/utility/map.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/utility/periodic.py +0 -0
- {pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/utility/rocker_util.py +0 -0
|
@@ -11,6 +11,7 @@ import time
|
|
|
11
11
|
import uuid
|
|
12
12
|
from logging import getLogger, exception
|
|
13
13
|
from datetime import datetime
|
|
14
|
+
from urllib.parse import urlencode
|
|
14
15
|
|
|
15
16
|
from aiohttp import ClientSession
|
|
16
17
|
from alibabacloud_iot_api_gateway.client import Client
|
|
@@ -241,6 +242,7 @@ class CloudIOTGateway:
|
|
|
241
242
|
async def connect(self):
|
|
242
243
|
"""Connect to the Aliyun Cloud IoT Gateway."""
|
|
243
244
|
region_url = "sdk.openaccount.aliyun.com"
|
|
245
|
+
time_now = time.time()
|
|
244
246
|
async with ClientSession() as session:
|
|
245
247
|
headers = {
|
|
246
248
|
"host": region_url,
|
|
@@ -323,7 +325,7 @@ class CloudIOTGateway:
|
|
|
323
325
|
"x-ca-key": self._app_key,
|
|
324
326
|
"x-ca-signaturemethod": "HmacSHA256",
|
|
325
327
|
"accept": "application/json",
|
|
326
|
-
"content-type": "application/x-www-form-urlencoded",
|
|
328
|
+
"content-type": "application/x-www-form-urlencoded; charset=utf-8",
|
|
327
329
|
"user-agent": UtilClient.get_user_agent(None),
|
|
328
330
|
"vid": self._connect_response.data.vid,
|
|
329
331
|
}
|
|
@@ -331,14 +333,16 @@ class CloudIOTGateway:
|
|
|
331
333
|
_bodyParam = {
|
|
332
334
|
"country": country_code,
|
|
333
335
|
"authCode": auth_code,
|
|
334
|
-
"oauthPlateform":
|
|
336
|
+
"oauthPlateform": 23,
|
|
335
337
|
"oauthAppKey": self._app_key,
|
|
336
|
-
"appAuthToken": self._device_sn,
|
|
337
338
|
"riskControlInfo": {
|
|
338
339
|
"appID": "com.agilexrobotics",
|
|
340
|
+
"appAuthToken": "",
|
|
339
341
|
"signType": "RSA",
|
|
342
|
+
"sdkVersion": "3.4.2",
|
|
340
343
|
"utdid": self._utdid,
|
|
341
344
|
"umidToken": self._utdid,
|
|
345
|
+
"deviceId": self._connect_response.data.data.device.data.deviceId,
|
|
342
346
|
"USE_OA_PWD_ENCRYPT": "true",
|
|
343
347
|
"USE_H5_NC": "true",
|
|
344
348
|
},
|
|
@@ -354,12 +358,12 @@ class CloudIOTGateway:
|
|
|
354
358
|
header = "".join(f"{k}:{dic[k]}\n" for k in keys).strip()
|
|
355
359
|
|
|
356
360
|
headers["x-ca-signature-headers"] = sign_headers
|
|
357
|
-
string_to_sign = "POST\n{}\n\n{}\n{}\n{}\n/api/prd/loginbyoauth.json?
|
|
361
|
+
string_to_sign = "POST\n{}\n\n{}\n{}\n{}\n/api/prd/loginbyoauth.json?{}".format(
|
|
358
362
|
headers["accept"],
|
|
359
363
|
headers["content-type"],
|
|
360
364
|
headers["date"],
|
|
361
365
|
header,
|
|
362
|
-
json.dumps(_bodyParam, separators=(",", ":")),
|
|
366
|
+
f"loginByOauthRequest={json.dumps(_bodyParam, separators=(",", ":"))}",
|
|
363
367
|
)
|
|
364
368
|
|
|
365
369
|
hash_val = hmac.new(
|
|
@@ -369,12 +373,14 @@ class CloudIOTGateway:
|
|
|
369
373
|
).digest()
|
|
370
374
|
signature = base64.b64encode(hash_val).decode("utf-8")
|
|
371
375
|
headers["x-ca-signature"] = signature
|
|
372
|
-
|
|
373
376
|
async with session.post(
|
|
374
377
|
f"https://{region_url}/api/prd/loginbyoauth.json",
|
|
375
378
|
headers=headers,
|
|
376
|
-
|
|
379
|
+
data={
|
|
380
|
+
'loginByOauthRequest': json.dumps(_bodyParam, separators=(",", ":"))
|
|
381
|
+
}
|
|
377
382
|
) as resp:
|
|
383
|
+
|
|
378
384
|
data = await resp.json()
|
|
379
385
|
logger.debug(data)
|
|
380
386
|
if resp.status == 200:
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
APP_KEY = "34231230"
|
|
4
4
|
APP_SECRET = "1ba85698bb10e19c6437413b61ba3445"
|
|
5
|
-
APP_VERSION = "1.11.
|
|
5
|
+
APP_VERSION = "1.11.130"
|
|
6
6
|
ALIYUN_DOMAIN = "api.link.aliyun.com"
|
|
7
|
-
MAMMOTION_DOMAIN = "https://
|
|
7
|
+
MAMMOTION_DOMAIN = "https://id.mammotion.com"
|
|
8
8
|
MAMMOTION_CLIENT_ID = "MADKALUBAS"
|
|
9
9
|
MAMMOTION_CLIENT_SECRET = "GshzGRZJjuMUgd2sYHM7"
|
|
@@ -45,10 +45,15 @@ class DeviceWarningEventValue(DataClassORJSONMixin):
|
|
|
45
45
|
# (see resources/res/values-en-rUS/strings.xml in APK)
|
|
46
46
|
code: int
|
|
47
47
|
|
|
48
|
+
@dataclass
|
|
49
|
+
class DeviceConfigurationRequestValue(DataClassORJSONMixin):
|
|
50
|
+
code: int
|
|
51
|
+
bizId: str
|
|
52
|
+
params: str
|
|
53
|
+
|
|
48
54
|
|
|
49
55
|
@dataclass
|
|
50
56
|
class GeneralParams(DataClassORJSONMixin):
|
|
51
|
-
identifier: str
|
|
52
57
|
groupIdList: list[str]
|
|
53
58
|
groupId: str
|
|
54
59
|
categoryKey: Literal["LawnMower"]
|
|
@@ -67,7 +72,7 @@ class GeneralParams(DataClassORJSONMixin):
|
|
|
67
72
|
tenantInstanceId: str
|
|
68
73
|
value: Any
|
|
69
74
|
|
|
70
|
-
|
|
75
|
+
identifier: Optional[str] = None
|
|
71
76
|
checkFailedData: Optional[dict] = None
|
|
72
77
|
_tenantId: Optional[str] = None
|
|
73
78
|
generateTime: Optional[int] = None
|
|
@@ -92,6 +97,11 @@ class DeviceWarningEventParams(GeneralParams):
|
|
|
92
97
|
type: Literal["alert"]
|
|
93
98
|
value: DeviceWarningEventValue
|
|
94
99
|
|
|
100
|
+
@dataclass
|
|
101
|
+
class DeviceConfigurationRequestEvent(GeneralParams):
|
|
102
|
+
type: Literal["info"]
|
|
103
|
+
value: DeviceConfigurationRequestValue
|
|
104
|
+
|
|
95
105
|
|
|
96
106
|
@dataclass
|
|
97
107
|
class ThingEventMessage(DataClassORJSONMixin):
|
|
@@ -102,7 +112,7 @@ class ThingEventMessage(DataClassORJSONMixin):
|
|
|
102
112
|
|
|
103
113
|
@classmethod
|
|
104
114
|
def from_dicts(cls, payload: dict) -> "ThingEventMessage":
|
|
105
|
-
"""
|
|
115
|
+
"""Deserialize payload JSON ThingEventMessage."""
|
|
106
116
|
method = payload.get("method")
|
|
107
117
|
event_id = payload.get("id")
|
|
108
118
|
params_dict = payload.get("params", {})
|
|
@@ -110,7 +120,10 @@ class ThingEventMessage(DataClassORJSONMixin):
|
|
|
110
120
|
|
|
111
121
|
# Determina quale classe usare per i parametri
|
|
112
122
|
identifier = params_dict.get("identifier")
|
|
113
|
-
if identifier
|
|
123
|
+
if identifier is None:
|
|
124
|
+
"""Request configuration event."""
|
|
125
|
+
params_obj = DeviceConfigurationRequestEvent(**params_dict)
|
|
126
|
+
elif identifier == "device_protobuf_msg_event":
|
|
114
127
|
params_obj = DeviceProtobufMsgEventParams(**params_dict)
|
|
115
128
|
elif identifier == "device_warning_event":
|
|
116
129
|
params_obj = DeviceWarningEventParams(**params_dict)
|
|
@@ -119,5 +132,4 @@ class ThingEventMessage(DataClassORJSONMixin):
|
|
|
119
132
|
else:
|
|
120
133
|
raise ValueError(f"Unknown identifier: {identifier}")
|
|
121
134
|
|
|
122
|
-
# Crea e restituisce l'istanza di ThingEventMessage
|
|
123
135
|
return cls(method=method, id=event_id, params=params_obj, version=version)
|
|
@@ -55,7 +55,7 @@ class MammotionHTTP:
|
|
|
55
55
|
@classmethod
|
|
56
56
|
async def login(cls, session: ClientSession, username: str, password: str) -> Response[LoginResponseData]:
|
|
57
57
|
async with session.post(
|
|
58
|
-
"/
|
|
58
|
+
"/oauth/token",
|
|
59
59
|
params=dict(
|
|
60
60
|
username=username,
|
|
61
61
|
password=password,
|
|
@@ -1150,8 +1150,7 @@ class MammotionBaseCloudDevice(MammotionBaseDevice):
|
|
|
1150
1150
|
_LOGGER.debug("Thing event received")
|
|
1151
1151
|
event = ThingEventMessage.from_dicts(payload)
|
|
1152
1152
|
params = event.params
|
|
1153
|
-
if
|
|
1154
|
-
_LOGGER.debug("config event %s", str)
|
|
1153
|
+
if params.identifier is None:
|
|
1155
1154
|
return
|
|
1156
1155
|
if params.identifier == "device_protobuf_msg_event" and event.method == "thing.events":
|
|
1157
1156
|
_LOGGER.debug("Protobuf event")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/aliyun/dataclass/dev_by_account_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/data/model/generate_route_information.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/mammotion/commands/abstract_message.py
RENAMED
|
File without changes
|
{pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/mammotion/commands/mammotion_command.py
RENAMED
|
File without changes
|
{pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/mammotion/commands/messages/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/mammotion/commands/messages/navigation.py
RENAMED
|
File without changes
|
{pymammotion-0.2.17 → pymammotion-0.2.18}/pymammotion/mammotion/commands/messages/network.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|