Custom Component: Carrier Infinity Touch control via Infinitude

Seems to be a known issue. I’m having the same problem after I stopped my containers. I’m unable to restart.

What is the known issue?

My apologies. I replied to the wrong post.

This appears to be a known issue with the latest upgrade of the Portainer addon.

image

MizterB’s stack solution works perfectly.

@MizterB

By chance do you also see similar log entries from your running stack/container?

[2021-09-02 13:48:39.26589] [7] [info] systems-2618W006669-status cached or passthru disabled

[2021-09-02 13:48:39.26963] [7] [info] /systems/2618W006669/status

[2021-09-02 13:48:39.30790] [7] [info] Saving status

[2021-09-02 13:48:53.56224] [7] [info] systems-2618W006669-status cached or passthru disabled

[2021-09-02 13:48:53.56470] [7] [info] /systems/2618W006669/status

[2021-09-02 13:48:53.60115] [7] [info] Saving status

No, but that output tis likely coming from Development mode…I don’t believe there is logging in Production mode. That would indicate successful communication with your system.

My logs are:

      
MODE is set to Production

[2021-08-24 13:50:25.76589] [7] [info] Listening at "http://*:3000"

MODE is set to Production

[2021-08-27 17:39:34.59051] [8] [info] Listening at "http://*:3000"

MODE is set to Production

[2021-08-27 18:45:01.06378] [7] [info] Listening at "http://*:3000"

MODE is set to Production

If you want to run 2 containers, then yes, you would need 2 directories to hold the container data. If you wanted to differentiate based on ports (let’s say you run on 3000 and 3001), you could do this:

  1. Create directories share/infinitude_3000/state and share/infinitude_3001/state

  2. Deploy this stack config (not tested, but pretty confident here)

version: "2.1"

services:
  infinitude_3000:
    container_name: infinitude_3000
    hostname: infinitude_3000
    image: nebulous/infinitude:latest
    network_mode: host
    ports:
      - "3000:3000"
    volumes:
      - /mnt/data/supervisor/share/infinitude_3000/state:/infinitude/state
    environment:
      - APP_SECRET=Pogotudinal
      - PASS_REQS=300
      - MODE=Production
    restart: always

  infinitude_3001:
    container_name: infinitude_3001
    hostname: infinitude_3001
    image: nebulous/infinitude:latest
    network_mode: host
    ports:
      - "3001:3000"
    volumes:
      - /mnt/data/supervisor/share/infinitude_3001/state:/infinitude/state
    environment:
      - APP_SECRET=Pogotudinal
      - PASS_REQS=300
      - MODE=Production
    restart: always
1 Like

That configuration works for me after I switch the network to bridge mode.

1 Like

Perfect! Your solution worked and I am not pulling data into Infinitude.

My next question is now, how do I get home assistant to recognize my carrier as a Thermostat/climate entity? When I try to go into Lovelace and create a card, it says it cannot find any climate devices.

Thank you!

Did you create config.yaml entry?

I rebooted the system and everything was there.

Just wanted to say thanks for this! Had everything up and running a few hours after the installers finished commissioning my new Infinity system. The thermostat seems to respond instantly to commands with no lag - a pleasant surprise.

1 Like

This worked perfectly for me until my HA sd card decided to die.
Luckily I had a full backup so I reinstalled HA on the new sd card, restored it from backup and now this is the only integration that doesn’t work for me.

I tried uninstalling and reinstalling on HA but it didn’t work.
Any idea?

Here is the error message:

Logger: homeassistant.components.climate
Source: custom_components/infinitude/climate.py:160
Integration: Climate (documentation, issues)
First occurred: 20:16:17 (1 occurrences)
Last logged: 20:16:17

Error while setting up infinitude platform for climate
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/urllib/request.py", line 1346, in do_open
    h.request(req.get_method(), req.selector, req.data, headers,
  File "/usr/local/lib/python3.9/http/client.py", line 1279, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/local/lib/python3.9/http/client.py", line 1325, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/usr/local/lib/python3.9/http/client.py", line 1274, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/local/lib/python3.9/http/client.py", line 1034, in _send_output
    self.send(msg)
  File "/usr/local/lib/python3.9/http/client.py", line 974, in send
    self.connect()
  File "/usr/local/lib/python3.9/http/client.py", line 945, in connect
    self.sock = self._create_connection(
  File "/usr/local/lib/python3.9/socket.py", line 844, in create_connection
    raise err
  File "/usr/local/lib/python3.9/socket.py", line 832, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 249, 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 106, in setup_platform
    status = infinitude.status()
  File "/config/custom_components/infinitude/climate.py", line 166, in status
    status = self.api("/api/status")
  File "/config/custom_components/infinitude/climate.py", line 160, in api
    with request.urlopen(req) as response:
  File "/usr/local/lib/python3.9/urllib/request.py", line 214, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/local/lib/python3.9/urllib/request.py", line 517, in open
    response = self._open(req, data)
  File "/usr/local/lib/python3.9/urllib/request.py", line 534, in _open
    result = self._call_chain(self.handle_open, protocol, protocol +
  File "/usr/local/lib/python3.9/urllib/request.py", line 494, in _call_chain
    result = func(*args)
  File "/usr/local/lib/python3.9/urllib/request.py", line 1375, in http_open
    return self.do_open(http.client.HTTPConnection, req)
  File "/usr/local/lib/python3.9/urllib/request.py", line 1349, in do_open
    raise URLError(err)
urllib.error.URLError: <urlopen error [Errno 111] Connection refused>

Update: not sure if this helps but my Infinity Touch is showing a yellow mark on the wifi icon meaning it is not connected. (I made this work a long time ago I don’t remember what I did.)

Is your proxy running?

Not sure. Did this such a long time ago i dont even remember the steps i took.
How do i check that?

Not an easy answer.

You can try looking at the settings on the thermostat itself. Under the wireless-> advanced settings → manage proxy.

Type the path found into a browser and see if it loads.

Ahh ha, no it doesn’t. good call.
My thermostat is pointing to my hassio with the correct port but when typing the path it gets me no where.
I cant find the steps to running the proxy. Can you point me to the right place?

Well I have to assume you are running it through Docker? Start there to see if the container is running.

No not Docker. I have Infinitude running on my HA through HACS.
according to the Github page, all I need to do is add this to the config file:

climate:
#Carrier HVAC
  - platform: infinitude
    host: localhost
    port: 3000
    zone_names:
      - Carrier

Nothing about running a proxy :frowning_face:

Not sure I can help you any further. If it worked before, you had a proxy server running. If the thermostat is pointing to your HA instance plus the port (i.e. http://10.0.0.202:3000) and your config file is set as you noted above then it’s correct. The only possible scenario is the proxy isn’t running.

See if this link rings a bell.

1 Like

Found this: Installing on Home Assistant · nebulous/infinitude Wiki · GitHub
Thanks for your help @rmertz3282

Update: If you found this link helpful you might also need this one. Reposting: Deploying any container results in error "starting container with non-empty request body was deprecated since API v1.22 and removed in v1.24" · Issue #127 · hassio-addons/addon-portainer · GitHub

1 Like