Carrier/Bryant Infinitive Integration

I tried adding an off mode when I originally built it but never was able to get it to work so I removed that piece. I’m open to trying it again if you’d like. I’ll be back home in a few days and want to work on getting HACS integration going. I’ll take another swing at this as well.

Thanks @mww012! I don’t think it’s a huge deal. I can simply set the heat/air to a range where it won’t kick on. One quick question. I’m setting up another Pi to manage a different unit. Can you let me know what I change to make the 2 unique? Meaning, should I change the infinitive.service config so the MQTT messages are different? Right now, in HA, my first unit shows “climite.infinitive” as the entity. Sorry for the noob question.

I’m running it on 3 units. Each Pi has its own IP and you just add a config entry for each Pi in configuration.yaml and they will each show up as a separate entity, second one should be climate.infinitive_2 or something along those lines.

Thanks @Tj_Davis. I’m still having problems. One of my units is working fine, the other won’t show in HA. I’ve tried swapping the 2 pi’s thinking I made a config error, but the problem persists. Since they’re identical hardware and software, the only thing I could think of was wiring. Before I crawl back under the house, I looked at the logs (tail -f /var/log/syslog |grep “debug”) and I see plenty of readings showing the hvac msgs. This leads me to believe it’s wired correctly. I do see a lot of retransmitted frames (seemingly more than my other unit), and lots of “timeout waiting for response”. Odd as I’m using the same exact type of wire and the run is arguably shorter to this pi. I’m just not clear on “who” is timing out… the connection to HA or the communication to/from the hvac unit.

Here’s the HA error:

Sun Dec 01 2019 11:27:29 GMT-0500 (Eastern Standard Time)
Error while setting up platform infinitive
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 150, in _async_setup_platform
    await asyncio.wait_for(asyncio.shield(task), SLOW_SETUP_MAX_WAIT)
  File "/usr/local/lib/python3.7/asyncio/tasks.py", line 442, in wait_for
    return fut.result()
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/infinitive/climate.py", line 95, in setup_platform
    add_entities([InfinitiveDevice(inf_device, name, temp_min_spread)])
  File "/config/custom_components/infinitive/climate.py", line 130, in __init__
    self.update()
  File "/config/custom_components/infinitive/climate.py", line 258, in update
    self._hvac_mode = self._status['mode']
KeyError: 'mode'

and here’s my HA config:

climate:
  - platform: infinitive
    host: 192.168.2.23
    port: 8080
    friendly_name: hvac_upstairs
  - platform: infinitive
    host: 192.168.2.25
    port: 8080
    friendly_name: hvac_downstairs

To know if it’s wired correctly, try going to the IP in your browser and see if you can control it using Infinitive directly. If it works there for both then it’s an issue with HA, if it doesn’t work there for both then it’s an issue with cabling or the Pi setup.

Just to clarify, try:

http://192.168.2.23:8080

and

http://192.168.2.25:8080

In your browser and see if both work and actually adjust the thermostat.

If the interface doesn’t come up, it’s a Pi setup issue. If the interface comes up but doesn’t control the thermostat, it’s a wiring issue. If both work, it’s a HA setup issue.

Wow. Didn’t know that existed. I assumed it was a REST service only. Nice.

The site comes up, but no data. The upstairs page loads with data as it should. Looks like I’m heading back under the house!

1 Like

Yep, definitely a wiring issue.

Thanks for the follow-up! Where should I look for these logs?

I did see the general service logs, but I will want to give you more fresh of a log, because this thing is like 30MB of straight text.

Hey guys, can anyone think of a reason why infinitive is only reading the fan RPM, with no other readings or ability to control anything? I checked the wiring as per the pictures from @mww012 and everything seems to be hooked up properly…

Ugh, looks like my particular thermostat is not compatible with infinitive: https://github.com/acd/infinitive/issues/5

That sucks, sorry! I bet you could find one of the “simple” one like ours and “downgrade” for relatively cheap. To me it would be worth it to gain the functionality you get from Infinitive.

Good idea, what models are known to work? I’m assuming a new thermostat will have to be programmed, is that something only a carrier tech can do?

I think most of us have one like this one. I know someone else had tried the touch one and it didn’t work. Unfortunately it looks kind it’s expensive as well - between $300 to $700 depending on where you look. As basic as it is, I bet if you search you can find one cheaper from someone who doesn’t know it’s “supposed” to be expensive.

Does anyone else see a fair number of log entries for “Update for climate.infinitive fails”? I get a good number of these:

Update for climate.infinitive fails
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 281, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 461, in async_device_update
    await self.hass.async_add_executor_job(self.update)
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/infinitive/climate.py", line 258, in update
    self._hvac_mode = self._status['mode']
KeyError: 'mode'

I am 99% sure I’m on the current master branch, though I did have to replace an SD card in the last month. @mww012 any thoughts?

I’ve seen this but haven’t been able to actually capture it happening. My current theory is that infinitive, for some reason, doesn’t send back the mode when the api is queried. It’s always the ‘mode’ that gets complained about.

I think what I may do is adjust the integration to account for instances where the mode is left out of infinitive’s responses. I’ve got to do some more work to get it in HACS anyway.

Just wanted say another big thanks to @mww012 - I am using a custom thermostat card now (https://github.com/nervetattoo/simple-thermostat installed via HACS) and it was a piece of cake to include the fan mode settings:
image
Would not have been possible without the great Infinitive component!

1 Like

Nice! I’m going to have to give that card try.

Hey guys. It took a long while but I finally got around to getting the Infinitive integration into HACS. I did create a new repository for the HA Infinitive integration. Going forward, please use HACS as the installation method. I’ll leave the old repo in place for a while in case anybody is using it in scripting or something similar.

I’ve been able to add it as a custom integration repo in HACS and things seem to be working pretty well. I haven’t see anything unexpected. I also added what I’m hoping will get rid of the ‘mode’ errors. Hopefully those will go away but it’s not an issue I’ve been able to create on demand so it’s been hard to test.

https://github.com/mww012/hass-infinitive

1 Like

Awesome! For anyone else who had it installed manually, attempting to install from HACS popped up a dialog asking if I wanted to overwrite the existing installation. I said yes, restarted HA, and that was it! As easy as can be. I’ll watch for the ‘mode’ errors since they were a daily occurrence, but I don’t anticipate any issues whatsoever. Thanks again @mww012 for your great work!