Airtouch 5 Integration (Aus)

I updated last night. The integration communicates with the console and reports temperatures correctly. I can control zones as well.

However, the AC units are reported as “Off” and do not reflect the state of the AC. I have not touched those settings, and so far the zone temperatures are still reporting.

1 Like

@smitcoracing It’s busted on console version 1.2.0.
I’ll have a poke around when I have some time, if you can please ask airtouch what they’ve changed and let me know so I can fix it. :pray:

1 Like

Will see what the engineer says and get back to you.
Please confirm you have cycled power from mains

1 Like

These are the errors I was getting related to the AC units:

Logger: homeassistant.components.websocket_api.http.connection
Source: components/websocket_api/commands.py:283
integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 8:51:00 AM (1 occurrences)
Last logged: 8:51:00 AM
[140273793315696] Fan mode is not valid. Valid fan modes are: low, high, auto

Note that these are indeed the fan speeds I have configured in my Airtouch console.

1 Like

Bad news, after a reboot of the main Airtouch module in the ceiling, the integration will no longer load at all. Log below:

Source: config_entries.py:594
First occurred: 9:12:02 AM (1 occurrences)
Last logged: 9:12:02 AM

Error setting up entry 192.168.0.87 for airtouch5
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/asyncio/tasks.py", line 520, in wait_for
    return await fut
           ^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/airtouch5py/airtouch5_simple_client.py", line 142, in _read_packets_until_match
    packet = await self._client.packets_received.get()
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/asyncio/queues.py", line 158, in get
    await getter
asyncio.exceptions.CancelledError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 594, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/airtouch5/__init__.py", line 25, in async_setup_entry
    await client.connect_and_stay_connected()
  File "/usr/local/lib/python3.12/site-packages/airtouch5py/airtouch5_simple_client.py", line 129, in connect_and_stay_connected
    for ac in (await self._wait_for_packet_or_throw(AcStatusData)).ac_status
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/airtouch5py/airtouch5_simple_client.py", line 150, in _wait_for_packet_or_throw
    return await asyncio.wait_for(_read_packets_until_match(), 5)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/asyncio/tasks.py", line 519, in wait_for
    async with timeouts.timeout(timeout):
  File "/usr/local/lib/python3.12/asyncio/timeouts.py", line 115, in __aexit__
    raise TimeoutError from exc_val
TimeoutError

All good, engineer is looking at this for us.

1 Like

I have a Wireshark PCAP of the reload attempt if so desired. TCP connection to the console is succeeding, and I see some data about the zone names in the data returned from the console, so it’s not something low level. It has to be related to something related to the API.

Link to PCAP: Airtouch5-integration-reload.pcapng

1 Like

The length of one of the packets has changed, I can work around it (it would be good to know what the new bytes mean though).
Will push some test code in ~2hrs hopefully, gotta head out.
New commit pushed here, but haven’t done a release yet GitHub - danzel/airtouch5py: Python client for the airtouch 5

1 Like

i have the apk of the airtouch software so if you looking to roll back you can

2 Likes

Can I get a copy please ?

@Danzel @TheNoctambulist

Engineer is still looking to all but had mentioned to me

“The only difference might be the ac data set but the api should not have used it”

This probably all in the console but I wouldn’t be messing with it

here. it might be risky

AirTouch5_Tab_V1.1.3.apk

@TheNoctambulist @Danzel

I will message you both a revised API document.

2 Likes

As a temporary workaround I mounted the updated packet_decoder.py file in docker compose and it works perfectly

  • ./packet_decoder.py:/usr/local/lib/python3.12/site-packages/airtouch5py/packet_decoder.py

The update has been paused as control 4 also has issues with the API

can i please get a copy of the API doc ?

Polyaire have posted it here

1 Like

To unblock everyone, here is a copy of the component with my current fix in:

Grab airtouch5-0.2.9.zip and extract it in to custom_components/, so you end up with custom_components/airtouch5/manifest.json.
Then restart HA.
(Or you can do what jadedfk posted above)

This will get it running again with 1.2.0
From the protocol docs I need to remove a few of the length checks, I’ll hopefully do that and submit this upstream to HA sometime this weekend.

2 Likes

Thanks Danzel, that has fixed it. Very much appreciated.