Ported ST DTH pairs but doesn't work much otherwise

I ported my eCozy Zigbee DTH from ST to a Habitat Driver. ( see code here: [RELEASE] eCozy ZigBee Thermostat / TRV)

It pairs fine and when I look into the paired device I can see that the states are updating correctly when I hit the Refresh command button.
But, none of the other commands seem to work, nor are any Rule Machine rules triggering when I try to change the temperature based on a SmartSense MultiPurpose Sensor v4 event. The SmartThings contact sensor does show open and closed states in the device details, so it is working on hubitat.

I did notice that there are many commands in the command section of the device than I have programmed into the driver. Is it possible that Hubitat adds commands based on the device type independent if they are coded into the driver. For instance, since this is a TRV there is no fan, but commands referring to fan modes are in the device command section.

I’m not too concerned about the extra commands that wouldn’t work anyways. What I would like to get working is the ability to set heatsetpoints. Basically my current driver can read all the necessary pieces of data, so zigbee.readAttribute commands are working.
I’m not sure the zigbee.configureReporting is working since I always have to hit the refresh button for the states to update.
The setHeatingSetPoint command is basically doing this:

def setHeatingSetpoint(degrees) {
	if (degrees != null) {
		def degreesInteger = Math.round(degrees)
		int temp;
		temp = (Math.round(degrees * 2)) / 2

		log.debug "setHeatingSetpoint({$temp} ${temperatureScale})"
		def celsius = (settings.unitformat == "Fahrenheit") ? (fahrenheitToCelsius(temp)).round : temp
		def cmds =
			zigbee.writeAttribute(0x201, 0x12, 0x29, hex(celsius * 100)) +
			zigbee.readAttribute(0x201, 0x12) +	//Read Heat Setpoint
			zigbee.readAttribute(0x201, 0x08)	//Read PI Heat demand
private fireCommand(List commands) {
    if (commands != null && commands.size() > 0)
    	log.trace("Executing commands:" + commands)
    	for (String value : commands)
	    	sendHubCommand([value].collect {new hubitat.device.HubAction(it)})

Any help troubleshooting my driver code greatly appreciated.

Download the Hubitat app