pymammotion 0.4.9__tar.gz → 0.4.10__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.
Files changed (123) hide show
  1. {pymammotion-0.4.9 → pymammotion-0.4.10}/PKG-INFO +1 -1
  2. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/aliyun/cloud_gateway.py +15 -3
  3. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/mammotion/devices/mammotion_cloud.py +5 -1
  4. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/mqtt/mammotion_mqtt.py +25 -0
  5. {pymammotion-0.4.9 → pymammotion-0.4.10}/pyproject.toml +2 -2
  6. {pymammotion-0.4.9 → pymammotion-0.4.10}/LICENSE +0 -0
  7. {pymammotion-0.4.9 → pymammotion-0.4.10}/README.md +0 -0
  8. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/__init__.py +0 -0
  9. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/aliyun/__init__.py +0 -0
  10. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/aliyun/model/aep_response.py +0 -0
  11. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/aliyun/model/connect_response.py +0 -0
  12. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/aliyun/model/dev_by_account_response.py +0 -0
  13. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/aliyun/model/login_by_oauth_response.py +0 -0
  14. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/aliyun/model/regions_response.py +0 -0
  15. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/aliyun/model/session_by_authcode_response.py +0 -0
  16. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/aliyun/model/stream_subscription_response.py +0 -0
  17. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/aliyun/tmp_constant.py +0 -0
  18. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/bluetooth/__init__.py +0 -0
  19. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/bluetooth/ble.py +0 -0
  20. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/bluetooth/ble_message.py +0 -0
  21. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/bluetooth/const.py +0 -0
  22. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/bluetooth/data/__init__.py +0 -0
  23. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/bluetooth/data/convert.py +0 -0
  24. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/bluetooth/data/framectrldata.py +0 -0
  25. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/bluetooth/data/notifydata.py +0 -0
  26. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/bluetooth/model/__init__.py +0 -0
  27. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/bluetooth/model/atomic_integer.py +0 -0
  28. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/const.py +0 -0
  29. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/data/__init__.py +0 -0
  30. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/data/model/__init__.py +0 -0
  31. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/data/model/account.py +0 -0
  32. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/data/model/device.py +0 -0
  33. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/data/model/device_config.py +0 -0
  34. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/data/model/device_info.py +0 -0
  35. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/data/model/device_limits.py +0 -0
  36. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/data/model/enums.py +0 -0
  37. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/data/model/excute_boarder_params.py +0 -0
  38. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/data/model/execute_boarder.py +0 -0
  39. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/data/model/generate_route_information.py +0 -0
  40. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/data/model/hash_list.py +0 -0
  41. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/data/model/location.py +0 -0
  42. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/data/model/mowing_modes.py +0 -0
  43. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/data/model/plan.py +0 -0
  44. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/data/model/rapid_state.py +0 -0
  45. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/data/model/raw_data.py +0 -0
  46. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/data/model/region_data.py +0 -0
  47. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/data/model/report_info.py +0 -0
  48. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/data/mqtt/__init__.py +0 -0
  49. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/data/mqtt/event.py +0 -0
  50. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/data/mqtt/properties.py +0 -0
  51. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/data/mqtt/status.py +0 -0
  52. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/data/state_manager.py +0 -0
  53. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/event/__init__.py +0 -0
  54. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/event/event.py +0 -0
  55. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/http/_init_.py +0 -0
  56. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/http/encryption.py +0 -0
  57. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/http/http.py +0 -0
  58. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/http/model/http.py +0 -0
  59. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/mammotion/__init__.py +0 -0
  60. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/mammotion/commands/__init__.py +0 -0
  61. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/mammotion/commands/abstract_message.py +0 -0
  62. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/mammotion/commands/mammotion_command.py +0 -0
  63. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/mammotion/commands/messages/__init__.py +0 -0
  64. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/mammotion/commands/messages/driver.py +0 -0
  65. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/mammotion/commands/messages/media.py +0 -0
  66. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/mammotion/commands/messages/navigation.py +0 -0
  67. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/mammotion/commands/messages/network.py +0 -0
  68. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/mammotion/commands/messages/ota.py +0 -0
  69. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/mammotion/commands/messages/system.py +0 -0
  70. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/mammotion/commands/messages/video.py +0 -0
  71. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/mammotion/control/__init__.py +0 -0
  72. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/mammotion/control/joystick.py +0 -0
  73. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/mammotion/devices/__init__.py +0 -0
  74. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/mammotion/devices/base.py +0 -0
  75. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/mammotion/devices/mammotion.py +0 -0
  76. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/mammotion/devices/mammotion_bluetooth.py +0 -0
  77. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/mqtt/__init__.py +0 -0
  78. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/mqtt/linkkit/__init__.py +0 -0
  79. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/mqtt/linkkit/h2client.py +0 -0
  80. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/mqtt/linkkit/linkkit.py +0 -0
  81. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/mqtt/mammotion_future.py +0 -0
  82. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/__init__.py +0 -0
  83. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/basestation.proto +0 -0
  84. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/basestation_pb2.py +0 -0
  85. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/basestation_pb2.pyi +0 -0
  86. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/common.proto +0 -0
  87. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/common_pb2.py +0 -0
  88. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/common_pb2.pyi +0 -0
  89. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/dev_net.proto +0 -0
  90. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/dev_net_pb2.py +0 -0
  91. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/dev_net_pb2.pyi +0 -0
  92. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/luba_msg.proto +0 -0
  93. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/luba_msg_pb2.py +0 -0
  94. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/luba_msg_pb2.pyi +0 -0
  95. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/luba_mul.proto +0 -0
  96. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/luba_mul_pb2.py +0 -0
  97. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/luba_mul_pb2.pyi +0 -0
  98. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/mctrl_driver.proto +0 -0
  99. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/mctrl_driver_pb2.py +0 -0
  100. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/mctrl_driver_pb2.pyi +0 -0
  101. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/mctrl_nav.proto +0 -0
  102. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/mctrl_nav_pb2.py +0 -0
  103. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/mctrl_nav_pb2.pyi +0 -0
  104. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/mctrl_ota.proto +0 -0
  105. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/mctrl_ota_pb2.py +0 -0
  106. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/mctrl_ota_pb2.pyi +0 -0
  107. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/mctrl_pept.proto +0 -0
  108. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/mctrl_pept_pb2.py +0 -0
  109. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/mctrl_pept_pb2.pyi +0 -0
  110. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/mctrl_sys.proto +0 -0
  111. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/mctrl_sys_pb2.py +0 -0
  112. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/proto/mctrl_sys_pb2.pyi +0 -0
  113. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/py.typed +0 -0
  114. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/utility/constant/__init__.py +0 -0
  115. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/utility/constant/device_constant.py +0 -0
  116. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/utility/conversions.py +0 -0
  117. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/utility/datatype_converter.py +0 -0
  118. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/utility/device_config.py +0 -0
  119. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/utility/device_type.py +0 -0
  120. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/utility/map.py +0 -0
  121. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/utility/movement.py +0 -0
  122. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/utility/periodic.py +0 -0
  123. {pymammotion-0.4.9 → pymammotion-0.4.10}/pymammotion/utility/rocker_util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pymammotion
3
- Version: 0.4.9
3
+ Version: 0.4.10
4
4
  Summary:
5
5
  License: GPL-3.0
6
6
  Author: Michael Arthur
@@ -46,6 +46,10 @@ MOVE_HEADERS = (
46
46
  class SetupException(Exception):
47
47
  """Raise when mqtt expires token or token is invalid."""
48
48
 
49
+ def __init__(self, *args: object) -> None:
50
+ super().__init__(args)
51
+ self.iot_id = args[1]
52
+
49
53
 
50
54
  class AuthRefreshException(Exception):
51
55
  """Raise exception when library cannot refresh token."""
@@ -54,6 +58,10 @@ class AuthRefreshException(Exception):
54
58
  class DeviceOfflineException(Exception):
55
59
  """Raise exception when device is offline."""
56
60
 
61
+ def __init__(self, *args: object) -> None:
62
+ super().__init__(args)
63
+ self.iot_id = args[1]
64
+
57
65
 
58
66
  class NoConnectionException(UnretryableException):
59
67
  """Raise exception when device is unreachable."""
@@ -62,6 +70,10 @@ class NoConnectionException(UnretryableException):
62
70
  class GatewayTimeoutException(Exception):
63
71
  """Raise exception when the gateway times out."""
64
72
 
73
+ def __init__(self, *args: object) -> None:
74
+ super().__init__(args)
75
+ self.iot_id = args[1]
76
+
65
77
 
66
78
  class LoginException(Exception):
67
79
  """Raise exception when library cannot log in."""
@@ -696,14 +708,14 @@ class CloudIOTGateway:
696
708
  )
697
709
  if response_body_dict.get("code") == 20056:
698
710
  logger.debug("Gateway timeout.")
699
- raise GatewayTimeoutException(response_body_dict.get("code"))
711
+ raise GatewayTimeoutException(response_body_dict.get("code"), iot_id)
700
712
 
701
713
  if response_body_dict.get("code") == 29003:
702
714
  logger.debug(self._session_by_authcode_response.data.identityId)
703
715
  self.sign_out()
704
- raise SetupException(response_body_dict.get("code"))
716
+ raise SetupException(response_body_dict.get("code"), iot_id)
705
717
  if response_body_dict.get("code") == 6205:
706
- raise DeviceOfflineException(response_body_dict.get("code"))
718
+ raise DeviceOfflineException(response_body_dict.get("code"), iot_id)
707
719
 
708
720
  return message_id
709
721
 
@@ -219,6 +219,7 @@ class MammotionBaseCloudDevice(MammotionBaseDevice):
219
219
  """Stop all tasks and disconnect."""
220
220
  if self._ble_sync_task:
221
221
  self._ble_sync_task.cancel()
222
+ # self._mqtt._mqtt_client.unsubscribe()
222
223
  self.stopped = True
223
224
 
224
225
  async def start(self) -> None:
@@ -227,7 +228,10 @@ class MammotionBaseCloudDevice(MammotionBaseDevice):
227
228
  await self.run_periodic_sync_task()
228
229
  self.stopped = False
229
230
  if not self.mqtt.is_connected():
230
- self.mqtt.connect_async()
231
+ loop = asyncio.get_running_loop()
232
+ await loop.run_in_executor(None, self.mqtt.connect_async)
233
+ # else:
234
+ # self.mqtt._mqtt_client.thing_on_thing_enable(None)
231
235
 
232
236
  async def _ble_sync(self) -> None:
233
237
  command_bytes = self._commands.send_todev_ble_sync(3)
@@ -142,6 +142,31 @@ class MammotionMQTT:
142
142
  # command = MammotionCommand(device_name="Luba")
143
143
  # self._cloud_client.send_cloud_command(command.get_report_cfg())
144
144
 
145
+ def unsubscribe(self) -> None:
146
+ self._linkkit_client.unsubscribe_topic(
147
+ f"/sys/{self._product_key}/{self._device_name}/app/down/account/bind_reply"
148
+ )
149
+ self._linkkit_client.unsubscribe_topic(
150
+ f"/sys/{self._product_key}/{self._device_name}/app/down/thing/event/property/post_reply"
151
+ )
152
+ self._linkkit_client.unsubscribe_topic(
153
+ f"/sys/{self._product_key}/{self._device_name}/app/down/thing/wifi/status/notify"
154
+ )
155
+ self._linkkit_client.unsubscribe_topic(
156
+ f"/sys/{self._product_key}/{self._device_name}/app/down/thing/wifi/connect/event/notify"
157
+ )
158
+ self._linkkit_client.unsubscribe_topic(
159
+ f"/sys/{self._product_key}/{self._device_name}/app/down/_thing/event/notify"
160
+ )
161
+ self._linkkit_client.unsubscribe_topic(f"/sys/{self._product_key}/{self._device_name}/app/down/thing/events")
162
+ self._linkkit_client.unsubscribe_topic(f"/sys/{self._product_key}/{self._device_name}/app/down/thing/status")
163
+ self._linkkit_client.unsubscribe_topic(
164
+ f"/sys/{self._product_key}/{self._device_name}/app/down/thing/properties"
165
+ )
166
+ self._linkkit_client.unsubscribe_topic(
167
+ f"/sys/{self._product_key}/{self._device_name}/app/down/thing/model/down_raw"
168
+ )
169
+
145
170
  def _thing_on_topic_message(self, topic, payload, qos, user_data) -> None:
146
171
  """Is called when thing topic comes in."""
147
172
  logger.debug(
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [project]
6
6
  name = "pymammotion"
7
- version = "0.4.9"
7
+ version = "0.4.10"
8
8
  license = "GPL-3.0"
9
9
  description = ""
10
10
  readme = "README.md"
@@ -65,7 +65,7 @@ mypy = "^1.11.2"
65
65
  autotyping = "^24.3.0"
66
66
 
67
67
  [tool.bumpver]
68
- current_version = "0.4.9"
68
+ current_version = "0.4.10"
69
69
  version_pattern = "MAJOR.MINOR.PATCH"
70
70
  commit_message = "Bump version {old_version} -> {new_version}"
71
71
  commit = true
File without changes
File without changes