Thermostat heat not working

Hey guys,

I just setup my Building36 zwave thermostats with hass.io - Previously there were connection to the building36 hub, but I wanted better control over them. Upon removing them from that hub and adding to HA, I was able to see all sensors (1 cooling and 1 “unused” for each thermostat), which gave me the room temp, min/max, mode, etc. However, when set to heat I can’t control or receive the set temp. I can change the mode to/from heat (or cool) and when set to cool I can change the temp (using the “cooling” sensor), but I don’t have a specific “heating” sensor to use for heat. I tried using the “cooling” and “unused” sensor and neither worked. I also tried adding the nodes as secure and non-secure nodes and both gave the same result.

Any other ideas on what I can look into - These are the thermostats: http://www.building36.com/wp-content/uploads/2016/01/Intelligent-Thermostat_Product_Manual.pdf

Not much info other than adding/removing from the controller and initial setup. I saw a few other threads similar for other types of thermostats but no real resolutions.

Thanks!

So, it appears this is just an Alarm.com ADC-620T thermostat. It’s not communicating the target temperature for heat either way (to or from the thermostats). I changed zwave to debug mode and can see it calling ThermostatSetpointCmd_Get, which returns:

2018-02-06 14:50:52.062 Info, Node004, Response RTT 109 Average Response RTT 134
2018-02-06 14:50:52.062 Detail, Node004, Initial read of value
2018-02-06 14:50:52.062 Info, Node004, Received thermostat setpoint report: Setpoint Cooling 1 = 75.0F
2018-02-06 14:50:52.062 Detail, Node004,   Expected reply and command class was received
2018-02-06 14:50:52.062 Detail, Node004,   Message transaction complete

But the second call, which I assume is for the “unused” target temp, returns:

2018-02-06 14:50:52.217 Info, Node004, Response RTT 150 Average Response RTT 142
2018-02-06 14:50:52.217 Detail, Node004,   Expected reply and command class was received
2018-02-06 14:50:52.217 Detail, Node004,   Message transaction complete

I feel like my issues is I’m not getting a “heating” sensor, which means the only options for “COMMAND_CLASS_THERMOSTAT_SETPOINT” are “Cooling” and “Unused” as I can see in the zwcfg xml. Is the XML built at startup by the z-wave controller?

I’ll continue to update this as I debug this issue in case anyone in the future comes across this as well. I factory reset the thermostat (see instructions here: https://products.z-wavealliance.org/products/1161/network). I then re-added as a secure node, but I’m getting the same results.

Someone on OpenZWave google group recommended updating ThermostatSetpoint.cpp, but I just realized Hass.io doesn’t use OpenZWave, so I’m not sure how to proceed. I really wouldn’t want to go from hass.io backwards to hassbian, but I might have to. Not having my thermostats controllable in HA is kind of a deal breaker as it’s probably one of the most used features.

I think I’ve given up and plan to just purchase the Ecobee Lite 3 through MassSave for $50. If anyone comes along and figures out how to resolve this issue, please let me know.

I figured it out with the help of this GoControl GC-TBZ48 Z-Wave Thermostat - Can't control setpoints?

I think it would work on hass io, but I was using raspbian + hass.

Steps:

  1. Stop hass
  2. Edit zwcfg_*.cfg. Not sure if you can edit this with hass io stopped. Maybe you can get away with just stopping the zwave network. I had trouble with the file getting overwritten though.
  3. Find the node for your thermostat and change the section COMMAND_CLASS_THERMOSTAT_SETPOINT to:
<CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" version="1" request_flags="4" innif="true" base="1">
                                <Instance index="1" />
                                <Value type="decimal" genre="user" instance="1" index="1" label="Heating 1" units="F" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="67" />
                                <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" max="0" value="77" />
                        </CommandClass>
  1. Start hass

This worked for GoControl. I assume it’s similar for other thermostats.

1 Like

Hi,
I’m completly new to Home Assistant but had a similar problme with my Keemple thermostat (rebranded Danfoss Living Connect Z).
I’ve noticed the in OZW_Log.txt there was no command comfirmation after two strings:

*2020-11-19 21:15:14.730 Detail, Node009,   Received: 0x01, 0x0c, 0x00, 0x04, 0x00, 0x09, 0x06, 0x43, 0x03, 0x01, 0x42, 0x08, 0x34, 0xc7*
*2020-11-19 21:15:14.730 Detail, *
*2020-11-19 21:15:14.786 Detail, Node009,   Received: 0x01, 0x0a, 0x00, 0x04, 0x00, 0x09, 0x04, 0x46, 0x08, 0x00, 0x7f, 0xcd*

It was coresponding to the:

<CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" version="2" innif="true" base="1" typeInterpretation="B">
   			<Instance index="1" />
   			<Value type="decimal" genre="user" instance="1" index="2" label="Cooling 1" units="C" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0.0" />
   		</CommandClass>

What was strange I had only cooling option on a standard radiator without heating one.
So following your advice I’ve added:

<Value type="decimal" genre="user" instance="1" index="1" label="Heating 1" units="C" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="19.00" />

Proper command for Keemple should look like:

<CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" version="2" request_flags="2" innif="true" base="1" typeInterpretation="B">
				<Instance index="1" />
				<Value type="decimal" genre="user" instance="1" index="1" label="Heating 1" units="C" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="19.00" />
				<Value type="decimal" genre="user" instance="1" index="2" label="Cooling 1" units="C" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0.0" />
			</CommandClass>

For me the values are in celcius.
I’ve used Text Editor addon and edited zwcfg_*.xml file after stopping ZWave.
Maybe someone could update this configuratiaon file so there won’t be a problem in future.