Honeywell Smart Wi-Fi Thermostat Compatibility

Remember I didn’t originally write this device type
. I only modified it and enhanced it in the last few rounds of changes.

You are still getting thumbs up from hundreds if not thousands of us. You are doing something free of charge for us where either we don’t have the knowledge or time to do it (for me is no knowledge). I say thank you.

I don’t believe u will.be able to control emergency heat with this interface because if you go to the Honeywell web pages for control there are no options to turn on emergency heat. Only heat cool auto off etc. This app uses the web interface and thus it must be there in order to be useable.

I can try it if someone with emergency heat can force it on… and then give me the ide log output which shows switch position when emergency heat is on… I doubt it will work but I could code up a version to let you toggle to that switch position to see if it works.

ld = [fanData:[fanModeCirculateAllowed:true, fanModeAutoAllowed:true, fanModeFollowScheduleAllowed:true, fanIsRunning:false, fanModeOnAllowed:true, fanMode:2], drData:[Load:127.5, HeatSetpLimit:0, OptOutable:false, DeltaHeatSP:-0.01, CoolSetpLimit:0, Phase:-1, DeltaCoolSP:-0.01], uiData:[OutdoorTemperature:128, TemporaryHoldUntilTime:1110, ScheduleHeatSp:60.0000, DeviceID:1441473, DispTemperatureAvailable:true, VacationHold:0, VacationHoldUntilTime:0, CoolSetpoint:78.0000, ScheduleCoolSp:78.0000, SwitchHeatAllowed:true, CoolNextPeriod:74, IndoorHumidity:29.0000, SwitchAutoAllowed:false, SetpointChangeAllowed:true, HeatLowerSetptLimit:40.0000, OutdoorHumidStatus:128, SwitchOffAllowed:true, OutdoorHumidityAvailable:false, StatusCool:1, OutdoorTemperatureAvailable:false, EquipmentOutputStatus:0, StatusHeat:1, CurrentSetpointStatus:1, HoldUntilCapable:true, CoolUpperSetptLimit:99.0000, SwitchCoolAllowed:true, OutdoorHumidity:128, DualSetpointStatus:false, SwitchEmergencyHeatAllowed:true, Commercial:false, CoolLowerSetptLimit:50.0000, OutdoorHumiditySensorNotFault:true, IndoorHumiditySensorAvailable:true, ScheduleCapable:true, DisplayUnits:F, DispTemperature:61.0000, Deadband:0.0000, HeatUpperSetptLimit:90.0000, IsInVacationHoldMode:false, OutdoorTemperatureSensorNotFault:true, HeatSetpoint:60.0000, DispTemperatureStatus:0, HeatNextPeriod:74, IndoorHumiditySensorNotFault:true, OutdoorTempStatus:128, IndoorHumidStatus:0, SystemSwitchPosition:0], canControlHumidification:false, hasFan:true]

The above is the log and a screenshot of the HW app with EMERGENCY HEAT specified. The only difference in the ST log with Heat specified is that SystemSwitchPosition:1. There is a missing parm that switches EHeat on and off. This is independent from HEAT. The thermostat has an algorithm to run AUX heat (Resistance Heat) and the heat pump at the same time or only Heat Pump Heat. Emergency heat runs the Resistance heat only and shuts the heat pump out. We need this missing parm

First off I would like to thank everyone who has contributed to this. This device has been working great for me. I haven’t seen anything so assume no one has found a way to get the humidity to report to other apps? Been trying to set up some Rules utilizing the humidity reading.

New version where timezone offset is no longer needed as I figured out a better way to do time and it works correctly whether you are on daylight savings or not… I knew there must be a way but there was no smarthings documentation on it.

recommend you update. if you want

EDIT:

I got it figured out. Added as a “Device Handler” and then added a new “Device Type” configured it in the app and was able to retrieve statuses and such.

The issue I have now is that it doesn’t seem to be updating anything after the initial configuration. None of the buttons seem to actually do anything (up/down temp, fan, mode, etc).

Hrm…

Larry,

Thanks for your work on this. I’m trying to get this installed, the first “SmartApp” I’ve tried with my brand new hub. When I attempt to save the code I receive the following error:

groovy.lang.MissingMethodException: No signature of method: script1459518006318380484892.metadata() is applicable for argument types: (script1459518006318380484892$_run_closure2) values: [script1459518006318380484892$_run_closure2@59befd01]
Possible solutions: getMetadata(), getState(), setState(java.lang.Object), metaClass(groovy.lang.Closure) @ line 54

Line 54 corresponds to:

preferences {
input(“username”, “text”, title: “Username”, description: “Your Total Comfort User Name”, required: true)
input(“password”, “password”, title: “Password”, description: “Your Total Comfort password”,required: true)
input(“honeywelldevice”, “text”, title: “Device ID”, description: “Your Device ID”, required: true)
input (“enableOutdoorTemps”, “enum”, title: “Do you have the optional outdoor temperature sensor and want to enable it?”, options: [“Yes”, “No”], required: false, defaultValue: “No”)
input (“tempScale”, “enum”, title: “Fahrenheit or Celsius?”, options: [“F”, “C”], required: false, defaultValue: “F”)
//input(“tzOffset”, “number”, title: “Time zone offset +/-xx?”, required: false, defaultValue: -5, description: “Time Zone Offset ie -5.”)
}

Any help? I’ve had the hardest time trying to figure out how to install these “SmartApps” with this system, documentation is not great at best. So what I did was “Create New SmartApp”, “From Code”, drop in your code. I’ve also tried creating and saving a SmartApp from the default and then going back and editing the code removing everything after the canned “preferences” and dropping in your code. Same error.

Any suggestions would be greatly appreciated.

it is not a smartapp you are installing in the wrong location it is a device handler.

Thanks Larry. Yeah, I finally figured that out. “It Works!”

Kinda new at this and installation instructions for code seems to have changed a few times over the years so it is hard to get a “How To”.

The buttons do seem to work now if I peck at them slowly. Good to go!

ya nothing I can do about that … that is the round trip to do changes… Take it or leave it… if you cannot deal with the slow speed to change temp you can go back to the stock on where it has a slider but is difficult to set a specific temp… I prefer this version as I don’t change that many degrees at a time anyway.

EDIT: DUHHHH, ugh I’m an idiot. You do this from the app. Never Mind. Turns out custom rules do not show on this screen anyway.

Yeah, I understand, no complaints here that’s for sure. Great work!

Is it possible to use just the temperature reading as another “device”? On the home screen of the Smart Things app it shows my “Smoke Detectors” as green and it appears I can add a temperature sensor to this screen too.

I’ve been poking around trying to add a device that only reads the “temperature measure” capability of the TCC API but it doesn’t appear I can do that. Do I need to hack up your code and create a new device handler to just grab the temperature and then create a new device based on that device handler? Or is there a way to create a new device of “Temperature Monitor” and use the current Device Handler?

I’m willing to poke at the code if necessary. It just seemed odd that I can’t use the existing API for a second device as a temperature sensor.

I’ve been long trying to get this to work with my Honeywell 9000 WIFI RTH9580WF with no success. I installed the latest lgkahn code from github as a device on https://graph.api.smartthings.com/ide/devices and published to “me”. When I added the device of this type, the version drop down gave me “self-published” or “published” or something else. I chose “self-published”. I added my device ID, username, password. And yet, it still does not work right.

I do not see temperatures. I cannot turn heat on or off (I have no AC). And the fan button does not react, and stays on “auto”.

If I change it at Honeywell’s website, the changes do not reflect on the smartthings app.

Any ideas?

Hondo - can you please send me a copy for iOS?
claudio90@gmail.com - thank you!

Sorry

No longer have a Honeywell .

Deleted the code

Wrong Id. Post the ide logs

I bet lgkahn is correct…the deviceid is not what you’d expect…Superbob has some instructions that work and tell you how to get the deviceid.

Hi all - I am not able to access the “settings” screen to set my preferences on the iOS app. I’m hitting the “cog” but only can see an option to change the device name. Not put in my honeywell account, password, or device ID.
Please advise?

First, I’d like to thank you for all your work maintaining this, your version is the closest I’ve gotten to 100%.

My question is related to the fan mode, for some reason, I can’t seem to change it, I tried tweaking your code to no avail. Below is the return of a successful request, any assistance you could provide would be greatly appreciated:

10:15:06 AM: debug ld = [fanData:[fanModeCirculateAllowed:true, fanModeAutoAllowed:true, fanModeFollowScheduleAllowed:false, fanIsRunning:false, fanModeOnAllowed:true, fanMode:2], drData:[Load:127.5, HeatSetpLimit:0, OptOutable:false, DeltaHeatSP:-0.01, CoolSetpLimit:0, Phase:-1, DeltaCoolSP:-0.01], uiData:[OutdoorTemperature:128.0000, TemporaryHoldUntilTime:1035, ScheduleHeatSp:60.0000, DeviceID:[sanitized], DispTemperatureAvailable:true, VacationHold:0, VacationHoldUntilTime:0, CoolSetpoint:79.0000, ScheduleCoolSp:81.0000, SwitchHeatAllowed:true, CoolNextPeriod:69, IndoorHumidity:128.0000, SwitchAutoAllowed:false, SetpointChangeAllowed:true, HeatLowerSetptLimit:40.0000, OutdoorHumidStatus:128, SwitchOffAllowed:true, OutdoorHumidityAvailable:false, StatusCool:1, OutdoorTemperatureAvailable:false, EquipmentOutputStatus:0, StatusHeat:1, CurrentSetpointStatus:1, HoldUntilCapable:true, CoolUpperSetptLimit:99.0000, SwitchCoolAllowed:true, OutdoorHumidity:128.0000, DualSetpointStatus:false, SwitchEmergencyHeatAllowed:false, Commercial:false, CoolLowerSetptLimit:50.0000, OutdoorHumiditySensorNotFault:true, IndoorHumiditySensorAvailable:false, ScheduleCapable:true, DisplayUnits:F, DispTemperature:75.0000, Deadband:0.0000, HeatUpperSetptLimit:90.0000, IsInVacationHoldMode:false, OutdoorTemperatureSensorNotFault:true, HeatSetpoint:60.0000, DispTemperatureStatus:0, HeatNextPeriod:69, IndoorHumiditySensorNotFault:true, OutdoorTempStatus:128, IndoorHumidStatus:128, SystemSwitchPosition:3], canControlHumidification:false, hasFan:true]

that doesn’t really tell me anything are you sure it is not changing… have you done refresh after changing it… what thermostat do you have… you will have to put more debugging in to see what is getting passed in when changing it and what is coming back on the refresh… also have you tested changing it from the web interface of Honeywell.
it could be a problem with your install or hardware… I have no issue changing the fan mode on all 3 of mine.

@Lgkahn Many thanks for picking this up and making it so useful. I’m running your device handler and having success setting modes and temps, but one thing I don’t see… Is it possible to tell it to return to “FOLLOWING SCHEDULE”? As I understand it, when a specific temperature is set from ST, the thermostat goes into temporary hold mode. I’d like to tell it to return to its schedule and set the temperature to whatever is preset in the thermostat’s schedule. Possible? Thanks again!