I've tried to send a Zigbee command from a child device but the message was not reaching its destination, without error messages in the HE logs.
The parent messages were working normally.
Then I thought I should call the parent to send the message, but that is not working either. Again, no error messages in the logs.
Does your driver implement capability "Configuration" or at least implement configure as a custom command? One of the two should make the return value (of a Hubitat command) be sent as a Zigbee command, otherwise you'll have to use a HubAction to do it manually.
Is this defined as a custom command in your parent device? (I didn't see this the first time.) I don't see anything that actually sends the command if not. You'll need a HubAction to actually send the command if it isn't. Z-Wave or Zigbee commands are only sent if you do so manually or if they are the return value of a Hubitat command.
Using HubAction I got the message to the destination, but now I have to learn how to code the message. It would be so easy with "zigbee.command" if it just worked as it should.
It is very frustrating to have to go at such a low level just to send a simple Zigbee message. Spent 4 hours already on this, and counting...
Still it seems to me that the initial post in this topic is describing a bug.
This is the second issue I've encountered where HE fails silently, the other one being a Zigbee command with an HEX payload more than 144 characters long.
It's hard to say more without seeing the full context, but in general, Hubitat should send the Zigbee (or Z-Wave) command if it's the return value of a Groovy method that corresponds to a Hubitat command on the device (and you have an appropriate return type, including simply def, specified for the method). Some developers avoid this automatic approach and just make all these methods void and use sendHubCommand() with a HubAction or HubMultiAction themselves so they always know what happens when. I haven't seen any bugs related to this behavior described elsewhere, though I suppose it's possible. Not sure about the hex payload length, either. But glad you got this figured out!