albertogeniola / meross-homeassistant

Custom component that leverages the Meross IoT library to integrate with Homeassistant
MIT License
718 stars 82 forks source link

cover.toggle on an open garage goes to transient state opening, requiring me to toggle a 2nd time to actually close #501

Open prashker opened 4 months ago

prashker commented 4 months ago

Describe the bug I routinely open and close my garage using a widget on Android that calls cover.toggle. The first time I toggle on my open garage (state=Open) it switches to (state=Opening) with no action (garage stays open). Clicking toggle again works (closing my garage)

If it helps to debug: the garage opening is not performed via HASS (I manually do it with the OEM garage opener), that is why first event for day in HASS is "Opened"

Prior to transient states, my toggle was 100% reliable.

image

Your environment HomeAssistant version: 2024.5.3 [Docker] Hassio Version (if applicable): N/A Hardware environment: msg100 4.0.0 by Meross Firmware: 4.2.12 Meross Home Assistant plugin version: 1.3.2

Logs taken when the issue happened Not sure how to get more in depth logs, but attached screenshot which shows Logbook reflecting my actions

prashker commented 4 months ago

As additional details (I think relevant enough for a comment)

From a closed garage (fully controlled via HASS) 🟢:

From a closed garage (hybrid approach) 🔴:

prashker commented 4 months ago

For anyone visiting from the future, I managed to workaround this issue by setting up an automation to close my garage when it goes from "open" to "opening" (a transition that shouldn't be normally possible)

Working well for past few days!

alias: GARAGE - Open to Opening bug
description: Auto close when bug encountered
trigger:
  - platform: state
    entity_id:
      - cover.garage_msg100_main_channel
    from: open
    to: opening
condition: []
action:
  - service: cover.close_cover
    metadata: {}
    data: {}
    target:
      entity_id: cover.garage_msg100_main_channel
mode: single

Hope this helps in the interim!