Closed HA-TB303 closed 1 year ago
As this is a bit of a strange problem, I hereby add a video to clarify.
Nobody using multiple roborock vacuums within this integration?
Just the state is being mixed up? Changing mop/fan mode in the app will change for the wrong vacuum also?
Just changed the fan speed of the upstairs vacuum in the roborock app and it changes on both vacuums in the HA integration.
I was just about to report the same issue - changing fan speed or mop intensity on one vacuum changes the other one (only in HA, only the correct one changes in the Roborock app, and only the right device chimes).
Integration: 1.0.9 HA: 2023.7.3
Having the same issue with my S7 MaxV Ultra and S5 Max.
When sending a command from Home Assistant the immediate update is to the other vacuum, but looks like as soon as it receives the next update from the unit itself, the statuses get corrected.
Looks like maybe related with #376?
Happening with my S8 Pro Ultra and S8+ as well.
Can anyone get debug logs for this. It should be logging something like "Got device update for {...}" and "Got status update({...}) before get_status was called."
I think it could be an issue with the listeners? Not 100% though
I think it could be an issue with the listeners? Not 100% though
Yeap. It is what I'm also thinking. I gone though the code and missed something that could be causing it, maybe the logs will help me identifying it
Can anyone get debug logs for this. It should be logging something like "Got device update for {...}" and "Got status update({...}) before get_status was called."
I changed fan speed, mop intensity (and mop route) for one of the vacuums a few times. Here's the log.
I appreciate all the work on this integration. I am just wondering about the progress on this as this bug makes the integration and all automations pretty much unusable when you have more then one vacuum
I wanted to take a stab at it yesterday, but got stuck on #431
As a temporary solution - go to your custom component folder, open roborock -> init.py and remove map_client.add_listener(lambda attr, _data: data_coordinator.update_device(attr, _data))
On line 125
I am pretty sure the issue stems from the listeners. I don't use any listeners on the core side and users don't seem to have any issues. Let us know if that works for you @HA-TB303
@the-ress If you plan on attempting to fix this, I believe you need some method of determining what device corresponds with the message.
I don't have two devices so this isn't something I'll be attempting to fix as it would be harder for me, here is where the listener is setting the data: https://github.com/humbertogontijo/python-roborock/blob/260dfdfff290e113bce9631710f2970c0cad2c27/roborock/api.py#L258
There needs to be a check there that the data corresponds with the current device. iirc there are a few bytes in the payload of RoborockMessage that we don't use. if I have time I'll go through and see if I see anything that could point you in the right direction, unless @humbertogontijo has any insight
I'll work on this adding the device id or something to the listeners callback
@Lash-L , removing the line seems to fix the issue.
Try out 1.0.10 Hope it is fixed
Thanks! Will do.
I ran a few tests and it seems to work just fine now.
Thanks for all the effort!
Version of the custom_component
1.09
What vacuum are you using?
Roborock S8 (standard without pro/ultra dock)
Describe the bug
When using 2 Roborock S8's there is an issue that vacuums get mixed up. I now have a reproducible issue that if I start the "upstairs" vacuum (either from the roborock app or from HA), the "downstairs" vacuum get the status 'cleaning'. This only happens when starting the upstairs vacuum, not when I start the downstairs vacuum.
I then removed the custom integration and installed the official. The problem does not occur using the official integration. I also removed all vacuum related automations, booleans and templates sensors, just to be sure those do not cause the issue.
Debug log
check the log in the attachment (it was too big to include inline) log.txt
Might be related to: https://github.com/humbertogontijo/homeassistant-roborock/issues/376