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

Ok I put in a more complete fix to give a try. I'll roll in into the next package after it gets some test coverage.

You will need to update both the driver and app:
https://raw.githubusercontent.com/thecloudtaylor/hubitat-honeywell/main/honeywellhomeapp.groovy

https://raw.githubusercontent.com/thecloudtaylor/hubitat-honeywell/main/honeywellhomedriver.groovy

@taylor your change looks good. I've installed and tested on both my T5 and T9. Tried changing heat setpoint, heat on and off, and refresh. All worked as expected.

Taylor,

Latest update works perfectly.
Tested for 24 hours.

2 questions:

  1. Any guidelines regarding the refresh interval? I currently have it set to 30 minutes.

  2. What's the function of "Allow Heat (Cool) Mode, if false heat mode will be ignored"
    Both are currently set to active.

Thanks, Ken

Taylor
Observed a few instances where the app/device failed to display the updated active heating status after increasing the heating set point by 2 degrees from my SharpTools tile.

Note that the app/driver did successfully communicate with the cloud/thermostat and increase the set point and change the heating state. The updated set point was correctly displayed in the app and on the dashboard (SharpTools) tile. However the operating state remained idle.

If I then increased the heating set point by an additional 1 degree, the heating state changed to active.

If you need additional info, pls. advise.
Thanks,
Ken

I've seen this behavior as well with a standard thermostat tile in the dashboard. Seems like the tile data is just a little stale. The next time it happens, go to the thermostat device page and look at "thermostatOperatingState" on the right hand side of the page. That value should be updated whenever you make a change that triggers a change in operating state, i.e. idle, heating, etc.

Am I the only one who is having issues with control FROM Hubitat to my thermostat? It seems that I can't change temperature (T9). I have updated to the newest app and driver. I've also gone through the setup up the new api per the instructions in the updated app.

I pretty much only use Hubitat to update mine at this point. Can you enable debug logs in the app then do a set and send the output?

Re #1 - I have mine set for 10 min... Once the setpoint is reached the thermostat turns off the heater so your not in any risk of overheating/cooling beyond the setpoints. I have a fireplace in the same room as the thermostat that I also run off Hubitat but I added a supplementary temperature sensor so that that doesn't run away at least until I get events working.

Re #2 - Where I live outside of Seattle we have heat season, AC season and a few weeks in between. Before I added this I had the thermostat scheduler app setup to turn my heat down from 67 to 55 at night (basically off at night). The first night it tried to turn the AC on to cool the house down from 67 to 55 :slight_smile: - so I put these blocks in to keep a bad configuration/app from turning on the heat/ac erroneously.

Just for the hell of it I started over with deleting app and driver and started fresh and I still get the exact same issues. With my monitoring the physical thermostat while making changes shows I can only change fan mode. Thermostat mode and cooling/heating set point changed in Hubitat do nothing on thermostat.

I see an issue - I didn't have Auto mode enabled in the app. I just put a pull request in to fix that issue (feel free to grab/test the update at https://raw.githubusercontent.com/thecloudtaylor/hubitat-honeywell/thecloudtaylor-automode/honeywellhomeapp.groovy). I'll probably roll a new package later this week with this and a few other fixes included.

Emergency heat mode isn't supported by the device but it's part of the hubitate spec for thermostat devices to that will always error out.

1 Like

I'll import that code and try it out. I see in the logs that it looks like it's not showing any problem with changing temps even though that is the issue I am having.

Make sure you turn on logging in the driver as well as the app.

I have this app/driver installed for my Honeywell Lyric Round thermostat and it seems to be working well. Thank you for developing it! :slight_smile:

I'm thinking that there is something wrong with my particular install. I have however uninstalled and reinstalled with latest version. I still do not have control over temperatures.

@markbellkosel84 If you can turn on logging in both the app and driver, I can attempt to help. I am using this driver/app with a T9, so I know it works. How are you trying to change temperature, from a dashboard tile or on the driver page using "Set Heating Setpoint" or another way? Please do a copy/paste of the logs instead of a screen capture. It's much easier to read.

This is the output from the app when I use "Set Heating Setpoint"

app:2632021-01-11 08:31:51.002 am debugupdateThermostats-thermostatOperatingState: heating

app:2632021-01-11 08:31:50.999 am debugThermostate Does not Support: thermostatFanState (fanRunning)

app:2632021-01-11 08:31:50.997 am debugupdateThermostats-fanRunning: null

app:2632021-01-11 08:31:50.994 am debugrefreshHelper() cloudString:fanRunning - deviceString:thermostatFanState - device:Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:2632021-01-11 08:31:50.991 am debugupdateThermostats-mode: Auto

app:2632021-01-11 08:31:50.989 am debugrefreshHelper() cloudString:mode - deviceString:thermostatFanMode - device:Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:2632021-01-11 08:31:50.986 am debugupdateThermostats-allowedModes: [On, Auto, Circulate]

app:2632021-01-11 08:31:50.983 am debugrefreshHelper() cloudString:allowedModes - deviceString:supportedThermostatFanModes - device:Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:2632021-01-11 08:31:50.980 am debugThermostat does not support emergency heat

app:2632021-01-11 08:31:50.977 am debugupdateThermostats-autoChangeoverActive: true

app:2632021-01-11 08:31:50.974 am debugrefreshHelper() cloudString:autoChangeoverActive - deviceString:autoChangeoverActive - device:Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:2632021-01-11 08:31:50.971 am debugupdateThermostats-mode: Auto

app:2632021-01-11 08:31:50.968 am debugrefreshHelper() cloudString:mode - deviceString:thermostatMode - device:Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:2632021-01-11 08:31:50.964 am debugupdateThermostats-coolSetpoint: 70

app:2632021-01-11 08:31:50.961 am debugrefreshHelper() cloudString:coolSetpoint - deviceString:coolingSetpoint - device:Thermostat - optionalUnits:F - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:2632021-01-11 08:31:50.958 am debugupdateThermostats-heatSetpoint: 67

app:2632021-01-11 08:31:50.955 am debugrefreshHelper() cloudString:heatSetpoint - deviceString:heatingSetpoint - device:Thermostat - optionalUnits:F - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:2632021-01-11 08:31:50.952 am debugupdateThermostats-allowedModes: [Heat, Off, Cool, Auto]

app:2632021-01-11 08:31:50.949 am debugrefreshHelper() cloudString:allowedModes - deviceString:allowedModes - device:Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:2632021-01-11 08:31:50.946 am debugupdateThermostats-indoorHumidity: 29

app:2632021-01-11 08:31:50.943 am debugrefreshHelper() cloudString:indoorHumidity - deviceString:humidity - device:Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:2632021-01-11 08:31:50.940 am debugupdateThermostats-allowedModes: [Heat, Off, Cool, Auto]

app:2632021-01-11 08:31:50.936 am debugrefreshHelper() cloudString:allowedModes - deviceString:supportedThermostatModes - device:Thermostat - optionalUnits:null - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:2632021-01-11 08:31:50.931 am debugupdateThermostats-indoorTemperature: 61

app:2632021-01-11 08:31:50.928 am debugrefreshHelper() cloudString:indoorTemperature - deviceString:temperature - device:Thermostat - optionalUnits:F - optionalMakeLowerMap:null -optionalMakeLowerString:null

app:2632021-01-11 08:31:50.925 am debugupdateThermostats-tempUnits: F

app:2632021-01-11 08:31:50.921 am debugreJson: {[groups:[[id:0, name:default, rooms:[0]]], displayedOutdoorHumidity:83, vacationHold:[enabled:false], currentSchedulePeriod:[day:Monday, period:Wake], scheduleCapabilities:[availableScheduleTypes:[None, Geofenced, TimedNorthAmerica], schedulableFan:true], scheduleType:[scheduleType:Timed, scheduleSubType:NA], inBuiltSensorState:[roomId:0, roomName:Thermostat], changeSource:[by:partner, name:Hubitat], scheduleStatus:Pause, allowedTimeIncrements:15, settings:[hardwareSettings:[brightness:0, maxBrightness:0], fan:[allowedModes:[On, Auto, Circulate], changeableValues:[mode:Auto]], temperatureMode:[air:true], specialMode:[autoChangeoverActive:true], devicePairingEnabled:true], deviceClass:Thermostat, deviceType:Thermostat, deviceID:LCC-B82CA03B31E7, userDefinedDeviceName:Thermostat, name:Thermostat, isAlive:true, isUpgrading:false, isProvisioned:true, macID:B82CA03B31E7, deviceSettings:[:], priorityType:PickARoom, service:[mode:Up], deviceRegistrationDate:2020-05-16T02:05:45.0933333, dataSyncStatus:Completed, units:Fahrenheit, indoorTemperature:61, outdoorTemperature:25.9, allowedModes:[Heat, Off, Cool, Auto], deadband:0, hasDualSetpointStatus:false, minHeatSetpoint:50, maxHeatSetpoint:90, minCoolSetpoint:50, maxCoolSetpoint:90, changeableValues:[mode:Auto, autoChangeoverActive:true, heatSetpoint:67, coolSetpoint:70, thermostatSetpointStatus:PermanentHold, heatCoolMode:Heat], operationStatus:[mode:Heat, fanRequest:false, circulationFanRequest:false], indoorHumidity:29, indoorHumidityStatus:Measured, deviceModel:T9-T10]}

app:2632021-01-11 08:31:50.903 am debugreCode: {200}

app:2632021-01-11 08:31:50.433 am debugLocation Discovery-params [uri:https://api.honeywell.com/v2/devices/thermostats/LCC-B82CA03B31E7?apikey=DFI1jg911lDIItf05A5RpiviiqTgzsxI&locationId=1927336, headers:[Authorization:Bearer mgmQN6JhmUUJY4fwijebjt2pMNEt], contentType:application/json]

app:2632021-01-11 08:31:50.430 am debugAttempting to Update DeviceID: LCC-B82CA03B31E7, With LocationID: 1927336

app:2632021-01-11 08:31:50.428 am debugrefreshThermosat()

app:2632021-01-11 08:31:50.423 am infoSetThermostate() Mode: Auto; Heatsetpoint: 67; CoolPoint: 70 API Response: 200

app:2632021-01-11 08:31:49.318 am debugsetThermosat-params [uri:https://api.honeywell.com/v2/devices/thermostats/LCC-B82CA03B31E7?apikey=DFI1jg911lDIItf05A5RpiviiqTgzsxI&locationId=1927336, headers:[Authorization:Bearer mgmQN6JhmUUJY4fwijebjt2pMNEt, Content-Type:application/json], body:[mode:Auto, thermostatSetpointStatus:PermanentHold, heatSetpoint:67, coolSetpoint:70, autoChangeoverActive:true, emergencyHeatActive:64]]

app:2632021-01-11 08:31:49.315 am debugAttempting to Set DeviceID: LCC-B82CA03B31E7, With LocationID: 1927336

app:2632021-01-11 08:31:49.312 am debugsetThermosatSetPoint()

This is the corresponding output from the device itself

dev:2492021-01-11 08:31:51.005 am infoThermostat Heating setpoint changed to 64

dev:2492021-01-11 08:31:49.297 am debugThermostat setHeatingSetpoint() - autoChangeoverActive: true

Note 7:25 PM EST: Forget what I said below. I see now that I was wrong about missing logs. Looking at the logs again.....

@taylor This set of params doesn't look right:

app:2632021-01-11 08:31:49.318 am debugsetThermosat-params [uri:https://api.honeywell.com/v2/devices/thermostats/LCC-B82CA03B31E7?apikey=DFI1jg911lDIItf05A5RpiviiqTgzsxI&locationId=1927336, headers:[Authorization:Bearer mgmQN6JhmUUJY4fwijebjt2pMNEt, Content-Type:application/json], body:[mode:Auto, thermostatSetpointStatus:PermanentHold, heatSetpoint:67, coolSetpoint:70, autoChangeoverActive:true, emergencyHeatActive:64]]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
emergencyHeatActive: 64 isn't right, is it?

Original message:

@markbellkosel84 Thanks for the logs, they are very helpful. Something weird is going on, so bear with me for a moment. There are no errors that I can see in the logs you sent, but there's something else. Look at the timestamp in the driver for when you changed the heating setpoint - it is 2021-01-11 08:31:51.005 am. The latest app log entry you sent is - 2021-01-11 08:31:51.002. That time is before when you changed the heating setpoint. The entries you are seeing in the app log are from when the thermostat was refreshed, which happens periodically and has nothing to do with actions such as changing the setpoint.

So we are missing the logs (and potentially the error message) resulting from the setpoint change. Can you go back into the previous logs and see if you can find the later log entries?

Thanks!

@markbellkosel84 Just a theory at this point, but I think you may have a mismatch in versions between the driver and app code. The easiest way to eliminate that as a possibility is to update the app and driver code to the latest released versions. No need to uninstall. Just go to the driver code page and click on the "Import" button, click the "Import" button in the dialog that pops up, and finally click save. Then go to the app code page and do the same thing. Once you have done both of those steps, try changing the setpoint again and capture the logs.

I agree with @WindowWasher's theory. The signature of setThermosatSetPoint(...) in the app changed when I added the emergency heat setting, so the 3rd parm (0 based) is now emergencyHeatActive where it used to be heatPoint. This is unfortunate in that it means that hubitat's API doesn't protect form driver/app signatures changing so I'll probably want/need to add some version logic someplace to catch this if that is the problem.

I updated everything with the most recent link you posted. It was working for a while then went back to same issues. I also noticed that the package manager said there was an update but I get an error when trying to go through with it. I work late tonight and my wife's birthday is tomorrow so I will have to wait till likely Thursday to get logs again.