humbertogontijo / homeassistant-roborock

Roborock integration for Home Assistant. This integration uses your devices from the Roborock App
GNU General Public License v3.0
650 stars 65 forks source link

Missing water shortage info #114

Open yolani opened 1 year ago

yolani commented 1 year ago

Decided to open anew issue for this: My S6 vMAX is lacking the information about water shortage, it's. unavailable. Here are some debug logs:

2023-01-05 10:55:18.733 DEBUG (MainThread) [custom_components.roborock.api.api] id=1 Requesting method get_status with None 2023-01-05 10:55:18.812 DEBUG (MainThread) [custom_components.roborock.api.api] id=2 Requesting method get_dnd_timer with None 2023-01-05 10:55:18.851 DEBUG (MainThread) [custom_components.roborock.api.api] id=3 Requesting method get_clean_summary with None 2023-01-05 10:55:19.025 DEBUG (MainThread) [custom_components.roborock.api.api] id=4 Requesting method get_consumable with None 2023-01-05 10:55:19.705 DEBUG (MainThread) [custom_components.roborock.api.api] id=3 Response from get_clean_summary: 1184293 2023-01-05 10:55:19.706 DEBUG (MainThread) [custom_components.roborock.api.api] id=2 Response from get_dnd_timer: {'start_hour': 22, 'start_minute': 0, 'end_hour': 8, 'end_minute': 0, 'enabled': 1} 2023-01-05 10:55:19.706 DEBUG (MainThread) [custom_components.roborock.api.api] id=1 Response from get_status: {'msg_ver': 2, 'msg_seq': 914, 'state': 8, 'battery': 100, 'clean_time': 31, 'clean_area': 0, 'error_code': 0, 'map_present': 1, 'in_cleaning': 0, 'in_returning': 0, 'in_fresh_state': 1, 'lab_status': 3, 'water_box_status': 1, 'fan_power': 106, 'dnd_enabled': 0, 'map_status': 3, 'is_locating': 0, 'lock_status': 0, 'water_box_mode': 204, 'distance_off': 0, 'water_box_carriage_status': 1, 'mop_forbidden_enable': 1, 'camera_status': 3495, 'is_exploring': 0, 'home_sec_status': 0, 'home_sec_enable_password': 1, 'adbumper_status': [0, 0, 0]} 2023-01-05 10:55:19.747 DEBUG (MainThread) [custom_components.roborock.api.api] id=4 Response from get_consumable: {'main_brush_work_time': 286933, 'side_brush_work_time': 286933, 'filter_work_time': 286933, 'filter_element_work_time': 1142089, 'sensor_dirty_time': 3097} 2023-01-05 10:55:19.857 DEBUG (MainThread) [custom_components.roborock] Finished fetching roborock data in 1.788 seconds (success: True) 2023-01-05 10:55:19.939 DEBUG (MainThread) [custom_components.roborock.sensor] It seems the roborock.vacuum.a10 does not support the CleanRecordField.BEGIN as the initial value is None 2023-01-05 10:55:19.939 DEBUG (MainThread) [custom_components.roborock.sensor] It seems the roborock.vacuum.a10 does not support the CleanRecordField.END as the initial value is None 2023-01-05 10:55:19.939 DEBUG (MainThread) [custom_components.roborock.sensor] It seems the roborock.vacuum.a10 does not support the CleanRecordField.DURATION as the initial value is None 2023-01-05 10:55:19.939 DEBUG (MainThread) [custom_components.roborock.sensor] It seems the roborock.vacuum.a10 does not support the CleanRecordField.AREA as the initial value is None 2023-01-05 10:55:19.939 DEBUG (MainThread) [custom_components.roborock.sensor] It seems the roborock.vacuum.a10 does not support the CleanSummaryField.CLEAN_TIME as the initial value is None 2023-01-05 10:55:19.939 DEBUG (MainThread) [custom_components.roborock.sensor] It seems the roborock.vacuum.a10 does not support the CleanSummaryField.CLEAN_AREA as the initial value is None 2023-01-05 10:55:19.939 DEBUG (MainThread) [custom_components.roborock.sensor] It seems the roborock.vacuum.a10 does not support the CleanSummaryField.CLEAN_COUNT as the initial value is None 2023-01-05 10:55:19.939 DEBUG (MainThread) [custom_components.roborock.sensor] It seems the roborock.vacuum.a10 does not support the CleanSummaryField.DUST_COLLECTION_COUNT as the initial value is None

humbertogontijo commented 1 year ago

I'm seeing the response from get_status command and the field used for water shortage sensor(water_shortage_status) is not there. Do you know which field is used for that in the S6 MaxV?

yolani commented 1 year ago

I am starting to wonder if this is even supported on my S6 MaxV:

The internet tells me that even the S7 does not have a sensor either but the software predicts the water level based on usage.... I guess I could re-implement that in HA based on cleaning duration.

Do you know any model for which this is working? Just curious...

humbertogontijo commented 1 year ago

I own a S7 MaxV which also don't have any sensors to the water level. It's just a timer and the sensor on the water box itself under the hood. But Roborock sends a water_shortage_status on the get_status command for it

yolani commented 1 year ago

So it seems not be supported right? It's strange because it's only a timer in software but obviously not working for the s6

ScottG489 commented 1 year ago

Just did a quick estimation for my S6 MaxV and using a medium water level it seems like it uses roughly 1% of the water per 1m2 of cleaning area. Could anyone else replicate this or try to get the numbers for other water levels?

yolani commented 1 year ago

The interesting thing is, I noticed the the app shows a (probably time based) warning for my s6 maxv, but I don't have the sensor / value contained in the api data

ScottG489 commented 1 year ago

Which app are you using and where do you see that warning in the app?

yolani commented 1 year ago

The official Roborock app, I got a small banner at the bottom, unfortunately it's not there right now...image

ScottG489 commented 1 year ago

Ok thanks for the info. Are you able to use the official Roborock app and the Home Assistant integrations? I'm not sure which one it was between the Xiaomi Miio integration, xiaomi cloud map extractor and whatever else I'm using, but I thought you needed to use the Mi Home app?

I liked the Roborock app better so I'd rather use that, but I'm worried it would mess up my HA setup.

Otherwise, maybe you could do testing with your water levels too and see if your water usage rate lines up with mine? I ran my tank basically dry though and I imagine it would alert you before that.

ScottG489 commented 1 year ago

Also to add to the conversation earlier, I don't show a water_shortage_status from get_status (using miiocli). I only see water_box_status, water_box_mode, and water_box_carriage_status. Perhaps water_shortage_status only shows up when it's low?

yolani commented 1 year ago

I re-enabled the sensor for now, filled up the tank yesterday and will now monitor what happens, maybe it will show a value at some point during the next days after a few cleaning runs...

ScottG489 commented 1 year ago

I was impatient during my testing, so I just had the robot do a bunch of extra cleanings until the tank was out :)