ADC T200-thermostat help

All,
Stumbled upon this thread while looking up z wave thermostats. I’m between the ecobee and this unit right now although ideally I’d prefer total local control that is not cloud dependent. Would anyone who owns it still recommend it at this point? If so how easy would it be to integrate into Google home for voice control via home assistant? Thanks for any and all help

I definitely still recommend it; it’s worked wonderfully for us thus far and there’s no cloud dependency.

A voice assistant is one area where this can be a little challenging since there are two climate entities (one for heating and one for cooling). We are an Alexa household; in that case, I have to create a group in the Alexa app (“Thermostat”) that contains both the cooling entity and the heating entity. Then, when I tell her to modify the “Thermostat,” she modifies both at the same time. Seems to work well. If Google Home can do the same thing, you’re set; if not, you’ll be resigned to asking it to modify each of those entities separately.

EDIT: thinking about this further – I suppose there’s no reason you couldn’t create a similar group in Home Assistant itself if Google Home doesn’t have that functionality.

I will sell you mine if you are interested.

Hope some find this useful.

			<CommandClass id="112" name="COMMAND_CLASS_CONFIGURATION" version="1" request_flags="4" innif="true">
				<Instance index="1" />
				<Value type="list" genre="config" instance="1" index="1" label="HVAC System Type" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="1" value="0" size="1" >
					<Help>Configures the type of heating system used. 0 - Normal (Default), 1 - Heat Pump</Help>
					<Item label="Normal" value="0" />
					<Item label="Heat Pump" value="1" />
				</Value>
				<Value type="short" genre="config" instance="1" index="2" label="Number of Heat Stages" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="3" value="2" size="1" >
					<Help>Heat Stages 0-3 Default is 2.</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="3" label="Number of Cool Stages" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="2" value="2" size="1" >
					<Help>Cool Stages 0-2 Default is 2.</Help>
				</Value>
				<Value type="list" genre="config" instance="1" index="4" label="Heat Fuel Type" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="1" value="1" size="1" >
					<Help>Choose type of fuel. Reality - whether unit is boiler vs forced air. 0 - Fossil Fuel, 1 - Electric (Default)</Help>
					<Item label="Fossil Fuel" value="0" />
					<Item label="Electric" value="1" />
				</Value>
				<Value type="short" genre="config" instance="1" index="5" label="Calibration Temperature" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="-100" max="100" value="0" size="4" >
					<Help>Calibration Temperature Range (in deg. F) Precision is tenths of a degree.</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="6" label="Overshoot" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="30" value="5" size="4" >
					<Help>Overshoot Range (in deg. F) Precision is tenths of a degree. Default is 5.</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="7" label="Swing" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="30" value="0" size="4" >
					<Help>Swing Range (in deg. F) Precision is tenths of a degree.</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="8" label="Heat Staging Delay" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="1" max="60" value="10" size="1" >
					<Help>Heat Staging Delay (in min)</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="9" label="Cool Staging Delay" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="1" max="60" value="10" size="1" >
					<Help>Cool Staging Delay (in min)</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="10" label="Balance Setpoint" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="950" value="350" size="4" >
					<Help>Balance Setpont Range (in deg. F) Precision is tenths of a degree.</Help>
				</Value>
				<Value type="list" genre="config" instance="1" index="11" label="Recovery Settings" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="1" value="1" size="1" >
					<Help>Whether thermostat uses intelligence to try and make the best of energy usage. 0 - Comfort, 1 - Efficient (Default)</Help>
					<Item label="Comfort" value="0" />
					<Item label="Efficient" value="1" />
				</Value>
				<Value type="short" genre="config" instance="1" index="12" label="Fan Circulation Period" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="10" max="240" value="20" size="1" >
					<Help>Fan Circulation Period (in min)</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="13" label="Fan Circulation Duty Cycle" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="100" value="25" size="1" >
					<Help>Duty Cycle (percentage)</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="14" label="Fan Purge Time" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="1" max="3600" value="60" size="2" >
					<Help>Purge Time (in seconds)</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="15" label="Maximum Heat Setpoint" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="350" max="950" value="950" size="4" >
					<Help>Max Heat Setpoint Range (in deg. F) Precision is tenths of a degree.</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="16" label="Minimum Heat Setpoint" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="350" max="950" value="350" size="4" >
					<Help>Min Heat Setpoint Range (in deg. F) Precision is tenths of a degree.</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="17" label="Maximum Cool Setpoint" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="500" max="950" value="950" size="4" >
					<Help>Max Cool Setpoint Range(in deg. F) Precision is tenths of a degree.</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="18" label="Minimum Cool Setpoint" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="500" max="950" value="500" size="4" >
					<Help>Min Cool Setpoint (in deg. F) Precision is tenths of a degree.</Help>
				</Value>
				<Value type="list" genre="config" instance="1" index="19" label="Thermostat Lock" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="1" value="0" size="1" >
					<Help>Lock out physical thermostat controls. 0 - Disabled (Default), 1 - Enabled</Help>
					<Item label="Disabled" value="0" />
					<Item label="Enabled" value="1" />
				</Value>
				<Value type="short" genre="config" instance="1" index="20" label="Compressor Delay" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="60" value="5" size="1" >
					<Help>Compressor Delay (in min)</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="21" label="Demand Response Period" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="10" max="240" value="10" size="1" >
					<Help>Demand Response Period (in min)</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="22" label="Demand Response Duty Cycle" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="100" value="25" size="1" >
					<Help>Demand Response Duty Cycle (percentage)</Help>
				</Value>
				<Value type="list" genre="config" instance="1" index="23" label="Temperature Display Units" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="1" value="1" size="1" >
					<Help>Celsius or Farenheit for temperature display. 0 - Celsius, 1 - Farenheit (Default)</Help>
					<Item label="Celsius" value="0" />
					<Item label="Farenheit" value="1" />
				</Value>
				<Value type="list" genre="config" instance="1" index="24" label="HVAC Modes Enabled" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="3" max="31" value="15" size="1" >
					<Help>Which heating/cooling modes are available. 3 - Off, Heat; 5 - Off, Cool; 7 - Off, Heat, Cool; 15 - Off, Heat, Cool, Auto (Default); 19 - Off, Heat, Emergency Heat; 23 - Off, Heat, Cool, Emergency Heat; 31 - Off, Heat, Cool, Auto, Emergency Heat</Help>
					<Item label="Off, Heat" value="3" />
					<Item label="Off, Cool" value="5" />
					<Item label="Off, Heat, Cool" value="7" />
					<Item label="Off, Heat, Cool, Auto (Default)" value="15" />
					<Item label="Off, Heat, Emergency Heat" value="19" />
					<Item label="Off, Heat, Cool, Emergency Heat" value="23" />
					<Item label="Off, Heat, Cool, Auto, Emergency Heat" value="31" />
				</Value>
				<Value type="list" genre="config" instance="1" index="25" label="Configurable Terminal Setting" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="3" value="0" size="1" >
					<Help>Changes control of configurable terminal 0 - Disabled (Default); 1 - W3 - Third Stage HEAT or 2nd Stage of 2-Stage Auxiliary / Backup heat; 2 - H - External Dehumidifier Control; 3 - DH - External Dehumidifier Operation</Help>
					<Item label="Disabled" value="0" />
					<Item label="W3" value="1" />
					<Item label="H" value="2" />
					<Item label="DH" value="3" />
				</Value>
				<Value type="list" genre="config" instance="1" index="26" label="Power Source" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="1" value="0" size="1" >
					<Help>Which source of power is utilized. 0 - Battery (Default), 1 - C-Wire</Help>
					<Item label="Battery" value="0" />
					<Item label="C-Wire" value="1" />
				</Value>
				<Value type="short" genre="config" instance="1" index="27" label="Battery Alert Threshold Low" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="100" value="30" size="1" >
					<Help>Battery Alert Range (percentage)</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="28" label="Battery Alert Threshold Very Low" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="100" value="15" size="1" >
					<Help>Very Low Battery Alert Range (percentage)</Help>
				</Value>
				<Value type="list" genre="config" instance="1" index="30" label="Remote Temperature Enable" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="1" value="0" size="1" >
					<Help>Enables remote temperature sensor instead of built-in. 0 - Disabled (Default), 1 - Enabled</Help>
					<Item label="Disabled" value="0" />
					<Item label="Enabled" value="1" />
				</Value>
				<Value type="short" genre="config" instance="1" index="31" label="Heat Differential" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="10" max="100" value="30" size="4" >
					<Help>Heat Differential (in deg. F) Precision is tenths of a degree.</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="32" label="Cool Differential" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="10" max="100" value="30" size="4" >
					<Help>Cool Differential (in deg. F) Precision is tenths of a degree.</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="33" label="Temperature Reporting Threshold" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="5" max="20" value="10" size="4" >
					<Help>Temperature Reporting Range (in deg. F) Precision is tenths of a degree.</Help>
				</Value>
				<Value type="list" genre="config" instance="1" index="34" label="O/B Select" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="1" value="1" size="1" >
					<Help>Configuration of O/B terminal. 0 - O/B Terminal acts as B terminal, closed when cooling; 1 - O/B Terminal acts as O terminal, closed when heating (Default)</Help>
					<Item label="O/B as B" value="0" />
					<Item label="O/B as O" value="1" />
				</Value>
				<Value type="list" genre="config" instance="1" index="35" label="Z-Wave Echo Association Reports" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="1" value="0" size="1" >
					<Help>Enable/Disabled Echo Assoc. Reports. 0 - Disabled (Default), 1 - Enabled</Help>
					<Item label="Disabled" value="0" />
					<Item label="Enabled" value="1" />
				</Value>
1 Like

I just wanted to reply and say that on the latest version of hassio I still needed to edit the zwave configuration file and add the “Heating 1” (at index 1) to the COMMAND_CLASS_THERMOSTAT_SETPOINT section as diaphanouscloak suggested.

Just to be explicit for anyone who runs across this in the future. I shut down my zwave network, edited the zwcfg_*.xml file, added the “Heating 1” entry, and then restarted my zwave network. After doing that everything is working great with the default hassio thermostat card. Here is the entire COMMAND_CLASS_THERMOSTAT_SETPOINT section of my zwave config now. The rest of the entries were automatically added when including the thermostat. I think by default hassio tried to use the “Cooling 1” and “Unused 3” items.

<CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" version="3" 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="F" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="68" />
	<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="81.0" />
	<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="0" value="0.0" />
	<Value type="decimal" genre="user" instance="1" index="101" label="Heating 1_minimum" units="C" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="900.2" />
	<Value type="decimal" genre="user" instance="1" index="102" label="Cooling 1_minimum" units="C" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="1284.2" />
	<Value type="decimal" genre="user" instance="1" index="201" label="Heating 1_maximum" units="C" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="-0.00" />
	<Value type="decimal" genre="user" instance="1" index="202" label="Cooling 1_maximum" units="C" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="-0.00" />
</CommandClass>

Thanks for the help sorting out this issue!

1 Like

To fix this behavior you would need to modify the device XML in the source to force base="0"

I just replaced my two old Honeywell ZWave thermostats with a couple of the ADT ZWave+ I found on EBay for $30 each. I really liked those for their minimalist look. It took some effort to gather information to set them up for my Heat Pump system and have HA recognize them properly. Thanks in part to this thread, they have been working fantastic!

1 Like

FYI, I submitted a PR to officially get this included in the version of OZW that HASS will use in the future: https://github.com/OpenZWave/open-zwave/pull/2383

1 Like

Stumbled upon this. Excellent! Thanks for sharing.

My 2 ADC T200s occasionally show State 07 or State 10 instead of “Heating”.

Anyone experiencing this?

Thanks

By default the thermostat is configured with two heating stages and two cooling stages. When it enters the “second” stage (even if your HVAC unit doesn’t technically support that) it will change the state to 07 or 10 depending on heating a cooling.

This really has zero effect on the operation of the system, but if you want to fix it you can change the number of heat and number of cool stages to 1 in the config parameters.

1 Like