MizterB / homeassistant-infinitude

Home Assistant custom component for controlling Carrier Infinity Touch thermostats through an Infinitude proxy server.
53 stars 20 forks source link

Support Multiple Thermostats #32

Closed begna112 closed 3 years ago

begna112 commented 3 years ago

I have a two-story house with two infinity touch thermostats, furnaces, etc. Apparently these two systems aren't connected and both see themselves as "ZONE1" and use ID=1.

This same situation has been brought up by some Infinitude users in the past and the general consensus is to use two Infinitude proxies: https://github.com/nebulous/infinitude/issues/94

This works until trying to use the HASS-infinitude integration.

When I add two climate items to my configuration.yml like this...

climate:
  - platform: infinitude
    host: IP
    port: 3000
    zone_names:
      - Downstairs

climate:
  - platform: infinitude
    host: IP
    port: 3001
    zone_names:
      - Upstairs

only the second one shows up in HASS as an entity:

In the picture above, I had commented out the "upstairs" to confirm that it's always the second one which is used.

Can HASS-infinitude be altered to assign unique entities to each Infinitude Climate instance to support multiple thermostats?

secabeen commented 3 years ago

The code all assumes one system. You should be able to run a second system by making a copy of the infinitude directory in your custom_components as infinitude2, then going into that copy, and replacing every instance of "infinitude" with "infinitude2". (That's overkill, I'm sure not every single instance needs the change, but there's little harm in doing it universally.) I expect that would work, although I haven't tested it.

rmertz3282 commented 3 years ago

I'm a little late to this thread but I have a similar setup as begna112.

I'm running two infinitude proxies, one for each thermostat. However, I'm only running one infinitude integration. My configuration generates both entities as expected. Notice I only call the climate once.

The only issue I notice is when trying to call a service like set_hold_mode. Only one stat is updated.

climate:
  - platform: infinitude
    host: x.x.x.xxx
    port: 3001
    zone_names:
      - 'Bryant Down'
  - platform: infinitude
    host: x.x.x.xxx
    port: 3002
    zone_names:
      - 'Bryant Up'
begna112 commented 3 years ago

wow. thanks @rmertz3282. That... makes sense. I'm just the big dumb for not realizing that multiple climate types should each go under the same section. Chalk this up to my not understanding Home Assistant.

Thanks!