Zwave dimmer doesn't turn off fully

I have a state machine rule in DSL that can trigger a dimmer to turn off. Yesterday morning it tried to change “Porch_LightOH” to OFF. As you can see below the Item received the command and was predicted to become OFF and be set to 0. And the state changed to 0. But then it bounced back to 49? Why did it do that? Did the zwave dimmer itself cause this? OH3.4M6

2022-12-20 07:05:00.008 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'LateNight' received command OFF
2022-12-20 07:05:00.009 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Porch_Light_State' received command 0
2022-12-20 07:05:00.012 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'LateNight' changed from ON to OFF
2022-12-20 07:05:00.013 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Porch_Light_State' changed from 3 to 0
2022-12-20 07:05:00.025 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Porch_LightOH' received command OFF
2022-12-20 07:05:00.025 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Porch_LightOH' predicted to become OFF
2022-12-20 07:05:00.025 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Porch_LightOH' changed from 100 to 0
2022-12-20 07:05:01.664 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Porch_LightOH' changed from 0 to 49

To understand the log, see

in particular the effect with a ramping dimmer.

What did your light really do?

Alas, I don’t know. I happened to notice the UI showing the light being on when I was remote, and I turned it off. And when I came home, the light was off. I’ve been using this rule for years and I never noticed an issue with it. I suppose it could be a one time glitch in the dimmer. I don’t have any rule that would set the dimmer to 49%, but it’s certainly possible I’ve inadvertently caused this somehow.

I may have to wait until it happens again.

If you read the autoupdate briefing, you’ll work out what probably happened.
When the dimmer receives ‘off’, it ramps down from whatever to zero - over time.
A report of current status during that ramping gives you a non-zero intermediate state.
Some later report would give you zero.
Will the device send a report when it reaches zero? Dunno, up to the device.
So it is all very timing dependent. Any glitches or delays will give you slightly different effects from one day to another. Where the dimmer start position is too, obviously.

zwave does have a feature that may interest you, the “poll after command” delay.
The binding requests device status some fixed time after sending a command.
For a slow-ramping dimmer, you might usefully make that longer.