core icon indicating copy to clipboard operation
core copied to clipboard

Roborock can't Add Integrarion due to "parameter error - response code: 1002"

Open 1iverea9er opened this issue 1 month ago • 21 comments

The problem

I am trying to simply re-add the integration after updating HA to version 2025.12.2

An error occurs when entering the verification code.

What version of Home Assistant Core has the issue?

core-2025.12.2

What was the last working version of Home Assistant Core?

core-2025.11

What type of installation are you running?

Home Assistant OS

Integration causing the issue

Roborock

Link to integration documentation on our website

https://www.home-assistant.io/integrations/roborock/

Diagnostics information

No response

Example YAML snippet


Anything in the logs that might be useful for us?

2025-12-09 10:05:38.658 INFO (MainThread) [roborock.web_api] Login failed for *@gmail.com with the following context: {'msg': 'parameter error', 'data': None, 'code': 1002}
2025-12-09 10:05:38.658 ERROR (MainThread) [homeassistant.components.roborock.config_flow] Unexpected exception
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/roborock/config_flow.py", line 114, in async_step_code
    user_data = await self._client.code_login_v4(code)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/roborock/web_api.py", line 348, in code_login_v4
    raise RoborockException(f"{login_response.get('msg')} - response code: {response_code}")
roborock.exceptions.RoborockException: parameter error - response code: 1002

Additional information

No response

1iverea9er avatar Dec 09 '25 07:12 1iverea9er

Hey there @lash-l, @allenporter, mind taking a look at this issue as it has been labeled with an integration (roborock) you are listed as a code owner for? Thanks!

Code owner commands

Code owners of roborock can trigger bot actions by commenting:

  • @home-assistant close Closes the issue.
  • @home-assistant rename Awesome new title Renames the issue.
  • @home-assistant reopen Reopen the issue.
  • @home-assistant unassign roborock Removes the current integration label and assignees on the issue, add the integration domain after the command.
  • @home-assistant add-label needs-more-information Add a label (needs-more-information, problem in dependency, problem in custom component) to the issue.
  • @home-assistant remove-label needs-more-information Remove a label (needs-more-information, problem in dependency, problem in custom component) on the issue.

(message by CodeOwnersMention)


roborock documentation roborock source (message by IssueLinks)

home-assistant[bot] avatar Dec 09 '25 07:12 home-assistant[bot]

Hello,

The problem no longer occurs with the "official" integration; the problem occurs with the "unofficial" integration. Remove the unofficial add-on from HACS, restart HA, and add it using the "official" add-on.

drozdzszymon avatar Dec 09 '25 07:12 drozdzszymon

I have the same problem. The integration is official.

cognolio avatar Dec 09 '25 08:12 cognolio

I had the same problem on earlier versions after updating to 12.2, deleting the add-on, restarting, adding the official add-on, adding the robot again, everything works fine.

drozdzszymon avatar Dec 09 '25 08:12 drozdzszymon

I confirm, issue resolved by removing integration items and readding them again

modo1302 avatar Dec 09 '25 09:12 modo1302

I disabled the integration (official) after 12.1 caused my robot to go offline. Left it disabled for 3 days. Updated to 12.2, enabled integration but only get an error. I then removed my robot from by integration, logged out of the integration and get this error now after setting it up again. I type the confirmation code and:

logger:%20homeassistant.components.roborock.config_flow%0ASource%3A%20components/roborock/config_flow.py:114%0Aintegration:%20Roborock%20(documentation,%20issues)%0AFirst%20occurred:%205:49:51%20AM%20(3%20occurrences)%0ALast%20logged:%206:24:45%20AM%0A%0AUnexpected%20exception%0ATraceback%20(most%20recent%20call%20last):%0A%20%20File%20%22/usr/src/homeassistant/homeassistant/components/roborock/config_flow.py%22,%20line%20114,%20in%20async_step_code%0A%20%20%20%20user_data%20=%20await%20self._client.code_login_v4(code)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%5E%0A%20%20File%20%22/usr/local/lib/python3.13/site-packages/roborock/web_api.py%22,%20line%20348,%20in%20code_login_v4%0A%20%20%20%20raise%20RoborockException(f%22%7Blogin_response.get('msg')%7D%20-%20response%20code:%20%7Bresponse_code%7D%22)%0Aroborock.exceptions.RoborockException:%20parameter%20error%20-%20response%20code:%201002%0A

Testingoutstuff avatar Dec 09 '25 12:12 Testingoutstuff

Removing -> Restart -> Adding solved the problem for now. I hope it last now for longer.

Miralleine avatar Dec 09 '25 12:12 Miralleine

I'm experiencing the exact same problem. The verification code is correct and not expired, but the integration always fails at the code_login_v4 step with: RoborockException: parameter error - response code: 1002 Log excerpt:

Login failed when calling code_login_v4 with context: {'msg': 'parameter error', 'data': None, 'code': 1002}
Traceback:
  File "config_flow.py", line 114, in async_step_code
    user_data = await self._client.code_login_v4(code)
  File "roborock/web_api.py", line 348, in code_login_v4
    raise RoborockException(f"{msg} - response code: {code}")

My setup:

  • Home Assistant Core 2025.11.2/12.2 (Docker)
  • No VPN or region-changing configuration
  • Roborock account and device both set to US region
  • International app, not Mi Home

This suggests that the issue is not related to region mismatch on the user side. It seems more likely that Roborock recently changed something on their side in the V4 login API, causing the current HA integration to fail with a 1002 parameter error.

yifanwow avatar Dec 09 '25 13:12 yifanwow

I tried uninstalling, restarting, and adding again - still not working.

maciek226 avatar Dec 09 '25 13:12 maciek226

Yes seems like Roborock changed the login flow overnight (or more accurately probably is now enforcing something that we are not including in the payload). I will look into this. I had just helped the OpenHab, Homey, and iobroker teams implement this. Potentially the extra traffic made them change something

Lash-L avatar Dec 09 '25 14:12 Lash-L

Yes seems like Roborock changed the login flow overnight (or more accurately probably is now enforcing something that we are not including in the payload). I will look into this. I had just helped the OpenHab, Homey, and iobroker teams implement this. Potentially the extra traffic made them change something

Thanks for the update. That makes sense.

yifanwow avatar Dec 09 '25 14:12 yifanwow

Yes seems like Roborock changed the login flow overnight (or more accurately probably is now enforcing something that we are not including in the payload). I will look into this. I had just helped the OpenHab, Homey, and iobroker teams implement this. Potentially the extra traffic made them change something

Thanks!

alexownsall avatar Dec 09 '25 15:12 alexownsall

Maybe this will clarify the situation a little. Now, 10 hours later, I tried adding the integration again. This time, it accepted the verification code, but then froze and was unable to configure any devices. logs: 2025-12-09 20:13:19.165 DEBUG (MainThread) [homeassistant.components.roborock] Device manager found 1 devices 2025-12-09 20:13:19.165 DEBUG (MainThread) [homeassistant.components.roborock] Creating device S6 Pure: RoborockDevice(v1_properties=PropertiesApi(status=StatusTrait(adbumper_status=None, auto_dust_collection=None, avoid_count=None, back_type=None, battery=None, camera_status=None, charge_status=None, clean_area=None, clean_fluid_status=None, clean_percent=None, clean_time=None, clear_water_box_status=None, collision_avoid_status=None, command=<RoborockCommand.GET_STATUS: 'get_status'>, common_status=None, corner_clean_mode=None, current_map=None, debug_mode=None, dirty_water_box_status=None, distance_off=None, dnd_enabled=None, dock_cool_fan_status=None, dock_error_status=None, dock_type=None, dry_status=None, dss=None, dust_bag_status=None, dust_collection_status=None, error_code=None, error_code_name=None, fan_power=None, fan_power_name=None, fan_power_options=[], hatch_door_status=None, home_sec_enable_password=None, home_sec_status=None, in_cleaning=None, in_fresh_state=None, in_returning=None, in_warmup=None, is_exploring=None, is_locating=None, kct=None, lab_status=None, last_clean_t=None, lock_status=None, map_present=None, map_status=None, mop_forbidden_enable=None, mop_mode=None, mop_mode_name=None, msg_seq=None, msg_ver=None, rdt=None, repeat=None, replenish_mode=None, rpc_channel=<roborock.devices.v1_channel.RpcChannel object at 0x7f40138116a0>, rss=None, square_meter_clean_area=None, state=None, state_name=None, subdivision_sets=None, switch_map_mode=None, unsave_map_flag=None, unsave_map_reason=None, wash_phase=None, wash_ready=None, wash_status=None, water_box_carriage_status=None, water_box_filter_status=None, water_box_mode=None, water_box_mode_name=None, water_box_status=None, water_shortage_status=None), command=<roborock.devices.traits.v1.command.CommandTrait object at 0x7f4013957770>, dnd=DoNotDisturbTrait(start_hour=None, start_minute=None, end_hour=None, end_minute=None, enabled=None), clean_summary=CleanSummaryTrait(clean_area=None, clean_count=None, clean_time=None, command=<RoborockCommand.GET_CLEAN_SUMMARY: 'get_clean_summary'>, dust_collection_count=None, last_clean_record=None, last_clean_t=None, records=None, rpc_channel=<roborock.devices.v1_channel.RpcChannel object at 0x7f40138116a0>, square_meter_clean_area=None), sound_volume=SoundVolumeTrait(volume=None), rooms=RoomsTrait(rooms=None), maps=MapsTrait(max_multi_map=None, max_bak_map=None, multi_map_count=None, map_info=None), map_content=MapContent(image_content=None, map_data=None), consumables=ConsumableTrait(cleaning_brush_time_left=None, cleaning_brush_work_times=None, command=<RoborockCommand.GET_CONSUMABLE: 'get_consumable'>, dust_collection_time_left=None, dust_collection_work_times=None, filter_element_work_time=None, filter_time_left=None, filter_work_time=None, main_brush_time_left=None, main_brush_work_time=None, mop_roller_time_left=None, moproller_work_time=None, rpc_channel=<roborock.devices.v1_channel.RpcChannel object at 0x7f40138116a0>, sensor_dirty_time=None, sensor_time_left=None, side_brush_time_left=None, side_brush_work_time=None, strainer_time_left=None, strainer_work_times=None), home=HomeTrait(), device_features=DeviceFeaturesTrait(is_show_clean_finish_reason_supported=False, is_re_segment_supported=False, is_video_monitor_supported=False, is_any_state_transit_goto_supported=False, is_fw_filter_obstacle_supported=False, is_video_setting_supported=False, is_ignore_unknown_map_object_supported=False, is_set_child_supported=False, is_carpet_supported=False, is_record_allowed=False, is_mop_path_supported=False, is_multi_map_segment_timer_supported=False, is_current_map_restore_enabled=False, is_room_name_supported=False, is_shake_mop_set_supported=False, is_map_beautify_internal_debug_supported=False, is_new_data_for_clean_history=False, is_new_data_for_clean_history_detail=False, is_flow_led_setting_supported=False, is_dust_collection_setting_supported=False, is_rpc_retry_supported=False, is_avoid_collision_supported=False, is_support_set_switch_map_mode=False, is_map_carpet_add_support=False, is_custom_water_box_distance_supported=False, is_support_smart_scene=False, is_support_floor_edit=False, is_support_furniture=False, is_wash_then_charge_cmd_supported=False, is_support_room_tag=False, is_support_quick_map_builder=False, is_support_smart_global_clean_with_custom_mode=False, is_careful_slow_mop_supported=False, is_egg_mode_supported_from_new_features=False, is_carpet_show_on_map=False, is_supported_valley_electricity=False, is_unsave_map_reason_supported=False, is_supported_drying=False, is_supported_download_test_voice=False, is_support_backup_map=False, is_support_custom_mode_in_cleaning=False, is_support_remote_control_in_call=False, is_support_set_volume_in_call=False, is_support_clean_estimate=False, is_support_custom_dnd=False, is_carpet_deep_clean_supported=False, is_support_stuck_zone=False, is_support_custom_door_sill=False, is_wifi_manage_supported=False, is_clean_route_fast_mode_supported=False, is_support_cliff_zone=False, is_support_smart_door_sill=False, is_support_floor_direction=False, is_back_charge_auto_wash_supported=False, is_support_incremental_map=False, is_offline_map_supported=False, is_super_deep_wash_supported=False, is_ces_2022_supported=False, is_dss_believable=False, is_main_brush_up_down_supported_from_str=False, is_goto_pure_clean_path_supported=False, is_water_up_down_drain_supported=False, is_setting_carpet_first_supported=False, is_clean_route_deep_slow_plus_supported=False, is_dynamically_skip_clean_zone_supported=False, is_dynamically_add_clean_zones_supported=False, is_left_water_drain_supported=False, is_clean_count_setting_supported=False, is_corner_clean_mode_supported=False, is_two_key_real_time_video_supported=False, is_two_key_rtv_in_charging_supported=False, is_dirty_replenish_clean_supported=False, is_auto_delivery_field_in_global_status_supported=False, is_avoid_collision_mode_supported=False, is_voice_control_supported=False, is_new_endpoint_supported=False, is_pumping_water_supported=False, is_corner_mop_stretch_supported=False, is_hot_wash_towel_supported=False, is_floor_dir_clean_any_time_supported=False, is_pet_supplies_deep_clean_supported=False, is_mop_shake_water_max_supported=False, is_exact_custom_mode_supported=False, is_video_patrol_supported=False, is_carpet_custom_clean_supported=False, is_pet_snapshot_supported=False, is_custom_clean_mode_count_supported=False, is_new_ai_recognition_supported=False, is_auto_collection_2_supported=False, is_right_brush_stretch_supported=False, is_smart_clean_mode_set_supported=False, is_dirty_object_detect_supported=False, is_no_need_carpet_press_set_supported=False, is_voice_control_led_supported=False, is_water_leak_check_supported=False, is_min_battery_15_to_clean_task_supported=False, is_gap_deep_clean_supported=False, is_object_detect_check_supported=False, is_identify_room_supported=False, is_matter_supported=False, is_workday_holiday_supported=False, is_clean_direct_status_supported=False, is_map_eraser_supported=False, is_optimize_battery_supported=False, is_activate_video_charging_and_standby_supported=False, is_carpet_long_haired_supported=False, is_clean_history_time_line_supported=False, is_max_zone_opened_supported=False, is_exhibition_function_supported=False, is_lds_lifting_supported=False, is_auto_tear_down_mop_supported=False, is_small_side_mop_supported=False, is_support_side_brush_up_down_supported=False, is_dry_interval_timer_supported=False, is_uvc_sterilize_supported=False, is_midway_back_to_dock_supported=False, is_support_main_brush_up_down_supported=False, is_egg_dance_mode_supported=False, is_mechanical_arm_mode_supported=False, is_tidyup_zones_supported=False, is_clean_time_line_supported=False, is_clean_then_mop_mode_supported=False, is_type_identify_supported=False, is_support_get_particular_status_supported=False, is_three_d_mapping_inner_test_supported=False, is_sync_server_name_supported=False, is_should_show_arm_over_load_supported=False, is_collect_dust_count_show_supported=False, is_support_api_app_stop_grasp_supported=False, is_ctm_with_repeat_supported=False, is_side_brush_lift_carpet_supported=False, is_detect_wire_carpet_supported=False, is_water_slide_mode_supported=False, is_soak_and_wash_supported=False, is_clean_efficiency_supported=False, is_back_wash_new_smart_supported=False, is_dual_band_wi_fi_supported=False, is_program_mode_supported=False, is_clean_fluid_delivery_supported=False, is_carpet_long_haired_ex_supported=False, is_over_sea_ctm_supported=False, is_full_duples_switch_supported=False, is_low_area_access_supported=False, is_follow_low_obs_supported=False, is_two_gears_no_collision_supported=False, is_carpet_shape_type_supported=False, is_sr_map_supported=False, is_led_status_switch_supported=False, is_multi_floor_supported=False, is_support_fetch_timer_summary=False, is_order_clean_supported=False, is_analysis_supported=False, is_remote_supported=False, is_support_voice_control_debug=False, is_mop_forbidden_supported=False, is_soft_clean_mode_supported=False, is_custom_mode_supported=False, is_support_custom_carpet=False, is_show_general_obstacle_supported=False, is_show_obstacle_photo_supported=False, is_rubber_brush_carpet_supported=False, is_carpet_pressure_use_origin_paras_supported=False, is_support_mop_back_pwm_set=False, is_collect_dust_mode_supported=False, is_support_water_mode=False, is_pure_clean_mop_supported=False, is_new_remote_view_supported=False, is_max_plus_mode_supported=False, is_none_pure_clean_mop_with_max_plus=False, is_clean_route_setting_supported=False, is_mop_shake_module_supported=False, is_customized_clean_supported=False), network_info=NetworkInfoTrait(ip='', ssid=None, mac=None, bssid=None, rssi=None), routines=<roborock.devices.traits.v1.routines.RoutinesTrait object at 0x7f4013955160>, child_lock=None, led_status=None, flow_led_status=None, valley_electricity_timer=None, dust_collection_mode=None, wash_towel_mode=None, smart_wash_params=None), dyad=None, zeo=None, b01_properties=None) 2025-12-09 20:13:19.166 DEBUG (MainThread) [roborock.devices.v1_channel] Sending command (mqtt, request_id=20002): RoborockCommand.GET_STATUS, params=None 2025-12-09 20:14:14.284 INFO (MainThread) [roborock.mqtt.roborock_session] MQTT error starting session: _ssl.c:1015: The handshake operation timed out 2025-12-09 20:14:14.284 DEBUG (MainThread) [roborock.devices.v1_channel] Command RoborockCommand.GET_NETWORK_INFO failed on mqtt channel: Error starting MQTT session: _ssl.c:1015: The handshake operation timed out 2025-12-09 20:14:14.285 DEBUG (MainThread) [roborock.devices.v1_channel] Error fetching network info for device 75L0m8FQ9inp6ZEfWKRtqv 2025-12-09 20:14:14.285 DEBUG (MainThread) [roborock.devices.v1_channel] First local connection attempt for device 75L0m8FQ9inp6ZEfWKRtqv failed, will retry: Network info failed for device 75L0m8FQ9inp6ZEfWKRtqv 2025-12-09 20:14:14.285 DEBUG (MainThread) [roborock.devices.v1_channel] Starting background task to manage local connection for 75L0m8FQ9inp6ZEfWKRtqv 2025-12-09 20:14:14.285 DEBUG (MainThread) [roborock.devices.v1_channel] Attempting to connect to local channel for device 75L0m8FQ9inp6ZEfWKRtqv (prefer_cache=False) 2025-12-09 20:14:14.285 DEBUG (MainThread) [roborock.devices.v1_channel] Sending command (mqtt, request_id=20003): RoborockCommand.GET_NETWORK_INFO, params=None 2025-12-09 20:14:14.285 INFO (MainThread) [roborock.mqtt.roborock_session] Starting MQTT session 2025-12-09 20:14:14.285 DEBUG (MainThread) [roborock.mqtt.roborock_session] Connecting to mqtt-eu-3.roborock.com:8883 for f04fd4db 2025-12-09 20:15:14.460 INFO (MainThread) [roborock.mqtt.roborock_session] MQTT error starting session: _ssl.c:1015: The handshake operation timed out 2025-12-09 20:15:14.460 DEBUG (MainThread) [roborock.devices.v1_channel] Command RoborockCommand.GET_STATUS failed on mqtt channel: Error starting MQTT session: _ssl.c:1015: The handshake operation timed out 2025-12-09 20:15:14.460 DEBUG (MainThread) [homeassistant.components.roborock.coordinator] Failed to update data during setup: Error starting MQTT session: _ssl.c:1015: The handshake operation timed out 2025-12-09 20:15:14.461 INFO (MainThread) [roborock.mqtt.roborock_session] Starting MQTT session 2025-12-09 20:15:14.461 DEBUG (MainThread) [roborock.mqtt.roborock_session] Connecting to mqtt-eu-3.roborock.com:8883 for f04fd4db 2025-12-09 20:15:14.472 INFO (MainThread) [roborock.devices.device] connect_loop for device S6 Pure was cancelled 2025-12-09 20:15:14.472 DEBUG (MainThread) [roborock.mqtt.roborock_session] MQTT connection task cancelled 2025-12-09 20:15:14.472 DEBUG (MainThread) [roborock.mqtt.roborock_session] MQTT session closed, stopping retry loop 2025-12-09 20:15:14.472 INFO (MainThread) [roborock.mqtt.roborock_session] Starting MQTT session 2025-12-09 20:15:14.472 DEBUG (MainThread) [roborock.mqtt.roborock_session] Connecting to mqtt-eu-3.roborock.com:8883 for f04fd4db 2025-12-09 20:15:19.560 ERROR (MainThread) [roborock.data.containers] Failed to convert devices with value [{'duid': '75L0m8FQ9inp6ZEfWKRtqv', 'name': 'S6 Pure', 'localKey': 'hdJpi9hhIZwcrNKd', 'productId': '6t5OGALwYyq9vFnl62BYuW', 'activeTime': 1765277892, 'timeZoneId': 'Europe/Moscow', 'iconUrl': '', 'share': False, 'online': False, 'pv': '1.0', 'tuyaMigrated': False, 'extra': '{}', 'deviceStatus': {}, 'silentOtaSwitch': False, 'f': False}] to type list[roborock.data.containers.HomeDataDevice] File "/usr/local/lib/python3.13/site-packages/roborock/data/containers.py", line 112, in from_dict result[key] = RoborockBase._convert_to_class_obj(field_type, value) File "/usr/local/lib/python3.13/site-packages/roborock/data/containers.py", line 71, in _convert_to_class_obj return [RoborockBase._convert_to_class_obj(sub_type, obj) for obj in value] File "/usr/local/lib/python3.13/site-packages/roborock/data/containers.py", line 79, in _convert_to_class_obj File "/usr/local/lib/python3.13/site-packages/roborock/data/containers.py", line 117, in from_dict 2025-12-09 20:15:19.561 DEBUG (MainThread) [roborock.devices.device_manager] Discovered 0 devices HomeData(id=10547760, name='My Home', products=[HomeDataProduct(id='6t5OGALwYyq9vFnl62BYuW', name='S6 Pure', model='roborock.vacuum.a08', category=<RoborockCategory.VACUUM: 'robot.vacuum.cleaner'>, code=None, icon_url=None, attribute=None, capability=0, schema=[HomeDataProductSchema(id=101, name='rpc_request', code='rpc_request', mode='rw', type='RAW', product_property=None, property=None, desc=None), HomeDataProductSchema(id=102, name='rpc_response', code='rpc_response', mode='rw', type='RAW', product_property=None, property=None, desc=None), HomeDataProductSchema(id=120, name='错误代码', code='error_code', mode='ro', type='ENUM', product_property=None, property='{"range": []}', desc=None), HomeDataProductSchema(id=121, name='设备状态', code='state', mode='ro', type='ENUM', product_property=None, property='{"range": []}', desc=None), HomeDataProductSchema(id=122, name='设备电量', code='battery', mode='ro', type='ENUM', product_property=None, property='{"range": []}', desc=None), HomeDataProductSchema(id=123, name='清扫模式', code='fan_power', mode='rw', type='ENUM', product_property=None, property='{"range": []}', desc=None), HomeDataProductSchema(id=124, name='拖地模式', code='water_box_mode', mode='rw', type='ENUM', product_property=None, property='{"range": []}', desc=None), HomeDataProductSchema(id=125, name='主刷寿命', code='main_brush_life', mode='rw', type='VALUE', product_property=None, property='{"max": 100, "min": 0, "step": 1, "unit": null, "scale": 1}', desc=None), HomeDataProductSchema(id=126, name='边刷寿命', code='side_brush_life', mode='rw', type='VALUE', product_property=None, property='{"max": 100, "min": 0, "step": 1, "unit": null, "scale": 1}', desc=None), HomeDataProductSchema(id=127, name='滤网寿命', code='filter_life', mode='rw', type='VALUE', product_property=None, property='{"max": 100, "min": 0, "step": 1, "unit": null, "scale": 1}', desc=None), HomeDataProductSchema(id=128, name='额外状态', code='additional_props', mode='ro', type='RAW', product_property=None, property=None, desc=None), HomeDataProductSchema(id=130, name='完成事件', code='task_complete', mode='ro', type='RAW', product_property=None, property=None, desc=None), HomeDataProductSchema(id=131, name='电量不足任务取消', code='task_cancel_low_power', mode='ro', type='RAW', product_property=None, property=None, desc=None), HomeDataProductSchema(id=132, name='运动中任务取消', code='task_cancel_in_motion', mode='ro', type='RAW', product_property=None, property=None, desc=None), HomeDataProductSchema(id=133, name='充电状态', code='charge_status', mode='ro', type='RAW', product_property=None, property=None, desc=None), HomeDataProductSchema(id=134, name='烘干状态', code='drying_status', mode='ro', type='RAW', product_property=None, property=None, desc=None), HomeDataProductSchema(id=135, name='离线原因细分', code='offline_status', mode='ro', type='RAW', product_property=None, property=None, desc=None)])], devices=[], received_devices=[], lon=None, lat=None, geo_name=None, rooms=[]) 2025-12-09 20:15:19.561 DEBUG (MainThread) [homeassistant.components.roborock] Device manager found 0 devices

1iverea9er avatar Dec 09 '25 17:12 1iverea9er

I'm not only having issues with the HA roborock integration but also it has become impossible to link roborock to my Google home. It's been linked for years so clearly whatever they've done is affecting more than just HA. Their app still works - they seem to have blocked any third party apps, although their app still offers to link to google and Alexa.

Gazoonky avatar Dec 09 '25 19:12 Gazoonky

Maybe it’s time I move to using the Matter integration. It’s more complicated than I’d like but I suspect it wouldn’t be impacted by similar changes.

Testingoutstuff avatar Dec 09 '25 19:12 Testingoutstuff

Sorry guys, but how to "uninstall" integration? Because I can only remove entities/hub from integration.

panther7 avatar Dec 09 '25 20:12 panther7

I think the Roborock is broken overall because I cannot log in with my phone number in the app. I always end up on a screen asking for a verification code via SMS, but the code never arrives...

panther7 avatar Dec 09 '25 20:12 panther7

The app is working fine for me. I'm just hoping this isn't another My-Q situation

JermaNoiD avatar Dec 09 '25 21:12 JermaNoiD

I have a fix for this that will be bundled in 2025.12.3

Unfortunate timing for Roborock to lock down the login api.

Lash-L avatar Dec 09 '25 22:12 Lash-L

Received our Roborock Qrevo S5V this afternoon. After connecting to the network, tried to configure the Roborock integration for Home Assistant. As the OP said, am getting an error when trying to apply the confirmation code. The HA logs are as follows:

Logger: homeassistant.components.roborock.config_flow
Source: components/roborock/config_flow.py:114
integration: Roborock ([documentation](https://www.home-assistant.io/integrations/roborock), [issues](https://github.com/home-assistant/core/issues?q=is%3Aissue+is%3Aopen+label%3A%22integration%3A+roborock%22))
First occurred: 6:58:05 PM (5 occurrences)
Last logged: 9:00:15 PM

Unexpected exception
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/roborock/config_flow.py", line 114, in async_step_code
    user_data = await self._client.code_login_v4(code)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/roborock/web_api.py", line 348, in code_login_v4
    raise RoborockException(f"{login_response.get('msg')} - response code: {response_code}")
roborock.exceptions.RoborockException: parameter error - response code: 1002

Removed the integration, tried again, same results. Never owned a Roborock before today, this is the first time installing the integration. Integration came from Home Assistant's regular integration repository (not HACS).

pfurrie avatar Dec 10 '25 02:12 pfurrie

Just signed up for Roborock and I receive the same error with a new Roborock account, new Device. Happy to help if needed!

Logger: homeassistant.components.roborock.config_flow Source: components/roborock/config_flow.py:114 integration: Roborock (documentation, issues) First occurred: 9:59:27 PM (1 occurrence) Last logged: 9:59:27 PM Unexpected exception

Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/components/roborock/config_flow.py", line 114, in async_step_code user_data = await self._client.code_login_v4(code) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.13/site-packages/roborock/web_api.py", line 348, in code_login_v4 raise RoborockException(f"{login_response.get('msg')} - response code: {response_code}") roborock.exceptions.RoborockException: parameter error - response code: 1002

F3niXPr0 avatar Dec 10 '25 06:12 F3niXPr0

Just got a brand new S8 MaxV Ultra, same error on a first time setup.

craggyh avatar Dec 10 '25 13:12 craggyh

It's unclear to me whether the current advice is to leave the integration disabled or to attempt to get it going again. The number of issues still being reported suggests we should wait at least for 12.3? Is this correct?

Gazoonky avatar Dec 10 '25 14:12 Gazoonky

The symptoms shown for the error discussed here are because the login API was changed by roborock, and a patch release will contain a fix for it. This applies to you if you have removed the integration and are re-adding it, re-authenticating, or adding it for the first time, and are seeing this error.

This is unrelated to the broader problems with 2025.12 and i've unlocked #158091 and will post a short update there.

allenporter avatar Dec 10 '25 15:12 allenporter

Two days ago I found out, that at roborock expired authentication. I got email with code, entered the code as usual, but ended with this error message: There was an unknown Roborock exception - please check your logs. I waited till today, thought it is an issue at roborock, but now I do not get any new email with code. I would update to the new core, but because I am using the old SMS notification integration, I cannot. Is there a possibility to authenticate somehow manually?

mailyspamy avatar Dec 19 '25 08:12 mailyspamy

Two days ago I found out, that at roborock expired authentication. I got email with code, entered the code as usual, but ended with this error message: There was an unknown Roborock exception - please check your logs. I waited till today, thought it is an issue at roborock, but now I do not get any new email with code. I would update to the new core, but because I am using the old SMS notification integration, I cannot. Is there a possibility to authenticate somehow manually?

Not sure what old SMS notification but I would suggest finding a new notification method and update.

alexownsall avatar Dec 19 '25 12:12 alexownsall