MultiInstanceCmdEncap Issues

A few months ago, I reported an issue with the MultiInstanceCmdEncap swapping the command and instance parameters in the return handler. I encountered this while porting over a CT-100 driver with humidity support. At the time, I was able to work around the issue like so:

def zwaveEvent(hubitat.zwave.commands.multiinstancev1.MultiInstanceCmdEncap cmd) { 
  def instance = cmd.command 
  cmd.command = cmd.instance 
  cmd.instance = cmd.command 

  def encapsulatedCommand = cmd.encapsulatedCommand([0x31: 2]) 
  log.debug ("multiinstancev1.MultiInstanceCmdEncap: command from instance ${cmd.instance}: ${encapsulatedCommand}") 
  if (encapsulatedCommand) { 
    return zwaveEvent(encapsulatedCommand) 
  } 
}

This issue was addressed in the 1.1.4 release, however after applying the update and removing the workaround in my driver, my driver no longer works. The event handler above never even gets called. I suspect that the bug fix broke a related piece of code.

Is anyone else successfully using MultiInstanceCmdEncap in a driver right now, or is it broken for everyone? Tagging @joshua since you mentioned issues with this in another post.

Yeah, I got confirmation from HE that it's broken in the latest release and will be fixed in 1.1.6.

I'm manually hacking things together, in the mean time:

// Set switch instance on/off
private List setChanState(ch, on) {
	log("DEBUG", 2, "+++++ setChanState($ch, $on)")
	def cmds =[
		//zwave.multiInstanceV1.multiInstanceCmdEncap(instance: ch).encapsulate(zwave.switchBinaryV1.switchBinarySet(switchValue: (on ? 0xFF : 0))).format() ,
		multichannelSwitchEvent(ch, on) // Temporarily provide encoded MultiInstanceCommandEncapsulation manually while v1.1.5 of HE firmware has it broken.
	]
}

// Temporarily provide encoded MultiInstanceCommandEncapsulation manually while v1.1.5 of HE firmware has it broken.
// MultiInstanceCmdEncap command class is 6006
// switchBinarySet command is 2501
private String multichannelSwitchEvent(ch, on) {
	def onOff = (on ? "FF" : "00")
	def channelString = ch.toString().padLeft(2, "0")
	"6006" + channelString + "2501" + onOff
}

Can either of you point me to a working DH for the CT-100?

I plan on posting mine tomorrow, I'll tag you.

Thank you!!!