OpenZWave / Zwave2Mqtt

Fully configurable Zwave to MQTT gateway and Control Panel using NodeJS and Vue
MIT License
356 stars 92 forks source link

verify changes doesn't do anything [bug] #546

Open ve6rah opened 4 years ago

ve6rah commented 4 years ago

Version 3.2.2

Build/Run method

Zwave2Mqtt version: 3.2.2 Openzwave Version: 1.6.974

Describe the bug I have a dimmer module which takes time to transition from one state to another, but the value updates before the transition finishes. In HomeAssistant's zwave configuration this was easily solved by setting "refresh_value: true" with "delay: 3". In zwave2mqtt I've been told that setting "verify changes" in the device table of the gateway is the equivalent, however that toggle does nothing at all.

Expected behavior verify changes should verify that the changes have been properly applied to the node by refreshing the node after a short delay.

robertsLando commented 4 years ago

Could you show me how you configured that? You have to add the value to the gateway values table and enable the toggle

ve6rah commented 4 years ago

This is the configuration in the value table: Screenshot 2020-06-03 at 15 47 11 Screenshot 2020-06-03 at 15 49 08

When the light is off and I send a level of 255 through MQTT the light starts it's fade in, and I get an immediate response of the level it has faded to so far (usually about 5 or so, but the number varies), If the light is fully on, and I send a level of 0 through MQTT again it is almost instantaneous, and shows the value at that time, not the end value of the fade.

ve6rah commented 4 years ago

What I would really like is a setting like HA has where you basically tell it "after sending any command to this device, wait ___ seconds, and then request an updated value" This would make dealing with devices with slow or fading actions much more usable.

chilicheech commented 4 years ago

this is a feature i'm also interested in. i'm going to test the Verify Changes and see what it does.

robertsLando commented 4 years ago

What I would really like is a setting like HA has where you basically tell it "after sending any command to this device, wait ___ seconds, and then request an updated value" This would make dealing with devices with slow or fading actions much more usable.

We could add a Request updates flag to do this. What do you think? @chilicheech @ve6rah

ve6rah commented 4 years ago

@robertsLando that sounds good. We should also be able to specify a delay for said request (ideal is the minimum time possible, but that varies per device, so making it user configurable would help).

On a side note, what is verify changes supposed to do if not this? I've seen no effect to this toggle.

robertsLando commented 4 years ago

AFAIK that flag should verify if a value change is a real value change, for example if the switch is on and I receive another value change with on value That is not emitted

chilicheech commented 4 years ago

Folks, since I needed this feature I tested the Verify Changes seeing and it does exactly that. From what I understand, when you set the dinner value, this setting makes it so zwave keeps querying the value until it stops changing. So this effectively solves what we're trying to do. @ve6rah can you try it out? It works well for me.

ve6rah commented 4 years ago

@chilicheech the whole reason I started this bug is because it specifically did not do that for me.

chilicheech commented 4 years ago

@ve6rah I see you're running Zwave2Mqtt version: 3.2.2, Openzwave Version: 1.6.974.. can you upgrade to the latest version and test again? Zwave2Mqtt version: 4.0.3, Openzwave Version: 1.6.1240

Another thing to note is I also have polling enabled for my dimmers. So, it may be that Verify Changes only works when polling is enabled.

chilicheech commented 4 years ago

Found some documentation on this: http://www.openzwave.com/dev/classOpenZWave_1_1Manager.html#ac26cc3c1b37cf068ac9eee23ef343c30

Per the docs it looks like it only polls 1 time after the value changes. If that's the case the we may want to implement something that will poll after a certain delay like home assistant does.

ve6rah commented 4 years ago

@chilicheech That is consistent with my experience. It polls once very shortly after the change, but as the dimmer is still in transition at that time, it gets that transitional value, and not the final value.

I believe the correct solution is as @robertsLando suggests.

As for updating, according to HASSOS, I am on the most recent version, so I'm not entirely certain how to upgrade further.

chilicheech commented 4 years ago

@ve6rah regarding upgrading, I meant upgrade ZWave2MQTT, not Hassio. Did you install Z2M as an Add On in Hassio? If so, then you're stuck at the version of the add on in there. It looks like they upgraded to 4.0.2 recently: https://github.com/hassio-addons/addon-zwave2mqtt

And yeah, I'm ok with building the new feature.

ve6rah commented 4 years ago

@chilicheech Yes, it's an addon to HassOS, the addon states it is at it's most recent version already. It appears that the add-on has recently updated to 4.0.2, however they haven't published a new release yet with that new version. I don't see any way on HassOS to update to an unreleased version of the addon, so I think I'm stuck for now.

github-actions[bot] commented 3 years ago

This issue is stale because it has been open 90 days with no activity. Remove the stale label or comment or this will be closed in 5 days. To ignore this issue entirely you can add the no-stale label

ve6rah commented 3 years ago

I don't think anything had changed on this issue. Still seeing problems.

robertsLando commented 3 years ago

@ve6rah Could you give a try to: https://github.com/zwave-js/zwavejs2mqtt#why-zwavejs