core: New Honeywell TCC Integration doesn't support multiple thermonstats

The problem

After upgrading to 2021.8.0 and the new Honeywell Total Connect Comfort (US) integration 2 of my 3 thermostats have disappeared. Previously in 2021.7 and using the configuration.yaml setup all 3 thermostats were exposed.

What is version of Home Assistant Core has the issue?

2021.8.0

What was the last working version of Home Assistant Core?

2021.7.4

What type of installation are you running?

Home Assistant Supervised

Integration causing the issue

Honeywell Total Connect Comfort (US)

Link to integration documentation on our website

https://www.home-assistant.io/integrations/honeywell

Example YAML snippet

N/A now using the configuration flow.

Anything in the logs that might be useful for us?

Logger: homeassistant.components.honeywell.const
Source: components/honeywell/climate.py:131
Integration: honeywell (documentation, issues)
First occurred: 12:14:10 PM (1 occurrences)
Last logged: 12:14:10 PM

Loading honeywell via platform config is deprecated; The configuration has been migrated to a config entry and can be safely removed

Additional information

No response

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Reactions: 16
  • Comments: 113 (17 by maintainers)

Most upvoted comments

Also does not look like it made it into 2021.8.8 😦

That worked, all 3 of mine loaded.

I will work on tests and merging later tonight (after work).

For those who want a bit more of a HOWTO, here’s what I did (fetching and applying a patch might be easier than replacing the whole file:

$ docker exec -it homeassistant sh
/config # wget https://patch-diff.githubusercontent.com/raw/home-assistant/core/pull/54003.diff
/config # cd /usr/src/homeassistant/
/usr/src/homeassistant # apk update
/usr/src/homeassistant # apk add patch
/usr/src/homeassistant # patch -p1 < /config/54003.diff 
/usr/src/homeassistant # exit

At which point I restarted homeassistant from the GUI, and magically my other thermostats appeared.

It’s looking like I will just have to wait until the patch is applied to the integration and update at that point. Hopefully soon. I do appriciate your work on this, @rdfurman

@bkr1969 I also do not have access to the homeassistant files but was able to get it working using custom the custom_components folder - I see both my thermostats. 1) Create a folder called ā€œhoneywellā€ inside of your /config/custom_components/ folder. 2) Copy all of the files from the patched integration (https://github.com/rdfurman/core/tree/multi-thermostat-fix/homeassistant/components/honeywell) to that folder. 3) Add a version to your manifest.json file and restart HA (e.g. ā€œversionā€: ā€œ2021.08.15ā€ ). 4) After restarting this folder will override the official integration and pickup the changes. 5) Be sure to delete this folder after the patch is applied to the official version or you will not benefit from future updates.

I’m a little busy with a family wedding right now, but as soon as I get a chance I’ll write up the necessary tests and get this PR pushed through.

@rdfurman make sure to read the problems and possible solution in Regards to RedLINK before closing this!!

Just for clarity, the proposed fix does fix the problem with multiple honeywell WIFI thermostats…I have 2 and the code was broken, but now fixed with the patch. It apparently does not work with Honeywell redlink thermostats.

That worked, all 3 of mine loaded.

Thank you for the hard work on this, just updated to 2021.9 and got all my thermostats! I did have to remove/add the integration so that the names went back to normal, but everything is working now.

@stmrocket @jeffh0821 @stk21 @rdfurman - I’m seeing the same thing, but let’s not confuse the issue. I created #55095 to track the rate limiting issue, so that we can keep this issue just multiple thermostats…

Sad to see the fix didn’t make the official 2021.8.7 update… Is there any ETA?

Running core-2021.8.6 with latest patch installed, and can confirm that I now see both of my thermostats that are behind a Redlink gateway. After installing the patch I had 3 entities and needed to delete the pre-patch entity and then rename the new entity added from the patch. Once renamed, my automations and entity cards displayed correctly. Controls are working as well.

PR updated to use deviceid. Going to work on some tests next. Would be wonderful if a couple people could try out the latest on that branch to see if it shows all thermostats now. šŸ‘

@rdfurman Works for me using RedLINK gateway and two thermostats. Just a heads up. Latest commit might be considered a breaking change since peoples thermostats will now get a new unique ID, so they will have to delete the old entities and rename the new entities to the old names.

For Redlink gateway owners: As I referenced earlier, I was able to see both of my thermostats by changing to patched climate.py code to use device name instead of MAC ID as the unique ID. This is most certainly not the right way to fix it. I did it to test a theory about why it wasn’t working that turned out to be true. However, if you don’t want to downgrade to 2021.7.x or below and don’t want to wait for an official fix, making this change will probably get all of your climate devices to show. Let me give all the warnings first:

  1. This is probably not the right way to fix this.
  2. You may need to rename your climate entities after running with this code change to make them what they were before.
  3. When the official fix comes, you may need to rename your entities again.
  4. I have no idea if there are downstream effects that are bad. I can only state that it gets me back up and running with full access to both of my Redlink Thermostats.
  5. Proceed at your own risk.

Still want to give it a go? All I did was change line 156 in the patched honeywell/climate.py from:

self._attr_unique_id = dr.format_mac(device.mac_address)

to

self._attr_unique_id = device.name

If Redlinks are the only thermostats with this problem, maybe the right way, or at least a better way, is to determine whether or not the device is a Redlink (I don’t know how) and then use a different way of assigning a unique ID if it is (maybe the Redlink thermostats have a property that can be used that is supposed to be unique).

A better solution might be to use self._attr_unique_id = device.deviceid

deviceid is unique

I do not have red link. I am currently on 2021.7.4 and it works fine. What’s the fix for 2021.8.4?

I too have a redlink gateway, with two thermostats using it as the bridge to TCC. And of course, luck of the draw, the one thermostat that is showing up is the one with no automations and the one thats missing was the automated one (some days it just be like that.)

Thanks in advance for all the hard work going into this, I know from experience the difficulties one runs into developing for systems that you can’t get your own hands on for testing!

No, I don’t have multiple honeywells with the same MAC ID. They both connect to an Internet gateway that has one MAC ID that the this is using. My Honeywell thermostats don’t connect directly to the network themselves.

I’m a little busy with a family wedding right now, but as soon as I get a chance I’ll write up the necessary tests and get this PR pushed through.

The PR54003 fix works for me 😃

I upgraded from 2018.7.x to 2018.8.3 and only 1 of 2 of my thermostats showed up (U.S.). I replaced the files climate.py and __init__.py from the PR54003 commits and it now works. Both thermostats show up and I can set their temps.

might be a weird offer but I trust you with my climate lol

By using this aren’t we all trusting him with our climate? I have 3 and would also make the same offer.

rdfurman – I would be willing to change my password & give you the temporary credentials to test the corrections you are making if that is something you would be interested in. I have 2 thermostats & hopefully being able to test it yourself would be beneficial to everyone. I understand where that might be a weird offer but I trust you with my climate lol Thanks for working to get this fixed btw!

Chris

Only my first (of 4) is loading even with the latest fixes.

The new commits didn’t work for me. I have 2 thermostats, only one loads even after deleting the integration, restarting, and adding the integration. Both loaded before upgrading. I’m currently on core 2021.8.1 running in a python virtual env. Error could be on my side, I’m not that experienced applying commits, but the two files are changed.

I set log level to info and this is all I have in my logs related to this:

2021-08-05 10:26:50 INFO (MainThread) [homeassistant.components.climate] Setting up climate.honeywell
2021-08-05 10:26:50 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new climate.honeywell entity: climate.main_flr_therm
2021-08-05 10:26:50 ERROR (MainThread) [homeassistant.components.climate] Platform honeywell does not generate unique IDs. ID 00:d0:2d:xx:xx:xx already exists - ignoring climate.main_flr_therm

climate.main_flr_therm is the entity it added. It did not add my second one.

Thanks for jumping on this so quickly @rdfurman!

@rdfurman I can confirm this and there is no work around since the new integration deprecates the manual config.yaml configuration.