Carrier/Bryant Infinitive Integration

Try:
def hvac_mode(self):
“”“Return current hvac mode.”""
_LOGGER.debug("Getting HVAC Mode: " + str(self._status[“mode”]))
if self._status[“mode”] == “cool”:
return HVAC_MODES[2]
elif self._status[“mode”] == “heat”:
return HVAC_MODES[1]
elif self._status[“mode”] == “auto”:
return HVAC_MODES[3]

add

   elif self._status["mode"] == "off":
        return HVAC_MODES[5]

I don’t see any off mode for fan just hvac mode in the infinitive code

@mww012, @5310
I think I got the “off” function to work, however, I did not use HVAC_MODES[5] but [0] instead. Could you double check that what I did is not breaking things? I am able to turn on and off my system.

    @property
    def hvac_mode(self):
        """Return current hvac mode."""
        _LOGGER.debug("Getting HVAC Mode: " + str(self._status["mode"]))
        if self._status["mode"] == "cool":
            return HVAC_MODES[2]
        elif self._status["mode"] == "heat":
            return HVAC_MODES[1]
        elif self._status["mode"] == "auto":
            return HVAC_MODES[3]
        elif self._status["mode"] == "off":
            return HVAC_MODES[0]            

    @property
    def hvac_modes(self):
        """Return supported HVAC modes (heat, cool, heat_cool)."""
        return [HVAC_MODES[0], HVAC_MODES[1], HVAC_MODES[2], HVAC_MODES[3]]

Hi
My bad. I saw it was using “5” in the infinitive server code for off so ASSumed it needed a “5”. Good job.

Has anyone else seen odd behavior with the hvac_mode? I’ve been checking the history for my climate.infinitive entity lately (to monitor how much the AC is running in this heat wave) and I’ve noticed there have been some instances where it appears to go from cool to heat very briefly. In the screenshot below, the vertical red line to the right of the image was triggered by a set_temperature service call which included both a temperature AND hvac_mode key:


Oddly, the temperature setting for the minute where it was set to heat was set to 1 F.
I’m still trying to identify when exactly this happens, but I’m curious if anyone else has seen something similar.

Not having any issues.
What are you min / max temp presets? Is there a 1 deg difference? Totally guessing.

Here’s a zoomed in view. It’s not a temperature difference of 1 F, it’s just set to heat to 1 F.

This is a known issue with the Infinitive API. Not sure what causes it but every once in a while when we poll the API it will spit back a weird temp value. Sometimes it’s 1, sometimes it’s 24, sometimes it’s something else. The next poll goes right back to normal.

I have an automation that alerts me when my current temp is ±5 degrees from my set point. The idea is that I’ll know if something happens and my heat/AC aren’t working properly. That generates alerts sometimes when this happens so I know it’s not just you seeing this.

I’m working on the ‘off’ option today. Even in the underlying pyinfinitive package I don’t have an off mode so if any of you got it working another way then that’s awesome. I’m not exactly sure how that would work but good job either way.

What’s weird is that the ‘off’ button on infinitive’s webui doesn’t work for me. However, I can manually turn the system off and I get an update from Infinitive. I’m trying to use that to derive exactly how to tell the system to turn off. Setting the ‘mode’ via pyinfinitive to off doesn’t work for me but there’s a rawmode option in Infinitive’s API that I haven’t played with. I’m hoping that will net us some good results.

Quick question for you guys. When using the webui, if you click ‘off’ does your system actually turn off?

Yep, I just tried it - clicking ‘off’ in the Infinitive UI on my local LAN (not HA), it changes the thermostat to “SYSTEM OFF”. Changing it back to ‘cool’ changes the thermostat back to ‘cool’, too.

Edit: This is on a Bryant Evolution system, for reference.

Well crap. It’s just my system that’s jacked up then. Also, I misspoke earlier. I do have ‘off’ as an option in pyinfinitive. @strikeir13 can you try running this python script and see if it turns off your unit?

import pyinfinitive

dev = pyinfinitive.infinitive_device("<infinitive ip>", <port, probably 8080>)
dev.set_mode('off')

Looks like it worked, here’s the raw input/output with comments on what happened after each set_mode command:

pi@raspberrypi:~ $ python3
Python 3.7.3 (default, Jan 22 2021, 20:04:44)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyinfinitive
>>> dev = pyinfinitive.infinitive_device("192.168.86.144",8080)
>>> dev.set_mode('off') # after this command, the thermostat said "SYSTEM OFF", just as though I'd turned it off from the Infinitive web UI
>>> dev.set_mode('cool') # this successfully turned it back to 'cool'

I am not sure what you are looking for but I have been using this code below as mentioned a couple of weeks ago and I can turn my system on and off without any modifications to pyinfinitive. I have a Carrier System with the Infinity System thermostat.

@property
    def hvac_mode(self):
        """Return current hvac mode."""
        _LOGGER.debug("Getting HVAC Mode: " + str(self._status["mode"]))
        if self._status["mode"] == "cool":
            return HVAC_MODES[2]
        elif self._status["mode"] == "heat":
            return HVAC_MODES[1]
        elif self._status["mode"] == "auto":
            return HVAC_MODES[3]
        elif self._status["mode"] == "off":
            return HVAC_MODES[0]            

    @property
    def hvac_modes(self):
        """Return supported HVAC modes (heat, cool, heat_cool)."""
        return [HVAC_MODES[0], HVAC_MODES[1], HVAC_MODES[2], HVAC_MODES[3]]

I can confirm that the code works. How do we get it updated in HA custom components?

I got it. I’m working on adding it now. I’ll let you know when a new release is pushed. Shouldn’t be long.

1 Like

@mww012 thanks. If you are touching the code, I don t think the preset mode works. It does not seem to show the hold vs home in the preset. I am missing something? I am seeing PRESET_HOME in the import but not PRESER_HOLD. Not sure how the code works there.

First I am not sure how I did not stumble upon this and the other thread a long time ago. Based off of this I just ordered my RS-485 adapter to do the integration. Quick question, which I know this may be best place to ask, but does anyone know if there is a docker container for the InfiniTIVE software? It looks like there is one for InfiniTUDE, but I can’t seem to find one for InfiniTIVE.

Really appreciate the work you all are doing to make this work and I am really excited to get this working.

I haven’t found one. I started looking at building one didn’t get far into it. It’s still something I’d like to do someday.

I took a look at it today. I think I see the flaw in my logic but need to do some debugging. Unfortunately I’ve had to switch to a new machine since I last did any real debugging work with HA. I’m setting up an entirely new dev environment which is never fun.

I’m hoping to finish that tomorrow because my day-job work should be light. I’ll update everybody on the progress tomorrow afternoon.