@ericm - a quick update - I've tried changing the switch type (parameter 20) which seems to need Z wave tweaker to change it.
Whichever setting I use, 0,1 or 2, the behaviour from the Fibaro Double Switch 2 FGS-223 child switch driver on and offs is the same, and as before - the first off does not switch off, but puts it in to a state that the next command, on or off, switches it off.
Looking at the logs for the command sent, and response from the device:
Starting with the light off, clicking "on" shows in the logs:
childOn(C3-ep1)
SwitchBinaryReport: SwitchBinaryReport(value:255) : Endpoint: 1
With the light now on, clicking "off" shows:
childOff(C3-ep1)
SwitchBinaryReport: SwitchBinaryReport(value:255) : Endpoint: 1
from there, clicking "off" again
childOff(C3-ep1)
SwitchBinaryReport: SwitchBinaryReport(value:0) : Endpoint: 1
Alternatively, from the same position (light just turned on, then one "off" sent) you get:
childOn(C3-ep1)
SwitchBinaryReport: SwitchBinaryReport(value:0) : Endpoint: 1
This feels to me like the device is not responding correctly to the command sent, so either the command being sent is wrong in some way or the device is faulty or I've mis-configured the device. I have checked this on three devices, all show this issue. These same devices were previously used on SmartThings for 3 years, and I didn't spot this issue - I think I would have done, though I can't be certain.
Interestingly, if I set the switch to "1", ("Toggle, open = on closed = off") it responds nicely to the momentary switch attached to it - every press causes two events - an off request followed by an on request. If the light was on, the "off" then "on" switches it off. If the light was off, the first "off" is ignored, and the following "on" switches it on.
I'm considering hacking your driver code to emulate this in there.... I've not written any drivers, or Groovy for that matter, but it ought to be possible to add extra commands, possibly with a small time delay.
thoughts?
Best,
James