Sending commands from multichannel child device (virtual `ThermostatHeatingSetpoint`)

I'm working on a DTH for the Intermatic Pool/Spa controller. It's an unusual device; it has two heating set points (one for a pool, another for a spa) and switches between them.

An existing DTH works with two settings options for these two values, but I wanted to expose them as two virtual ThermostatHeatingSetpoints.

The two child devices are created and associated with the parent, and make calls back to the parent:

def List setHeatingSetpoint(Double degrees ) {
	log.debug("+-+-+ setHeatingSetpoint ${degrees} - DNI: ${device.deviceNetworkId}")
	parent.setChildHeatingSetpoint(degrees, device.deviceNetworkId)

These correctly and successfully call into the parent, and generate a list of commands, which get formatted and returned to the child command. But. . . nothing happens.

The same commands, when called from the parent directly, do work.

I've tried sending back both the identical commands and sending back encapsulated versions of the same command:

encapsulatedCommands << zwave.multiInstanceV1.multiInstanceCmdEncap(instance: childNumber).encapsulate(cmd)

Resulting in the following, showing zwave and formatted versions of a thermostat setpoint set/get:

dev:1302018-11-09 21:33:45.430:debug Commands: 
		0  [ MultiInstanceCmdEncap(command:1, commandClass:67, instance:11, parameter:[1, 9, 76])] - 60060B430101094C
		1  [ MultiInstanceCmdEncap(command:2, commandClass:67, instance:11, parameter:[1])] - 60060B430201    

I can't find a ton of documentation on zwavemultiinstance/multichannel, but this is analogous to what is done by the existing code for the five child switches, which do work.

Overall, it feels like the commands are generated properly, and dispatched, but just never get dispatched/delivered.

One clue, potentially related, is that the virtual devices show up as having status UNKNOWN in the device list. They do, though, function and call back to the parent, etc.

I've been looking into multichannel functionality recently and I vaguely remember that it only supports a subset of sensors. I'm not sure if this is Z-Wave spec limitation or implementation-specific but may potentially be your case.

1 Like