mirror of
				https://github.com/python-kasa/python-kasa.git
				synced 2025-11-03 22:22:06 +00:00 
			
		
		
		
	Add fixture for RV30 Plus
This commit is contained in:
		@@ -847,7 +847,8 @@ def get_smart_child_fixture(response):
 | 
			
		||||
    model_info = SmartDevice._get_device_info(response, None)
 | 
			
		||||
    hw_version = model_info.hardware_version
 | 
			
		||||
    fw_version = model_info.firmware_version
 | 
			
		||||
    model = model_info.long_name
 | 
			
		||||
    # Vacuum models can have a space in their name
 | 
			
		||||
    model = model_info.long_name.replace(" ", "_")
 | 
			
		||||
    if model_info.region is not None:
 | 
			
		||||
        model = f"{model}({model_info.region})"
 | 
			
		||||
    save_filename = f"{model}_{hw_version}_{fw_version}.json"
 | 
			
		||||
 
 | 
			
		||||
@@ -124,6 +124,7 @@ DIMMERS = {
 | 
			
		||||
HUBS_SMART = {"H100", "KH100"}
 | 
			
		||||
SENSORS_SMART = {"T310", "T315", "T300", "T100", "T110", "S200B", "S200D"}
 | 
			
		||||
THERMOSTATS_SMART = {"KE100"}
 | 
			
		||||
VACUUMS_SMART = {"RV30"}
 | 
			
		||||
 | 
			
		||||
WITH_EMETER_IOT = {"HS110", "HS300", "KP115", "KP125", *BULBS_IOT}
 | 
			
		||||
WITH_EMETER_SMART = {"P110", "P110M", "P115", "KP125M", "EP25", "P304M"}
 | 
			
		||||
@@ -142,6 +143,7 @@ ALL_DEVICES_SMART = (
 | 
			
		||||
    .union(SENSORS_SMART)
 | 
			
		||||
    .union(SWITCHES_SMART)
 | 
			
		||||
    .union(THERMOSTATS_SMART)
 | 
			
		||||
    .union(VACUUMS_SMART)
 | 
			
		||||
)
 | 
			
		||||
ALL_DEVICES = ALL_DEVICES_IOT.union(ALL_DEVICES_SMART)
 | 
			
		||||
 | 
			
		||||
@@ -310,6 +312,9 @@ dimmers_smart = parametrize(
 | 
			
		||||
hubs_smart = parametrize(
 | 
			
		||||
    "hubs smart", model_filter=HUBS_SMART, protocol_filter={"SMART"}
 | 
			
		||||
)
 | 
			
		||||
vacuums_smart = parametrize(
 | 
			
		||||
    "vacuums smart", model_filter=VACUUMS_SMART, protocol_filter={"SMART"}
 | 
			
		||||
)
 | 
			
		||||
sensors_smart = parametrize(
 | 
			
		||||
    "sensors smart", model_filter=SENSORS_SMART, protocol_filter={"SMART.CHILD"}
 | 
			
		||||
)
 | 
			
		||||
@@ -351,15 +356,15 @@ def check_categories():
 | 
			
		||||
        + thermostats_smart.args[1]
 | 
			
		||||
        + camera_smartcam.args[1]
 | 
			
		||||
        + hub_smartcam.args[1]
 | 
			
		||||
        + vacuums_smart.args[1]
 | 
			
		||||
    )
 | 
			
		||||
    diffs: set[FixtureInfo] = set(FIXTURE_DATA) - set(categorized_fixtures)
 | 
			
		||||
    if diffs:
 | 
			
		||||
        print(diffs)
 | 
			
		||||
        for diff in diffs:
 | 
			
		||||
            print(
 | 
			
		||||
                f"No category for file {diff.name} protocol {diff.protocol}, add to the corresponding set (BULBS, PLUGS, ..)"
 | 
			
		||||
            )
 | 
			
		||||
        raise Exception(f"Missing category for {diff.name}")
 | 
			
		||||
        raise Exception(f"Missing category for {diffs}")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
check_categories()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										334
									
								
								tests/fixtures/smart/RV30_Plus(US)_1.0_1.2.2.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										334
									
								
								tests/fixtures/smart/RV30_Plus(US)_1.0_1.2.2.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,334 @@
 | 
			
		||||
{
 | 
			
		||||
    "component_nego": {
 | 
			
		||||
        "component_list": [
 | 
			
		||||
            {
 | 
			
		||||
                "id": "device",
 | 
			
		||||
                "ver_code": 1
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "iot_cloud",
 | 
			
		||||
                "ver_code": 1
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "time",
 | 
			
		||||
                "ver_code": 1
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "firmware",
 | 
			
		||||
                "ver_code": 1
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "quick_setup",
 | 
			
		||||
                "ver_code": 1
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "clean",
 | 
			
		||||
                "ver_code": 2
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "battery",
 | 
			
		||||
                "ver_code": 1
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "consumables",
 | 
			
		||||
                "ver_code": 2
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "direction_control",
 | 
			
		||||
                "ver_code": 1
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "button_and_led",
 | 
			
		||||
                "ver_code": 1
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "speaker",
 | 
			
		||||
                "ver_code": 3
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "schedule",
 | 
			
		||||
                "ver_code": 3
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "wireless",
 | 
			
		||||
                "ver_code": 1
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "map",
 | 
			
		||||
                "ver_code": 3
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "auto_change_map",
 | 
			
		||||
                "ver_code": 2
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "ble_whole_setup",
 | 
			
		||||
                "ver_code": 1
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "dust_bucket",
 | 
			
		||||
                "ver_code": 1
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "inherit",
 | 
			
		||||
                "ver_code": 1
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "mop",
 | 
			
		||||
                "ver_code": 1
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "do_not_disturb",
 | 
			
		||||
                "ver_code": 1
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "device_local_time",
 | 
			
		||||
                "ver_code": 1
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "charge_pose_clean",
 | 
			
		||||
                "ver_code": 1
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "continue_breakpoint_sweep",
 | 
			
		||||
                "ver_code": 1
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "goto_point",
 | 
			
		||||
                "ver_code": 1
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "furniture",
 | 
			
		||||
                "ver_code": 1
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "map_cloud_backup",
 | 
			
		||||
                "ver_code": 1
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "dev_log",
 | 
			
		||||
                "ver_code": 1
 | 
			
		||||
            }
 | 
			
		||||
        ]
 | 
			
		||||
    },
 | 
			
		||||
    "discovery_result": {
 | 
			
		||||
        "device_id": "00000000000000000000000000000000",
 | 
			
		||||
        "device_model": "RV30 Plus(US)",
 | 
			
		||||
        "device_type": "SMART.TAPOROBOVAC",
 | 
			
		||||
        "factory_default": false,
 | 
			
		||||
        "ip": "127.0.0.123",
 | 
			
		||||
        "is_support_iot_cloud": true,
 | 
			
		||||
        "mac": "AC-15-A2-00-00-00",
 | 
			
		||||
        "mgt_encrypt_schm": {
 | 
			
		||||
            "encrypt_type": "AES",
 | 
			
		||||
            "http_port": 4433,
 | 
			
		||||
            "is_support_https": true
 | 
			
		||||
        },
 | 
			
		||||
        "obd_src": "tplink",
 | 
			
		||||
        "owner": "00000000000000000000000000000000"
 | 
			
		||||
    },
 | 
			
		||||
    "getAutoChangeMap": {
 | 
			
		||||
        "auto_change_map": true
 | 
			
		||||
    },
 | 
			
		||||
    "getAutoDustCollection": {
 | 
			
		||||
        "auto_dust_collection": 1
 | 
			
		||||
    },
 | 
			
		||||
    "getBatteryInfo": {
 | 
			
		||||
        "battery_percentage": 100
 | 
			
		||||
    },
 | 
			
		||||
    "getCleanRecords": {
 | 
			
		||||
        "lastest_day_record": [
 | 
			
		||||
            0,
 | 
			
		||||
            0,
 | 
			
		||||
            0,
 | 
			
		||||
            0
 | 
			
		||||
        ],
 | 
			
		||||
        "record_list": [],
 | 
			
		||||
        "record_list_num": 0,
 | 
			
		||||
        "total_area": 0,
 | 
			
		||||
        "total_number": 0,
 | 
			
		||||
        "total_time": 0
 | 
			
		||||
    },
 | 
			
		||||
    "getConsumablesInfo": {
 | 
			
		||||
        "charge_contact_time": 0,
 | 
			
		||||
        "edge_brush_time": 0,
 | 
			
		||||
        "filter_time": 0,
 | 
			
		||||
        "main_brush_lid_time": 0,
 | 
			
		||||
        "rag_time": 0,
 | 
			
		||||
        "roll_brush_time": 0,
 | 
			
		||||
        "sensor_time": 0
 | 
			
		||||
    },
 | 
			
		||||
    "getCurrentVoiceLanguage": {
 | 
			
		||||
        "name": "bb053ca2c5605a55090fcdb952f3902b",
 | 
			
		||||
        "version": 1
 | 
			
		||||
    },
 | 
			
		||||
    "getDoNotDisturb": {
 | 
			
		||||
        "do_not_disturb": true,
 | 
			
		||||
        "e_min": 480,
 | 
			
		||||
        "s_min": 1320
 | 
			
		||||
    },
 | 
			
		||||
    "getMapInfo": {
 | 
			
		||||
        "auto_change_map": true,
 | 
			
		||||
        "current_map_id": 0,
 | 
			
		||||
        "map_list": [],
 | 
			
		||||
        "map_num": 0,
 | 
			
		||||
        "version": "LDS"
 | 
			
		||||
    },
 | 
			
		||||
    "getMopState": {
 | 
			
		||||
        "mop_state": false
 | 
			
		||||
    },
 | 
			
		||||
    "getVacStatus": {
 | 
			
		||||
        "err_status": [
 | 
			
		||||
            0
 | 
			
		||||
        ],
 | 
			
		||||
        "errorCode_id": [
 | 
			
		||||
            0
 | 
			
		||||
        ],
 | 
			
		||||
        "prompt": [],
 | 
			
		||||
        "promptCode_id": [],
 | 
			
		||||
        "status": 6
 | 
			
		||||
    },
 | 
			
		||||
    "get_device_info": {
 | 
			
		||||
        "auto_pack_ver": "0.0.49.1720",
 | 
			
		||||
        "avatar": "",
 | 
			
		||||
        "board_sn": "22420ABD10A80A74",
 | 
			
		||||
        "custom_sn": "222A056000059",
 | 
			
		||||
        "device_id": "0000000000000000000000000000000000000000",
 | 
			
		||||
        "fw_id": "00000000000000000000000000000000",
 | 
			
		||||
        "fw_ver": "1.2.2 Build 240627 Rel.162730",
 | 
			
		||||
        "has_set_location_info": false,
 | 
			
		||||
        "hw_id": "00000000000000000000000000000000",
 | 
			
		||||
        "hw_ver": "1.0",
 | 
			
		||||
        "ip": "127.0.0.123",
 | 
			
		||||
        "lang": "",
 | 
			
		||||
        "latitude": 0,
 | 
			
		||||
        "linux_ver": "V6.45.2670418356",
 | 
			
		||||
        "location": "Home",
 | 
			
		||||
        "longitude": 0,
 | 
			
		||||
        "mac": "AC-15-A2-00-00-00",
 | 
			
		||||
        "mcu_ver": "1.1.2703.116",
 | 
			
		||||
        "model": "RV30 Plus",
 | 
			
		||||
        "nickname": "I01BU0tFRF9OQU1FIw==",
 | 
			
		||||
        "oem_id": "00000000000000000000000000000000",
 | 
			
		||||
        "overheated": false,
 | 
			
		||||
        "region": "America/Chicago",
 | 
			
		||||
        "rssi": -49,
 | 
			
		||||
        "signal_level": 3,
 | 
			
		||||
        "specs": "",
 | 
			
		||||
        "ssid": "I01BU0tFRF9TU0lEIw==",
 | 
			
		||||
        "time_diff": -360,
 | 
			
		||||
        "total_ver": "1.3.8",
 | 
			
		||||
        "type": "SMART.TAPOROBOVAC"
 | 
			
		||||
    },
 | 
			
		||||
    "get_device_time": {
 | 
			
		||||
        "region": "America/Chicago",
 | 
			
		||||
        "time_diff": -360,
 | 
			
		||||
        "timestamp": 1732911696
 | 
			
		||||
    },
 | 
			
		||||
    "get_fw_download_state": {
 | 
			
		||||
        "auto_upgrade": false,
 | 
			
		||||
        "download_progress": 0,
 | 
			
		||||
        "reboot_time": 5,
 | 
			
		||||
        "status": 0,
 | 
			
		||||
        "upgrade_time": 5
 | 
			
		||||
    },
 | 
			
		||||
    "get_inherit_info": null,
 | 
			
		||||
    "get_latest_fw": {
 | 
			
		||||
        "fw_size": 0,
 | 
			
		||||
        "fw_ver": "1.2.2 Build 240627 Rel.162730",
 | 
			
		||||
        "hw_id": "",
 | 
			
		||||
        "need_to_upgrade": false,
 | 
			
		||||
        "oem_id": "",
 | 
			
		||||
        "release_date": "",
 | 
			
		||||
        "release_note": "",
 | 
			
		||||
        "type": 0
 | 
			
		||||
    },
 | 
			
		||||
    "get_next_event": {},
 | 
			
		||||
    "get_schedule_rules": {
 | 
			
		||||
        "enable": false,
 | 
			
		||||
        "rule_list": [],
 | 
			
		||||
        "schedule_rule_max_count": 32,
 | 
			
		||||
        "start_index": 0,
 | 
			
		||||
        "sum": 0
 | 
			
		||||
    },
 | 
			
		||||
    "get_wireless_scan_info": {
 | 
			
		||||
        "ap_list": [
 | 
			
		||||
            {
 | 
			
		||||
                "key_type": "wpa2_psk",
 | 
			
		||||
                "signal_level": 2,
 | 
			
		||||
                "ssid": "I01BU0tFRF9TU0lEIw=="
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "key_type": "wpa2_psk",
 | 
			
		||||
                "signal_level": 2,
 | 
			
		||||
                "ssid": "I01BU0tFRF9TU0lEIw=="
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "key_type": "wpa2_psk",
 | 
			
		||||
                "signal_level": 2,
 | 
			
		||||
                "ssid": "I01BU0tFRF9TU0lEIw=="
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "key_type": "wpa2_psk",
 | 
			
		||||
                "signal_level": 2,
 | 
			
		||||
                "ssid": "I01BU0tFRF9TU0lEIw=="
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "key_type": "wpa2_psk",
 | 
			
		||||
                "signal_level": 2,
 | 
			
		||||
                "ssid": "I01BU0tFRF9TU0lEIw=="
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "key_type": "wpa2_psk",
 | 
			
		||||
                "signal_level": 2,
 | 
			
		||||
                "ssid": "I01BU0tFRF9TU0lEIw=="
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "key_type": "wpa2_psk",
 | 
			
		||||
                "signal_level": 1,
 | 
			
		||||
                "ssid": "I01BU0tFRF9TU0lEIw=="
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "key_type": "wpa2_psk",
 | 
			
		||||
                "signal_level": 1,
 | 
			
		||||
                "ssid": "I01BU0tFRF9TU0lEIw=="
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "key_type": "wpa2_psk",
 | 
			
		||||
                "signal_level": 1,
 | 
			
		||||
                "ssid": "I01BU0tFRF9TU0lEIw=="
 | 
			
		||||
            }
 | 
			
		||||
        ],
 | 
			
		||||
        "start_index": 0,
 | 
			
		||||
        "sum": 9,
 | 
			
		||||
        "wep_supported": true
 | 
			
		||||
    },
 | 
			
		||||
    "qs_component_nego": {
 | 
			
		||||
        "component_list": [
 | 
			
		||||
            {
 | 
			
		||||
                "id": "quick_setup",
 | 
			
		||||
                "ver_code": 1
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "iot_cloud",
 | 
			
		||||
                "ver_code": 1
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "firmware",
 | 
			
		||||
                "ver_code": 1
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "ble_whole_setup",
 | 
			
		||||
                "ver_code": 1
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "id": "inherit",
 | 
			
		||||
                "ver_code": 1
 | 
			
		||||
            }
 | 
			
		||||
        ],
 | 
			
		||||
        "extra_info": {
 | 
			
		||||
            "device_model": "RV30 Plus",
 | 
			
		||||
            "device_type": "SMART.TAPOROBOVAC"
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user