Ah OK. The problem is that they appear to have broken the casting of HubMultiAction command list to a SendHubCommand.
I have managed to re-write the code to extract each cmd and send it with one SendHubCommand and it has finally worked… but seriously poor testing by SmartThings devs
// Battery powered devices can be configured to periodically wake up and
// check in. They send this command and stay awake long enough to receive
// commands, or until they get a WakeUpNoMoreInformation command that
// instructs them that there are no more commands to receive and they can
// stop listening.
def zwaveEvent(physicalgraph.zwave.commands.wakeupv2.WakeUpNotification cmd)
{
def map = [name:“thermostatWakeUp”, value: “${device.displayName} woke up”, isStateChange: true]
def event = createEvent(map)
def cmds = updateIfNeeded()
cmds << zwave.wakeUpV2.wakeUpNoMoreInformation().format()
log.debug "Wakeup $cmds"
cmds.each
{ zwaveCmd ->
def hubCmd = []
hubCmd << response(zwaveCmd)
log.debug "HubCmds $hubCmd"
sendHubCommand(hubCmd, 1000)
log.debug "Sent hubcommand"
};
[event]
// [event, response(delayBetween(cmds, 1000))]
}
So if people edit the WakeUpNotifcationEvent code as above, then it should be a valid workaround