python-roborock 2.11.3__tar.gz → 2.12.0__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 (28) hide show
  1. {python_roborock-2.11.3 → python_roborock-2.12.0}/PKG-INFO +1 -1
  2. {python_roborock-2.11.3 → python_roborock-2.12.0}/pyproject.toml +1 -1
  3. {python_roborock-2.11.3 → python_roborock-2.12.0}/roborock/cli.py +26 -1
  4. {python_roborock-2.11.3 → python_roborock-2.12.0}/LICENSE +0 -0
  5. {python_roborock-2.11.3 → python_roborock-2.12.0}/README.md +0 -0
  6. {python_roborock-2.11.3 → python_roborock-2.12.0}/roborock/__init__.py +0 -0
  7. {python_roborock-2.11.3 → python_roborock-2.12.0}/roborock/api.py +0 -0
  8. {python_roborock-2.11.3 → python_roborock-2.12.0}/roborock/cloud_api.py +0 -0
  9. {python_roborock-2.11.3 → python_roborock-2.12.0}/roborock/code_mappings.py +0 -0
  10. {python_roborock-2.11.3 → python_roborock-2.12.0}/roborock/command_cache.py +0 -0
  11. {python_roborock-2.11.3 → python_roborock-2.12.0}/roborock/const.py +0 -0
  12. {python_roborock-2.11.3 → python_roborock-2.12.0}/roborock/containers.py +0 -0
  13. {python_roborock-2.11.3 → python_roborock-2.12.0}/roborock/exceptions.py +0 -0
  14. {python_roborock-2.11.3 → python_roborock-2.12.0}/roborock/local_api.py +0 -0
  15. {python_roborock-2.11.3 → python_roborock-2.12.0}/roborock/protocol.py +0 -0
  16. {python_roborock-2.11.3 → python_roborock-2.12.0}/roborock/py.typed +0 -0
  17. {python_roborock-2.11.3 → python_roborock-2.12.0}/roborock/roborock_future.py +0 -0
  18. {python_roborock-2.11.3 → python_roborock-2.12.0}/roborock/roborock_message.py +0 -0
  19. {python_roborock-2.11.3 → python_roborock-2.12.0}/roborock/roborock_typing.py +0 -0
  20. {python_roborock-2.11.3 → python_roborock-2.12.0}/roborock/util.py +0 -0
  21. {python_roborock-2.11.3 → python_roborock-2.12.0}/roborock/version_1_apis/__init__.py +0 -0
  22. {python_roborock-2.11.3 → python_roborock-2.12.0}/roborock/version_1_apis/roborock_client_v1.py +0 -0
  23. {python_roborock-2.11.3 → python_roborock-2.12.0}/roborock/version_1_apis/roborock_local_client_v1.py +0 -0
  24. {python_roborock-2.11.3 → python_roborock-2.12.0}/roborock/version_1_apis/roborock_mqtt_client_v1.py +0 -0
  25. {python_roborock-2.11.3 → python_roborock-2.12.0}/roborock/version_a01_apis/__init__.py +0 -0
  26. {python_roborock-2.11.3 → python_roborock-2.12.0}/roborock/version_a01_apis/roborock_client_a01.py +0 -0
  27. {python_roborock-2.11.3 → python_roborock-2.12.0}/roborock/version_a01_apis/roborock_mqtt_client_a01.py +0 -0
  28. {python_roborock-2.11.3 → python_roborock-2.12.0}/roborock/web_api.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-roborock
3
- Version: 2.11.3
3
+ Version: 2.12.0
4
4
  Summary: A package to control Roborock vacuums.
5
5
  Home-page: https://github.com/humbertogontijo/python-roborock
6
6
  License: GPL-3.0-only
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "python-roborock"
3
- version = "2.11.3"
3
+ version = "2.12.0"
4
4
  description = "A package to control Roborock vacuums."
5
5
  authors = ["humbertogontijo <humbertogontijo@users.noreply.github.com>"]
6
6
  license = "GPL-3.0-only"
@@ -11,9 +11,10 @@ from pyshark.capture.live_capture import LiveCapture, UnknownInterfaceException
11
11
  from pyshark.packet.packet import Packet # type: ignore
12
12
 
13
13
  from roborock import RoborockException
14
- from roborock.containers import DeviceData, LoginData
14
+ from roborock.containers import DeviceData, HomeDataProduct, LoginData
15
15
  from roborock.protocol import MessageParser
16
16
  from roborock.util import run_sync
17
+ from roborock.version_1_apis.roborock_local_client_v1 import RoborockLocalClientV1
17
18
  from roborock.version_1_apis.roborock_mqtt_client_v1 import RoborockMqttClientV1
18
19
  from roborock.web_api import RoborockApiClient
19
20
 
@@ -145,6 +146,29 @@ async def execute_scene(ctx, scene_id):
145
146
  await client.execute_scene(login_data.user_data, scene_id)
146
147
 
147
148
 
149
+ @click.command()
150
+ @click.option("--device_id", required=True)
151
+ @click.pass_context
152
+ @run_sync()
153
+ async def status(ctx, device_id):
154
+ context: RoborockContext = ctx.obj
155
+ login_data = context.login_data()
156
+ if not login_data.home_data:
157
+ await _discover(ctx)
158
+ login_data = context.login_data()
159
+ home_data = login_data.home_data
160
+ devices = home_data.devices + home_data.received_devices
161
+ device = next(device for device in devices if device.duid == device_id)
162
+ product_info: dict[str, HomeDataProduct] = {product.id: product for product in home_data.products}
163
+ device_data = DeviceData(device, product_info[device.product_id].model)
164
+ mqtt_client = RoborockMqttClientV1(login_data.user_data, device_data)
165
+ networking = await mqtt_client.get_networking()
166
+ local_device_data = DeviceData(device, product_info[device.product_id].model, networking.ip)
167
+ local_client = RoborockLocalClientV1(local_device_data)
168
+ status = await local_client.get_status()
169
+ click.echo(json.dumps(status.as_dict(), indent=4))
170
+
171
+
148
172
  @click.command()
149
173
  @click.option("--device_id", required=True)
150
174
  @click.option("--cmd", required=True)
@@ -226,6 +250,7 @@ cli.add_command(discover)
226
250
  cli.add_command(list_devices)
227
251
  cli.add_command(list_scenes)
228
252
  cli.add_command(execute_scene)
253
+ cli.add_command(status)
229
254
  cli.add_command(command)
230
255
  cli.add_command(parser)
231
256