I checked out /hadata/apps/hadata-4c09/zwcfg_home.xml on the almond and found that the thermostat was listed, but the manufacturer was missing.
<Manufacturer id="" name="">
<Product type="" id="" name="" />
</Manufacturer>
Then I looked at the command classes it was using to see if i could find why i could set cooling but not heat.
<CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" version="1" request_flags="2" base="1">
<Instance index="1" />
<Value type="decimal" genre="user" instance="1" index="2" label="Cooling 1" units="F" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" ma......
<Value type="decimal" genre="user" instance="1" index="3" label="Unused 3" units="C" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max......
</CommandClass>
Cooling 1 and unused 3. Got it.
I reverted to 69cb, factory reset, unlinked, relinked, verified i could set the mode to heat/cool/auto and set both heat and cool point. After verifying everything worked correctly.
<Manufacturer id="008b" name="Trane">
<Product type="5452" id="5431" name="Model TZEMT400AB32MAA" />
</Manufacturer>
and the command class is very simple.
<CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" version="1" request_flags="6" base="0">
<Instance index="1" />
</CommandClass>