Custom Component: Carrier Infinity Touch control via Infinitude

I normally access my web gui via http://homeassistant.local:8123. Given your question, I did change the config file to homeassistant.local but I get the same error if i try connecting to that at 3000 (connection refused).

This is the entirety of the container log:

MODE is set to Production
[2021-06-30 03:50:49.71507] [7] [info] Listening at “http://*:3000”

From a CMD line if you ping http://homeassistant.local:8123 what does the ipaddress resolve to?

Select the container in Portainer and scroll to the bottom. What does the connected network show? Bridge or host? Is a network even configured?

Based on the container log it sounds like it’s running. You just need to determine the proper ipaddress. Using the FQDN won’t work.

Pinging homeassistant.local results in an IPv6 address which matches the IPv4 that I mentioned earlier: Detected: enp0s3 (192.168.1.212/24, fe80::ecfc:bd8:bef8:8d61/64)

The Portainer is showing as bridge with a totally different IP. That’s the one I first tried but then I was told to not use that one.

You mentioned earlier something about a VM. I wonder if that is creating an issue for you.

Do you have any other docker containers that are running? Maybe conflicting with port 3000?

Well by a VM, I meant the VM that HA is running…it’s what I downloaded from Windows - Home Assistant

I have no other docker items running (except the ones HA uses).

Hi, I’m getting the following error in my logs when trying to set this up. I can see and control my thermostat just fine when navigating to the infinitude proxy, but can’t get HA to see it. Any advice? Thanks in advance.

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 250, in _async_setup_platform
    await asyncio.shield(task)
  File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 52, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/infinitude/climate.py", line 122, in setup_platform
    devices.append(InfinitudeZone(infinitude, zones[i]["id"], zone_name))
  File "/config/custom_components/infinitude/climate.py", line 216, in __init__
    self.update()
  File "/config/custom_components/infinitude/climate.py", line 371, in update
    dt = datetime.datetime(
OverflowError: date value out of range

Share your config.yaml entry so we can confirm it’s correct.

In my configuration.yaml, I have the following:

climate: !include includes/climate.yaml

And in my climate.yaml file, I have the following (I have two thermostats, so I’m running two proxies):

- platform: infinitude
  host: 192.168.69.22
  port: 3000
- platform: infinitude
  host: 192.168.69.22
  port: 3001

Sorry for the delayed response.

I’d comment out the include reference and add the platform directly in the config.yaml. That’s how I have it set up. I also have two separate system pointing to ports 3000 and 3001.

No worries. Unfortunately, having all the code in the configuration.yaml file does not produce a different result.

Did you install this through HACS? Check that you are on the current version.

Did you see this post?

or this one?

I did install through HACS and am on the latest version (0.7.2).

After trying various things, I was able to get it to work by including at least one scheduled activity mode in each zone (I had no scheduled activity modes before). Not sure what the root cause is, but just glad I was able to get it to work finally.

Appreciate the effort and suggestions though!

EDIT: I’ve figured this out. This was my first ‘non UI’ configuration of an integration. I didn’t realize that it wouldn’t show up in the integration list at all. I went into the Entities tab and there is my ‘ZONE 1’ climate entity. So I’m leaving my below here just incase anyone else runs into this same confusion.

Original:

I’m having the same issue, installed through HACS and can’t find the integration after multiple restarts etc. @anguyen58 what do you mean “scheduled activity mode in each zone”. Is that something you did on your thermostat / infinitude? For trouble shooting purposes my config.yaml entry looks like:

climate:
  - platform: infinitude
    host: <DSM IP ADDRESS>
    port: <PORT ASSIGNED BY DOCKER>

There is a start up warning in the log file (no errors):

2021-08-26 17:20:39 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration infinitude which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant

My infinitude is accessible with the same IP / port from my config file and has up to date info on it. Infinitude doesn’t seem to be forwarding data out to the myinfinity app but that isn’t my hoped for use case anyway.

Any advice or specific directions on how to get Infinitude installed and working using Portainer inside of Home Assistant?

I think you can simply pull the image from dockerhub using the tag nebulous/infinitude:latest

Go to Portainer, then images, enter nebulous/infinitude:latest into the docker.io field.

Once the image is present you can build a container from it.

This link should help.

I think that is where I struggle, is building the container from it. The documentation from Portainer seems to be lacking, I have never built one before.

Click on Container, add container, give it a name, add the image tag nebulous/infinitude:latest, change your restart policy to “always”, and make sure the network is set to bridge. Then hit deploy the container.

If you used the correct image the entry point, port, and ENV settings should be set to the default. If the container starts and remains running you should be able to open a browser and go to

http://ipaddress:3000 where the ipaddress is that of you HA instance…NOT the internal portainer ipaddress.

This only works when the image has been pulled successfully. You should see something like this within the image section

THis is what I keep getting:

image

Here is how I am running Infinitude via HA’s Portainer add-on…

  1. Create a directory for storing the Infinitude data. You can follow these instructions to do this. I created a infinitude/state directory structure under share.

  2. Within Portainer, select “Stacks” from the nav-bar. Click the “Add stack” button.

  3. Enter the following:
    Name: infinitude
    Web editor:

version: "2.1"

services:
  infinitude:
    container_name: infinitude
    hostname: infinitude
    image: nebulous/infinitude:latest
    network_mode: host
    ports:
      - "3000:3000"
    volumes:
      - /mnt/data/supervisor/share/infinitude/state:/infinitude/state
    environment:
      - APP_SECRET=Pogotudinal
      - PASS_REQS=300
      - MODE=Production
    restart: always
  1. Click “Deploy the stack”

That’s it…note that if you choose to store the data in a different directory, you need to change the volume config that you pasted in (/mnt/data/supervisor/share/infinitude/state). All the directories that HA exposes in a supervised install can be found below /mnt/data/supervisor/, so you can adjust to your preference.

1 Like

Very cool. I learned something new today. If I run two containers do I need separate directories?