Dumping my Nest thermostats, what are you replacing yours with?

Hi all, I have a new house and installed my system and sensors into it. As part of that I installed my 2 Nest thermostats; upstairs and downstairs. So when I did this, I couldn’t get a new key from google as the API is basically shutdown.

Needless to say, I was/am PISSED :face_with_symbols_over_mouth: . I’m going to remove the Nest thermostats and I wanted to know what everyone else is using or replacing theirs with?

I’m kind of leaning to a Zwave based thermostat, but trying to keep an open mind. My current selection is a gocontrol , model CG-TBZ48.

Opinions?

I would highly recommend the Honeywell TH6320ZW2003. More expensive, but the reporting on the Zwave side is soooooo much better than the CT101+ I had.

I’m happy with my ecobee3 lite. You can control it locally with HomeKit Controller or use the HA integration (cloud polling). Local control with HomeKit has limited functionality though.

In my setup I have three Vivint Element thermostats. I use it only for radiant heating and it works great.

Trane XR-524

There is an alternative you might like to try before you ditch them I made a crappy Nest Thermostat integration that will work as a stopgap until alternatives come out

2 Likes

I have the Drayton Wiser system by Schneider Electric. Individual room control with wireless TRV’s. This product is part of a wider Wiser branded ecosystem offer of lighting control, energy monitoring and sensors being introduced. Really happy with the system which has been good value for money compared to the cost of other leading brands.

I love my Ecobee!

I’ve been using Honeywell RTH6580WF1001 for the past few years and had pretty good success with them. They’re WiFi and do therefore need to leverage Honeywell’s cloud in order to update.

Went this route at the time as I didn’t have ZWave installed in my home yet. Anyhow, for anyone looking for a WiFi option, these are pretty good & relatively affordable. (~$80 each these days).

Yep, I am mostly happy with Drayton Wiser as well.
However had to buy wireless thermostats for each room, as it is impossible to relay on Valve only.
Have it integrated with HA via NodeRed, while there is also a custom component that you can grab from GitHub. It may be soon integrated to HA, I hope.

Not quite sure I am following, I have 1 room thermostat and 8 TRV’s. I can open each wireless TRV individually. Then any wireless TRV shall call for the heating channel on the heat hub to open the wired mixing valve serving that particular zone the radiator TRV is fed off. I am also using node red. See my post here Drayton Wiser Home Assistant Integration

Yes mate, you basically was my initial source of information about Wiser and NodeRed.
I have replied to the other thread with the explanation: Drayton Wiser Home Assistant Integration

So Google has retired ‘Works with Nest’, but is there no chance that services like HA and IFTTT will qualify for the ‘Works with Google Assistant’ scheme?

I have the drayton wiser stuff, and it works really well. I created a HA compoment and I think it works well (https://github.com/asantaga/wiserHomeAssistantPlatform) its currently available on HACS and whilst Id love to get it into HA properly I just dont have the time to go through all the hoops HA demand…
any volunteers?

Could you possibly share how you were able to get the Vivints to work? I have a CT200 that I can add to my network, however I cannot change the set point for heating mode. I get a bunch of random entities. One of them is a climate entity for cool mode (climate.radio_thermostat_company_of_america_unknown_type_c801_id_0022_cooling_1). This entity will only allow me to change the cooling setpoint.

This is how I modified the code in the zwcfg file for my needs. Since I am using the thermostat only for radiant heating I removed all the other modes.

	<Node id="19" name="" location="" basic="4" generic="8" specific="6" roletype="7" devicetype="4608" nodetype="0" type="General Thermostat V2" listening="false" frequentListening="true" beaming="true" routing="true" max_baud_rate="40000" version="4" query_stage="Complete">
		<Manufacturer id="98" name="2GIG Technologies">
			<Product type="c801" id="c" name="Vivint Thermostat" />
		</Manufacturer>
		<CommandClasses>
			<CommandClass id="32" name="COMMAND_CLASS_BASIC" version="1" request_flags="5" innif="true" mapping="64">
				<Instance index="1" />
				<Instance index="2" endpoint="1" />
			</CommandClass>
			<CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="6" request_flags="1" innif="true">
				<Instance index="1" />
				<Instance index="2" endpoint="1" />
				<Instance index="3" endpoint="2" />
				<Value type="decimal" genre="user" instance="1" index="1" label="Temperature" units="F" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="75.5" />
				<Value type="decimal" genre="user" instance="1" index="4" label="Power" units="W" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="35" />
				<Value type="decimal" genre="user" instance="1" index="5" label="Relative Humidity" units="%" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="32" />
				<Value type="decimal" genre="user" instance="2" index="1" label="Temperature" units="F" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="76.5" />
				<Value type="decimal" genre="user" instance="2" index="5" label="Relative Humidity" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0.0" />
				<Value type="decimal" genre="user" instance="3" index="1" label="Temperature" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0.0" />
				<Value type="decimal" genre="user" instance="3" index="5" label="Relative Humidity" units="%" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="32" />
			</CommandClass>
			<CommandClass id="64" name="COMMAND_CLASS_THERMOSTAT_MODE" version="1" request_flags="5" innif="true">
				<Instance index="1" />
				<Instance index="2" endpoint="1" />
				<Value type="list" genre="user" instance="1" index="0" label="Mode" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="1" size="1">
					<Item label="Off" value="0" />
					<Item label="Heat" value="1" />
				</Value>
				<Value type="list" genre="user" instance="2" index="0" label="Mode" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="1" size="1">
					<Item label="Off" value="0" />
					<Item label="Heat" value="1" />
				</Value>
				<SupportedModes>
					<Mode index="0" label="Off" />
					<Mode index="1" label="Heat" />
				</SupportedModes>
			</CommandClass>
			<CommandClass id="66" name="COMMAND_CLASS_THERMOSTAT_OPERATING_STATE" version="1" request_flags="5" innif="true">
				<Instance index="1" />
				<Instance index="2" endpoint="1" />
				<Value type="string" genre="user" instance="1" index="0" label="Operating State" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="Idle" />
				<Value type="string" genre="user" instance="2" index="0" label="Operating State" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="Idle" />
			</CommandClass>
			<CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" version="1" request_flags="5" innif="true" base="1">
				<Instance index="1" />
				<Instance index="2" endpoint="1" />
				<Value type="decimal" genre="user" instance="1" index="1" label="Heat" units="F" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="74" />
			</CommandClass>
			<CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1" request_flags="5" innif="true">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="94" name="COMMAND_CLASS_ZWAVEPLUS_INFO" version="1" request_flags="5" innif="true">
				<Instance index="1" />
				<Instance index="2" endpoint="1" />
				<Instance index="3" endpoint="2" />
				<Value type="byte" genre="system" instance="1" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="1" />
				<Value type="short" genre="system" instance="1" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="4608" />
				<Value type="short" genre="system" instance="1" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="4608" />
				<Value type="byte" genre="system" instance="2" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="short" genre="system" instance="2" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
				<Value type="short" genre="system" instance="2" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
				<Value type="byte" genre="system" instance="3" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="short" genre="system" instance="3" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
				<Value type="short" genre="system" instance="3" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
			</CommandClass>
			<CommandClass id="96" name="COMMAND_CLASS_MULTI_INSTANCE/CHANNEL" version="4" request_flags="1" innif="true">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="112" name="COMMAND_CLASS_CONFIGURATION" version="1" request_flags="5" innif="true">
				<Instance index="1" />
				<Instance index="2" endpoint="1" />
				<Value type="byte" genre="config" instance="1" index="11" label="Parameter #11" units="0" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="byte" genre="config" instance="1" index="15" label="Parameter #15" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
			</CommandClass>
			<CommandClass id="114" name="COMMAND_CLASS_MANUFACTURER_SPECIFIC" version="1" request_flags="5" innif="true">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="115" name="COMMAND_CLASS_POWERLEVEL" version="1" request_flags="5" innif="true">
				<Instance index="1" />
				<Value type="list" genre="system" instance="1" index="0" label="Powerlevel" units="dB" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Item label="Normal" value="0" />
					<Item label="-1dB" value="1" />
					<Item label="-2dB" value="2" />
					<Item label="-3dB" value="3" />
					<Item label="-4dB" value="4" />
					<Item label="-5dB" value="5" />
					<Item label="-6dB" value="6" />
					<Item label="-7dB" value="7" />
					<Item label="-8dB" value="8" />
					<Item label="-9dB" value="9" />
				</Value>
				<Value type="byte" genre="system" instance="1" index="1" label="Timeout" units="seconds" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="button" genre="system" instance="1" index="2" label="Set Powerlevel" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
				<Value type="byte" genre="system" instance="1" index="3" label="Test Node" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="list" genre="system" instance="1" index="4" label="Test Powerlevel" units="dB" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Item label="Normal" value="0" />
					<Item label="-1dB" value="1" />
					<Item label="-2dB" value="2" />
					<Item label="-3dB" value="3" />
					<Item label="-4dB" value="4" />
					<Item label="-5dB" value="5" />
					<Item label="-6dB" value="6" />
					<Item label="-7dB" value="7" />
					<Item label="-8dB" value="8" />
					<Item label="-9dB" value="9" />
				</Value>
				<Value type="short" genre="system" instance="1" index="5" label="Frame Count" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
				<Value type="button" genre="system" instance="1" index="6" label="Test" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
				<Value type="button" genre="system" instance="1" index="7" label="Report" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
				<Value type="list" genre="system" instance="1" index="8" label="Test Status" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Item label="Failed" value="0" />
					<Item label="Success" value="1" />
					<Item label="In Progress" value="2" />
				</Value>
				<Value type="short" genre="system" instance="1" index="9" label="Acked Frames" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
			</CommandClass>
			<CommandClass id="128" name="COMMAND_CLASS_BATTERY" version="1" request_flags="5" innif="true">
				<Instance index="1" />
				<Instance index="2" endpoint="1" />
				<Value type="byte" genre="user" instance="1" index="0" label="Battery Level" units="%" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="byte" genre="user" instance="2" index="0" label="Battery Level" units="%" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="100" />
			</CommandClass>
			<CommandClass id="129" name="COMMAND_CLASS_CLOCK" version="1" request_flags="5" innif="true">
				<Instance index="1" />
				<Instance index="2" endpoint="1" />
				<Value type="list" genre="user" instance="1" index="0" label="Day" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="2" size="1">
					<Item label="Monday" value="1" />
					<Item label="Tuesday" value="2" />
					<Item label="Wednesday" value="3" />
					<Item label="Thursday" value="4" />
					<Item label="Friday" value="5" />
					<Item label="Saturday" value="6" />
					<Item label="Sunday" value="7" />
				</Value>
				<Value type="byte" genre="user" instance="1" index="1" label="Hour" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="11" />
				<Value type="byte" genre="user" instance="1" index="2" label="Minute" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="11" />
				<Value type="list" genre="user" instance="2" index="0" label="Day" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="2" size="1">
					<Item label="Monday" value="1" />
					<Item label="Tuesday" value="2" />
					<Item label="Wednesday" value="3" />
					<Item label="Thursday" value="4" />
					<Item label="Friday" value="5" />
					<Item label="Saturday" value="6" />
					<Item label="Sunday" value="7" />
				</Value>
				<Value type="byte" genre="user" instance="2" index="1" label="Hour" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="11" />
				<Value type="byte" genre="user" instance="2" index="2" label="Minute" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="11" />
			</CommandClass>
			<CommandClass id="133" name="COMMAND_CLASS_ASSOCIATION" version="1" request_flags="5" innif="true">
				<Instance index="1" />
				<Instance index="2" endpoint="1" />
				<Instance index="3" endpoint="2" />
				<Associations num_groups="1">
					<Group index="1" max_associations="2" label="Group 1" auto="true" multiInstance="true">
						<Node id="1" />
					</Group>
				</Associations>
			</CommandClass>
			<CommandClass id="134" name="COMMAND_CLASS_VERSION" version="1" request_flags="5" innif="true">
				<Instance index="1" />
				<Instance index="2" endpoint="1" />
				<Value type="string" genre="system" instance="1" index="0" label="Library Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="3" />
				<Value type="string" genre="system" instance="1" index="1" label="Protocol Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="4.05" />
				<Value type="string" genre="system" instance="1" index="2" label="Application Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="11.27" />
				<Value type="string" genre="system" instance="2" index="0" label="Library Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="Unknown" />
				<Value type="string" genre="system" instance="2" index="1" label="Protocol Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="Unknown" />
				<Value type="string" genre="system" instance="2" index="2" label="Application Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="Unknown" />
			</CommandClass>
			<CommandClass id="135" name="COMMAND_CLASS_INDICATOR" version="1" request_flags="5" innif="true">
				<Instance index="1" />
				<Instance index="2" endpoint="1" />
				<Value type="byte" genre="user" instance="1" index="0" label="Indicator" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="byte" genre="user" instance="2" index="0" label="Indicator" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
			</CommandClass>
			<CommandClass id="142" name="COMMAND_CLASS_MULTI_CHANNEL_ASSOCIATION" version="1" request_flags="5" innif="true">
				<Instance index="1" />
				<Instance index="2" endpoint="1" />
				<Associations num_groups="1">
					<Group index="1" max_associations="2" label="Group 1" auto="true" multiInstance="true">
						<Node id="1" />
					</Group>
				</Associations>
			</CommandClass>
		</CommandClasses>
	</Node>

1 Like

This is perfect. Thank you so much. I was able to get it working by using your config as a template. Biggest issue I had was that I run hassio in a docker and when I kept trying to edit my zwave config it would just reset to the cache version. Once I shut down hassio and edited the config within my server environment and restarted, the correct values are there and I can now use this thermostat. Thank you again!

Nice! Although Vivint thermostats look simple they work great and you don’t have to rely on cloud services which can be shut down at any time.

I also heard Ecobee thermostats work very well, even though the integration is via their cloud API.

Three Nests replaced with Ecobees so far. Smart Thermostat (V5) for the main one and 3-Lites for the others. Awaiting one more 3-Lite so I can finally uninstall the Nest app and say goodbye for good. Very happy with them and glad I made the switch. As recent reviews have said, the Ecobee is better for tinkerers.