Device model (eg. T0xAC) / 设备型号(例如:T0xAC)
T0xB8
Component version / 插件版本
No response
HA core version / HA版本
2026.7.2
The problem / 问题详情
Description
The zone_index work mode (CLEAN_MODE_CODE = 0x0a) is available in the device mapping and the lua protocol supports a zone_id parameter (byte 20 of the control message). However, when selecting zone_index with any zone_id value, the vacuum starts cleaning but does not navigate to a specific room — it appears to clean the whole house or do nothing specific.
What I tried
- Set
work_mode: zone_index with zone_id values: "01" through "07", "1" through "7", letters "A" through "H" (room labels in the MSmartHome app)
- Added
zone_id to centralized in T0xB8.py to ensure it is always included in the control payload
- Tested
work_mode: area (0x09) with the same zone_id values — same result
Debug logs
The lua runtime correctly receives and encodes the zone_id:
LuaRuntime json_str: {"control": {"work_mode": "zone_index", "zone_id": "01", "work_status": "work"}, ...}
LuaRuntime Result: aa1bb80000000000000222020002000a0200010001000000000000f7
Decoded response: {'zone_id': '1', 'work_mode': 'zone_index', 'work_status': 'work'}
The device acknowledges work_status: work but does not go to any specific room.
Question
What are the correct zone_id values for rooms defined in the MSmartHome app map? Are they simple integers (1-7), or does the device use internal IDs that need to be queried first?
The lua file includes a zone query (query_type: zone, msg[10] = 0x35, msg[11] = 0x03) but this is not implemented in the integration. Would it be possible to:
- Implement the
zone query to retrieve room IDs from the device
- Expose them as selectable segments in the vacuum entity
Map info
The MSmartHome app shows 7 rooms (A, B, C, D, F, G, H) on the saved map. Room cleaning works correctly from the app.
Entity attributes / 实体属性
device_id: 31885837517970
sn: 0000B8321510VR0W012204106223D80X
sn8: 510VR0W0
model: 510VR0W0
device_type: T0xB8
SN8: 510VR0W0
area: 0
battery_percent: 91
carpet_switch: no
connected: true
control_type: auto
end_time: 08:00
error_desc: no
error_type: no
fan_level: normal
filt_brNet_life_time: 150
filt_brNet_rest_time: 150
have_reserve_task: 1
mop: no
move_direction: none
query_type: disturb
roll_brush_life_time: 200
roll_brush_rest_time: 200
set_status: on
side_brush_life_time: 100
side_brush_rest_time: 100
speak_level: none
speed: low
start_time: 22:00
status_summary_command_source: no
status_summary_device_error: no
status_summary_uv_switch: yes
status_summary_voice_switch: no
status_summary_wifi_switch: no
subtype: 13
user_high_board_communication_error: no
user_high_laser_sensor_error: no
user_high_laser_sensor_shelter: no
version: 2
voice_level: 75
water_level: low
work_mode: area
work_status: sleep
work_time: 0
zone_id: B
device_class: connectivity
icon: mdi:devices
friendly_name: Aspiradora Device Status
Home Assistant Logs / 系统日志
No response
Device LUA file / 设备对应LUA文件
T_0000_B8_510VR0W0_2023050601.lua
Device Plugin file / 设备对应Plugin文件
No response
Official APP Screenshot of Device / 设备在官方APP的控制截图
No response
Device model (eg. T0xAC) / 设备型号(例如:T0xAC)
T0xB8
Component version / 插件版本
No response
HA core version / HA版本
2026.7.2
The problem / 问题详情
Description
The
zone_indexwork mode (CLEAN_MODE_CODE = 0x0a) is available in the device mapping and the lua protocol supports azone_idparameter (byte 20 of the control message). However, when selectingzone_indexwith anyzone_idvalue, the vacuum starts cleaning but does not navigate to a specific room — it appears to clean the whole house or do nothing specific.What I tried
work_mode: zone_indexwithzone_idvalues:"01"through"07","1"through"7", letters"A"through"H"(room labels in the MSmartHome app)zone_idtocentralizedinT0xB8.pyto ensure it is always included in the control payloadwork_mode: area(0x09) with the same zone_id values — same resultDebug logs
The lua runtime correctly receives and encodes the zone_id:
LuaRuntime json_str: {"control": {"work_mode": "zone_index", "zone_id": "01", "work_status": "work"}, ...}
LuaRuntime Result: aa1bb80000000000000222020002000a0200010001000000000000f7
Decoded response: {'zone_id': '1', 'work_mode': 'zone_index', 'work_status': 'work'}
The device acknowledges
work_status: workbut does not go to any specific room.Question
What are the correct
zone_idvalues for rooms defined in the MSmartHome app map? Are they simple integers (1-7), or does the device use internal IDs that need to be queried first?The lua file includes a zone query (
query_type: zone,msg[10] = 0x35,msg[11] = 0x03) but this is not implemented in the integration. Would it be possible to:zonequery to retrieve room IDs from the deviceMap info
The MSmartHome app shows 7 rooms (A, B, C, D, F, G, H) on the saved map. Room cleaning works correctly from the app.
Entity attributes / 实体属性
Home Assistant Logs / 系统日志
No response
Device LUA file / 设备对应LUA文件
T_0000_B8_510VR0W0_2023050601.lua
Device Plugin file / 设备对应Plugin文件
No response
Official APP Screenshot of Device / 设备在官方APP的控制截图
No response