krahabb / meross_lan

Home Assistant integration for Meross devices
MIT License
450 stars 47 forks source link

MSG100 ignoring Open Duration setting (again) with version 5.1.0 #439

Closed Duke-Box closed 4 months ago

Duke-Box commented 6 months ago

MSG100 Garage door opener Firmware v 3.2.7 H/W version 3.0.0

I have just updated the integration from version 5.0.4 to version 5.1.0 and now the integration ignores the Open Duration setting in the integration. This has happened before and was fixed but I cannot remember which version of Meross LAN that was.

The Close Duration setting is honoured by the integration interestingly enough.

HA core version 2024.5.4 but HA core 2024.4.4 exhibits the same problem HAOS 12.3 but HAOS 12.2 is the same. Supervisor 2024.5.1 Frontend 20240501.1

krahabb commented 6 months ago

Yes, after remanaging the garage door 'state' it happens you see the garage as almost immediately 'Open' since this is how the raw contact works (it opens almost immediately when the opening transition starts while it closes only at the end of the closing transition) I'm re-patching this to 'finally' sort it out

Duke-Box commented 6 months ago

I thought it was the contact. Thanks for looking at this so promptly.

Nerwyn commented 5 months ago

I think Moonlight.2 may have introduced a new issue related to this. If the garage door is closed from within Home Assistant, the Home Assistant entity switches to the closing state but does not switch to the closed state at the end. The correct state appears in the Meross app and is fixed by reloading the Home Assistant device. The entity transition duration property also appears to be incorrect and does not match the Meross app value.

barneyonline commented 5 months ago

I think Moonlight.2 may have introduced a new issue related to this. If the garage door is closed from within Home Assistant, the Home Assistant entity switches to the closing state but does not switch to the closed state at the end. The correct state appears in the Meross app and is fixed by reloading the Home Assistant device. The entity transition duration property also appears to be incorrect and does not match the Meross app value.

Also experiencing this issue. Garage door state doesn’t update to Closed in Home Assistant.

krahabb commented 5 months ago

While the issue with the 'opened' state was easily spotted, I cannot detect the issue on the 'closed' state. The only possibility is there are some other problems preventing the state update. Do you see any other warning or error in HA log about the 'malfunctioning' garageDoor ?

@Nerwyn, The entity 'Transition duration' is an internal estimate of the time it takes to the door to complete the transition and it is just a 'kind of debug feature' so it shouldn't affect the behavior in normal circumstances.

It is there since the beginning of the implementation when devices didn't expose at all any configuration parameter for the 'time of run' and was used as a base timeout for the code to setup, monitor, refresh the transition.

Now, if the device exposes any of 'doorOpenDuration/doorCloseDuration' or 'signalOpen/signalClose', meross_lan will use these values (the same as those configurable in the app) to setup the transition monitoring and so the aforementioned 'Transition duration' is just there as a passive measure

At least this is the concept before any other bug ;)

Nerwyn commented 5 months ago

Good to know about the transition duration attribute. The door open/close duration numbers are accurate.

I do see this warning in the log which may be the culprit:

2024-06-05 16:54:12.517 WARNING (MainThread) [custom_components.meross_lan.msg100_###############################7] AttributeError('list' object has no attribute 'get') in NamespaceHandler(Appliance.GarageDoor.State)._handle_dict: payload={'state': [{'channel': 0, 'open': 1, 'lmTime': 1717620852}]}