[RELEASE] Enhanced Z-Wave Thermostat Device Handler with Z-Wave Plus

Enhanced Z-Wave (Plus) Thermostat with Temperature, Humidity, Auto Time setting and advanced features Device Handler

This is an advanced DTH for Z-Wave and Z-Wave Plus thermostats. It fixes bugs in stock ST thermostat DTH, thermostat firmwares, enables advanced features to be accessed via SmartThings and adds additional functionality like battery saver modes, max/min setpoint limits, deadband synchronization, filters, differential, recovery modes etc. (See below for a detailed list per model)



Key features of the Enhanced DTH:

  • Supports secure inclusion and encrypted communication for Z-Wave Plus thermostats
  • Battery saver option to extend battery life
  • Synchronizing SmartThings dead-band settings with thermostat (default is 1°)
  • Fix for ST Celsius scale bug
  • Patches for firmware bugs
    • CT-xxx incorrect date
    • CT-xxx auto switch over
    • CT-xxx state synchronization
    • CT-xxx non battery models
  • Customize thermostat settings (CT-xxx, ZTS-xxx, MCO-xxx, Trane, Honyewell, GoControl)
    • Humidity offset correction
    • Temperature reporting sensitivity
  • GoControl configurable settings
    • Dead band configuration
    • Min cool temperature
    • Max heat temperature
    • Temperature offset correction
    • Set filter replacement hours
  • Honeywell configurable settings
    • Min cool temperature
    • Max heat temperature
    • Temperature offset correction
    • Enable/disable auto (heat/cool) changeover
    • Auto changeover temperature threshold
  • CT-xxx configurable settings
    • Lock (partial/full) and unlock controls
    • Humidity reporting sensitivity
    • Emergency/Aux heat pump contol
    • Recovery mode (fast/economy)
    • Recovery temperature differential
    • Temperature swing threshold
  • ZTS-xxx configurable settings
    • View, reset and set filter replacement timer
    • Dead band configuration
    • Temperature correction
    • Temperature swing threshold
  • Trane configurable settings
    • Detect/enable multi stage heating
  • MCO configurable settings
    • Temperature reporting sensitivity
    • Detect/enable multi stage heating
  • Show fan state (running or off even when set to Auto mode)
  • Humidity (CT-xxx, GoControl, Honeywell)
  • Battery (option to disable if C-Wire is present or no batteries)
  • Clock
  • Heat/Cool temperature settings
  • Auto detect supported thermostat modes
    • Off
    • Auto
    • Heat
    • Cool
    • Emergency heat
  • Auto detect supported fan modes
    • Off
    • On
    • Auto
    • Circulate
  • Thermostat models tested:
    • CT-xxx Z-Wave
    • CT-xxx Z-Wave Plus
    • ZTS-1xx / Qolsys IQ Z-Wave
    • ZTS-5xx Z-Wave Plus
    • GoControl GC xxx Z-Wave
    • GoControl RCS xxx Z-Wave
    • GoControl TBZxx (GC-TBZ48 / GC-TBZ48L) Z-Wave Plus
    • 2Gig Z-Wave (rebranded CT-xxx thermostats)
    • Linear Z-Wave
    • Linear Z-Wave Plus
    • Vivint Z-Wave
    • Lowes Z-Wave
    • Filtrete 3M Z-Wave
    • Honeywell Z-Wave (T6)
    • APX Z-Wave
    • MCO Z-Wave
    • Trane Z-Wave

Installation Instructions

You can find the DTH installation/update instructions here.

Check out these complimentary SmartApps

[RELEASE] 5-2 Day Programmable Thermostat Scheduler (Weekday, Weekend) with Remote Temperature Sensor for each Schedule

[RELEASE] Motion Sensor Thermostat with Remote temperature sensors, Presence detection and Schedules

[RELEASE] Mode Based Thermostat - Control Multiple Thermostats Temperature / Remote Temperature Sensors when Changing Modes

[RELEASE] Door Chimes and Notifications for Doorbells and Sensors

[RELEASE] Security System: Intruder Alert with Actions

[RELEASE] Unlimited customizable thermostat

NOTES

  • It will only show C-Wire if the thermostat was paired with the hub in repeater mode (i.e. with the C-Wire connected) otherwise it shows the battery level.
  • To enable repeater mode on CT-xxx/ZTS-500 thermostats, exclude the thermostat, connect the C-Wire and then pair the thermostat with the hub
  • The DTH automatically detects the available features on the thermostat and enables the appropriate tiles (otherwise it’ll show a blank).
  • To enable detection of Aux/Emergency/Multi stage heating for NON CT-xxx/ZTS-xxx thermostats (e.g. GoControl, Trane, MCO, Honeywell etc), enable the option in the device preferences page (disabled by default since most thermostats do not report it correctly)
  • If have a C-Wire with battery backup, enable the setting to report battery with C-Wire connected

How to soft reset CT-xxx thermostats (i.e. reconnect with the controller)

Open the thermostat top cover and there is a reset button. Press it for 1 seconds. Now open the ST app and click on the refresh tile to resync all the settings.
image

How to factory reset CT-xxx Thermostat & Z-Wave module

  1. Switch the thermostat to Off Mode
  2. Press and hold the lower left corner of touch screen for 5 seconds. The thermostat then resets itself, displays its current firmware version, and restarts in Off Mode.

How to factory reset CT-xxx Z-Wave module

  1. From the Menu screen, touch Mate icon. The Radio screen appears.
  2. Touch & hold Mate icon 10 seconds until you hear a beep. The thermostat will restore the Z-Wave module to the factory default settings.

How to factory reset CT-xxx Z-Wave module (alternative)

  1. Press the Mode button unless it’s in Off position
  2. Press the Menu button
  3. Press and hold the center of the screen for about 5 sec until the screen shows a number in the center of the screen and up/down arrows on the right side of the screen
  4. Press the Up arrow and wait for the onscreen count down to complete
  5. Press the Down arrow and wait for the onscreen count down to complete

This device handler is available on the RBoy Apps Server

Refer to our facebook page http://www.facebook.com/RBoySTApps to get the latest news and updates.

The latest version is available on the RBoy Apps server

Copyright © RBoy Apps

21 Likes
Help with CT100 Thermostat
Thermostat SmartApps that uses Virtual Switches to control Mode/Fan/SetPoints
GoControl 7 Day Thermostat - $17.00 Lowes (shipping avail)
Radio thermostat ct101
2Gig CT100 Thermostat
Thermostat SmartApps that uses Virtual Switches to control Mode/Fan/SetPoints
[RELEASE] Mode Based Thermostat - Control Multiple Thermostats Temperature / Remote Temperature Sensors when Changing Modes
Temperature Control
Thermostat app like NEST or Ecobee
TKB Home TZE93 Room Thermostat
[RELEASE] Thermostat Manager - An alternative to Thermostat Mode Director
Honeywell 9000-series integration - SmartApps
Go Control battery thermostat partially works
CT100 Thermostat history only shows temperature, no state change
Issues using the GoControl Z-wave thermostat with SmartThings
Honeywell thermostat not responding to ST
Can I give guest hub access to just one of my hubs
Zwave devices showing offline after moving location of hub
[RELEASE] 5-2 Day Programmable Thermostat Scheduler (Weekday, Weekend) with Remote Temperature Sensor for each Schedule
Scene can't set thermostat to Auto mode
CT101 thermostat - no longer pairing after switching to new app
New App - Thermostat temp updates not working
SmartApp not finding my zwave thermostat
Honeywell Thermostat Problem
Automatons not working with Honeywell Honeywell TH6320ZW2003 T6 Pro Series Z-Wave Stat Thermostat
Help with pairing Nutone Z wave switches and 2Gig Thermostat
CT100 Thermostat - No Mate Button
Garage Door Monitor - cant get past "when the garage door is open"
GoControl Thermostat Setpoint Automation Issues
Remotec Z-Thermostat (configuration with Z-Wave Commands)
How can I use Two Smart Thermostats in Same Zone
Water thermostat that reports temp to ST
Addressable thermostat recommendation
[RELEASE] Mode Based Thermostat - Control Multiple Thermostats Temperature / Remote Temperature Sensors when Changing Modes
Go Control - SmartThings Control of Thermostat
Qolsys IQ Thermostat (ZTS-110) - Easy mode and swing temp
How to make ST thermostat show up as a thermostat in Google Assistant
Can GoGontrol Thermostat (GC-TBZ48L) be added to SmartThings?
Moving from Iris: help needed selecting new devices
Z-Wave Secure Thermostat SEC_SRT322 from Vesternet. Anybody added this?
Help with Polling Battery for Thermostat (Custom Device Type)
CT30 Radio Thermostat: Weak interface?

Can you put the finished device type on github?

2 Likes

Yes I can but the whole point of the posting the changes above is for 2 reasons:

  1. Users can pick and choose the customizations they want
  2. When ST updates the base code, you can always just readjust the changes

Posting the whole code will just make it increased work to maintain the code (which is what happened with the original thread).

I’ve tried to make it step by step details walk through of how to make the changes and categorized it so you can choose the ones you want/don’t want. If you feel I can make it simpler, let me know and I’ll update it.

2 Likes

First, thank you. This thread has been immensely helpful. I have the CT80 and don’t need the battery portion but the humidity and clock set are awesome. Two questions:

  1. The up/down arrows only allow a slow change, one degree at a time. Is this a ST thing or something that can be adjusted? I could go back to the slider I suppose but I like the arrows better.

  2. My current mode state isn’t functioning properly. I switch to heat, refresh and it goes back to “off”. Seems to be a problem with the base ST code. Plan to dig into it, but wondered if you guys knew how to correct.

I’m not a coder… just trying to learn…

Thanks!

  1. No unfortunately it can’t run faster, that’s the way it works. Slider works great for large changes, up/down for smaller changes.

  2. I think your thermostat may not be responding to all the modes correctly. Check this piece of code and check what your thermostat returns as supported modes:

standardTile("mode", "device.thermostatMode", inactiveLabel: false, decoration: "flat") {
		state "off", label:'${name}', action:"switchMode", nextState:"to_heat"
		state "heat", label:'${name}', action:"switchMode", nextState:"to_cool"
		state "cool", label:'${name}', action:"switchMode", nextState:"..."
		state "auto", label:'${name}', action:"switchMode", nextState:"..."
		state "emergencyHeat", label:'${name}', action:"switchMode", nextState:"..."
		state "to_heat", label: "heat", action:"switchMode", nextState:"to_cool"
		state "to_cool", label: "cool", action:"switchMode", nextState:"..."
		state "...", label: "...", action:"off", nextState:"off"
	}

The reason it can’t run faster has nothing to do with this code, but to do with the underlying device type code. The device type does a set followed by a get with a 1 second delay between to let the device the commands. This delay is what you’re seeing. If you used a custom device code and removed the delay, this delay will dissappear.
It’ll be there irrespective of what type of inputs you use, slider or buttons

That’s what I assumed.

Thanks for posting! I followed RBOY’s steps and opted to leave the sliders in place instead of the up/down controls. I am able to display humidity and battery perfectly in the App for one of my ct100’s. Looks like it auto-sets the clock as well (looking at the activity log).

On my other ct100, the clock auto-sets but… the humidity and battery tiles were each displaying a pair of hyphens ("–"). The only difference I can see between the two ct100’s are in the Device List. One shows Status as INACTIVE and the other shows as ACTIVE. The one showing Status as INACTIVE displays the pair of hyphens for battery and humidity. After closing the App and terminating it a couple times, the Humidity started to display correctly on the device that had appeared as INACTIVE. Checking the Device LIst, again, both ct100’s now appear as ACTIVE.

Since I’m mainly interested in Humidity, its not a big issue getting Battery to display correctly for the 2nd ct100, but am curious if I’m missing something.

Any suggestions would be greatly appreciated, and thanks again for posting the improved code!

I think it takes upto 24 hours to populate. Just refresh and wait :smile:

Did this ever make it to GIT?

no I don’t think it can, this code refers to modifying the base code from ST and not the whole code in itself, so putting on GIT won’t help.

thank you for this, much better than the stock zwave controller by ST. such a simple code change, i wonder why they wont implement it themselves.

is there anyway to program these devices? i cannot find a program menu anywhere.

nevermind, looks like you have to use a smart app to manage program settings. this stuff is way too complicated for the average user lol.

Wow! Just a quick shout-out for this app and for the helpful thread too. (Quick side question, how often does it auto-set the thermostat clock, just once or every so often?)

Yesterday we installed my 2gig CT100 thermostat and successfully connected it to my ST ecosystem. This was thing #20, reaching a minor yet fun milestone - hooray! :wink:

The stock code seemed alright but I was curious about humidity and battery life, and so I went searching through the community to see what was out there. And here we are!

This morning I followed the directions posted above, worked my way through the code and made the changes (I chose to go all-in with the mods) and voila, it works like magic.

Just wanted to thank you again - this indeed is very helpful code, and the ability to see the battery life and the humidity is great (plus the better icons, and the up/down buttons).

Cheers and thanks,
Steve

Seasons greetings!

Cool - I’m now on day two with the custom app, and I have a question about a potential mod or enhancement to it (or maybe it does this and I’m not sure how to activate it).

What I’d like to do is visually see if the fan blower is active or idle; I see the status in the logs so I’m assuming it’s doable; perhaps a different color tile to indicate active vs. idle?

Any hints or suggestions? I’d love to roll up my sleeves and try coding the idea… just was looking for a nudge in the right direction and/or some guidance to get me started.

Thanks again!

I’ve been trying to get this working properly but I’m stuck. Everything seems to function properly other than the tiles updating. It may be a silly question but what’s the best way to confirm what my stat supports as far as modes? I’ve been trying to find it in documentation, no luck. Not sure if I’m just looking in the wrong place or there’s an easier way. Again, I have the Radio Thermostat CT80. Thanks.

Check the live logs and also the manual.

Fixed battery updates not working after new year on some thermostats

Just wanted to take a minute to thank all involved in this. I was struggling to find a thermostat without needing a C wire. I was excited once I found out I could use the Lowes brand. Would have been fine without humidity and battery levels but now realize how great it is.

Was easy to step thru the code, took me while since this was my first time, and it worked the first time.

Thanks for posting this idiot proof guide :smile:
Scott

1 Like

Mine seems to be working fine except if we manually set the desired temp on the thermostat itself…it does not reflect on the app. For example, if I set the temp to 72 on the app then later we bump it up to 73 from the thermostat…it still shows 72 on the app. It shows the correct current temp it’s just that one that does not always sync up. Setting the temp on the app does show the change on the thermostat.

Anything I can try?

That’s correct, the device app doesn’t poll the device to the use set temp, the app only displays the last configured temperature. Interesting point, will see if it can be done.