Inconsistent transition time across different LZW42s and firmwares

I’ve noticed some inconsistent transitions between several of my LZW42 bulbs.

I’m running the latest versions of Home Assistant and zwavejs2mqtt. I normally make all my changes to the brightness of bulbs directly through a lovelace card or via Google Home. I am NOT making service calls and editing the “transition time” parameter. I’m using this custom lovelace slide entity card that defaults to just brightness_pct for lights

I prefer the bulbs to instantly turn on/off or instantly go to a set brightness value. Makes the bulbs feel more “normal”. The transition time for me is just a tad too slow.

I believe when I updated to from OZW to zwavejs2mqtt all my LZW42 bulbs transitioned instantly. However, for some reason now some of my bulbs are slowly transitioning.

With help from @freshcoat in the HA discord server I was able to troubleshoot and find some differences.

On the production firmware, 2.28, I have noticed some bulbs both transitioning slow as well as instantly.

I updated one of these slow transitioning bulbs to the latest beta firmware, 2.31, to see if it changed anything. Unfortunately it did not. I also tried re-interviewing the bulb to see if it that changed anything. This also did not change the speed of the transition.

@freshcoat suggested I input different brightness values from inside the zwavejs2mqtt UI. From inside the zwavejs2mqtt UI all the bulbs transitioned instantly.

Next, @freshcoat suggested I put default in the transition duration “Send Option”

Screenshot 2021-09-14 140314

Once, I put default in the zwavejs2mqtt, all bulbs transitioned slowly.

@freshcoat sums it up better than I can, so I’ll just quote him:

ok, that tells me there’s some weirdness with the bulb firmware. can’t explain why different bulbs with the same version behave differently.(edited)
HA always sends a default duration.
That translate[s] to a different Z-Wave command payload than if you use z2m w/o the duration(edited)
From HA: tell the light to turn on with default duration
From z2m: tell the light to turn on (duration not specified)

Is there any way to have the lights transition consistently?

I’ll just add that HA only recently added duration functionality with their zwave JS calls, so that is why they were instant previously and now have a duration.

In automations and scripts, if you call the light.turn_on service with transition 0 then they will instantly change, but I agree that just toggling the bulb in the front end the duration is a bit slow. I wonder if we can change the default HA duration…