Skip to content

[Bug] Edge Mopping won't stay enabled? #48

Description

@ptruman

What's wrong?

Have noticed that "Edge Mopping" does not stay selected after being selected and saving room settings.

Clicking "Deep" on the room "built in" sets it highlighted, but then saving and coming back to the room settings, it's off again.

This may just be a UI thing but it's not showing with the other room settings on the room list?

Also - separately, I can see the water level reported via Dev Settings, but it's not in the diags?

Steps to reproduce

Go to Rooms tab
Go to a Room Settings (cog)
Check Vacuum AND Mop (or just Mop) are selected
Enable Edge Mopping
Click Save
Re-enter the same room settings (cog)
Note that Edge Mopping is showing disabled.

Vacuum brand

Eufy

Vacuum model

X10 Pro Omni

Diagnostics download

{
"home_assistant": {
"arch": "x86_64",
"dev": false,
"docker": true,
"hassio": true,
"installation_type": "Home Assistant OS",
"os_name": "Linux",
"os_version": "6.18.39-haos",
"python_version": "3.14.6",
"timezone": "Europe/London",
"version": "2026.7.4",
"virtualenv": false,
"container_arch": "amd64",
"supervisor": "2026.07.5",
"host_os": "Home Assistant OS 18.2",
"docker_version": "29.6.2",
"chassis": "vm",
"run_as_root": true
},
"custom_components": {
"jlrincontrol": {
"documentation": "https://github.com/msp1974/homeassistant-jlrincontrol/blob/master/README.Md",
"version": "3.0.0",
"requirements": [
"jlrpy==1.7.0"
]
},
"nodered": {
"documentation": "https://zachowj.github.io/node-red-contrib-home-assistant-websocket/guide/custom_integration/",
"version": "4.2.3",
"requirements": []
},
"pi_hole_v6": {
"documentation": "https://github.com/bastgau/ha-pi-hole-v6",
"version": "v1.19.0",
"requirements": []
},
"localtuya": {
"documentation": "https://github.com/rospogrigio/localtuya/",
"version": "5.2.3",
"requirements": []
},
"webrtc": {
"documentation": "https://github.com/AlexxIT/WebRTC",
"version": "v3.6.1",
"requirements": []
},
"eufy_security": {
"documentation": "https://github.com/fuatakgun/eufy_security",
"version": "8.2.4",
"requirements": [
"websocket-client==1.8.0",
"aiortsp==1.4.0"
]
},
"hacs": {
"documentation": "https://hacs.xyz/docs/use/",
"version": "2.0.5",
"requirements": [
"aiogithubapi>=22.10.1"
]
},
"smartcar": {
"documentation": "https://github.com/wbyoung/smartcar",
"version": "v0.4.6",
"requirements": []
},
"frigate": {
"documentation": "https://github.com/blakeblackshear/frigate",
"version": "5.15.4",
"requirements": [
"hass-web-proxy-lib==0.0.8",
"titlecase==2.4.1"
]
},
"config_editor": {
"documentation": "https://github.com/junkfix/config-editor-card",
"version": "5.0.0",
"requirements": []
},
"climate_template": {
"documentation": "https://github.com/jcwillox/hass-template-climate",
"version": "1.4.0",
"requirements": []
},
"fujitsu_airstage": {
"documentation": "https://github.com/danielkaldheim/ha_airstage",
"version": "1.7.3",
"requirements": [
"pyairstage>=3.1.2,<4"
]
},
"homewhiz": {
"documentation": "https://github.com/home-assistant-HomeWhiz/home-assistant-HomeWhiz",
"version": "v0.5.24",
"requirements": [
"awsiotsdk",
"bleak",
"bleak_retry_connector",
"dacite",
"aiohttp",
"bidict"
]
},
"robovac_mqtt": {
"documentation": "https://github.com/jeppesens/eufy-clean",
"version": "1.13.1",
"requirements": [
"Pillow>=10.0.0",
"tinytuya>=1.18.0,<2.0.0"
]
},
"mbapi2020": {
"documentation": "https://github.com/ReneNulschDE/mbapi2020",
"version": "v0.38.2",
"requirements": [
"protobuf>=3.19.5"
]
},
"eufy_vacuum": {
"documentation": "https://github.com/kingchddg901/Vacuum_Agent",
"version": "1.11.0",
"requirements": []
},
"lghorizon": {
"documentation": "https://github.com/Sholofly/lghorizon",
"version": "0.11.6",
"requirements": [
"lghorizon>=0.12.2"
]
},
"proxmox_sensors": {
"documentation": "https://github.com/Javisen/proxmox_sensors",
"version": "4.0.3",
"requirements": [
"aiohttp>=3.9.0",
"proxmoxer>=2.0.0"
]
}
},
"integration_manifest": {
"domain": "eufy_vacuum",
"name": "Vacuum Agent",
"after_dependencies": [
"frontend",
"http",
"panel_custom",
"recorder"
],
"codeowners": [
"kingchddg901"
],
"config_flow": true,
"documentation": "https://github.com/kingchddg901/Vacuum_Agent",
"integration_type": "service",
"iot_class": "local_push",
"issue_tracker": "https://github.com/kingchddg901/Vacuum_Agent/issues",
"requirements": [],
"version": "1.11.0",
"is_built_in": false,
"overwrites_built_in": false
},
"setup_times": {
"null": {
"setup": 0.12519281499999124
},
"01KX5P8H3K11RD2AVF0KKHKYK9": {
"wait_import_platforms": -4.359217393999984,
"config_entry_setup": 5.1339678479999975
}
},
"data": {
"entry": {
"title": "Vacuum Agent",
"version": 1,
"data": {
"notes": "REDACTED",
"tested_model": "Eufy X10 Pro Omni",
"vacuum_entity_id": "vacuum.robovac_x10_pro_omni"
},
"options": {}
},
"integration_version": "1.11.0",
"vacuums": [
{
"vacuum_entity_id": "vacuum.robovac_x10_pro_omni",
"self_check": {
"transport": "attribute-mode (reduced / scalar-Tuya) \u2014 no active_map sensor; the room list is read from the vacuum's segments attribute",
"room_control": "available (via segments attribute \u2014 5 rooms)",
"rooms_importable": "yes",
"map_image": "unavailable \u2014 the reduced transport has no map sensor; the live-map backdrop needs the smcneece eufy-clean fork",
"model_detection": "T2351 \u2192 generic",
"note": "No active_map sensor \u2014 your robot is on Eufy's reduced (scalar/Tuya) transport. Room cleaning works (rooms come from the vacuum's segments attribute); the map picture won't render without the eufy-clean fork.",
"warnings": []
},
"entity_resolution": {
"active_cleaning_target": {
"entity_id": null,
"exists": false,
"state": null
},
"active_map": {
"entity_id": null,
"exists": false,
"state": null
},
"cleaning_area": {
"entity_id": null,
"exists": false,
"state": null
},
"cleaning_time": {
"entity_id": null,
"exists": false,
"state": null
},
"dock_status": {
"entity_id": null,
"exists": false,
"state": null
},
"robot_position_x": {
"entity_id": null,
"exists": false,
"state": null
},
"robot_position_y": {
"entity_id": null,
"exists": false,
"state": null
},
"task_status": {
"entity_id": null,
"exists": false,
"state": null
},
"water_level": {
"entity_id": null,
"exists": false,
"state": null
},
"work_mode": {
"entity_id": null,
"exists": false,
"state": null
}
},
"capabilities": {
"vacuum_entity_id": "vacuum.robovac_x10_pro_omni",
"detected_model": "T2351",
"model_family": "generic",
"supported_features": 0,
"supports_room_clean": true,
"supports_custom_room_config": true,
"supports_rooms": false,
"supports_segments": false,
"supports_active_map": false,
"active_map_available": false,
"supports_active_cleaning_target": false,
"active_cleaning_target_available": false,
"supports_task_status": false,
"task_status_available": false,
"supports_work_mode": false,
"work_mode_available": false,
"supports_dock_status": false,
"dock_status_available": false,
"supports_cleaning_stats": false,
"cleaning_stats_available": false,
"supports_station_water": false,
"station_water_available": false,
"supports_robot_position": false,
"robot_position_available": false,
"robot_position_status": "inactive",
"robot_position_message": "Robot position entities not found.",
"supports_mop_features": false,
"supports_mop_wash": false,
"supports_mop_dry": false,
"supports_empty_dust": false,
"supports_path_control": false,
"supports_water_control": false,
"supports_edge_mopping": true,
"supports_passes": true,
"sources": {
"rooms_count": 0,
"segments_count": 0,
"dock_status_value": null,
"task_status_value": null
},
"maintenance_sources": {
"filter": null,
"sensor": null,
"side_brush": null,
"rolling_brush": null,
"mopping_cloth": null,
"cleaning_tray": null,
"swivel_wheel": null
}
},
"adapter": {
"brand": "Eufy"
},
"completion_health": {
"requires_job_active_clear": false,
"job_active_entity": null,
"job_active_present": false
},
"dock_controls": {
"wash_mop": {
"entity_id": null,
"exists": false
},
"dry_mop": {
"entity_id": null,
"exists": false
},
"stop_dry_mop": {
"entity_id": null,
"exists": false
},
"empty_dust": {
"entity_id": null,
"exists": false
}
},
"vacuum_state": {
"exists": true,
"state": "docked",
"attribute_keys": [
"active_room_ids",
"active_zone_count",
"cleaning_area",
"cleaning_time",
"error_code",
"error_message",
"fan_speed",
"fan_speed_list",
"friendly_name",
"rooms",
"segments",
"status_code",
"supported_features",
"task_status",
"trigger_source",
"work_mode"
],
"segment_count": 5,
"segments": [
{
"id": 1,
"name": "Utility"
},
{
"id": 2,
"name": "Kitchen"
},
{
"id": 3,
"name": "Living Room"
},
{
"id": 4,
"name": "Room 4"
},
{
"id": 5,
"name": "Hallway"
}
]
},
"active_map_id": null,
"maps": {
"vacuum_entity_id": "vacuum.robovac_x10_pro_omni",
"map_count": 2,
"maps": [
{
"map_id": "1",
"room_count": 0,
"enabled_room_count": 0,
"disabled_room_count": 0,
"last_discovery": {}
},
{
"map_id": "main",
"room_count": 4,
"enabled_room_count": 0,
"disabled_room_count": 4,
"last_discovery": {}
}
]
},
"managed_rooms_by_map": {
"1": {
"vacuum_entity_id": "vacuum.robovac_x10_pro_omni",
"map_id": "1",
"room_count": 0,
"rooms": {},
"metadata": {}
},
"main": {
"vacuum_entity_id": "vacuum.robovac_x10_pro_omni",
"map_id": "main",
"room_count": 4,
"rooms": {
"1": {
"room_id": 1,
"map_id": "main",
"name": "Utility",
"slug": "utility",
"enabled": false,
"order": 4,
"profile_name": "custom",
"floor_type": "laminate",
"clean_mode": "Vacuum and mop",
"fan_speed": "Max",
"water_level": "Medium",
"clean_intensity": "Deep",
"clean_passes": 2,
"edge_mopping": true,
"path_type": "None",
"is_dock_room": false,
"grants_access_to": [],
"rules": [],
"is_configured": true,
"configured_at": "2026-07-10T09:38:25Z",
"color": null,
"is_transition": false
},
"2": {
"room_id": 2,
"map_id": "main",
"name": "Kitchen",
"slug": "kitchen",
"enabled": false,
"order": 3,
"profile_name": "custom",
"floor_type": "tile",
"clean_mode": "Vacuum and mop",
"fan_speed": "Max",
"water_level": "High",
"clean_intensity": "Deep",
"clean_passes": 2,
"edge_mopping": true,
"path_type": "None",
"is_dock_room": false,
"grants_access_to": [
1
],
"rules": [],
"is_configured": true,
"configured_at": "2026-07-10T09:38:25Z",
"color": null,
"is_transition": false
},
"3": {
"room_id": 3,
"map_id": "main",
"name": "Living Room",
"slug": "living_room",
"enabled": false,
"order": 1,
"profile_name": "vacuum_deep",
"floor_type": "carpet_low_pile",
"clean_mode": "Vacuum",
"fan_speed": "Max",
"water_level": "Off",
"clean_intensity": "Deep",
"clean_passes": 2,
"edge_mopping": false,
"path_type": "None",
"is_dock_room": true,
"grants_access_to": [
5
],
"rules": [],
"is_configured": true,
"configured_at": "2026-07-10T09:38:25Z",
"color": null,
"is_transition": false
},
"5": {
"room_id": 5,
"map_id": "main",
"name": "Hallway",
"slug": "hallway",
"enabled": false,
"order": 2,
"profile_name": "custom",
"floor_type": "hardwood",
"clean_mode": "Vacuum and mop",
"fan_speed": "Max",
"water_level": "High",
"clean_intensity": "Deep",
"clean_passes": 2,
"edge_mopping": true,
"path_type": "None",
"is_dock_room": false,
"grants_access_to": [
2
],
"rules": [],
"is_configured": true,
"configured_at": "2026-07-10T09:38:25Z",
"color": null,
"is_transition": false
}
},
"metadata": {}
}
},
"upkeep_snapshot": {
"vacuum_entity_id": "vacuum.robovac_x10_pro_omni",
"dock_status": null,
"dock_status_label": null,
"dock_status_entity": null,
"station_water": null,
"station_water_label": null,
"station_water_entity": null,
"dock_events": {
"last_mop_wash": null,
"last_dust_empty": null,
"last_dry_start": null,
"last_dry_duration": null,
"mop_wash_count": 0,
"dust_empty_count": 0,
"dry_start_count": 0
},
"model_meta": {
"code": "T2351",
"name": "Robovac X10 Pro Omni",
"source": "device_registry",
"guide_family": "x10_pro_omni",
"guide_family_name": "X10 Pro Omni",
"guide_available": true,
"supported_guide_components": [
"cleaning_tray",
"filter",
"mopping_cloth",
"rolling_brush",
"sensor",
"side_brush",
"swivel_wheel"
]
},
"device_totals": null,
"dock_firmware": null,
"replacement_items": [
{
"component": "filter",
"label": "Filter",
"component_label": "Filter",
"kind": "replacement",
"kind_label": "Replacement",
"source": "upstream",
"entity_id": null,
"remaining_value": null,
"remaining_unit": null,
"remaining_hours": null,
"usage_hours": null,
"total_life_hours": null,
"max_life_hours": null,
"remaining_percent": null,
"status": "unknown",
"status_label": "Unknown",
"available": false,
"can_reset": false,
"reset_kind": null,
"reset_kind_label": null,
"reset_service": null,
"reset_service_data": null,
"remaining_summary": null,
"usage_summary": null
},
{
"component": "sensor",
"label": "Sensor",
"component_label": "Sensor",
"kind": "replacement",
"kind_label": "Replacement",
"source": "upstream",
"entity_id": null,
"remaining_value": null,
"remaining_unit": null,
"remaining_hours": null,
"usage_hours": null,
"total_life_hours": null,
"max_life_hours": null,
"remaining_percent": null,
"status": "unknown",
"status_label": "Unknown",
"available": false,
"can_reset": false,
"reset_kind": null,
"reset_kind_label": null,
"reset_service": null,
"reset_service_data": null,
"remaining_summary": null,
"usage_summary": null
},
{
"component": "side_brush",
"label": "Side Brush",
"component_label": "Side Brush",
"kind": "replacement",
"kind_label": "Replacement",
"source": "upstream",
"entity_id": null,
"remaining_value": null,
"remaining_unit": null,
"remaining_hours": null,
"usage_hours": null,
"total_life_hours": null,
"max_life_hours": null,
"remaining_percent": null,
"status": "unknown",
"status_label": "Unknown",
"available": false,
"can_reset": false,
"reset_kind": null,
"reset_kind_label": null,
"reset_service": null,
"reset_service_data": null,
"remaining_summary": null,
"usage_summary": null
},
{
"component": "rolling_brush",
"label": "Rolling Brush",
"component_label": "Rolling Brush",
"kind": "replacement",
"kind_label": "Replacement",
"source": "upstream",
"entity_id": null,
"remaining_value": null,
"remaining_unit": null,
"remaining_hours": null,
"usage_hours": null,
"total_life_hours": null,
"max_life_hours": null,
"remaining_percent": null,
"status": "unknown",
"status_label": "Unknown",
"available": false,
"can_reset": false,
"reset_kind": null,
"reset_kind_label": null,
"reset_service": null,
"reset_service_data": null,
"remaining_summary": null,
"usage_summary": null
},
{
"component": "mopping_cloth",
"label": "Mopping Cloth",
"component_label": "Mopping Cloth",
"kind": "replacement",
"kind_label": "Replacement",
"source": "upstream",
"entity_id": null,
"remaining_value": null,
"remaining_unit": null,
"remaining_hours": null,
"usage_hours": null,
"total_life_hours": null,
"max_life_hours": null,
"remaining_percent": null,
"status": "unknown",
"status_label": "Unknown",
"available": false,
"can_reset": false,
"reset_kind": null,
"reset_kind_label": null,
"reset_service": null,
"reset_service_data": null,
"remaining_summary": null,
"usage_summary": null
},
{
"component": "swivel_wheel",
"label": "Swivel Wheel",
"component_label": "Swivel Wheel",
"kind": "replacement",
"kind_label": "Replacement",
"source": "upstream",
"entity_id": null,
"remaining_value": null,
"remaining_unit": null,
"remaining_hours": null,
"usage_hours": null,
"total_life_hours": null,
"max_life_hours": null,
"remaining_percent": null,
"status": "unknown",
"status_label": "Unknown",
"available": false,
"can_reset": false,
"reset_kind": null,
"reset_kind_label": null,
"reset_service": null,
"reset_service_data": null,
"remaining_summary": null,
"usage_summary": null
}
],
"maintenance_items": [
{
"component": "filter",
"label": "Filter",
"component_label": "Filter",
"kind": "maintenance",
"kind_label": "Maintenance",
"source": "integration",
"entity_id": null,
"remaining_hours": 20.0,
"used_since_reset_hours": 0.0,
"interval_hours": 20.0,
"default_interval_hours": 20.0,
"max_interval_hours": 120.0,
"current_usage_hours": 0.0,
"reset_at": null,
"remaining_percent": 100.0,
"status": "good",
"status_label": "Good",
"available": false,
"can_reset": true,
"reset_kind": "integration",
"reset_kind_label": "Integration",
"reset_service": "eufy_vacuum.reset_maintenance",
"reset_service_data": {
"vacuum_entity_id": "vacuum.robovac_x10_pro_omni",
"component": "filter"
},
"remaining_summary": "100% remaining",
"usage_summary": "0 hours used since reset"
},
{
"component": "sensor",
"label": "Sensor",
"component_label": "Sensor",
"kind": "maintenance",
"kind_label": "Maintenance",
"source": "integration",
"entity_id": null,
"remaining_hours": 60.0,
"used_since_reset_hours": 0.0,
"interval_hours": 60.0,
"default_interval_hours": 60.0,
"max_interval_hours": 720.0,
"current_usage_hours": 0.0,
"reset_at": null,
"remaining_percent": 100.0,
"status": "good",
"status_label": "Good",
"available": false,
"can_reset": true,
"reset_kind": "integration",
"reset_kind_label": "Integration",
"reset_service": "eufy_vacuum.reset_maintenance",
"reset_service_data": {
"vacuum_entity_id": "vacuum.robovac_x10_pro_omni",
"component": "sensor"
},
"remaining_summary": "100% remaining",
"usage_summary": "0 hours used since reset"
},
{
"component": "side_brush",
"label": "Side Brush",
"component_label": "Side Brush",
"kind": "maintenance",
"kind_label": "Maintenance",
"source": "integration",
"entity_id": null,
"remaining_hours": 30.0,
"used_since_reset_hours": 0.0,
"interval_hours": 30.0,
"default_interval_hours": 30.0,
"max_interval_hours": 360.0,
"current_usage_hours": 0.0,
"reset_at": null,
"remaining_percent": 100.0,
"status": "good",
"status_label": "Good",
"available": false,
"can_reset": true,
"reset_kind": "integration",
"reset_kind_label": "Integration",
"reset_service": "eufy_vacuum.reset_maintenance",
"reset_service_data": {
"vacuum_entity_id": "vacuum.robovac_x10_pro_omni",
"component": "side_brush"
},
"remaining_summary": "100% remaining",
"usage_summary": "0 hours used since reset"
},
{
"component": "rolling_brush",
"label": "Rolling Brush",
"component_label": "Rolling Brush",
"kind": "maintenance",
"kind_label": "Maintenance",
"source": "integration",
"entity_id": null,
"remaining_hours": 30.0,
"used_since_reset_hours": 0.0,
"interval_hours": 30.0,
"default_interval_hours": 30.0,
"max_interval_hours": 360.0,
"current_usage_hours": 0.0,
"reset_at": null,
"remaining_percent": 100.0,
"status": "good",
"status_label": "Good",
"available": false,
"can_reset": true,
"reset_kind": "integration",
"reset_kind_label": "Integration",
"reset_service": "eufy_vacuum.reset_maintenance",
"reset_service_data": {
"vacuum_entity_id": "vacuum.robovac_x10_pro_omni",
"component": "rolling_brush"
},
"remaining_summary": "100% remaining",
"usage_summary": "0 hours used since reset"
},
{
"component": "mopping_cloth",
"label": "Mopping Cloth",
"component_label": "Mopping Cloth",
"kind": "maintenance",
"kind_label": "Maintenance",
"source": "integration",
"entity_id": null,
"remaining_hours": 20.0,
"used_since_reset_hours": 0.0,
"interval_hours": 20.0,
"default_interval_hours": 20.0,
"max_interval_hours": 120.0,
"current_usage_hours": 0.0,
"reset_at": null,
"remaining_percent": 100.0,
"status": "good",
"status_label": "Good",
"available": false,
"can_reset": true,
"reset_kind": "integration",
"reset_kind_label": "Integration",
"reset_service": "eufy_vacuum.reset_maintenance",
"reset_service_data": {
"vacuum_entity_id": "vacuum.robovac_x10_pro_omni",
"component": "mopping_cloth"
},
"remaining_summary": "100% remaining",
"usage_summary": "0 hours used since reset"
},
{
"component": "cleaning_tray",
"label": "Cleaning Tray",
"component_label": "Cleaning Tray",
"kind": "maintenance",
"kind_label": "Maintenance",
"source": "integration",
"entity_id": null,
"remaining_hours": 30.0,
"used_since_reset_hours": 0.0,
"interval_hours": 30.0,
"default_interval_hours": 30.0,
"max_interval_hours": 90.0,
"current_usage_hours": 0.0,
"reset_at": null,
"remaining_percent": 100.0,
"status": "good",
"status_label": "Good",
"available": false,
"can_reset": true,
"reset_kind": "integration",
"reset_kind_label": "Integration",
"reset_service": "eufy_vacuum.reset_maintenance",
"reset_service_data": {
"vacuum_entity_id": "vacuum.robovac_x10_pro_omni",
"component": "cleaning_tray"
},
"remaining_summary": "100% remaining",
"usage_summary": "0 hours used since reset"
},
{
"component": "swivel_wheel",
"label": "Swivel Wheel",
"component_label": "Swivel Wheel",
"kind": "maintenance",
"kind_label": "Maintenance",
"source": "integration",
"entity_id": null,
"remaining_hours": 60.0,
"used_since_reset_hours": 0.0,
"interval_hours": 60.0,
"default_interval_hours": 60.0,
"max_interval_hours": 360.0,
"current_usage_hours": 0.0,
"reset_at": null,
"remaining_percent": 100.0,
"status": "good",
"status_label": "Good",
"available": false,
"can_reset": true,
"reset_kind": "integration",
"reset_kind_label": "Integration",
"reset_service": "eufy_vacuum.reset_maintenance",
"reset_service_data": {
"vacuum_entity_id": "vacuum.robovac_x10_pro_omni",
"component": "swivel_wheel"
},
"remaining_summary": "100% remaining",
"usage_summary": "0 hours used since reset"
}
],
"attention_count": 0,
"highest_priority_status": "good",
"highest_priority_status_label": "Good",
"attention_summary": "No upkeep items need attention.",
"updated_at": "2026-08-04T15:51:08Z"
}
}
]
},
"issues": []
}

Relevant logs (optional)


Before submitting

  • I'm on the latest version of Vacuum Agent.
  • I searched existing issues and didn't find a duplicate.
  • I attached a diagnostics download (or explained why I can't).

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions