[RELEASE] Beta 1 - version of Honeywell Home Thermostats (Lyric etc...)

Hi Taylor,
Was thrilled to discover your app and driver!
Thank you! I've been waiting for months.

I installed both your APP and driver per your instructions and authenticated with Honeywell Home. Discover worked and the device was created.

The result: I only have 1-way partial communication with my Lyric Round th8732wf.

The app/driver receives updates from the thermostat/Honeywell Home, however the thermostat/Honeywell Home cannot receive commands (heating set point, etc.) sent from the app.

Per your suggestion, I enabled debug in both the app and driver.
Please let me know if there's any data I can send you to enable symmetrical communications.

Much appreciated and close to finally disabling the SmartThings Hub!
Ken

Update:

The only command that seems to work is Changing the "Thermostat Fan Mode"
From Debug:

  • dev:26662020-12-31 10:30:18.632 am infoDownstairs Thermostat Fan Mode Chanaged to: auto
  • dev:26662020-12-31 10:30:15.897 am debugDownstairs Thermostat setThermostatFanMode called

If I attempt to change the Heating Set point, debug displays the following:

  • dev:26662020-12-31 10:33:53.279 am warnDownstairs Thermostat Set point failed, attempting a refresh and re-try.

Did you enable debug logging in the app? There is a lot of debug info dumped in the app, not so much in the driver.

Yes.
Here's the debug after attempting to Set the heating set point:

Okay, the app debug log gives a clue as to what the real issue is. Taylor will have to take a look at this. It looks like a bug in what options are required when making the API call to change the setpoint, i.e. EmergencyHeatActive.

Does doing a refresh work for you? Try clicking the refresh button on the driver page and look at the log after doing so.

Yes. Here's the debug:

app:27142020-12-31 11:37:01.612 am debugScheduling Refresh cronstring: 0 */1 * ? * *

app:27142020-12-31 11:37:01.608 am debugupdateThermostats-thermostatOperatingState: idle

app:27142020-12-31 11:37:01.604 am debugupdateThermostats-fanRunning: false

app:27142020-12-31 11:37:01.601 am debugrefreshHelper() cloudString:fanRunning - deviceString:thermostatFanState - device:Downstairs Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:37:01.597 am debugupdateThermostats-mode: Auto

app:27142020-12-31 11:37:01.593 am debugrefreshHelper() cloudString:mode - deviceString:thermostatFanMode - device:Downstairs Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:37:01.588 am debugupdateThermostats-allowedModes: [Auto, On, Circulate]

app:27142020-12-31 11:37:01.584 am debugrefreshHelper() cloudString:allowedModes - deviceString:supportedThermostatFanModes - device:Downstairs Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:37:01.580 am debugupdateThermostats-autoChangeoverActive: false

app:27142020-12-31 11:37:01.576 am debugrefreshHelper() cloudString:autoChangeoverActive - deviceString:autoChangeoverActive - device:Downstairs Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:37:01.572 am debugupdateThermostats-mode: Heat

app:27142020-12-31 11:37:01.568 am debugrefreshHelper() cloudString:mode - deviceString:thermostatMode - device:Downstairs Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:37:01.564 am debugupdateThermostats-coolSetpoint: 76

app:27142020-12-31 11:37:01.560 am debugrefreshHelper() cloudString:coolSetpoint - deviceString:coolingSetpoint - device:Downstairs Thermostat - optionalUnits:F - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:37:01.556 am debugupdateThermostats-heatSetpoint: 68

app:27142020-12-31 11:37:01.552 am debugrefreshHelper() cloudString:heatSetpoint - deviceString:heatingSetpoint - device:Downstairs Thermostat - optionalUnits:F - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:37:01.548 am debugupdateThermostats-allowedModes: [Cool, Heat, Off]

app:27142020-12-31 11:37:01.544 am debugrefreshHelper() cloudString:allowedModes - deviceString:allowedModes - device:Downstairs Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:37:01.539 am debugupdateThermostats-indoorHumidity: 37

app:27142020-12-31 11:37:01.530 am debugrefreshHelper() cloudString:indoorHumidity - deviceString:humidity - device:Downstairs Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:37:01.526 am debugupdateThermostats-allowedModes: [Cool, Heat, Off]

app:27142020-12-31 11:37:01.522 am debugrefreshHelper() cloudString:allowedModes - deviceString:supportedThermostatModes - device:Downstairs Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:37:01.514 am debugupdateThermostats-indoorTemperature: 68

app:27142020-12-31 11:37:01.510 am debugrefreshHelper() cloudString:indoorTemperature - deviceString:temperature - device:Downstairs Thermostat - optionalUnits:F - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:37:01.501 am debugupdateThermostats-tempUnits: F

app:27142020-12-31 11:37:01.494 am debugreJson: {[thermostatVersion:02.02.20.60, scheduleStatus:Resume, allowedTimeIncrements:15, settings:[homeSetPoints:[homeHeatSP:70, homeCoolSP:78, units:Fahrenheit], awaySetPoints:[awayHeatSP:62, awayCoolSP:85, smartCoolSP:80, smartHeatSP:55, useAutoSmart:true, units:Fahrenheit], hardwareSettings:[brightness:6, volume:10, maxBrightness:10, maxVolume:10], fan:[allowedModes:[Auto, On, Circulate], changeableValues:[mode:Auto], fanRunning:false], temperatureMode:[feelsLike:true, air:true], specialMode:[autoChangeoverActive:false, emergencyHeatActive:false]], deviceClass:Thermostat, deviceType:Thermostat, deviceID:TCC-2633136, userDefinedDeviceName:Thermostat, name:Thermostat, schedule:[scheduleType:Timed, scheduleSubType:NA], isAlive:true, isUpgrading:false, isProvisioned:false, macID:00D02D953F34, deviceSettings:[:], service:[mode:Up], dataSyncStatus:UnKnown, units:Fahrenheit, indoorTemperature:68, outdoorTemperature:48, allowedModes:[Cool, Heat, Off], deadband:0, hasDualSetpointStatus:false, minHeatSetpoint:40, maxHeatSetpoint:99, minCoolSetpoint:40, maxCoolSetpoint:99, changeableValues:[mode:Heat, autoChangeoverActive:false, emergencyHeatActive:false, heatSetpoint:68, coolSetpoint:76, heatCoolMode:Heat], operationStatus:[mode:EquipmentOff], smartAway:[active:false, timeOfDay:00:00:00, durationInHours:0, durationInDays:0, lastUsedFormat:TimeOfDay, endsIn:2000-01-01T00:00:00-05:00], indoorHumidity:37, indoorHumidityStatus:Measured, deviceModel:Round]}

app:27142020-12-31 11:37:01.468 am debugreCode: {200}

app:27142020-12-31 11:37:00.792 am debugLocation Discovery-params [uri:https://api.honeywell.com/v2/devices/thermostats/TCC-2633136?apikey=DEb39Y2eKMrv3fGpoKudWvLOZ9LDey6N&locationId=226989, headers:[Authorization:Bearer yHvGV2iPaNf7FavGznfOczJTetbH], contentType:application/json]

app:27142020-12-31 11:37:00.788 am debugAttempting to Update DeviceID: TCC-2633136, With LocationID: 226989

app:27142020-12-31 11:37:00.784 am debugrefreshThermosat()

app:27142020-12-31 11:37:00.779 am debugRefreshAllDevices()

app:27142020-12-31 11:37:00.775 am debugScheduling Refresh cronstring: 0 */1 * ? * *

app:27142020-12-31 11:37:00.770 am debugupdateThermostats-thermostatOperatingState: idle

app:27142020-12-31 11:37:00.766 am debugupdateThermostats-fanRunning: false

app:27142020-12-31 11:37:00.761 am debugrefreshHelper() cloudString:fanRunning - deviceString:thermostatFanState - device:Downstairs Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:37:00.757 am debugupdateThermostats-mode: Auto

app:27142020-12-31 11:37:00.752 am debugrefreshHelper() cloudString:mode - deviceString:thermostatFanMode - device:Downstairs Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:37:00.748 am debugupdateThermostats-allowedModes: [Auto, On, Circulate]

app:27142020-12-31 11:37:00.743 am debugrefreshHelper() cloudString:allowedModes - deviceString:supportedThermostatFanModes - device:Downstairs Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:37:00.738 am debugupdateThermostats-autoChangeoverActive: false

app:27142020-12-31 11:37:00.734 am debugrefreshHelper() cloudString:autoChangeoverActive - deviceString:autoChangeoverActive - device:Downstairs Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:37:00.729 am debugupdateThermostats-mode: Heat

app:27142020-12-31 11:37:00.725 am debugrefreshHelper() cloudString:mode - deviceString:thermostatMode - device:Downstairs Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:37:00.720 am debugupdateThermostats-coolSetpoint: 76

app:27142020-12-31 11:37:00.716 am debugrefreshHelper() cloudString:coolSetpoint - deviceString:coolingSetpoint - device:Downstairs Thermostat - optionalUnits:F - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:37:00.712 am debugupdateThermostats-heatSetpoint: 68

app:27142020-12-31 11:37:00.707 am debugrefreshHelper() cloudString:heatSetpoint - deviceString:heatingSetpoint - device:Downstairs Thermostat - optionalUnits:F - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:37:00.698 am debugupdateThermostats-allowedModes: [Cool, Heat, Off]

app:27142020-12-31 11:37:00.694 am debugrefreshHelper() cloudString:allowedModes - deviceString:allowedModes - device:Downstairs Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:37:00.689 am debugupdateThermostats-indoorHumidity: 37

app:27142020-12-31 11:37:00.685 am debugrefreshHelper() cloudString:indoorHumidity - deviceString:humidity - device:Downstairs Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:37:00.680 am debugupdateThermostats-allowedModes: [Cool, Heat, Off]

app:27142020-12-31 11:37:00.675 am debugrefreshHelper() cloudString:allowedModes - deviceString:supportedThermostatModes - device:Downstairs Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:37:00.671 am debugupdateThermostats-indoorTemperature: 68

app:27142020-12-31 11:37:00.666 am debugrefreshHelper() cloudString:indoorTemperature - deviceString:temperature - device:Downstairs Thermostat - optionalUnits:F - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:37:00.657 am debugupdateThermostats-tempUnits: F

app:27142020-12-31 11:37:00.652 am debugreJson: {[thermostatVersion:02.02.20.60, scheduleStatus:Resume, allowedTimeIncrements:15, settings:[homeSetPoints:[homeHeatSP:70, homeCoolSP:78, units:Fahrenheit], awaySetPoints:[awayHeatSP:62, awayCoolSP:85, smartCoolSP:80, smartHeatSP:55, useAutoSmart:true, units:Fahrenheit], hardwareSettings:[brightness:6, volume:10, maxBrightness:10, maxVolume:10], fan:[allowedModes:[Auto, On, Circulate], changeableValues:[mode:Auto], fanRunning:false], temperatureMode:[feelsLike:true, air:true], specialMode:[autoChangeoverActive:false, emergencyHeatActive:false]], deviceClass:Thermostat, deviceType:Thermostat, deviceID:TCC-2633136, userDefinedDeviceName:Thermostat, name:Thermostat, schedule:[scheduleType:Timed, scheduleSubType:NA], isAlive:true, isUpgrading:false, isProvisioned:false, macID:00D02D953F34, deviceSettings:[:], service:[mode:Up], dataSyncStatus:UnKnown, units:Fahrenheit, indoorTemperature:68, outdoorTemperature:48, allowedModes:[Cool, Heat, Off], deadband:0, hasDualSetpointStatus:false, minHeatSetpoint:40, maxHeatSetpoint:99, minCoolSetpoint:40, maxCoolSetpoint:99, changeableValues:[mode:Heat, autoChangeoverActive:false, emergencyHeatActive:false, heatSetpoint:68, coolSetpoint:76, heatCoolMode:Heat], operationStatus:[mode:EquipmentOff], smartAway:[active:false, timeOfDay:00:00:00, durationInHours:0, durationInDays:0, lastUsedFormat:TimeOfDay, endsIn:2000-01-01T00:00:00-05:00], indoorHumidity:37, indoorHumidityStatus:Measured, deviceModel:Round]}

app:27142020-12-31 11:37:00.588 am debugreCode: {200}

app:27142020-12-31 11:37:00.050 am debugLocation Discovery-params [uri:https://api.honeywell.com/v2/devices/thermostats/TCC-2633136?apikey=DEb39Y2eKMrv3fGpoKudWvLOZ9LDey6N&locationId=226989, headers:[Authorization:Bearer yHvGV2iPaNf7FavGznfOczJTetbH], contentType:application/json]

app:27142020-12-31 11:37:00.046 am debugAttempting to Update DeviceID: TCC-2633136, With LocationID: 226989

app:27142020-12-31 11:37:00.043 am debugrefreshThermosat()

app:27142020-12-31 11:37:00.038 am debugRefreshAllDevices()

dev:3972020-12-31 11:36:40.857 am infoKitchen Multisensor has a low battery

app:27142020-12-31 11:36:37.364 am debugupdateThermostats-thermostatOperatingState: idle

app:27142020-12-31 11:36:37.361 am debugupdateThermostats-fanRunning: false

app:27142020-12-31 11:36:37.357 am debugrefreshHelper() cloudString:fanRunning - deviceString:thermostatFanState - device:Downstairs Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:36:37.353 am debugupdateThermostats-mode: Auto

app:27142020-12-31 11:36:37.350 am debugrefreshHelper() cloudString:mode - deviceString:thermostatFanMode - device:Downstairs Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:36:37.346 am debugupdateThermostats-allowedModes: [Auto, On, Circulate]

app:27142020-12-31 11:36:37.343 am debugrefreshHelper() cloudString:allowedModes - deviceString:supportedThermostatFanModes - device:Downstairs Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:36:37.339 am debugupdateThermostats-autoChangeoverActive: false

app:27142020-12-31 11:36:37.335 am debugrefreshHelper() cloudString:autoChangeoverActive - deviceString:autoChangeoverActive - device:Downstairs Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:36:37.331 am debugupdateThermostats-mode: Heat

app:27142020-12-31 11:36:37.327 am debugrefreshHelper() cloudString:mode - deviceString:thermostatMode - device:Downstairs Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:36:37.323 am debugupdateThermostats-coolSetpoint: 76

app:27142020-12-31 11:36:37.319 am debugrefreshHelper() cloudString:coolSetpoint - deviceString:coolingSetpoint - device:Downstairs Thermostat - optionalUnits:F - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:36:37.315 am debugupdateThermostats-heatSetpoint: 68

app:27142020-12-31 11:36:37.311 am debugrefreshHelper() cloudString:heatSetpoint - deviceString:heatingSetpoint - device:Downstairs Thermostat - optionalUnits:F - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:36:37.307 am debugupdateThermostats-allowedModes: [Cool, Heat, Off]

app:27142020-12-31 11:36:37.303 am debugrefreshHelper() cloudString:allowedModes - deviceString:allowedModes - device:Downstairs Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:36:37.298 am debugupdateThermostats-indoorHumidity: 37

app:27142020-12-31 11:36:37.294 am debugrefreshHelper() cloudString:indoorHumidity - deviceString:humidity - device:Downstairs Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:36:37.290 am debugupdateThermostats-allowedModes: [Cool, Heat, Off]

app:27142020-12-31 11:36:37.286 am debugrefreshHelper() cloudString:allowedModes - deviceString:supportedThermostatModes - device:Downstairs Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:36:37.283 am debugupdateThermostats-indoorTemperature: 68

app:27142020-12-31 11:36:37.279 am debugrefreshHelper() cloudString:indoorTemperature - deviceString:temperature - device:Downstairs Thermostat - optionalUnits:F - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:27142020-12-31 11:36:37.275 am debugupdateThermostats-tempUnits: F

app:27142020-12-31 11:36:37.270 am debugreJson: {[thermostatVersion:02.02.20.60, scheduleStatus:Resume, allowedTimeIncrements:15, settings:[homeSetPoints:[homeHeatSP:70, homeCoolSP:78, units:Fahrenheit], awaySetPoints:[awayHeatSP:62, awayCoolSP:85, smartCoolSP:80, smartHeatSP:55, useAutoSmart:true, units:Fahrenheit], hardwareSettings:[brightness:6, volume:10, maxBrightness:10, maxVolume:10], fan:[allowedModes:[Auto, On, Circulate], changeableValues:[mode:Auto], fanRunning:false], temperatureMode:[feelsLike:true, air:true], specialMode:[autoChangeoverActive:false, emergencyHeatActive:false]], deviceClass:Thermostat, deviceType:Thermostat, deviceID:TCC-2633136, userDefinedDeviceName:Thermostat, name:Thermostat, schedule:[scheduleType:Timed, scheduleSubType:NA], isAlive:true, isUpgrading:false, isProvisioned:false, macID:00D02D953F34, deviceSettings:[:], service:[mode:Up], dataSyncStatus:UnKnown, units:Fahrenheit, indoorTemperature:68, outdoorTemperature:48, allowedModes:[Cool, Heat, Off], deadband:0, hasDualSetpointStatus:false, minHeatSetpoint:40, maxHeatSetpoint:99, minCoolSetpoint:40, maxCoolSetpoint:99, changeableValues:[mode:Heat, autoChangeoverActive:false, emergencyHeatActive:false, heatSetpoint:68, coolSetpoint:76, heatCoolMode:Heat], operationStatus:[mode:EquipmentOff], smartAway:[active:false, timeOfDay:00:00:00, durationInHours:0, durationInDays:0, lastUsedFormat:TimeOfDay, endsIn:2000-01-01T00:00:00-05:00], indoorHumidity:37, indoorHumidityStatus:Measured, deviceModel:Round]}

app:27142020-12-31 11:36:37.255 am debugreCode: {200}

app:27142020-12-31 11:36:36.493 am debugLocation Discovery-params [uri:https://api.honeywell.com/v2/devices/thermostats/TCC-2633136?apikey=DEb39Y2eKMrv3fGpoKudWvLOZ9LDey6N&locationId=226989, headers:[Authorization:Bearer yHvGV2iPaNf7FavGznfOczJTetbH], contentType:application/json]

app:27142020-12-31 11:36:36.489 am debugAttempting to Update DeviceID: TCC-2633136, With LocationID: 226989

app:27142020-12-31 11:36:36.485 am debugrefreshThermosat()

dev:26662020-12-31 11:36:36.477 am debugDownstairs Thermostat Refresh called

--- Live Log Started, waiting for events ---

Thanks, that debug dump will be useful to Taylor. He's on the west coast, so his day is just getting started.

Thank you.
I hope this helps!

Oh, one other thing I just noticed. It looks like you have refresh scheduled for every minute. Can you back that off to every 15 or 30 minutes? One minute kind of hammers the Honeywell servers and I got errors from the servers a couple of days ago. You don't seem to be getting those errors at this point, but it's probably safer to back off the refresh interval for now.

Done. Set to 30m.
Thanks

Fascinating... The API doc's say "EmergencyHeatActive: Indicates if emergency heating is active. Do not send if Emergency Heat is false." and of course I'm not sending it for my round which is working so very odd.

I'll code up a quick hack to send the emergency heat setting sometime today/tomorrow if you can give it a quick test than I can do a more complete version if it works.

Sure thing!
Thanks Taylor

I'll test the hack as well to make sure it doesn't break T-series thermostats.

Here's the test... https://raw.githubusercontent.com/thecloudtaylor/hubitat-honeywell/hack_erheat/honeywellhomeapp.groovy

It worked on my Lyric for what that is worth :). If this works on the T series and your Lyric I'll pull emergency heat mode and preserve the setting on updates.

Hi Taylor,

Received the following error when attempting to add the driver:

No signature of method: Script1.definition() is applicable for argument types: (java.util.LinkedHashMap) values: [[name:Honeywell Home, namespace:thecloudtaylor, author:Taylor Brown, ...]]

@SensorMaker did you by any change try to save the new code to the driver? That would give you an error. The fix is in the app code, not the driver. I was successful in saving the new code to the app. If you saved the new code to the driver, you will have to reinstall the existing driver code again before updating the app code with Taylor's fix.

I feel so stupid! Updating the APP code did the trick.

The hack appears to have worked. I successfully changed the heating set point.
I'll continue testing tomorrow and post additional feedback.

Many Thanks to you and Taylor!
& Happy New Years

@taylor I just tested your fix and it did not break the T-series thermostats. I tested it on both my T5 and T9 thermostat. Happy New Year! :slight_smile:

Good to hear you are up and running. Happy New Year! I'm done until 2021. :slight_smile:

Great to hear! I'll work up a more complete fix.