Closed JCrankWV closed 1 year ago
honeywell documentation honeywell source (message by IssueLinks)
Hey there @rdfurman, mind taking a look at this issue as it has been labeled with an integration (honeywell
) you are listed as a code owner for? Thanks!
(message by CodeOwnersMention)
Huh, this is an odd one considering nothing has changed with the honeywell integration or somecomfort library. Are you able to set the temperature using https://www.mytotalconnectcomfort.com/portal?
Yes sir the Honeywell website and app work fine.
I can confirm this issue.
I'm getting the same error "Failed to call service climate/set_temperature. not enough arguments for format string". It works fine in the Honeywell My Total Comfort app. I'm not sure that it ever worked in HA. I haven't had it installed long and I'm a relatively new HA user. My HA is running on a Raspberry Pi. I can change the thermostat mode (off, heat, cool, fan) from the dashboard, but get the error when trying to change the temperature.
I've been experimenting with this problem further. I can change the mode with no "failed to call service" error. I can also raise and lower the temperature with no problem only when it does not exceed the scheduled set temperature. It will not go above the set temp for heat or below the set temp for cool. I'm using the Honeywell Total Connect Comfort (US) integration that I installed by clicking on the Add Integration button and have added the card to a dashboard. It seems that the code works, but not in all cases. I've also tried it in the card options screen with the Preset option set to None, Away and Hold. It works the same in all three. The "current temperature" doesn't seem to be a limiting factor. The scheduled set temperature is the limiting factor.
Are you able to set the temp higher than the scheduled heat setting (or lower than scheduled cool setting) with Honeywell website?
I'm sorry. I replied to the email instead of entering my reply here. Here is my reply. Yes. Everything works as it should in the Honeywell website and in the Honeywell app. The error "failed to call service climate/set.temperature. not enough arguments for format string" occurs when trying to exceed the set point, but works when changing down and up below the set point. This leads me to believe that there may be an additional parameter required when attempting to exceed the set temperature. Thanks for your attention to this. I'm not that experienced in Python.
Interesting. I just tried setting the temp in HASS above the scheduled temp with my setup and it created a temporary hold on the thermostat at the temp I set in HASS.
Now I'm wondering if this is the correct behavior. Should it have updated the scheduled set temp? I'll have to think on this for a bit.
Regardless, I'm not seeing that same error as you see. Maybe it's a difference in thermostat models?
I have the Honeywell RTH9585WF Smart Color Thermostat. The more I look, the worse it gets. When I use the card on a HA dashboard, I can change the temp on the ring (heat-down and/or up, but not above the set temp). I set it down to 65. Then when I look at the 3 dots menu, the temp is shown as 70 degrees, even though the thermostat is set to 72. The thermostat never gets set to a hold. When I try to change the temp on the 3 dots menu, it changes briefly, but returns to 70, even though the thermostat shows a set temp of 72. Actually, it never changes the thermostat set temp, up or down either. The card appears that it goes down and stays at 65, but the thermostat never reflects the change and stays at 72. This is getting very confusing.
Is this what the website / app look like for you?
Yes. It looks like that when I have it set on Auto and I have a Temporary Hold. I have figured out some of my confusion. I've been using the Home Assistant Android app. I made the incorrect assumption that the Honeywell integration worked the same in the Android app and the web interface. It doesn't. I need to concentrate on the web interface only for now. I'll have to restart my diagnosis based on the web interface.
I am having similar issues with TCC integration in HA, I have 7 minisplit units, connected to 2 RedLink gateways. I link my account in HA through the Honeywell TCC integration, and I can see all 7 devices just fine. Some information is reported correctly (auto/heat/cool/off setting, as well as temperature set point and current temperature), however hvac_action and fan_action are always reported idle, and set temperature returns this error message. So right now, my HA climate devices are mostly "read-only" (though I can turn on/off and set mode, just not the temperature). I've seen many similar issues reported, and was wondering if there was a known fix for this. Thanks for the work on this integration!
I’m having the exact same problem. I have 2 Honeywell thermostats that I’ve been integrating them into Home assistant. They were both working fine, then one started getting the error below when I try to change the target temp. I suspect as I’ve been testing I’ve exceeded the api rate limit. The thermostat that stopped working is the one I’ve been testing with. In my research I saw one that said the limit resets at midnight guess I’ll know tomorrow. Is anyone familiar w the api rate limit? Do u know how it works?
Here is the error from the logs:
Logger: somecomfort
Source: components/honeywell/__init__.py:105
First occurred: 8:06:02 PM (1 occurrences)
Last logged: 8:06:02 PM
API Rate Limited.
The next day I am able to set the temp on both thermostats, so looks like the api rate limit resets at midnight. Additional Information on the API can be found here: https://developer.honeywellhome.com/
Each day the automation updates successfully a few times, then starts getting following error each time it updates. The automation runs every 1/2 hour, and today (3 days after previous update) there is no API Rate Limit error. I am going to dig into the code & will update this post when I have more info. Could be there are actually 2 errors here, API Rate Limit and whatever this one is.
Here is the error in the logs (w/o the trace):
Logger: homeassistant.components.automation.variable_test
Source: components/honeywell/climate.py:251
Integration: Automation ([documentation](https://www.home-assistant.io/integrations/automation), [issues](https://github.com/home-assistant/home-assistant/issues?q=is%3Aissue+is%3Aopen+label%3A%22integration%3A+automation%22))
First occurred: 9:30:00 AM (3 occurrences)
Last logged: 9:30:00 AM
HVAC 24A Set Temp: Choose at step 1: choice 1: Error executing script. Unexpected error for call_service at pos 2: not enough arguments for format string HVAC 24A Set Temp: Error executing script. Unexpected error for choose at pos 1: not enough arguments for format string While executing automation automation.variable_test
client.py calls the Honeywell api to set the temperature, it gets a 200 back and is expecting a json payload, but apparently the payload is not json. Next step, get the values of req & resp. I'm not sure exactly how to do that, so if anyone knows, please let me know.
Here is the offending code:
def _resp_json(resp, req):
try:
return resp.json()
except:
# Any error doing this is probably because we didn't
# get JSON back (the API is terrible about this).
_LOG.exception("Failed to de-JSON %s %s" % req, resp)
I fixed the error in previous update by changing last line to
_LOG.exception("Failed to de-JSON %s %s" % (req, resp))
Now it fails on the result.get('success') line n the following code with the error 'NoneType' object has no attribute 'get'
def _set_thermostat_settings(self, thermostat_id, settings):
data = {'SystemSwitch': None,
'HeatSetpoint': None,
'CoolSetpoint': None,
'HeatNextPeriod': None,
'CoolNextPeriod': None,
'StatusHeat': None,
'DeviceID': thermostat_id,
}
data.update(settings)
url = "%s/Device/SubmitControlScreenChanges" % self._baseurl
with self._retries_login():
result = self._post_json(url, data=data)
if result.get('success') != 1:
raise APIError('API rejected thermostat settings')
So it would seem the post.json command returned nothing.
Also, I bumped Home Assistant stored_traces to 96 last night so this morning I have traces for the last 24 executions. Turns out 5 failed with the above error, 15 successfully changed the target temperature and 4 did not attempt to change the temp setting. I am no longer getting the API Rate Limit error, so I think I can rule out making too many calls to the API. I want to modify the code to print the url and data variables in the log, but haven't yet figured out how to do this. I will be interesting to see if the calls that fail have different data than those that succeed.
Its also important to note that there is nothing special about the ones that failed. There were other changes that were exactly the same and worked, so I can rule out something specific about the changes that failed.
Updated the code above to not fail and to print the url and data in the log.
Here is the updated code:
def _set_thermostat_settings(self, thermostat_id, settings):
data = {'SystemSwitch': None,
'HeatSetpoint': None,
'CoolSetpoint': None,
'HeatNextPeriod': None,
'CoolNextPeriod': None,
'StatusHeat': None,
'DeviceID': thermostat_id,
}
data.update(settings)
url = "%s/Device/SubmitControlScreenChanges" % self._baseurl
_LOG.info ("DEBUG.url: %s" % url)
_LOG.info ("DEBUG..data: %s" % data)
with self._retries_login():
result = self._post_json(url, data=data)
if result is None:
raise APIError('API rejected thermostat settings')
elif result.get('success') != 1:
raise APIError('API rejected thermostat settings')
It fails gracefully now with the following. So we finally find the real error.
2022-11-16 08:18:11.970 ERROR (SyncWorker_10) [somecomfort] Failed to de-JSON /Device/SubmitControlScreenChanges <Response [200]>
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/requests/models.py", line 971, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/local/lib/python3.10/site-packages/simplejson/__init__.py", line 525, in loads
return _default_decoder.decode(s)
File "/usr/local/lib/python3.10/site-packages/simplejson/decoder.py", line 370, in decode
obj, end = self.raw_decode(s)
File "/usr/local/lib/python3.10/site-packages/simplejson/decoder.py", line 400, in raw_decode
return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 429, in _resp_json
return resp.json()
File "/usr/local/lib/python3.10/site-packages/requests/models.py", line 975, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2022-11-16 08:18:11.981 ERROR (SyncWorker_10) [homeassistant.components.honeywell.const] Temperature 68.0 out of range
However its not consistent. There were a number of attempts to change the thermostat's temperature to 68 that failed, but also 1 that succeeded. The limits on the thermostat were set to 65/80. I updated them to 60/80 just to be sure.
Really good investigation and I appreciate the effort you're putting into debugging this!
One thing I'd like to clear up super fast, https://developer.honeywellhome.com/ and associated documentation isn't actually the API this integration is using. That documentation if for the API that the Honeywell Lyric integration uses. This integration is for the legacy mytotalconnectcomfort.com API. mytotalconnectcomfort.com has no documentation as far as I'm aware and Honeywell seem reluctant to provide any kind of developer support for it. I've called them in the past to see if I can get documentation on the API and I'm still waiting on a response.
With that out of the way, it does appear that the API responds with a different structure for different devices. Perhaps you can add a debug log that prints the full JSON response for your thermostat?
Thanks for jumping in on this.
I figured the APIs were different, thanks for clarifying.
I made the following changes to the code
def _set_thermostat_settings(self, thermostat_id, settings):
data = {'SystemSwitch': None,
'HeatSetpoint': None,
'CoolSetpoint': None,
'HeatNextPeriod': None,
'CoolNextPeriod': None,
'StatusHeat': None,
'DeviceID': thermostat_id,
}
data.update(settings)
url = "%s/Device/SubmitControlScreenChanges" % self._baseurl
_LOG.error ("AndyLog: url: %s" % url)
_LOG.error ("AndyLog: data: %s" % data)
with self._retries_login():
result = self._post_json(url, data=data)
if result is None:
_LOG.error ("AndyLog: Thermostat Temperature Change FAILED - result is None")
raise APIError ('result is None, API rejected thermostat settings')
elif result.get('success') != 1:
_LOG.error ("AndyLog: Thermostat Temperature Change FAILED - result not success")
raise APIError('API rejected thermostat settings')
else:
_LOG.error ("AndyLog: Thermostat Temperature Change Successful")
Here's the relevant output (retrieved from log w/ grep 'honeywell|AndyLog|somecomfort|Successful|FAILED').
A few things to note.
The min/max cool/heat settings on the thermostats are set to 60/80. The thermostats are in cool mode and both have a schedule defined.
2022-11-16 09:30:00.053 ERROR (SyncWorker_11) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges 2022-11-16 09:30:00.070 ERROR (SyncWorker_11) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 71.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7039159} 2022-11-16 09:30:00.594 ERROR (SyncWorker_11) [somecomfort] AndyLog: Thermostat Temperature Change Successful
2022-11-16 09:30:00.597 ERROR (SyncWorker_3) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges 2022-11-16 09:30:00.599 ERROR (SyncWorker_3) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 66.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7061292} 2022-11-16 09:30:01.371 ERROR (SyncWorker_3) [somecomfort] Failed to de-JSON /Device/SubmitControlScreenChanges <Response [200]> File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 429, in _resp_json 2022-11-16 09:30:01.378 ERROR (SyncWorker_3) [somecomfort] AndyLog: Thermostat Temperature Change FAILED - result is None 2022-11-16 09:30:01.381 ERROR (SyncWorker_3) [homeassistant.components.honeywell.const] Temperature 66.0 out of range
2022-11-16 10:00:00.031 ERROR (SyncWorker_2) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges 2022-11-16 10:00:00.033 ERROR (SyncWorker_2) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 66.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7061292} 2022-11-16 10:00:00.557 ERROR (SyncWorker_2) [somecomfort] Failed to de-JSON /Device/SubmitControlScreenChanges <Response [200]> File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 429, in _resp_json 2022-11-16 10:00:00.566 ERROR (SyncWorker_2) [somecomfort] AndyLog: Thermostat Temperature Change FAILED - result is None 2022-11-16 10:00:00.576 ERROR (SyncWorker_2) [homeassistant.components.honeywell.const] Temperature 66.0 out of range
2022-11-16 10:30:00.028 ERROR (SyncWorker_3) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges 2022-11-16 10:30:00.033 ERROR (SyncWorker_3) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 66.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7061292} 2022-11-16 10:30:00.591 ERROR (SyncWorker_3) [somecomfort] Failed to de-JSON /Device/SubmitControlScreenChanges <Response [200]> File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 429, in _resp_json 2022-11-16 10:30:00.595 ERROR (SyncWorker_3) [somecomfort] AndyLog: Thermostat Temperature Change FAILED - result is None 2022-11-16 10:30:00.597 ERROR (SyncWorker_3) [homeassistant.components.honeywell.const] Temperature 66.0 out of range
2022-11-16 10:30:00.600 ERROR (SyncWorker_5) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges 2022-11-16 10:30:00.602 ERROR (SyncWorker_5) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 70.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7039159} 2022-11-16 10:30:01.064 ERROR (SyncWorker_5) [somecomfort] AndyLog: Thermostat Temperature Change Successful
2022-11-16 11:00:00.029 ERROR (SyncWorker_3) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges 2022-11-16 11:00:00.044 ERROR (SyncWorker_3) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 65.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7061292} 2022-11-16 11:00:00.648 ERROR (SyncWorker_3) [somecomfort] Failed to de-JSON /Device/SubmitControlScreenChanges <Response [200]> File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 429, in _resp_json 2022-11-16 11:00:00.654 ERROR (SyncWorker_3) [somecomfort] AndyLog: Thermostat Temperature Change FAILED - result is None 2022-11-16 11:00:00.656 ERROR (SyncWorker_3) [homeassistant.components.honeywell.const] Temperature 65.0 out of range
2022-11-16 11:00:00.662 ERROR (SyncWorker_3) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges 2022-11-16 11:00:00.664 ERROR (SyncWorker_3) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 69.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7039159} 2022-11-16 11:00:01.201 ERROR (SyncWorker_3) [somecomfort] AndyLog: Thermostat Temperature Change Successful
2022-11-16 11:30:00.040 ERROR (SyncWorker_0) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges 2022-11-16 11:30:00.043 ERROR (SyncWorker_0) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': None, 'HeatNextPeriod': None, 'CoolNextPeriod': 72, 'StatusHeat': None, 'DeviceID': 7061292, 'StatusCool': 1} 2022-11-16 11:30:00.636 ERROR (SyncWorker_0) [somecomfort] AndyLog: Thermostat Temperature Change Successful
2022-11-16 11:30:00.639 ERROR (SyncWorker_0) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges 2022-11-16 11:30:00.641 ERROR (SyncWorker_0) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 67.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7061292} 2022-11-16 11:30:01.362 ERROR (SyncWorker_0) [somecomfort] Failed to de-JSON /Device/SubmitControlScreenChanges <Response [200]> File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 429, in _resp_json 2022-11-16 11:30:01.373 ERROR (SyncWorker_0) [somecomfort] AndyLog: Thermostat Temperature Change FAILED - result is None 2022-11-16 11:30:01.379 ERROR (SyncWorker_0) [homeassistant.components.honeywell.const] Temperature 67.0 out of range
2022-11-16 11:30:01.385 ERROR (SyncWorker_1) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges 2022-11-16 11:30:01.389 ERROR (SyncWorker_1) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': None, 'HeatNextPeriod': None, 'CoolNextPeriod': 72, 'StatusHeat': None, 'DeviceID': 7039159, 'StatusCool': 1} 2022-11-16 11:30:02.312 ERROR (SyncWorker_1) [somecomfort] AndyLog: Thermostat Temperature Change Successful
2022-11-16 11:30:02.315 ERROR (SyncWorker_1) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges 2022-11-16 11:30:02.317 ERROR (SyncWorker_1) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 69.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7039159} 2022-11-16 11:30:03.056 ERROR (SyncWorker_1) [somecomfort] AndyLog: Thermostat Temperature Change Successful
2022-11-16 12:00:00.027 ERROR (SyncWorker_7) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges 2022-11-16 12:00:00.030 ERROR (SyncWorker_7) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 67.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7061292} 2022-11-16 12:00:00.495 ERROR (SyncWorker_7) [somecomfort] Failed to de-JSON /Device/SubmitControlScreenChanges <Response [200]> File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 429, in _resp_json 2022-11-16 12:00:00.498 ERROR (SyncWorker_7) [somecomfort] AndyLog: Thermostat Temperature Change FAILED - result is None 2022-11-16 12:00:00.499 ERROR (SyncWorker_7) [homeassistant.components.honeywell.const] Temperature 67.0 out of range
2022-11-16 12:00:00.503 ERROR (SyncWorker_4) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges 2022-11-16 12:00:00.504 ERROR (SyncWorker_4) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 68.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7039159} 2022-11-16 12:00:01.063 ERROR (SyncWorker_4) [somecomfort] Failed to de-JSON /Device/SubmitControlScreenChanges <Response [200]> File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 429, in _resp_json 2022-11-16 12:00:01.067 ERROR (SyncWorker_4) [somecomfort] AndyLog: Thermostat Temperature Change FAILED - result is None 2022-11-16 12:00:01.069 ERROR (SyncWorker_4) [homeassistant.components.honeywell.const] Temperature 68.0 out of range
2022-11-16 12:30:00.060 ERROR (SyncWorker_12) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges 2022-11-16 12:30:00.071 ERROR (SyncWorker_12) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 68.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7039159} 2022-11-16 12:30:00.562 ERROR (SyncWorker_12) [somecomfort] Failed to de-JSON /Device/SubmitControlScreenChanges <Response [200]> File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 429, in _resp_json 2022-11-16 12:30:00.567 ERROR (SyncWorker_12) [somecomfort] AndyLog: Thermostat Temperature Change FAILED - result is None 2022-11-16 12:30:00.570 ERROR (SyncWorker_12) [homeassistant.components.honeywell.const] Temperature 68.0 out of range
2022-11-16 12:30:00.573 ERROR (SyncWorker_11) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges 2022-11-16 12:30:00.575 ERROR (SyncWorker_11) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 68.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7061292} 2022-11-16 12:30:01.485 ERROR (SyncWorker_11) [somecomfort] Failed to de-JSON /Device/SubmitControlScreenChanges <Response [200]> File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 429, in _resp_json 2022-11-16 12:30:01.491 ERROR (SyncWorker_11) [somecomfort] AndyLog: Thermostat Temperature Change FAILED - result is None 2022-11-16 12:30:01.495 ERROR (SyncWorker_11) [homeassistant.components.honeywell.const] Temperature 68.0 out of range
2022-11-16 13:00:00.029 ERROR (SyncWorker_8) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges 2022-11-16 13:00:00.031 ERROR (SyncWorker_8) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 68.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7039159} 2022-11-16 13:00:00.524 ERROR (SyncWorker_8) [somecomfort] Failed to de-JSON /Device/SubmitControlScreenChanges <Response [200]> File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 429, in _resp_json 2022-11-16 13:00:00.529 ERROR (SyncWorker_8) [somecomfort] AndyLog: Thermostat Temperature Change FAILED - result is None 2022-11-16 13:00:00.532 ERROR (SyncWorker_8) [homeassistant.components.honeywell.const] Temperature 68.0 out of range
2022-11-16 13:00:00.536 ERROR (SyncWorker_7) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges 2022-11-16 13:00:00.540 ERROR (SyncWorker_7) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 68.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7061292} 2022-11-16 13:00:01.557 ERROR (SyncWorker_7) [somecomfort] Failed to de-JSON /Device/SubmitControlScreenChanges <Response [200]> File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 429, in _resp_json 2022-11-16 13:00:01.562 ERROR (SyncWorker_7) [somecomfort] AndyLog: Thermostat Temperature Change FAILED - result is None 2022-11-16 13:00:01.564 ERROR (SyncWorker_7) [homeassistant.components.honeywell.const] Temperature 68.0 out of range
2022-11-16 13:06:54.810 ERROR (SyncWorker_0) [somecomfort] Connection Error occurred. 2022-11-16 13:06:54.818 ERROR (SyncWorker_0) [somecomfort] Attempting to login again.
2022-11-16 13:30:00.041 ERROR (SyncWorker_2) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges 2022-11-16 13:30:00.044 ERROR (SyncWorker_2) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 68.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7039159} 2022-11-16 13:30:00.648 ERROR (SyncWorker_2) [somecomfort] Failed to de-JSON /Device/SubmitControlScreenChanges <Response [200]> File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 429, in _resp_json 2022-11-16 13:30:00.652 ERROR (SyncWorker_2) [somecomfort] AndyLog: Thermostat Temperature Change FAILED - result is None 2022-11-16 13:30:00.654 ERROR (SyncWorker_2) [homeassistant.components.honeywell.const] Temperature 68.0 out of range
2022-11-16 13:30:00.658 ERROR (SyncWorker_11) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges 2022-11-16 13:30:00.660 ERROR (SyncWorker_11) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 67.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7061292} 2022-11-16 13:30:01.161 ERROR (SyncWorker_11) [somecomfort] Failed to de-JSON /Device/SubmitControlScreenChanges <Response [200]> File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 429, in _resp_json 2022-11-16 13:30:01.164 ERROR (SyncWorker_11) [somecomfort] AndyLog: Thermostat Temperature Change FAILED - result is None 2022-11-16 13:30:01.165 ERROR (SyncWorker_11) [homeassistant.components.honeywell.const] Temperature 67.0 out of range
2022-11-16 14:00:00.035 ERROR (SyncWorker_11) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges 2022-11-16 14:00:00.038 ERROR (SyncWorker_11) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 66.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7061292} 2022-11-16 14:00:00.575 ERROR (SyncWorker_11) [somecomfort] Failed to de-JSON /Device/SubmitControlScreenChanges <Response [200]> File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 429, in _resp_json 2022-11-16 14:00:00.579 ERROR (SyncWorker_11) [somecomfort] AndyLog: Thermostat Temperature Change FAILED - result is None 2022-11-16 14:00:00.581 ERROR (SyncWorker_11) [homeassistant.components.honeywell.const] Temperature 66.0 out of range
2022-11-16 14:00:00.585 ERROR (SyncWorker_8) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges 2022-11-16 14:00:00.587 ERROR (SyncWorker_8) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 67.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7039159} 2022-11-16 14:00:01.322 ERROR (SyncWorker_8) [somecomfort] Failed to de-JSON /Device/SubmitControlScreenChanges <Response [200]> File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 429, in _resp_json 2022-11-16 14:00:01.327 ERROR (SyncWorker_8) [somecomfort] AndyLog: Thermostat Temperature Change FAILED - result is None 2022-11-16 14:00:01.330 ERROR (SyncWorker_8) [homeassistant.components.honeywell.const] Temperature 67.0 out of range
2022-11-16 14:16:54.897 ERROR (SyncWorker_6) [somecomfort] Connection Error occurred. 2022-11-16 14:16:54.899 ERROR (SyncWorker_6) [somecomfort] Attempting to login again.
2022-11-16 14:30:00.023 ERROR (SyncWorker_11) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges 2022-11-16 14:30:00.026 ERROR (SyncWorker_11) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 67.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7061292} 2022-11-16 14:30:01.082 ERROR (SyncWorker_11) [somecomfort] Failed to de-JSON /Device/SubmitControlScreenChanges <Response [200]> File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 429, in _resp_json 2022-11-16 14:30:01.085 ERROR (SyncWorker_11) [somecomfort] AndyLog: Thermostat Temperature Change FAILED - result is None 2022-11-16 14:30:01.087 ERROR (SyncWorker_11) [homeassistant.components.honeywell.const] Temperature 67.0 out of range
2022-11-16 14:30:01.095 ERROR (SyncWorker_2) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges 2022-11-16 14:30:01.097 ERROR (SyncWorker_2) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 67.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7039159} 2022-11-16 14:30:02.480 ERROR (SyncWorker_2) [somecomfort] Failed to de-JSON /Device/SubmitControlScreenChanges <Response [200]> File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 429, in _resp_json 2022-11-16 14:30:02.486 ERROR (SyncWorker_2) [somecomfort] AndyLog: Thermostat Temperature Change FAILED - result is None 2022-11-16 14:30:02.488 ERROR (SyncWorker_2) [homeassistant.components.honeywell.const] Temperature 67.0 out of range
2022-11-16 15:00:00.031 ERROR (SyncWorker_4) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges 2022-11-16 15:00:00.033 ERROR (SyncWorker_4) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 67.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7061292} 2022-11-16 15:00:00.507 ERROR (SyncWorker_4) [somecomfort] Failed to de-JSON /Device/SubmitControlScreenChanges <Response [200]> File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 429, in _resp_json 2022-11-16 15:00:00.512 ERROR (SyncWorker_4) [somecomfort] AndyLog: Thermostat Temperature Change FAILED - result is None 2022-11-16 15:00:00.514 ERROR (SyncWorker_4) [homeassistant.components.honeywell.const] Temperature 67.0 out of range
2022-11-16 15:00:00.517 ERROR (SyncWorker_6) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges 2022-11-16 15:00:00.520 ERROR (SyncWorker_6) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 67.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7039159} 2022-11-16 15:00:01.012 ERROR (SyncWorker_6) [somecomfort] Failed to de-JSON /Device/SubmitControlScreenChanges <Response [200]> File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 429, in _resp_json 2022-11-16 15:00:01.016 ERROR (SyncWorker_6) [somecomfort] AndyLog: Thermostat Temperature Change FAILED - result is None 2022-11-16 15:00:01.018 ERROR (SyncWorker_6) [homeassistant.components.honeywell.const] Temperature 67.0 out of range
2022-11-16 15:30:00.035 ERROR (SyncWorker_12) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges 2022-11-16 15:30:00.037 ERROR (SyncWorker_12) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 66.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7061292} 2022-11-16 15:30:00.539 ERROR (SyncWorker_12) [somecomfort] Failed to de-JSON /Device/SubmitControlScreenChanges <Response [200]> File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 429, in _resp_json 2022-11-16 15:30:00.542 ERROR (SyncWorker_12) [somecomfort] AndyLog: Thermostat Temperature Change FAILED - result is None 2022-11-16 15:30:00.544 ERROR (SyncWorker_12) [homeassistant.components.honeywell.const] Temperature 66.0 out of range
2022-11-16 16:00:00.040 ERROR (SyncWorker_1) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges 2022-11-16 16:00:00.051 ERROR (SyncWorker_1) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 66.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7061292} 2022-11-16 16:00:00.688 ERROR (SyncWorker_1) [somecomfort] Failed to de-JSON /Device/SubmitControlScreenChanges <Response [200]> File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 429, in _resp_json 2022-11-16 16:00:00.696 ERROR (SyncWorker_1) [somecomfort] AndyLog: Thermostat Temperature Change FAILED - result is None 2022-11-16 16:00:00.698 ERROR (SyncWorker_1) [homeassistant.components.honeywell.const] Temperature 66.0 out of range
Overnight the logs are more of the same except these two. I don't see how the code sends these api calls to set CoolNextPeriod to 90 & 44. I'm not sure this is the same problem as Temperature out of range, but it might be a clue if we can find the code that sends these calls.
'CoolNextPeriod': 90
2022-11-16 18:30:00.043 ERROR (SyncWorker_11) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges
2022-11-16 18:30:00.051 ERROR (SyncWorker_11) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': None, 'HeatNextPeriod': None, 'CoolNextPeriod': 90, 'StatusHeat': None, 'DeviceID': 7061292, 'StatusCool': 1}
2022-11-16 18:30:00.705 ERROR (SyncWorker_11) [somecomfort] AndyLog: result: {'success': 1}
2022-11-16 18:30:00.707 ERROR (SyncWorker_11) [somecomfort] AndyLog: Thermostat Temperature Change Successful
2022-11-16 18:30:00.710 ERROR (SyncWorker_11) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges
2022-11-16 18:30:00.712 ERROR (SyncWorker_11) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 68.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7061292}
2022-11-16 18:30:01.376 ERROR (SyncWorker_11) [somecomfort] Failed to de-JSON /Device/SubmitControlScreenChanges <Response [200]>
File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 429, in _resp_json
2022-11-16 18:30:01.381 ERROR (SyncWorker_11) [somecomfort] AndyLog: Thermostat Temperature Change FAILED - result is None
'CoolNextPeriod' 44
2022-11-17 07:30:00.067 ERROR (SyncWorker_11) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges
2022-11-17 07:30:00.071 ERROR (SyncWorker_11) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': None, 'HeatNextPeriod': None, 'CoolNextPeriod': 44, 'StatusHeat': None, 'DeviceID': 7061292, 'StatusCool': 1}
2022-11-17 07:30:00.624 ERROR (SyncWorker_11) [somecomfort] AndyLog: result: {'success': 1}
2022-11-17 07:30:00.625 ERROR (SyncWorker_11) [somecomfort] AndyLog: Thermostat Temperature Change Successful
2022-11-17 07:30:00.628 ERROR (SyncWorker_11) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges
2022-11-17 07:30:00.629 ERROR (SyncWorker_11) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 69.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7061292}
2022-11-17 07:30:01.442 ERROR (SyncWorker_11) [somecomfort] AndyLog: result: {'success': 1}
2022-11-17 07:30:01.445 ERROR (SyncWorker_11) [somecomfort] AndyLog: Thermostat Temperature Change Successful
Here's the 8am call successfully changing the thermostat temp to 68 on the same thermostat where 68 fails more often than it succeeds.
2022-11-17 08:00:00.032 ERROR (SyncWorker_7) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges
2022-11-17 08:00:00.053 ERROR (SyncWorker_7) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 68.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7061292}
2022-11-17 08:00:00.719 ERROR (SyncWorker_7) [somecomfort] AndyLog: result: {'success': 1}
2022-11-17 08:00:00.722 ERROR (SyncWorker_7) [somecomfort] AndyLog: Thermostat Temperature Change Successful
I also had a thought that maybe the heat point in the schedule might be causing the temp out of range condition, but those are set at 65. I assumed that's the point where the heat turns on when the thermostat is in auto mode. I never use auto mode because it never really gets cold enough here to need heat. Never-the-less, I changed them all to 60.
Let me know if you have ideas on other things I can try.
I'm receiving the same error. Any progress on a resolution or root cause determined?
Not sure exactly which issue you are referring to. I'd say The API Rate Limit issue is resolved, but we have not identified root cause for the Temperature Out of Range issue yet. Which error are you getting?
Source: components/honeywell/climate.py:251
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/requests/models.py", line 971, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/local/lib/python3.10/site-packages/simplejson/__init__.py", line 525, in loads
return _default_decoder.decode(s)
File "/usr/local/lib/python3.10/site-packages/simplejson/decoder.py", line 372, in decode
obj, end = self.raw_decode(s)
File "/usr/local/lib/python3.10/site-packages/simplejson/decoder.py", line 402, in raw_decode
return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 429, in _resp_json
return resp.json()
File "/usr/local/lib/python3.10/site-packages/requests/models.py", line 975, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 451, in _async_step
await getattr(self, handler)()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 684, in _async_call_service_step
await service_task
File "/usr/src/homeassistant/homeassistant/core.py", line 1744, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1781, in _execute_service
await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 208, in handle_service
await service.entity_service_call(
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 678, in entity_service_call
future.result() # pop exception if have
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 943, in async_request_call
await coro
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 715, in _handle_entity_call
await result
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 613, in async_service_temperature_set
await entity.async_set_temperature(**kwargs)
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 471, in async_set_temperature
await self.hass.async_add_executor_job(
File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 258, in set_temperature
self._set_temperature(**kwargs)
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 251, in _set_temperature
setattr(self._device, f"setpoint_{mode}", temperature)
File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 212, in setpoint_heat
self._client._set_thermostat_settings(self.deviceid,
File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 491, in _set_thermostat_settings
result = self._post_json(url, data=data)
File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 455, in _post_json
return self._request_json('post', *args, **kwargs)
File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 443, in _request_json
return self._resp_json(resp, req)
File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 433, in _resp_json
_LOG.exception("Failed to de-JSON %s %s" % req, resp)
TypeError: not enough arguments for format string
That error is masking the real error. Look at my updates #4 & #5 above to get to the real error. You need to modify the code in client.py to get past the errors that prevent you from getting the real error message.
@ShortPutt I cannot figure out how to view/edit the client.py file.
How you edit it depends on how you are running HA.
I run HA in a docker container and I have portainer running, so I used portainer to open a console in the homeassistant image and then vi to edit client.py. You could also use docker to open a shell in the image from a terminal or ssh.
Make a backup of client.py before you change it Then edit /usr/local/lib/python3.10/site-packages/somecomfort/client.py
Restart HA after u make the changes.
I'm running HA on raspberry pi bare metal. I connected via smb share and could not find the files. I also ssh to the system directly. Not sure which path to look at. I must be missing something.
Looks like you're still getting a return code of 200 (SUCCESS) so I'm wondering if there are some situations in which the honeywell API returns SUCCESS status code but no body to deserialize. I can look into making a branch that accepts 200 responses with no body. Would you be able to test it out for me when I get it committed?
Sure I can test it after Nov. 30.
sgordon46 - the trace in your log shows the location is /usr/local/lib/python3.10/site-packages/somecomfort/client.py. Or you could wait a bit and see if we can get it fixed.
@ShortPutt This may be quicker for you to do a quick edit in client.py
so we can see what the resp
actually was.
@staticmethod
def _resp_json(resp, req):
try:
return resp.json()
except:
# Any error doing this is probably because we didn't
# get JSON back (the API is terrible about this).
_LOG.exception('Failed to de-JSON %s response' % req)
_LOG.exception('Response was %s' % resp) # <-- THIS IS THE NEW LINE
raise APIError('Failed to process %s response', req)
Got it. I'll test it next week on Dec.1 and post the results. Sorry I can't test it sooner.
@rdfurman Since I've been back its been behaving much better. Only 2 failures. Here's the details.
Firstly, _resp_json in the version of client.py I'm running is a bit different than what you sent. Not sure why my version is different but it might be a clue to potentially other differences. Here's the unaltered _resp_json from my client.py - there is no raise error at the end.
@staticmethod
def _resp_json(resp, req):
try:
return resp.json()
except:
# Any error doing this is probably because we didn't
# get JSON back (the API is terrible about this).
_LOG.exception("Failed to de-JSON %s %s" % req, resp)
I modified it to:
@staticmethod
def _resp_json(resp, req):
try:
return resp.json()
except:
# Any error doing this is probably because we didn't
# get JSON back (the API is terrible about this).
_LOG.exception('Response was %s' % resp) # Moved before de-JSON msg to get resp before next cmd fails
_LOG.exception("Failed to de-JSON %s %s" % req, resp) # This fails, so changed to _LOG.exception("Failed to de-JSON %s %s" % (req, resp))
raise APIError('Failed to process %s response', req)
Here is an error from the log. You can see the response was <Response [200]>:
2022-12-01 11:30:00.066 ERROR (SyncWorker_6) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': None, 'HeatNextPeriod': None, 'CoolNextPeriod': 72, 'StatusHeat': None, 'DeviceID': 7039159, 'StatusCool': 1}
2022-12-01 11:30:11.317 ERROR (SyncWorker_6) [somecomfort] Response was <Response [200]>
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/requests/models.py", line 971, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/local/lib/python3.10/site-packages/simplejson/__init__.py", line 525, in loads
return _default_decoder.decode(s)
File "/usr/local/lib/python3.10/site-packages/simplejson/decoder.py", line 372, in decode
obj, end = self.raw_decode(s)
File "/usr/local/lib/python3.10/site-packages/simplejson/decoder.py", line 402, in raw_decode
return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 429, in _resp_json
return resp.json()
File "/usr/local/lib/python3.10/site-packages/requests/models.py", line 975, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2022-12-01 11:30:11.327 ERROR (SyncWorker_6) [somecomfort] Failed to de-JSON /Device/SubmitControlScreenChanges <Response [200]>
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/requests/models.py", line 971, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/local/lib/python3.10/site-packages/simplejson/__init__.py", line 525, in loads
return _default_decoder.decode(s)
File "/usr/local/lib/python3.10/site-packages/simplejson/decoder.py", line 372, in decode
obj, end = self.raw_decode(s)
File "/usr/local/lib/python3.10/site-packages/simplejson/decoder.py", line 402, in raw_decode
return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 429, in _resp_json
return resp.json()
File "/usr/local/lib/python3.10/site-packages/requests/models.py", line 975, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2022-12-01 11:30:11.331 ERROR (SyncWorker_6) [homeassistant.components.honeywell.const] Temperature 69.0 out of range
Interestingly, the call that failed was setting CoolNextPeriod, not CoolSetpoint. Occasionally it does this before setting the CoolSetpoint. I'd like to understand the logic to setting CoolNextPeriod first, it seems random.
Calling CoolNextPeriod does not appear to be (part of) the problem because all other calls were successful. Here are a couple successful runs from the log:
2022-12-01 12:30:00.039 ERROR (SyncWorker_8) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges
2022-12-01 12:30:00.042 ERROR (SyncWorker_8) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': None, 'HeatNextPeriod': None, 'CoolNextPeriod': 72, 'StatusHeat': None, 'DeviceID': 7061292, 'StatusCool': 1}
2022-12-01 12:30:00.901 ERROR (SyncWorker_8) [somecomfort] AndyLog: Thermostat Temperature Change Successful
2022-12-01 12:30:00.904 ERROR (SyncWorker_8) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges
2022-12-01 12:30:00.906 ERROR (SyncWorker_8) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 69.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7061292}
2022-12-01 12:30:01.916 ERROR (SyncWorker_8) [somecomfort] AndyLog: Thermostat Temperature Change Successful
2022-12-01 12:30:01.928 ERROR (SyncWorker_2) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges
2022-12-01 12:30:01.940 ERROR (SyncWorker_2) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 68.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7039159}
2022-12-01 12:30:02.529 ERROR (SyncWorker_2) [somecomfort] AndyLog: Thermostat Temperature Change Successful
2022-12-01 13:00:00.032 ERROR (SyncWorker_8) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges
2022-12-01 13:00:00.045 ERROR (SyncWorker_8) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 68.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7061292}
2022-12-01 13:00:00.728 ERROR (SyncWorker_8) [somecomfort] AndyLog: Thermostat Temperature Change Successful
2022-12-01 13:00:00.731 ERROR (SyncWorker_2) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges
2022-12-01 13:00:00.733 ERROR (SyncWorker_2) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 67.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7039159}
2022-12-01 13:00:01.464 ERROR (SyncWorker_2) [somecomfort] AndyLog: Thermostat Temperature Change Successful
2022-12-01 13:30:00.028 ERROR (SyncWorker_7) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges
2022-12-01 13:30:00.035 ERROR (SyncWorker_7) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 66.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7061292}
2022-12-01 13:30:00.790 ERROR (SyncWorker_7) [somecomfort] AndyLog: Thermostat Temperature Change Successful
I appreciate your help with this. Let me know your thoughts.
Hmmmmmm. Seems weird that that honeywell API is returning a 200 with no body for only some request payloads... Perhaps we can track which call exactly is causing this? I see that _set_thermostat_settings
is the only place that sets "CoolNextPeriod" and that function is called from 6 places. Perhaps we can throw a log out in these 6 places to see which one is causing the error?
I see 2 paths from here:
_resp_json
, orOption 1 is the quick and dirty way, option 2 would be preferable.
Let's work on option 2. Over the weekend I experienced only a few failures. I will add debug statements and get back when I have more info.
I only found 5 places where _set_thermostat_settings is called:
fan_mode
system_mode
setpoint_cool
setpoint_heat
_set_hold
I will let it run and let you know what I find.
Well I haven't had any failures since I put the debug statements in, but the debugs did help me figure out what the CoolNextPeriod calls do. They are used to set the hold until the next schedule change. Honeywell divides the day into 96 15 minute segments. I see calls for CoolNextPeriod for 28, 44, 72 & 92. That equates to 7am, 11am, 6pm & 11pm - precisely when the schedule changes on my thermostats. @rdfurman you probably knew that.
Failed again last night. Here's the log w/ some annotations. For some context, Device ID 7061292 is 24A, Device ID 7039159 is 24B.
Successful updates at midnight, 12:30, 1:00 & 1:30
2022-12-07 00:00:00.036 DEBUG (SyncWorker_8) [somecomfort] AndyLog: _get_hold: hold: temporary period: 28
2022-12-07 00:00:00.037 DEBUG (SyncWorker_8) [somecomfort] AndyLog: setpoint_cool: before lower: 60.0, upper: 99.0, temp: 69.0
2022-12-07 00:00:00.037 DEBUG (SyncWorker_8) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges
2022-12-07 00:00:00.037 DEBUG (SyncWorker_8) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 69.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7039159}
2022-12-07 00:00:00.541 DEBUG (SyncWorker_8) [somecomfort] AndyLog: Thermostat Temperature Change Successful
2022-12-07 00:00:00.542 DEBUG (SyncWorker_8) [somecomfort] AndyLog: setpoint_cool: after lower: 60.0, upper: 99.0, temp: 69.0
2022-12-07 00:00:54.640 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 00:05:54.647 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 00:10:54.649 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 00:15:54.655 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 00:20:54.657 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 00:25:54.660 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 00:30:00.047 DEBUG (SyncWorker_5) [somecomfort] AndyLog: _get_hold: hold: temporary period: 28
2022-12-07 00:30:00.048 DEBUG (SyncWorker_5) [somecomfort] AndyLog: setpoint_cool: before lower: 60.0, upper: 99.0, temp: 68.0
2022-12-07 00:30:00.048 DEBUG (SyncWorker_5) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges
2022-12-07 00:30:00.048 DEBUG (SyncWorker_5) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 68.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7039159}
2022-12-07 00:30:00.719 DEBUG (SyncWorker_5) [somecomfort] AndyLog: Thermostat Temperature Change Successful
2022-12-07 00:30:00.720 DEBUG (SyncWorker_5) [somecomfort] AndyLog: setpoint_cool: after lower: 60.0, upper: 99.0, temp: 68.0
2022-12-07 00:30:00.723 DEBUG (SyncWorker_2) [somecomfort] AndyLog: _get_hold: hold: temporary period: 28
2022-12-07 00:30:00.723 DEBUG (SyncWorker_2) [somecomfort] AndyLog: setpoint_cool: before lower: 60.0, upper: 99.0, temp: 70.0
2022-12-07 00:30:00.723 DEBUG (SyncWorker_2) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges
2022-12-07 00:30:00.723 DEBUG (SyncWorker_2) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 70.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7061292}
2022-12-07 00:30:01.335 DEBUG (SyncWorker_2) [somecomfort] AndyLog: Thermostat Temperature Change Successful
2022-12-07 00:30:01.335 DEBUG (SyncWorker_2) [somecomfort] AndyLog: setpoint_cool: after lower: 60.0, upper: 99.0, temp: 70.0
2022-12-07 00:30:54.673 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 00:35:54.689 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 00:40:54.693 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 00:45:54.699 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 00:50:54.704 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 00:55:54.711 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 01:00:00.024 DEBUG (SyncWorker_3) [somecomfort] AndyLog: _get_hold: hold: temporary period: 28
2022-12-07 01:00:00.025 DEBUG (SyncWorker_3) [somecomfort] AndyLog: setpoint_cool: before lower: 60.0, upper: 99.0, temp: 68.0
2022-12-07 01:00:00.025 DEBUG (SyncWorker_3) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges
2022-12-07 01:00:00.025 DEBUG (SyncWorker_3) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 68.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7061292}
2022-12-07 01:00:00.521 DEBUG (SyncWorker_3) [somecomfort] AndyLog: Thermostat Temperature Change Successful
2022-12-07 01:00:00.521 DEBUG (SyncWorker_3) [somecomfort] AndyLog: setpoint_cool: after lower: 60.0, upper: 99.0, temp: 68.0
2022-12-07 01:00:00.524 DEBUG (SyncWorker_7) [somecomfort] AndyLog: _get_hold: hold: temporary period: 28
2022-12-07 01:00:00.524 DEBUG (SyncWorker_7) [somecomfort] AndyLog: setpoint_cool: before lower: 60.0, upper: 99.0, temp: 67.0
2022-12-07 01:00:00.524 DEBUG (SyncWorker_7) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges
2022-12-07 01:00:00.524 DEBUG (SyncWorker_7) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 67.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7039159}
2022-12-07 01:00:01.114 DEBUG (SyncWorker_7) [somecomfort] AndyLog: Thermostat Temperature Change Successful
2022-12-07 01:00:01.114 DEBUG (SyncWorker_7) [somecomfort] AndyLog: setpoint_cool: after lower: 60.0, upper: 99.0, temp: 67.0
2022-12-07 01:00:54.723 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 01:05:54.733 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 01:10:54.738 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 01:15:54.743 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 01:20:54.749 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 01:25:54.753 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 01:30:00.052 DEBUG (SyncWorker_9) [somecomfort] AndyLog: _get_hold: hold: temporary period: 28
2022-12-07 01:30:00.053 DEBUG (SyncWorker_9) [somecomfort] AndyLog: setpoint_cool: before lower: 60.0, upper: 99.0, temp: 69.0
2022-12-07 01:30:00.053 DEBUG (SyncWorker_9) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges
2022-12-07 01:30:00.053 DEBUG (SyncWorker_9) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 69.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7061292}
2022-12-07 01:30:00.561 DEBUG (SyncWorker_9) [somecomfort] AndyLog: Thermostat Temperature Change Successful
2022-12-07 01:30:00.562 DEBUG (SyncWorker_9) [somecomfort] AndyLog: setpoint_cool: after lower: 60.0, upper: 99.0, temp: 69.0
Then a failure at 2am when setting temp for 24B. and a successful call to set temp for 24a. The call for 24B is the same call that was successful at 12:30.
2022-12-07 01:30:54.759 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 01:35:54.763 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 01:40:54.769 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 01:45:54.773 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 01:50:54.777 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 01:55:54.781 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 02:00:00.023 DEBUG (SyncWorker_1) [somecomfort] AndyLog: _get_hold: hold: temporary period: 28
2022-12-07 02:00:00.023 DEBUG (SyncWorker_1) [somecomfort] AndyLog: setpoint_cool: before lower: 60.0, upper: 99.0, temp: 68.0
2022-12-07 02:00:00.023 DEBUG (SyncWorker_1) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges
2022-12-07 02:00:00.023 DEBUG (SyncWorker_1) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 68.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7039159}
2022-12-07 02:00:00.649 ERROR (SyncWorker_1) [somecomfort] Response was <Response [200]>
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/requests/models.py", line 971, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/local/lib/python3.10/site-packages/simplejson/__init__.py", line 525, in loads
return _default_decoder.decode(s)
File "/usr/local/lib/python3.10/site-packages/simplejson/decoder.py", line 372, in decode
obj, end = self.raw_decode(s)
File "/usr/local/lib/python3.10/site-packages/simplejson/decoder.py", line 402, in raw_decode
return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 456, in _resp_json
return resp.json()
File "/usr/local/lib/python3.10/site-packages/requests/models.py", line 975, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2022-12-07 02:00:00.665 ERROR (SyncWorker_1) [somecomfort] Failed to de-JSON /Device/SubmitControlScreenChanges <Response [200]>
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/requests/models.py", line 971, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/local/lib/python3.10/site-packages/simplejson/__init__.py", line 525, in loads
return _default_decoder.decode(s)
File "/usr/local/lib/python3.10/site-packages/simplejson/decoder.py", line 372, in decode
obj, end = self.raw_decode(s)
File "/usr/local/lib/python3.10/site-packages/simplejson/decoder.py", line 402, in raw_decode
return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 456, in _resp_json
return resp.json()
File "/usr/local/lib/python3.10/site-packages/requests/models.py", line 975, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2022-12-07 02:00:00.668 ERROR (SyncWorker_1) [homeassistant.components.honeywell.const] Temperature 68.0 out of range
2022-12-07 02:00:00.676 DEBUG (SyncWorker_2) [somecomfort] AndyLog: _get_hold: hold: temporary period: 28
2022-12-07 02:00:00.676 DEBUG (SyncWorker_2) [somecomfort] AndyLog: setpoint_cool: before lower: 60.0, upper: 99.0, temp: 70.0
2022-12-07 02:00:00.676 DEBUG (SyncWorker_2) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges
2022-12-07 02:00:00.677 DEBUG (SyncWorker_2) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 70.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7061292}
2022-12-07 02:00:01.839 DEBUG (SyncWorker_2) [somecomfort] AndyLog: Thermostat Temperature Change Successful
2022-12-07 02:00:01.840 DEBUG (SyncWorker_2) [somecomfort] AndyLog: setpoint_cool: after lower: 60.0, upper: 99.0, temp: 70.0
Then a login failure which may have caused the following failures;
2022-12-07 02:00:54.785 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 02:01:07.244 ERROR (SyncWorker_10) [somecomfort] Session Error occurred: Received 500.
2022-12-07 02:01:07.247 ERROR (SyncWorker_10) [somecomfort] Attempting to login again.
2022-12-07 02:01:07.634 ERROR (SyncWorker_10) [somecomfort] Login failed
2022-12-07 02:01:07.710 ERROR (SyncWorker_10) [somecomfort] Session Error occurred: Received 500.
2022-12-07 02:01:07.714 ERROR (MainThread) [homeassistant.helpers.entity] Update for climate.24a fails
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 489, in _retries_login
self.keepalive()
File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 560, in keepalive
raise SomeComfortError()
somecomfort.client.SomeComfortError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 527, in async_update_ha_state
await self.async_device_update()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 730, in async_device_update
await task
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 357, in async_update
await self._data.async_update()
File "/usr/src/homeassistant/homeassistant/components/honeywell/__init__.py", line 183, in async_update
await self._refresh_devices()
File "/usr/src/homeassistant/homeassistant/components/honeywell/__init__.py", line 174, in _refresh_devices
await self._hass.async_add_executor_job(device.refresh)
File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 89, in refresh
data = self._client._get_thermostat_data(self.deviceid)
File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 505, in _get_thermostat_data
with self._retries_login():
File "/usr/local/lib/python3.10/contextlib.py", line 135, in __enter__
return next(self.gen)
File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 492, in _retries_login
self._login()
File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 51, in wrapper
return fn(*args, **kwargs)
File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 449, in _login
self.keepalive()
File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 560, in keepalive
raise SomeComfortError()
somecomfort.client.SomeComfortError
2022-12-07 02:01:07.733 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:01:44.788 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:02:44.792 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:03:44.790 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:04:44.792 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:05:54.791 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 02:06:00.785 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:06:44.792 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:07:44.793 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:08:44.795 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:09:44.796 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:10:54.798 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 02:11:05.600 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:11:44.799 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:12:44.800 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:13:44.805 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:14:44.817 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:15:54.812 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 02:16:01.650 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:16:44.812 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:17:44.813 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:18:44.814 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:19:44.819 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:20:54.816 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 02:21:02.027 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:21:44.816 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:22:44.818 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:23:44.822 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:24:44.820 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:25:54.822 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 02:26:01.176 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:26:44.822 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:27:44.823 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:28:44.824 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:29:44.824 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:30:00.025 DEBUG (SyncWorker_6) [somecomfort] AndyLog: _get_hold: hold: temporary period: 28
2022-12-07 02:30:00.025 DEBUG (SyncWorker_6) [somecomfort] AndyLog: setpoint_cool: before lower: 60.0, upper: 99.0, temp: 68.0
2022-12-07 02:30:00.026 DEBUG (SyncWorker_6) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges
2022-12-07 02:30:00.026 DEBUG (SyncWorker_6) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 68.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7039159}
2022-12-07 02:30:00.810 ERROR (SyncWorker_6) [somecomfort] Response was <Response [200]>
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/requests/models.py", line 971, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/local/lib/python3.10/site-packages/simplejson/__init__.py", line 525, in loads
return _default_decoder.decode(s)
File "/usr/local/lib/python3.10/site-packages/simplejson/decoder.py", line 372, in decode
obj, end = self.raw_decode(s)
File "/usr/local/lib/python3.10/site-packages/simplejson/decoder.py", line 402, in raw_decode
return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 456, in _resp_json
return resp.json()
File "/usr/local/lib/python3.10/site-packages/requests/models.py", line 975, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2022-12-07 02:30:00.815 ERROR (SyncWorker_6) [somecomfort] Failed to de-JSON /Device/SubmitControlScreenChanges <Response [200]>
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/requests/models.py", line 971, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/local/lib/python3.10/site-packages/simplejson/__init__.py", line 525, in loads
return _default_decoder.decode(s)
File "/usr/local/lib/python3.10/site-packages/simplejson/decoder.py", line 372, in decode
obj, end = self.raw_decode(s)
File "/usr/local/lib/python3.10/site-packages/simplejson/decoder.py", line 402, in raw_decode
return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 456, in _resp_json
return resp.json()
File "/usr/local/lib/python3.10/site-packages/requests/models.py", line 975, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2022-12-07 02:30:00.819 ERROR (SyncWorker_6) [homeassistant.components.honeywell.const] Temperature 68.0 out of range
2022-12-07 02:30:00.823 DEBUG (SyncWorker_4) [somecomfort] AndyLog: _get_hold: hold: temporary period: 28
2022-12-07 02:30:00.823 DEBUG (SyncWorker_4) [somecomfort] AndyLog: setpoint_cool: before lower: 60.0, upper: 99.0, temp: 71.0
2022-12-07 02:30:00.823 DEBUG (SyncWorker_4) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges
2022-12-07 02:30:00.823 DEBUG (SyncWorker_4) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 71.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7061292}
2022-12-07 02:30:02.016 ERROR (SyncWorker_4) [somecomfort] Response was <Response [200]>
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/requests/models.py", line 971, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/local/lib/python3.10/site-packages/simplejson/__init__.py", line 525, in loads
return _default_decoder.decode(s)
File "/usr/local/lib/python3.10/site-packages/simplejson/decoder.py", line 372, in decode
obj, end = self.raw_decode(s)
File "/usr/local/lib/python3.10/site-packages/simplejson/decoder.py", line 402, in raw_decode
return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 456, in _resp_json
return resp.json()
File "/usr/local/lib/python3.10/site-packages/requests/models.py", line 975, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2022-12-07 02:30:02.025 ERROR (SyncWorker_4) [somecomfort] Failed to de-JSON /Device/SubmitControlScreenChanges <Response [200]>
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/requests/models.py", line 971, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/local/lib/python3.10/site-packages/simplejson/__init__.py", line 525, in loads
return _default_decoder.decode(s)
File "/usr/local/lib/python3.10/site-packages/simplejson/decoder.py", line 372, in decode
obj, end = self.raw_decode(s)
File "/usr/local/lib/python3.10/site-packages/simplejson/decoder.py", line 402, in raw_decode
return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/somecomfort/client.py", line 456, in _resp_json
return resp.json()
File "/usr/local/lib/python3.10/site-packages/requests/models.py", line 975, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2022-12-07 02:30:02.033 ERROR (SyncWorker_4) [homeassistant.components.honeywell.const] Temperature 71.0 out of range
2022-12-07 02:30:02.053 ERROR (MainThread) [homeassistant.components.automation.hvac_24b_set_temp] HVAC 24B Set Temp: Choose at step 1: choice 1: Error executing script. Unexpected error for call_service at pos 1: None
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 451, in _async_step
await getattr(self, handler)()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 684, in _async_call_service_step
await service_task
File "/usr/src/homeassistant/homeassistant/core.py", line 1744, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1781, in _execute_service
await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 208, in handle_service
await service.entity_service_call(
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 695, in entity_service_call
future.result() # pop exception if have
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:30:02.073 ERROR (MainThread) [homeassistant.components.automation.hvac_24a_set_temp] HVAC 24A Set Temp: Choose at step 1: choice 1: Error executing script. Unexpected error for call_service at pos 1: None
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 451, in _async_step
await getattr(self, handler)()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 684, in _async_call_service_step
await service_task
File "/usr/src/homeassistant/homeassistant/core.py", line 1744, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1781, in _execute_service
await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 208, in handle_service
await service.entity_service_call(
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 695, in entity_service_call
future.result() # pop exception if have
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:30:02.078 ERROR (MainThread) [homeassistant.components.automation.hvac_24b_set_temp] HVAC 24B Set Temp: Error executing script. Unexpected error for choose at pos 1: None
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 451, in _async_step
await getattr(self, handler)()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 896, in _async_choose_step
await self._async_run_script(script)
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1029, in _async_run_script
await self._async_run_long_action(
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 648, in _async_run_long_action
long_task.result()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1524, in async_run
await asyncio.shield(run.async_run())
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 409, in async_run
await self._async_step(log_exceptions=False)
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 453, in _async_step
self._handle_exception(
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 476, in _handle_exception
raise exception
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 451, in _async_step
await getattr(self, handler)()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 684, in _async_call_service_step
await service_task
File "/usr/src/homeassistant/homeassistant/core.py", line 1744, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1781, in _execute_service
await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 208, in handle_service
await service.entity_service_call(
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 695, in entity_service_call
future.result() # pop exception if have
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:30:02.088 ERROR (MainThread) [homeassistant.components.automation.hvac_24b_set_temp] While executing automation automation.hvac_24b_set_temp
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/automation/__init__.py", line 551, in async_trigger
await self.action_script.async_run(
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1524, in async_run
await asyncio.shield(run.async_run())
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 409, in async_run
await self._async_step(log_exceptions=False)
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 453, in _async_step
self._handle_exception(
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 476, in _handle_exception
raise exception
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 451, in _async_step
await getattr(self, handler)()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 896, in _async_choose_step
await self._async_run_script(script)
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1029, in _async_run_script
await self._async_run_long_action(
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 648, in _async_run_long_action
long_task.result()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1524, in async_run
await asyncio.shield(run.async_run())
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 409, in async_run
await self._async_step(log_exceptions=False)
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 453, in _async_step
self._handle_exception(
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 476, in _handle_exception
raise exception
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 451, in _async_step
await getattr(self, handler)()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 684, in _async_call_service_step
await service_task
File "/usr/src/homeassistant/homeassistant/core.py", line 1744, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1781, in _execute_service
await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 208, in handle_service
await service.entity_service_call(
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 695, in entity_service_call
future.result() # pop exception if have
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:30:02.105 ERROR (MainThread) [homeassistant.components.automation.hvac_24a_set_temp] HVAC 24A Set Temp: Error executing script. Unexpected error for choose at pos 1: None
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 451, in _async_step
await getattr(self, handler)()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 896, in _async_choose_step
await self._async_run_script(script)
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1029, in _async_run_script
await self._async_run_long_action(
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 648, in _async_run_long_action
long_task.result()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1524, in async_run
await asyncio.shield(run.async_run())
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 409, in async_run
await self._async_step(log_exceptions=False)
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 453, in _async_step
self._handle_exception(
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 476, in _handle_exception
raise exception
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 451, in _async_step
await getattr(self, handler)()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 684, in _async_call_service_step
await service_task
File "/usr/src/homeassistant/homeassistant/core.py", line 1744, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1781, in _execute_service
await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 208, in handle_service
await service.entity_service_call(
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 695, in entity_service_call
future.result() # pop exception if have
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:30:02.121 ERROR (MainThread) [homeassistant.components.automation.hvac_24a_set_temp] While executing automation automation.hvac_24a_set_temp
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/automation/__init__.py", line 551, in async_trigger
await self.action_script.async_run(
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1524, in async_run
await asyncio.shield(run.async_run())
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 409, in async_run
await self._async_step(log_exceptions=False)
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 453, in _async_step
self._handle_exception(
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 476, in _handle_exception
raise exception
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 451, in _async_step
await getattr(self, handler)()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 896, in _async_choose_step
await self._async_run_script(script)
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1029, in _async_run_script
await self._async_run_long_action(
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 648, in _async_run_long_action
long_task.result()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1524, in async_run
await asyncio.shield(run.async_run())
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 409, in async_run
await self._async_step(log_exceptions=False)
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 453, in _async_step
self._handle_exception(
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 476, in _handle_exception
raise exception
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 451, in _async_step
await getattr(self, handler)()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 684, in _async_call_service_step
await service_task
File "/usr/src/homeassistant/homeassistant/core.py", line 1744, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1781, in _execute_service
await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 208, in handle_service
await service.entity_service_call(
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 695, in entity_service_call
future.result() # pop exception if have
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:30:54.825 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 02:31:01.022 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:31:44.827 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:32:44.827 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:34:44.829 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 813, in _update_entity_states
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 332, in state_attributes
data[ATTR_FAN_MODE] = self.fan_mode
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 226, in fan_mode
return HW_FAN_MODE_TO_HA[self._device.fan_mode]
KeyError: None
2022-12-07 02:35:54.830 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 02:40:54.835 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 02:45:54.839 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 02:50:54.843 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 02:55:54.846 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
Then at 3am it started working again. I included logs showing successful temp changes at 3am and 3:30, but there have been no failures through 10am
2022-12-07 03:00:00.022 DEBUG (SyncWorker_1) [somecomfort] AndyLog: _get_hold: hold: temporary period: 28
2022-12-07 03:00:00.022 DEBUG (SyncWorker_1) [somecomfort] AndyLog: setpoint_cool: before lower: 60.0, upper: 99.0, temp: 68.0
2022-12-07 03:00:00.023 DEBUG (SyncWorker_1) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges
2022-12-07 03:00:00.023 DEBUG (SyncWorker_1) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 68.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7039159}
2022-12-07 03:00:00.400 DEBUG (SyncWorker_1) [somecomfort] AndyLog: Thermostat Temperature Change Successful
2022-12-07 03:00:00.400 DEBUG (SyncWorker_1) [somecomfort] AndyLog: setpoint_cool: after lower: 60.0, upper: 99.0, temp: 68.0
2022-12-07 03:00:00.402 DEBUG (SyncWorker_10) [somecomfort] AndyLog: _get_hold: hold: temporary period: 28
2022-12-07 03:00:00.403 DEBUG (SyncWorker_10) [somecomfort] AndyLog: setpoint_cool: before lower: 60.0, upper: 99.0, temp: 70.0
2022-12-07 03:00:00.403 DEBUG (SyncWorker_10) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges
2022-12-07 03:00:00.403 DEBUG (SyncWorker_10) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 70.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7061292}
2022-12-07 03:00:00.715 DEBUG (SyncWorker_10) [somecomfort] AndyLog: Thermostat Temperature Change Successful
2022-12-07 03:00:00.716 DEBUG (SyncWorker_10) [somecomfort] AndyLog: setpoint_cool: after lower: 60.0, upper: 99.0, temp: 70.0
2022-12-07 03:00:54.853 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 03:05:54.860 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 03:10:54.871 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 03:15:54.876 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 03:20:54.883 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 03:25:54.888 WARNING (MainThread) [homeassistant.helpers.entity] Update of climate.24a is taking over 10 seconds
2022-12-07 03:30:00.025 DEBUG (SyncWorker_6) [somecomfort] AndyLog: _get_hold: hold: temporary period: 28
2022-12-07 03:30:00.025 DEBUG (SyncWorker_6) [somecomfort] AndyLog: setpoint_cool: before lower: 60.0, upper: 99.0, temp: 71.0
2022-12-07 03:30:00.026 DEBUG (SyncWorker_6) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges
2022-12-07 03:30:00.026 DEBUG (SyncWorker_6) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 71.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7061292}
2022-12-07 03:30:00.512 DEBUG (SyncWorker_6) [somecomfort] AndyLog: Thermostat Temperature Change Successful
2022-12-07 03:30:00.512 DEBUG (SyncWorker_6) [somecomfort] AndyLog: setpoint_cool: after lower: 60.0, upper: 99.0, temp: 71.0
2022-12-07 03:30:00.515 DEBUG (SyncWorker_2) [somecomfort] AndyLog: _get_hold: hold: temporary period: 28
2022-12-07 03:30:00.515 DEBUG (SyncWorker_2) [somecomfort] AndyLog: setpoint_cool: before lower: 60.0, upper: 99.0, temp: 69.0
2022-12-07 03:30:00.515 DEBUG (SyncWorker_2) [somecomfort] AndyLog: url: https://www.mytotalconnectcomfort.com/portal/Device/SubmitControlScreenChanges
2022-12-07 03:30:00.515 DEBUG (SyncWorker_2) [somecomfort] AndyLog: data: {'SystemSwitch': None, 'HeatSetpoint': None, 'CoolSetpoint': 69.0, 'HeatNextPeriod': None, 'CoolNextPeriod': None, 'StatusHeat': None, 'DeviceID': 7039159}
2022-12-07 03:30:00.868 DEBUG (SyncWorker_2) [somecomfort] AndyLog: Thermostat Temperature Change Successful
2022-12-07 03:30:00.868 DEBUG (SyncWorker_2) [somecomfort] AndyLog: setpoint_cool: after lower: 60.0, upper: 99.0, temp: 69.0
I'm not sure these logs are going to help much, let me know what you think.
Can you try setting your cool point to 71 for debugging?
I try setting cool to 71 directly from Honeywell app and changes the heat setting as well. Apparently tries to keep a minimum difference of 4 degrees.
But this cannot be related to my issue, as I get the the same error regardless of what direction I try to change the cooling.
Luis Avalos
From: RDFurman @.> Sent: Friday, December 16, 2022 10:10:35 AM To: home-assistant/core @.> Cc: lluigi20 @.>; Manual @.> Subject: Re: [home-assistant/core] Honeywell TCC error when adjusting settings (Issue #78531)
Can you try setting your cool point to 71 for debugging?
— Reply to this email directly, view it on GitHubhttps://github.com/home-assistant/core/issues/78531#issuecomment-1355153130, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AQTZMNR365B5ZK3S6JS7O7DWNSH7XANCNFSM6AAAAAAQNKLA2I. You are receiving this because you are subscribed to this thread.Message ID: @.***>
I don't understand how setting the cool point to 71 helps debug, but I am not able to work on this over the holidays, so let's discuss further after New Years.
The reason I was interested in 71 is due to this error I found in your logs:
2022-12-07 02:30:02.033 ERROR (SyncWorker_4) [homeassistant.components.honeywell.const] Temperature 71.0 out of range
Update. I've been running my HA automation that adjusts the thermostat temp on only 1 HVAC since Jan 5 and haven't had a single failure. The thermostat temp has been set multiple times from 60 - 72 degrees. No heat, only cool.
Next week I'll start running the automation on both HVACs.
I'm beginning to think this is a Honeywell API bug. @rdfurman do you think that's possible?
@ShortPutt: I've been working on porting the somecomfort API to AsyncIO. Hopefully it will fix all your troubles in the 2023.2 release.
One thing I did notice while porting the code: When the session keys are expired, some web pages return a "200" with application/text instead of application/json (aka null json conversion). We'll have to see, but I suspect the issue related to expired session keys.
I'm looking forward to sussing this out.
@mkmer That sounds promising! Looking forward to trying it out.
I've been getting errors again and it could very well be expired session keys. I won't have the ability to look into this until Feb, but I will install 2023.2 when its available and give it a run.
Update. I've been running my HA automation that adjusts the thermostat temp on only 1 HVAC since Jan 5 and haven't had a single failure. The thermostat temp has been set multiple times from 60 - 72 degrees. No heat, only cool.
Next week I'll start running the automation on both HVACs.
I'm beginning to think this is a Honeywell API bug. @rdfurman do you think that's possible?
I didn't notice this comment.
One BIG discovery I found while moving to async was that when multiple devices were configured, HA would update every device for every entity (aka 2x2=4, if you had 4 devices it would 4x4=16 updates) with a delay between each request.
This is the "bad" code - it is called by each entity in update(self)
:
(https://github.com/mkmer/HomeAssistant_Core/blob/cb13418babd21a1e9584978b0c523f1b1e4e1cb0/homeassistant/components/honeywell/init.py#L160-L163)
I'm back looking at this. I ran automations for both thermostats for 1 day - every single temp change call failed. I turned the automation for 1 of the thermostats off, now it works about 50% of the time. So it certainly looks like updating multiple thermostats is an issue. I'm going to work on debugging w/ a single thermostat update.
@mkmer, how are you doing w/ the rewrite? Let me know if I can help.
Rewrite is in 2023.2 (released today). Please try it out.
I updated HA to 2023.2. My HA automations that set the Honeywell temp are failing w the following log messages:
`2023-02-02 10:00:00.684 ERROR (MainThread) [somecomfort] Failed to de-JSON /portal/Device/SubmitControlScreenChanges <ClientResponse(https://www.mytotalconnectcomfort.com/portal/Error?aspxerrorpath=/portal/Device/SubmitControlScreenChanges) [200 OK]>
<CIMultiDictProxy('Cache-Control': 'no-cache, no-store, must-revalidate', 'Pragma': 'no-cache', 'Content-Type': 'text/html; charset=utf-8', 'Content-Encoding': 'gzip', 'Expires': '-1', 'Vary': 'Accept-Encoding', 'Server': 'Microsoft-IIS/8.5', 'ADRUM_0': 'g:147cfdf7-50b6-4629-b8fe-a80718c4344d', 'ADRUM_1': 'n:honeywell-prod_f7be1c76-506d-4111-81c5-fc62766aedb7', 'ADRUM_2': 'i:197987', 'ADRUM_3': 'e:28', 'X-XSS-Protection': '1; mode=block', 'X-UA-Compatible': 'IE=edge', 'X-Frame-Options': 'DENY', 'Date': 'Thu, 02 Feb 2023 14:59:59 GMT', 'Content-Length': '3448', 'Set-Cookie': 'NSC_NZUDD-443-WT=ffffffff090ecc0445525d5f4f58455e445a4a42378b;expires=Thu, 02-Feb-2023 14:57:42 GMT;path=/;secure;httponly')>
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/AIOSomecomfort/__init__.py", line 101, in _resp_json
return await resp.json()
File "/usr/src/homeassistant/homeassistant/helpers/aiohttp_client.py", line 52, in json
return await super().json(*args, loads=loads, **kwargs)
File "/usr/local/lib/python3.10/site-packages/aiohttp/client_reqrep.py", line 1103, in json
raise ContentTypeError(
aiohttp.client_exceptions.ContentTypeError: 0, message='Attempt to decode JSON with unexpected mimetype: text/html; charset=utf-8', url=URL('https://www.mytotalconnectcomfort.com/portal/Error?aspxerrorpath=/portal/Device/SubmitControlScreenChanges')
2023-02-02 10:00:00.692 ERROR (MainThread) [homeassistant.components.automation.new_automation] HVAC 24A Set Temp: Choose at step 1: choice 1: Error executing script. Unexpected error for call_service at pos 1: 'NoneType' object has no attribute 'get'
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 451, in _async_step
await getattr(self, handler)()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 684, in _async_call_service_step
await service_task
File "/usr/src/homeassistant/homeassistant/core.py", line 1787, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1824, in _execute_service
await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 213, in handle_service
await service.entity_service_call(
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 681, in entity_service_call
future.result() # pop exception if have
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 968, in async_request_call
await coro
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 721, in _handle_entity_call
await result
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 613, in async_service_temperature_set
await entity.async_set_temperature(**kwargs)
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 304, in async_set_temperature
await self._set_temperature(**kwargs)
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 294, in _set_temperature
await self._device.set_setpoint_cool(temperature)
File "/usr/local/lib/python3.10/site-packages/AIOSomecomfort/device.py", line 147, in set_setpoint_cool
await self._client._set_thermostat_settings(
File "/usr/local/lib/python3.10/site-packages/AIOSomecomfort/__init__.py", line 172, in _set_thermostat_settings
if result.get("success") != 1:
AttributeError: 'NoneType' object has no attribute 'get'
2023-02-02 10:00:00.699 ERROR (MainThread) [homeassistant.components.automation.new_automation] HVAC 24A Set Temp: Error executing script.
Unexpected error for choose at pos 1: 'NoneType' object has no attribute 'get'
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 451, in _async_step
await getattr(self, handler)()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 896, in _async_choose_step
await self._async_run_script(script)
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1029, in _async_run_script
await self._async_run_long_action(
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 648, in _async_run_long_action
long_task.result()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1524, in async_run
await asyncio.shield(run.async_run())
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 409, in async_run
await self._async_step(log_exceptions=False)
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 453, in _async_step
self._handle_exception(
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 476, in _handle_exception
raise exception
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 451, in _async_step
await getattr(self, handler)()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 684, in _async_call_service_step
await service_task
File "/usr/src/homeassistant/homeassistant/core.py", line 1787, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1824, in _execute_service
await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 213, in handle_service
await service.entity_service_call(
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 681, in entity_service_call
future.result() # pop exception if have
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 968, in async_request_call
await coro
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 721, in _handle_entity_call
await result
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 613, in async_service_temperature_set
await entity.async_set_temperature(**kwargs)
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 304, in async_set_temperature
await self._set_temperature(**kwargs)
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 294, in _set_temperature
await self._device.set_setpoint_cool(temperature)
File "/usr/local/lib/python3.10/site-packages/AIOSomecomfort/device.py", line 147, in set_setpoint_cool
await self._client._set_thermostat_settings(
File "/usr/local/lib/python3.10/site-packages/AIOSomecomfort/__init__.py", line 172, in _set_thermostat_settings
if result.get("success") != 1:
AttributeError: 'NoneType' object has no attribute 'get'
2023-02-02 10:00:00.707 ERROR (MainThread) [homeassistant.components.automation.new_automation] While executing automation automation.new_automation
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/automation/__init__.py", line 546, in async_trigger
await self.action_script.async_run(
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1524, in async_run
await asyncio.shield(run.async_run())
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 409, in async_run
await self._async_step(log_exceptions=False)
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 453, in _async_step
self._handle_exception(
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 476, in _handle_exception
raise exception
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 451, in _async_step
await getattr(self, handler)()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 896, in _async_choose_step
await self._async_run_script(script)
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1029, in _async_run_script
await self._async_run_long_action(
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 648, in _async_run_long_action
long_task.result()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1524, in async_run
await asyncio.shield(run.async_run())
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 409, in async_run
await self._async_step(log_exceptions=False)
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 453, in _async_step
self._handle_exception(
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 476, in _handle_exception
raise exception
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 451, in _async_step
await getattr(self, handler)()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 684, in _async_call_service_step
await service_task
File "/usr/src/homeassistant/homeassistant/core.py", line 1787, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1824, in _execute_service
await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 213, in handle_service
await service.entity_service_call(
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 681, in entity_service_call
future.result() # pop exception if have
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 968, in async_request_call
await coro
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 721, in _handle_entity_call
await result
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 613, in async_service_temperature_set
await entity.async_set_temperature(**kwargs)
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 304, in async_set_temperature
await self._set_temperature(**kwargs)
File "/usr/src/homeassistant/homeassistant/components/honeywell/climate.py", line 294, in _set_temperature
await self._device.set_setpoint_cool(temperature)
File "/usr/local/lib/python3.10/site-packages/AIOSomecomfort/device.py", line 147, in set_setpoint_cool
await self._client._set_thermostat_settings(
File "/usr/local/lib/python3.10/site-packages/AIOSomecomfort/__init__.py", line 172, in _set_thermostat_settings
if result.get("success") != 1:
AttributeError: 'NoneType' object has no attribute 'get'
2023-02-02 10:05:12.529 WARNING (MainThread) [homeassistant.helpers.entity] Update of sensor.wan_ip is taking over 10 seconds`
Here's the automation
alias: HVAC 24B Set Temp
description: ""
trigger:
- platform: time_pattern
minutes: "15"
seconds: "00"
- platform: time_pattern
minutes: "45"
seconds: "00"
condition: []
action:
- choose:
- conditions:
- condition: template
value_template: "{{ adj | abs >= 1 }}"
sequence:
- service: climate.set_temperature
data:
temperature: |
{{ newThermostatTemp | int }}
target:
entity_id: climate.24b
- choose:
- conditions:
- condition: template
value_template: >-
{{ state_attr('climate.24b', 'temperature') != newThermostatTemp | int }}
alias: Temp Change Failed
sequence:
- service: system_log.write
data:
level: warning
logger: HVAC
message: >
HA HVAC 24B Set Temp FAILED
Date / Time {{ dt }}
Thermostat Temp {{ thermostatTemp }}
ESP Temp {{ ESPTemp }}
Target Temp {{ targetTemp }}
Temp Adjustment {{ adj | round }}
New Thermostat Temp {{ newThermostatTemp | int }}
Thermostat set to {{ state_attr('climate.24b','temperature') }}
- conditions:
- condition: template
value_template: >-
{{ state_attr('climate.24b', 'temperature') == newThermostatTemp | int }}
alias: Temp Change Successful
sequence:
- service: system_log.write
data:
level: warning
logger: HVAC
message: >
HA HVAC 24B Set Temp Successful
Date / Time {{ dt }}
Thermostat Temp {{ thermostatTemp }}
ESP Temp {{ ESPTemp }}
Target Temp {{ targetTemp }}
Temp Adjustment {{ adj | round }}
New Thermostat Temp {{ newThermostatTemp | int }}
Thermostat set to {{ state_attr('climate.24b', 'temperature') }}
default:
- service: system_log.write
data:
level: warning
logger: HVAC
message: >
HA HVAC 24A Set Temp - Default Action SHOULD NEVER HAPPEN
{{ dt }}
Thermostat Temp {{ thermostatTemp }}
ESP Temp {{ ESPTemp }}
Target Temp {{ targetTemp }}
Temp Adjustment {{ adj | round }}
New Thermostat Temp {{ newThermostatTemp | int }}
Thermostat set to {{ state_attr('climate.24b', 'temperature') }}
- conditions:
- condition: template
value_template: "{{ adj | abs < 1 }}"
alias: Temp No Change
sequence:
- service: system_log.write
data:
level: warning
logger: HVAC
message: >
HA HVAC 24B Set Temp No Change
Date / Time {{ dt }}
Thermostat Temp {{ thermostatTemp }}
ESP Temp {{ ESPTemp }}
Target Temp {{ targetTemp }}
Temp Adjustment {{ adj | round }}
New Thermostat Temp {{ newThermostatTemp | int }}
Thermostat set to {{ state_attr('climate.24b','temperature') }}
default: []
mode: single
trace:
stored_traces: 24
variables:
dt: "{{now().strftime(\"%Y/%m/%d %I:%M:%S\")}}"
thermostatTemp: "{{ state_attr('climate.24b', 'temperature') | float }}"
ESPTemp: "{{ states.sensor.esp32_6520_temp.state | float }}"
targetTemp: |-
{% if now().hour < 18 and now().hour > 11 %}
{{ states.input_number.hvac_24b_temp_mid_day.state | float }}
{% else %}
{{ states.input_number.hvac_24b_target_temp.state | float }}
{% endif %}
adj: "{{ ESPTemp - targetTemp }}"
newThermostatTemp: "{{ thermostatTemp - adj }}"
The problem is here:
aiohttp.client_exceptions.ContentTypeError: 0, message='Attempt to decode JSON with unexpected mimetype: text/html; charset=utf-8', url=URL('https://www.mytotalconnectcomfort.com/portal/Error?aspxerrorpath=/portal/Device/SubmitControlScreenChanges')
Maybe your not actually logged in when the script tried to run. This will take a bit for me to clean up the "failure" path that was followed here. Please try resetting the integration without the scripts enabled - once your sure it's logged in (and you can change modes,etc), try the script and let me know what happens. Thanks!
I reloaded the integration after I updated HA. After seeing your note above I changed the thermostat target temp w/ HA UI card and the change was reflected on the thermostat, so looks like its logged in and communicating w/ the thermostat and the UI Card is working.
Let me know if there is something else I can do to help.
Is it working fine now?
I clearly have to better deal with failure paths - thanks for the log files to chase that down.
No, its failing. Same error.
Is it possible your trying to set a temperature that's out of the thermostat range? I'm not sure why the web site is rejecting your control command and returning the error redirect. I've been able to set temp commands in my instance "fine".
Try setting the temp with the service command - something simple.
Definitely not setting a temp out of range. I'll try using the service command later this afternoon.
The problem
When I attempt to change a temperature set point the attache error occurs, and the set point is not change. I have deleted and reinstalled the integration, but still getting the same error.
Thank you for any assistance.
What version of Home Assistant Core has the issue?
2022.08.6
What was the last working version of Home Assistant Core?
No response
What type of installation are you running?
Home Assistant OS
Integration causing the issue
honeywell total comfort
Link to integration documentation on our website
https://www.home-assistant.io/integrations/honeywell
Diagnostics information
No response
Example YAML snippet
No response
Anything in the logs that might be useful for us?
Additional information
No response