IntesisHome WiFi AC Control

I’m getting the same error. Had been working perfectly for many months. Still able to connect using Android app.

Only thing I have changed recently is updating to latest version of HA.

Yup me too. Update to 2022.5.2

Check this GitHub issue, it may not be related to HA update:

intesishome broken after 2022.5.2 · Issue #71494 · home-assistant/core · GitHub

Sorry to seem daft - but can this be done using HACS in the web interface > overflow menu > custom repositories? I have tried using the URL home-assistant/homeassistant/components/intesishome at intesishome-config-flow · jnimmo/home-assistant · GitHub but I get the error “Repository structure for dev is not compliant”. I have tried adding just the root of GitHub - jnimmo/home-assistant at intesishome-config-flow as well with the same result.

1 Like

It’ll need to go into a sub folder called intesishome.
Sorry not on HACs but I will see what I can do to make this more easily available.

Thanks to @dukestraykker I managed to get my local integration working. I’m no Git expert so I only downloaded the changed files, now have added some .py files and now it works. Really nice and better than cloud integration.

1 Like

Good to hear. Is there any chance you could describe the steps you took to get it up and running? What I have done is:

Download the files below from home-assistant/homeassistant/components/intesishome at intesishome-config-flow · jnimmo/home-assistant · GitHub
init.py
climate.py
config_flow.py
manifest.json
strings.json

Also from the sub folder translations downloaded file
en.json

I put these into the location: \homeassistant.local\config\custom_components\intesishome (including the translation folder holding the en.json file)

I then put the below into my configuration.yaml:

climate:

  • platform: intesishome
    username: !secret ih_username
    password: !secret ih_password

(putting the actual creds in the secrets file)

Restarted home assistant and I still see the same error in the logs:

Logger: homeassistant.components.intesishome.climate
Source: components/intesishome/climate.py:134
Integration: intesishome
First occurred: 9:31:35 AM (1 occurrences)
Last logged: 9:31:35 AM

Error getting device list from IntesisHome API: None

I am also seeing the below entry in the homeassistant.log at startup:
2022-05-10 09:31:26 ERROR (SyncWorker_1) [homeassistant.loader] The custom integration 'intesishome' does not have a version key in the manifest file and was blocked from loading. See https://developers.home-assistant.io/blog/2021/01/29/custom-integration-changes#versions for more details
I added into the manifest.json the below line:
“version”: “1.0.0”,

But after the next homeassistant restart I see this in the logs:

Logger: homeassistant.components.climate
Source: helpers/entity_platform.py:175
Integration: Climate ([documentation](https://www.home-assistant.io/integrations/climate), [issues](https://github.com/home-assistant/home-assistant/issues?q=is%3Aissue+is%3Aopen+label%3A%22integration%3A+climate%22))
First occurred: 9:53:02 AM (1 occurrences)
Last logged: 9:53:02 AM

Error while setting up intesishome platform for climate

Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 246, in _async_setup_platform task = async_create_setup_task() File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 175, in async_create_setup_task return platform.async_setup_platform( # type: ignore[no-any-return,union-attr] TypeError: async_setup_platform() takes 3 positional arguments but 4 were given

I guess it’s the climate section in your config yaml. I’ll show my config in a few minutes:

- platform: intesishome
  device: intesishome_local
  username: admin
  password: admin
  host: 192.168.x.x

Where the IP is your local IP of the wifi unit.

My subfolder content looks a bit different compared to yours:

-rw-r--r--  1 root root  19K May  8 12:48 climate.py
-rw-rw-r--  1 root pi   6.1K May  9 08:42 config_flow.py
-rw-r--r--  1 root root 1.1K May  8 12:47 __init__.py
-rw-r--r--  1 root root  304 May  8 12:50 manifest.json
-rw-rw-r--  1 root pi    762 May  9 08:42 strings.json

Thanks for the reply and info. My understanding is that this is going to be cloud control not local - and that it would be going out to the myanywair cloud portal using the credentials and getting the heat pumps registered there and then creating an entity/device in HA from it. If this is local control - even better, but then wouldnt it be a waste of several portions of the integration code to be calling the myanywair cloud portal API?

I changed my config yaml to be similar to yours (with actual creds and IP not below):

climate:
  - platform: intesishome
    device: anywair
    username: admin
    password: admin
    host: 192.168.1.123

I also tried with the intesishome_local as device in case that worked, but when I then try to restart HA I see the below error for either type of device:

2022-05-12 12:17:09 ERROR (MainThread) [homeassistant.components.climate] Error while setting up intesishome platform for climate
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 246, in _async_setup_platform
    task = async_create_setup_task()
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 175, in async_create_setup_task
    return platform.async_setup_platform(  # type: ignore[no-any-return,union-attr]
TypeError: async_setup_platform() takes 3 positional arguments but 4 were given

It seems like the same error I was getting earlier too.

If you want local control, you need to use device: intesishome_local. Just like in example above from @mhoogenbosch:

climate:
  - platform: intesishome
    device: intesishome_local
    username: admin
    password: admin
    host: 192.168.x.x

Also, check if you can access/login your device locally - http://192.168.x.x

For anywAIR cloud control, your configuration should look like this:

climate:
  - platform: intesishome
    device: anywair
    username: USERNAME
    password: PASSWORD
1 Like

Sorry for the dumb question but can you just link to the PR files for the intesishome_local? I just can’t seem to find it. I see there is a link for the anywAIR files. Could it be they are one and the same?

Yes I have access to the web server locally of all 3 heat pumps I have here:

Are there some prerequisite steps I might be missing here? Assuming starting with no config at all, I have put the contents of home-assistant/homeassistant/components/intesishome at intesishome-config-flow · jnimmo/home-assistant · GitHub branch named “intesishome-config-flow” into \homeassistant.local\config\custom_components\intesishome and then the below into configuration.yaml:

climate:
  - platform: intesishome
    device: intesishome_local
    username: admin
    password: realpasswordhere
    host: 192.168.1.123

Using the intesishome_local config this is the error I get in the logs after restarting HA:

Logger: homeassistant.components.climate
Source: helpers/entity_platform.py:175
Integration: Climate (documentation, issues)
First occurred: 9:44:07 AM (1 occurrences)
Last logged: 9:44:07 AM

Error while setting up intesishome platform for climate
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 246, in _async_setup_platform
    task = async_create_setup_task()
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 175, in async_create_setup_task
    return platform.async_setup_platform(  # type: ignore[no-any-return,union-attr]
TypeError: async_setup_platform() takes 3 positional arguments but 4 were given

Using the cloud anywair config:

climate:
  - platform: intesishome
    device: anywair
    username: cloudusername
    password: cloudpassword

This is the error in the logs I get (which is identical and makes me think something somewhere else is wrong):

Logger: homeassistant.components.climate
Source: helpers/entity_platform.py:175
Integration: Climate (documentation, issues)
First occurred: 9:40:13 AM (1 occurrences)
Last logged: 9:40:13 AM

Error while setting up intesishome platform for climate
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 246, in _async_setup_platform
    task = async_create_setup_task()
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 175, in async_create_setup_task
    return platform.async_setup_platform(  # type: ignore[no-any-return,union-attr]
TypeError: async_setup_platform() takes 3 positional arguments but 4 were given

For the intesis_local config you have, did you try admin as your password as well? I thought we were supposed to use admin as the username and password.

I’ve followed the same steps but trying to use intesisbox, and have the same issue.

My understanding is that it should be the real credentials. I can login in to the web server using admin and the password I’ve changed it to, admin is the default password though.

Looks like something must have changed in the climate method headers since I created that pull request. I’ll try and have a look tomorrow to see what needs to be updated to fix that error (positional arguments)

2 Likes

Thanks @jnimmo , I’m getting the same as bspin / dukestraykker. Let me know if we can provide further logs somehow but otherwise I just see:

Error while setting up intesishome platform for climate
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 246, in _async_setup_platform
    task = async_create_setup_task()
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 175, in async_create_setup_task
    return platform.async_setup_platform(  # type: ignore[no-any-return,union-attr]
TypeError: async_setup_platform() takes 3 positional arguments but 4 were given

If I don’t put something in configuration.yaml and instead try add the integration through HA Integrations UI, I get:

Source: data_entry_flow.py:348
First occurred: 10:13:22 PM (1 occurrences)
Last logged: 10:13:22 PM

Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/aiohttp/web_protocol.py", line 435, in _handle_request
    resp = await request_handler(request)
  File "/usr/local/lib/python3.9/site-packages/aiohttp/web_app.py", line 504, in _handle
    resp = await handler(request)
  File "/usr/local/lib/python3.9/site-packages/aiohttp/web_middlewares.py", line 117, in impl
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 60, in security_filter_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 222, in forwarded_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 79, in ban_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 219, in auth_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 137, in handle
    result = await result
  File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 205, in post
    return await super().post(request, flow_id)
  File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 62, in wrapper
    result = await method(view, request, *args, **kwargs)
  File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 109, in post
    result = await self._flow_mgr.async_configure(flow_id, data)
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 260, in async_configure
    result = await self._async_handle_step(
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 348, in _async_handle_step
    if result["type"] not in (
TypeError: 'NoneType' object is not subscriptable

Hope that helps tracking it down :slight_smile:

Is there a way I should be able to get more logs from this? I have this set in my configuration.yaml file:
image
But just unsure if I can be getting further logs for what looks to be this data_entry_flow or the aiohttp server?

Source: data_entry_flow.py:348
First occurred: May 15, 2022, 10:13:22 PM (5 occurrences)
Last logged: 7:02:05 AM

Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/aiohttp/web_protocol.py", line 435, in _handle_request
    resp = await request_handler(request)
  File "/usr/local/lib/python3.9/site-packages/aiohttp/web_app.py", line 504, in _handle
    resp = await handler(request)
  File "/usr/local/lib/python3.9/site-packages/aiohttp/web_middlewares.py", line 117, in impl
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 60, in security_filter_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 222, in forwarded_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 79, in ban_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 219, in auth_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 137, in handle
    result = await result
  File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 205, in post
    return await super().post(request, flow_id)
  File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 62, in wrapper
    result = await method(view, request, *args, **kwargs)
  File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 109, in post
    result = await self._flow_mgr.async_configure(flow_id, data)
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 260, in async_configure
    result = await self._async_handle_step(
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 348, in _async_handle_step
    if result["type"] not in (
TypeError: 'NoneType' object is not subscriptable

Just thought I’d post here and ask if anyone else has had any luck with this. Unfortunately I’ve made no progress with it.

Also keen to hear how I can get the local set-up coming. I am using the airconwithme module. So currently my cloud-based config is:

climate:
  - platform: intesishome
    device: airconwithme
    username: !secret airconwithme_user
    password: !secret airconwithme_secret