Carrier/Bryant Infinitive Integration

Hi
Can’t seem to find it in HACS. I running hassio. What is it called. Also thanks for all your work.
5310

You have to add https://github.com/mww012/hass-infinitive as a custom repository within HACS settings. Then the integration will show up in the integration list.

Thanks. Just found it and installed. Sorry

Awesome, thanks @mww012

I just restarted HA and I was greeted with climate.infinitive as unavailable due to this error:

Sun Feb 02 2020 14:28:22 GMT-0600 (Central Standard Time)
Error while setting up platform infinitive
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 158, 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 262, in update
    self._target_temperature_high = self._status['coolSetpoint']
KeyError: 'coolSetpoint'

Fortunately, another restart fixed it. Has anyone else seen this one before?

Hoping for some advice. I have 2 Infinity systems, both with non-touch screen thermostats. A few months ago, I got everything setup and working for my upstairs unit without any issues. A few weeks later, I tried getting the downstairs unit setup with exactly the same setup, but ran into problems where I only see the blower RPM come across. Since my kids actually ran the cable under the house, I assumed that they had it all kinked up or frayed (18ga solid wire), so I bought another roll and made the run myself. It’s roughly 20 feet away from the pi.

When I look at the logs for my upstairs unit (working), I see data you’d expect:
image

The downstairs unit shows similar data, but plenty of re-transmittals:
image

If I go to the web interface of each, the upstairs has data that is populated, while the downstairs only shows the blower RPM. And, as expected, in Home assistant, when I add both, I get info for the upstairs, but the downstairs unit doesn’t even show when looking for it in the Developer Tools --> States.

image

Any thoughts or suggestions? I’ve tried scouring these threads so my question isn’t a repeat. I saw the thread on touch screen thermostats not working, but I’m pretty sure that both of my units are the same thermostat. I do believe the air handlers and outside units are different, but I was told that it was because we purchased them 4 yrs apart, so technology changed/improved.

Thanks in advance!

Here some suggestions:
Check board version IDs. Just had my board replaced and no issues.
Second how are the wires attached. It’s digital. I heard not to use a pig tail. Try to space them apart in the connector. So they dont touch Sounds crazy.but it could be noise.
Advice is worth what you paid for it.

I’ll have to check the board versions and maybe get a picture of each. The wires is a straight run, no pigtails or splices.

Bill
Sure sounds like framing noise. My bad, it not a digital signal but analog. It’s a serial RS485, I believe. Wire length shouldn’t be an issue. Specs for two wire are 4000’. And I don’t believe you have a ground loop since HVAC 18g wiring typically isn’t shielded. But check yours. It it a shielded wire i should be grounded on only one end. Another idea is to switch the PIs. Which would rule out a PI configuration issues. After switching check the web interface and see it the problem switched units.

From https://github.com/acd/infinitive

Bogus data

Occasionally Infinitive will display incorrect data via the web interface for a second. This is likely caused by improper parsing of data received from the ABCD bus. I’d like to track down the root cause of this issue and resolve it, but due to its transient nature it’s not a high priority and does not affect usability

Send an email to the author: Andrew Danforth [email protected]

And now I’m out of suggestion…

5310

@mww012, since changing my installation to the HACS install, I haven’t seen the “mode” errors, but I am repeatedly getting the following error. It does not seem to matter if I change operating mode from heat to heat/cool (my thought was that setting to heat/cool would provide the cool setting and perhaps stop the error). Any thoughts?

Thanks!

Update for climate.infinitive fails
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/helpers/entity.py”, line 279, 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 262, in update
self._target_temperature_high = self._status[‘coolSetpoint’]
KeyError: ‘coolSetpoint’

That’s interesting. Is that error pretty regular or sporadic? Also, what mode do you have your hvac in (cool, heat, auto)

I restarted Home Assistant today at 2:54 p.m. and the log says the error has occurred 11 times since then. Currently in heat mode, but before the reboot today, auto mode was used, and the error showed up just as regularly. For a data point, I am running Infinitive for two HVAC systems, each with its own RS485 adapter (same one shown in the pictures for your install) plugged into one RPI3 - two instances of Infinitive are running on the PI and I receive the same error on both instances.

Swapped the Pi’s and the issue remains, so it’s not the Pi. I used the same type of wire - 18ga unshielded 2 pair HVAC wire on both units.

I just tried removing the downstairs thermostat from the wall and plugging my wire from there to the serial interface on the Pi. The wires from the HVAC to the thermostat is like 15’ and then I have another 5’ going to the Pi. Same thing. Someone earlier mentioned I might need a new board in the air handler and I’m hoping that’s not the case.

Hi:
Something going on.
What do you get when access the Infinitive program from a browser? Anything? Missing data?

When you tried testing over the thermostat wire was the other wires disconnected?

It this point, I would go into setup mode on the thermostat and check for errors in it’s log. Look for thing about the data bus. RS485 is a serial interface and may be set to operate at different speeds . Also I believe there is only one board and that the one you should be attached to.

Here’s what I found in the Carrier manuals:
Software Revs 3,5,6,8,10, 12 Infinity /Evolution Troubleshooting (Rev. 2)
10-12-2006
6
Intermittent loss of communication
If communication errors occur at random intervals, and no system problems can be
found by using the troubleshooting method described above, there may be a problem with outside electrical noise that affects system communication. First, trace all wires and ensure they are not in close proximity to high voltage, or other electrical equipment wiring such as alarm systems, fluorescent lighting, or recording equipment. Ensure there is sufficient separation between these wires, and a good common connection all the way through. If this does not correct the situation, properly installing shielded thermostat wire may be required to stop external interference from affecting system communications.

Also the Infinitive program is looking to connect with the ABCD bus at 38480 baud. I have yet to find how or where the transmission baud rate is set on the unit. Does anyone know?? If it trying to communicate at different speeds anything is possible but I would think everything you’d see would be garbage and not requests for retransmission.

Just try to help…
5310

@jmckinleyii So I think I figured out what’s going on. I started seeing the logs in my system so it made it easier to troubleshoot.

Prior to the my last commit, we were getting errors about ‘mode’. Now we’re seeing ‘coolSetpoint’ errors, which is the next attribute that get sets after ‘mode’. That sparked my curiosity and I added a debug log to print the dict right before we start assigning attributes.

Here’s what I got right before the error showed up:
2020-02-08 18:55:58 DEBUG (SyncWorker_8) [custom_components.infinitive.climate] {'heatpump_tempUnit': '', 'heatpump_coilTemp': 0, 'heatpump_outsideTemp': 0, 'heatpump_stage': 0, 'blowerRPM': 0, 'airFlowCFM': 0, 'heatBits': '00000000', 'auxHeat': False}

Here’s what a normal output looks like:
2020-02-08 18:54:57 DEBUG (SyncWorker_4) [custom_components.infinitive.climate] {'tempUnit': 'F', 'currentTemp': 71, 'currentHumidity': 40, 'outdoorTemp': 57, 'mode': 'auto', 'stage': 0, 'fanMode': 'auto', 'hold': True, 'holdDurationMins': 0, 'heatSetpoint': 69, 'coolSetpoint': 73, 'targetHumidity': 45, 'rawMode': 2, 'heatpump_tempUnit': '', 'heatpump_coilTemp': 0, 'heatpump_outsideTemp': 0, 'heatpump_stage': 0, 'blowerRPM': 0, 'airFlowCFM': 0, 'heatBits': '00000000', 'auxHeat': False}

For some reason Infinitive isn’t sending the first part of the dict. No idea why but I can account for it now that we have an idea of what’s going on. I’ll try to get that fix pushed up later this evening.

Ok, I’ve added what is hopefully a fix for the coolSetpoint error. I also changed the versioning so that it uses release numbers instead of the commit id. The current release is v0.0.1. I haven’t seen the error show up again in the logs but I also can’t guarantee I’ve hit the infinitive bug. If anybody wants to give v0.0.1 a shot and report back I’d really appreciate it.

Also, I really appreciate all the help you guys have given since this first got released. It’s nice to know that this integration is actually being useful.

Thanks! I installed the update about an hour ago. I’ll watch the logs and let you know what I see. Really appreciate your work on this.

Well, shoot. This just hit the log:

Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/helpers/entity.py”, line 284, in async_update_ha_state
self._async_write_ha_state()
File “/usr/src/homeassistant/homeassistant/helpers/entity.py”, line 320, in _async_write_ha_state
state = self.state
File “/usr/src/homeassistant/homeassistant/components/climate/init.py”, line 165, in state
return self.hvac_mode
File “/config/custom_components/infinitive/climate.py”, line 236, in hvac_mode
_LOGGER.debug("Getting HVAC Mode: " + str(self._status[‘mode’]))
KeyError: ‘mode’

I’ve had that show up once in my log as well. Is it repeating for you? I’m still looking at what caused it.

It’s coming up fairly often. I restarted HA this morning and in the 5 hours since then, this error shows up 15 times.