From 1b5802bcebb1f80b607dcfba50e31b90e2f67940 Mon Sep 17 00:00:00 2001 From: Teemu Rytilahti Date: Fri, 29 Nov 2024 18:07:18 +0100 Subject: [PATCH 1/6] Add vacuum component queries to dump_devinfo --- devtools/helpers/smartrequests.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/devtools/helpers/smartrequests.py b/devtools/helpers/smartrequests.py index 18ae00e2b..b7317f639 100644 --- a/devtools/helpers/smartrequests.py +++ b/devtools/helpers/smartrequests.py @@ -425,4 +425,19 @@ def get_component_requests(component_id, ver_code): "dimmer_calibration": [], "fan_control": [], "overheat_protection": [], + # Vacuum components + "clean": ["get_clean_records"], + "battery": ["get_battery_info"], + "consumables": [], + "direction_control": [], + "button_and_led": [], + "speaker": [], + "map": ["get_map_info", "get_map_data"], + "auto_change_map": ["get_auto_change_map"], + "dust_bucket": [], + "mop": [], + "do_not_disturb": [], + "charge_pose_clean": [], + "continue_breakpoint_sweep": [], + "goto_point": [], } From 529ad63651a44b05a6acdcc914dc611d2ce4fcb9 Mon Sep 17 00:00:00 2001 From: Teemu Rytilahti Date: Fri, 29 Nov 2024 19:32:49 +0100 Subject: [PATCH 2/6] Fix requests --- devtools/helpers/smartrequests.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/devtools/helpers/smartrequests.py b/devtools/helpers/smartrequests.py index b7317f639..2201ab96e 100644 --- a/devtools/helpers/smartrequests.py +++ b/devtools/helpers/smartrequests.py @@ -426,14 +426,17 @@ def get_component_requests(component_id, ver_code): "fan_control": [], "overheat_protection": [], # Vacuum components - "clean": ["get_clean_records"], - "battery": ["get_battery_info"], + "clean": [SmartRequest.get_raw_request("get_clean_records")], + "battery": [SmartRequest.get_raw_request("get_battery_info")], "consumables": [], "direction_control": [], "button_and_led": [], "speaker": [], - "map": ["get_map_info", "get_map_data"], - "auto_change_map": ["get_auto_change_map"], + "map": [ + SmartRequest.get_raw_request("get_map_info"), + SmartRequest.get_raw_request("get_map_data"), + ], + "auto_change_map": [SmartRequest.get_raw_request("get_auto_change_map")], "dust_bucket": [], "mop": [], "do_not_disturb": [], From d8f4fbb6ddc2bd0f58bdb489b48e771ce0ecd04b Mon Sep 17 00:00:00 2001 From: Teemu Rytilahti Date: Fri, 29 Nov 2024 19:34:18 +0100 Subject: [PATCH 3/6] Redact map_data --- kasa/protocols/smartprotocol.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kasa/protocols/smartprotocol.py b/kasa/protocols/smartprotocol.py index 80e76ca6e..9012ae546 100644 --- a/kasa/protocols/smartprotocol.py +++ b/kasa/protocols/smartprotocol.py @@ -54,6 +54,8 @@ "mfi_setup_id": None, "mfi_token_token": None, "mfi_token_uuid": None, + # Vacuum + "map_data": None, } From 9a8d7eb73a85861a835bb509cb659511022ddb90 Mon Sep 17 00:00:00 2001 From: Teemu Rytilahti Date: Fri, 29 Nov 2024 19:52:07 +0100 Subject: [PATCH 4/6] Add some more commands --- devtools/helpers/smartrequests.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/devtools/helpers/smartrequests.py b/devtools/helpers/smartrequests.py index 2201ab96e..2e2d7668f 100644 --- a/devtools/helpers/smartrequests.py +++ b/devtools/helpers/smartrequests.py @@ -428,18 +428,21 @@ def get_component_requests(component_id, ver_code): # Vacuum components "clean": [SmartRequest.get_raw_request("get_clean_records")], "battery": [SmartRequest.get_raw_request("get_battery_info")], - "consumables": [], + "consumables": [SmartRequest.get_raw_request("get_consumables_info")], "direction_control": [], "button_and_led": [], - "speaker": [], + "speaker": [ + SmartRequest.get_raw_request("get_support_voice_language"), + SmartRequest.get_raw_request("get_current_voice_language"), + ], "map": [ SmartRequest.get_raw_request("get_map_info"), SmartRequest.get_raw_request("get_map_data"), ], "auto_change_map": [SmartRequest.get_raw_request("get_auto_change_map")], - "dust_bucket": [], - "mop": [], - "do_not_disturb": [], + "dust_bucket": [SmartRequest.get_raw_request("get_auto_dust_collection")], + "mop": [SmartRequest.get_raw_request("get_mop_state")], + "do_not_disturb": [SmartRequest.get_raw_request("get_do_not_disturb")], "charge_pose_clean": [], "continue_breakpoint_sweep": [], "goto_point": [], From ec379ab363d74020c2fe3c6ab575da9a35b70c67 Mon Sep 17 00:00:00 2001 From: Teemu Rytilahti Date: Fri, 29 Nov 2024 19:56:08 +0100 Subject: [PATCH 5/6] Scrub in the correct place --- devtools/dump_devinfo.py | 2 ++ kasa/protocols/smartprotocol.py | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/devtools/dump_devinfo.py b/devtools/dump_devinfo.py index 18005990f..b6c44fe52 100644 --- a/devtools/dump_devinfo.py +++ b/devtools/dump_devinfo.py @@ -157,6 +157,8 @@ def scrub(res): v = "#MASKED_NAME#" elif isinstance(res[k], int): v = 0 + elif k in ["map_data"]: # + v = "#SCRUBBED_MAPDATA#" elif k in ["device_id", "dev_id"] and "SCRUBBED" in v: pass # already scrubbed elif k == ["device_id", "dev_id"] and len(v) > 40: diff --git a/kasa/protocols/smartprotocol.py b/kasa/protocols/smartprotocol.py index 9012ae546..80e76ca6e 100644 --- a/kasa/protocols/smartprotocol.py +++ b/kasa/protocols/smartprotocol.py @@ -54,8 +54,6 @@ "mfi_setup_id": None, "mfi_token_token": None, "mfi_token_uuid": None, - # Vacuum - "map_data": None, } From ca1e3912addbfa40bdf35526330ea8458cf9a0b6 Mon Sep 17 00:00:00 2001 From: Teemu Rytilahti Date: Fri, 29 Nov 2024 19:57:06 +0100 Subject: [PATCH 6/6] Add get_vac_state --- devtools/helpers/smartrequests.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/devtools/helpers/smartrequests.py b/devtools/helpers/smartrequests.py index 2e2d7668f..20b1300e7 100644 --- a/devtools/helpers/smartrequests.py +++ b/devtools/helpers/smartrequests.py @@ -426,7 +426,10 @@ def get_component_requests(component_id, ver_code): "fan_control": [], "overheat_protection": [], # Vacuum components - "clean": [SmartRequest.get_raw_request("get_clean_records")], + "clean": [ + SmartRequest.get_raw_request("get_clean_records"), + SmartRequest.get_raw_request("get_vac_state"), + ], "battery": [SmartRequest.get_raw_request("get_battery_info")], "consumables": [SmartRequest.get_raw_request("get_consumables_info")], "direction_control": [],