Awesome Open Source
Awesome Open Source

Xiaomi Robot Vacuum Protocol

Attempt to describe the Xiaomi Robot Vacuum Protocol.

These commands are send using the Xiaomi mi-home protocol. (For decoding of the vacuum map see RR Map File)

Applications implementing this protocol:

Supported vacuum devices:

Abb. Names / aliases
c1 Mi Xiaowa Vacuum c1
m1s Mi Robot Vacuum 1S
v1 Mi Robot Vacuum
s5 Mi Robot Vacuum v2 / Roborock Vacuum S5 / Roborock Vacuum S50
s6 Roborock Vacuum S6
s5e Roborock Vacuum S5 Max

Vacuum Commands

⚠️ Depending on the model and firmware version, not all commands might be available. The last columns show for which models the commands are available (assumed the latest firmware is installed). If there is no entry, the command is available for each device.

Type Command Documentation Only available for
START_VACUUM app_start Basic Operations
STOP_VACUUM app_stop Basic Operations
START_SPOT app_spot Basic Operations
PAUSE app_pause Basic Operations
CHARGE app_charge Basic Operations
ZONED_CLEAN_START app_zoned_clean Zone Cleaning v1, s5, s6, s5e
ZONED_CLEAN_STOP stop_zoned_clean Zone Cleaning s5e
ZONED_CLEAN_RESUME resume_zoned_clean Zone Cleaning s5e
SEGMENT_CLEAN_START app_segment_clean Segment Cleaning s5e
SEGMENT_CLEAN_STOP stop_segment_clean Segment Cleaning s5e
SEGMENT_CLEAN_RESUME resume_segment_clean Segment Cleaning s5e
ROOM_MAPPING_GET get_room_mapping Room Mapping s5e
GOTO_TARGET app_goto_target Goto Target v1, s5, s6, s5e
WAKEUP_ROBOT app_wakeup_robot - s5e
GET_LOCALE app_get_locale Locale Information s5e
GET_INIT_STATUS app_get_init_status Initial Status s5e
GET_STATUS get_status Status Message
GET_FW_FEATURES get_fw_features Firmware Features s5e
GET_SERIAL_NUMBER get_serial_number Serial Number
SET_LAB_STATUS set_lab_status Lab Status s5, s6, s5e
REMOTE_START app_rc_start Remote Control
REMOTE_END app_rc_end Remote Control
REMOTE_MOVE app_rc_move Remote Control
FIND_ME find_me Find Robot
CONSUMABLES_GET get_consumable Consumable
CONSUMABLES_RESET reset_consumable Consumable
CLEAN_SUMMARY_GET get_clean_summary Clean Summary
CLEAN_RECORD_GET get_clean_record Clean Summary
CLEAN_RECORD_DEL del_clean_record - s5e
CLEAN_RECORD_MAP_GET get_clean_record_map -
MAP_V1_GET get_map_v1 Map V1
MAP_V1_FRESH_GET get_fresh_map_v1 - s5e
MAP_V1_PERSIST_GET get_persist_map_v1 - s5e
MAP_RECOVER recover_map - s5e
MAP_RESET reset_map - s5e
MAP_SAVE save_map Map s5, s6, s5e
MAP_EDIT_START start_edit_map - s5e
MAP_EDIT_END end_edit_map - s5e
MAP_USE_NEW use_new_map - s5e
MAP_USE_OLD use_old_map - s5e
MAP_STATUS_GET get_map_status - s5e
MAP_RECOVER_GET get_recover_map - s5e
MAPS_RECOVER_GET get_recover_maps - s5e
DND_GET get_dnd_timer Do Not Disturb
DND_SET set_dnd_timer Do Not Disturb
DND_CLOSE close_dnd_timer Do Not Disturb
TIMER_GET get_timer Cleaning Timer
TIMER_SET set_timer Cleaning Timer
TIMER_UPDATE upd_timer Cleaning Timer
TIMER_DEL del_timer Cleaning Timer
TIMER_SERVER_GET get_server_timer Cleaning Timer s5e
TIMER_SERVER_SET set_server_timer Cleaning Timer s5e
TIMER_SERVER_UPDATE upd_server_timer Cleaning Timer s5e
TIMER_SERVER_DEL del_server_timer Cleaning Timer s5e
TIMEZONE_GET get_timezone Timezone
TIMEZONE_SET set_timezone Timezone
SOUND_INSTALL dnld_install_sound Voice Pack Installation
SOUND_PROGRESS_GET get_sound_progress Voice Pack Installation s5e
SOUND_CURRENT_GET get_current_sound Current Sound
SOUND_VOLUME_GET get_sound_volume Sound Volume
SOUND_VOLUME_CHANGE change_sound_volume Sound Volume s5e
SOUND_VOLUME_TEST test_sound_volume Sound Volume s5e
LOG_UPLOAD_GET get_log_upload_status Log Upload
LOG_UPLOAD_ENABLE enable_log_upload -
LOG_UPLOAD_USER user_upload_log - s5e
CUSTOM_MODE_GET get_custom_mode Custom Mode
CUSTOM_MODE_SET set_custom_mode Custom Mode
CUSTOM_MODE_WATERBOX_GET get_water_box_custom_mode Water Box Custom Mode s5e
CUSTOM_MODE_WATERBOX_SET set_water_box_custom_mode Water Box Custom Mode s5e
CARPET_MODE_GET get_carpet_mode - s5e
CARPET_MODE_SET set_carpet_mode - s5e
SEGMENT_STATUS_GET get_segment_status - s5e
SEGMENT_NAME name_segment - s5e
SEGMENT_MERGE merge_segment - s5e
SEGMENT_SPLIT split_segment - s5e

Generic MiIO Commands

ℹ️ These commands appear to be shared amongs all(?) Xiaomi Mi Io devices.

Type Command Documentation
ROUTER miIO.config_router -
OTA miIO.ota Update Firmware Over Air
OTA_PROG miIO.get_ota_progress -
OTA_STATE miIO.get_ota_state -
WIFI_STATE miIO.wifi_assoc_state Wifi Status

❗️ Suggestions & improvements very welcome!

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
java (29,537
protocol (173
xiaomi (66

Find Open Source By Browsing 7,000 Topics Across 59 Categories