Tasshack / dreame-vacuum

Home Assistant integration for Dreame robot vacuums with map support
https://community.home-assistant.io/t/custom-component-dreame-vacuum
MIT License
906 stars 113 forks source link

L20 Ultra – many entities and respective automations no longer working #551

Closed dextorer closed 6 months ago

dextorer commented 6 months ago

Describe the bug As per title, many of the entities have stopped working since roughly two weeks. Two significant events happened:

Steps I've tried so far to troubleshoot:

I'll take the opportunity to thank you for your incredible work! This integration has been flawless for many months, really appreciate your efforts.

To Reproduce Simply setting up the integration from scratch.

Expected behavior Entities (e.g. carpet boost switch) should report as available and behave as expected.

Screenshots

image

Additional Information (please complete the following information)

Tasshack commented 6 months ago
logger:
  default: warn
  logs:
    custom_components.dreame_vacuum: info
dextorer commented 6 months ago

Done. Nothing stands out to me, unless I haven't enabled logs properly.

home-assistant_2024-05-19T15-36-57.923Z.log

Tasshack commented 6 months ago

Everything looks correct, integration loads, gets all the data and renders the map. There is nothing I can do at this moment and you should check your HA why you cannot control any entity.

dextorer commented 6 months ago

Yup, I understand that. Another piece of information: it's not every entity that can't be controlled, it's just some. For example: switch.l20_ultra_auto_drying works just fine, but switch.l20_ultra_carpet_boost reports as unavailable. Maybe this gives you a lead into what it might be.

I'll try to debug this further on my end, will report back if I manage to narrow it down somehow.

Tasshack commented 6 months ago

It is normal that some of your entities are unavailable because HA does not have a disabled state for settings app does not allow you to change in certain conditions. For example; carpet boost will be unavailable when carpet recognition is disabled. Also I have removed some entities from the vacuums that does not have specific setting on its app so if HA says that entity is no longer available from the integration you can delete them.

If vacuum and camera entities are available that means integration working correctly and your automations should work too.

dextorer commented 6 months ago

Understood, thanks. if you don't mind, let's focus on a specific example that used to be working in my automations but now no longer does: carpet boost.

I can toggle carpet boost just fine from the Dreame mobile app:

But the entity is still reported as unavailable in HA. You also mention:

carpet boost will be unavailable when carpet recognition is disabled

I see Property CARPET_RECOGNITION Added: 1 and Capability CARPET_RECOGNITION in the logs. Additionally, I also see Property CARPET_BOOST Added: 0, which looks indicative.

Could it be that there is a mismatch from available features and what the integration sees/reports?

Tasshack commented 6 months ago

Could it be that there is a mismatch from available features and what the integration sees/reports?

You are correct, this a capability issue because not all of the vacuums does have this setting on their apps (even if the device reports the property) so integration decides to add it or not depending on the model number.

Can you check any other inconsistencies from the app and create another issue about that so that I can fix it on the next Beta release

dextorer commented 6 months ago

I can certainly do that by eyeballing at what I see in the app and what I see in HA, but I'm wondering if there is a more reliable way to capture everything and make sure I didn't miss any capabilities.

For instance, if we assume that b11 works, is there any way for us to export the list of capabilities and use that as basis for b15?

Tasshack commented 6 months ago

I have completely changed how capabilities are handled on b13 whats why you are having this issue and thats why impossible to understand by looking at the logs because it was hardcoded before. I have wrote a script to extract the capabilities from app plugins and now it decides the capabilities.