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
887 stars 110 forks source link

Resetting counter causes all services unavailable (maybe except current map) #684

Open tidegu opened 2 months ago

tidegu commented 2 months ago

Describe the bug I have 3 X10 vacuums and running latest HAOS (Core 2024.8.2, Supervisor 2024.08.0, OS 13.1, Frontend 20240809.0) and HACS ( Integration version 2.0.0, Frontend version 20240814080035), plugin version is also the latest (v2.0.0b16) downloaded directly using HACS. The services running fine until I click reset button (any reset, e.g., reset main brush, reset mop etc). Once it is clicked, the UI shows all entities in unavailable status until I reconfigure devices. Map seems still fine.

To Reproduce

  1. Create a new dashboard for vacuums, each vacuum as a view in my scenario.
  2. In the layout, I used grids and stacks to make the page until satisfactory. One of the stacks I put counter statistics and reset buttons as entities (sorry for not putting it in a better way as a newbie in making dashboards). See attached screenshots (sensitive information blurred out) as my layout.
  3. When necessary, click "PRESS" in the one of the entities of resetting counter.
  4. All entities became unavailable. I tried multiple times on different entities, as far as I tested, the behaviors were the same.
  5. To resolve this, a reconfigure is necessary - I tried to wait for a couple of hours, without letting the vacuum run again, it didn't recover.
  6. Once the reconfigure is done, the counter is indeed reset, I can see the counter recovers to 100% in both HA and Dreame app.
  7. I also created a button group of all resetting entities, and it worked once (I accidentally clicked it in the lovelace dashboard, didn't know how to make it confirmable) and all worked fine without making any entities unavailable. I haven't tried again though.

Expected behavior I would expect the respective counter is reset and UI shows 100% left, not affecting other procedures.

Screenshots Snipaste_2024-08-24_19-38-45

Additional Information

Incase it's necessary, here is the code for the layout Note: the code is generated using visual editor

square: true
type: grid
cards:
  - type: horizontal-stack
    cards:
      - show_state: true
        show_name: false
        camera_view: live
        type: picture-entity
        entity: camera.xxx_map
        image: https://demo.home-assistant.io/stub_config/bedroom.png
        tap_action:
          action: none
        hold_action:
          action: more-info
  - type: vertical-stack
    cards:
      - features:
          - type: vacuum-commands
            commands:
              - start_pause
              - stop
              - locate
              - return_home
        type: tile
        entity: vacuum.xxx
        show_entity_picture: false
        hide_state: false
        vertical: true
        state_content:
          - state
          - status
          - fan_speed
          - cleaning_mode
        tap_action:
          action: none
        icon_tap_action:
          action: more-info
      - type: entities
        entities:
          - entity: sensor.xxx_state
          - entity: sensor.xxx_cleaned_area
          - entity: sensor.xxx_cleaning_time
          - entity: sensor.xxx_battery_level
        show_header_toggle: false
        state_color: false
      - type: entities
        entities:
          - entity: sensor.xxx_total_cleaned_area
          - entity: sensor.xxx_total_cleaning_time
        show_header_toggle: false
        state_color: false
  - type: vertical-stack
    cards:
      - type: entities
        entities:
          - entity: sensor.xxx_filter_left
          - entity: sensor.xxx_filter_time_left
          - entity: button.xxx_reset_filter
          - entity: sensor.xxx_side_brush_left
          - entity: sensor.xxx_side_brush_time_left
          - entity: button.xxx_reset_side_brush
          - entity: sensor.xxx_main_brush_left
          - entity: sensor.xxx_main_brush_time_left
          - entity: button.xxx_reset_main_brush
          - entity: sensor.xxx_sensor_dirty_left
          - entity: sensor.xxx_sensor_dirty_time_left
          - entity: button.xxx_reset_sensor
          - entity: sensor.xxx_mop_pad_left
          - entity: sensor.xxx_mop_pad_time_left
          - entity: button.xxx_reset_mop_pad
          - entity: sensor.xxx_silver_ion_left
          - entity: sensor.xxx_silver_ion_time_left
          - entity: button.xxx_reset_silver_ion
          - entity: sensor.xxx_detergent_left
          - entity: sensor.xxx_detergent_time_left
          - entity: button.xxx_reset_detergent
        show_header_toggle: false
        state_color: false
columns: 3
view_layout:
  position: main
Tasshack commented 2 months ago

This is not just because of resetting a consumable but also happens if you try to change any setting after your internet connection lost for a short period of time. I know this bug for a long time but I haven't had time to fix it yet.

tidegu commented 2 months ago

Thanks for your reply. I didn't see if any internet interruption occurred, both LAN and WAN. And I couldn't find a stable way to reproduce this issue except resetting consumable - I tried to change some settings once but it gone through correctly. Luckily it seems able to recover when the next time the robot starts the cleaning progress - I have a schedule starts like 3.30 am every other night and I see it recoverred at exactly 3.30am this night without reconfiguring the device. So it seems less critical but just inconvinence. Any idea which source code file should I look at to fix the issue? I may able to try to fix. Thanks.

19Francesco81 commented 1 month ago

Hi everyone, Is there any news for this problem? I can only restore by locating the robot