Airtouch 5 Integration (Aus)

I was able to test out cemilbrowne’s code by:

  1. Making a copy of the AirTouch4 integration into the: config/custom_components folder
  2. I renamed the folder and the contents of the DOMAIN to be Air Touch 5
  3. In the manifest.json file I changed the requirements line to be:
  "requirements": [
    "git+https://github.com/cemilbrowne/airtouch4pyapi.git@AirTouch5Support#airtouch4pyapi==1.0.4"
  ],

And then restarted Home Assistant, and went through the config flow for the integration.
FYI - it turns out you cannot initialise the AirTouch library specifying the version because if you do it will not set the port number. It is clever enough to detect the port number as 9004 or 9005 and set the version appropriately.

It connected and read all the zones and zone names I had and created entities for them.

My AirTouch 5 didn’t get fully installed today, as the connection to the Samsung unit isn’t working - so hopefully the installer will come back tomorrow with a solution.

At the moment whenever I try to send a command I just get an error:

KeyError: 'HaveTemperatureControl'

But hopefully that will change once there is actually an AC attached to the AirTouch.

3 Likes

Did any of you go from 4 to 5? Worth it?

@networked The version 5 does do a few things better than what the 4 does and will have future features released that the 4 won’t do.

Eg; I currently have the intelligent auto fan speed in mine while it’s being tested and that makes it a lot nicer.

The programs/timer section is way more advanced, the new version room sensors allow you to turn the system on and off from them if configured.
The bypass now works in a different/better way.
The system uses a much newer version android.
The tablet has an inbuilt camera for use with other applications.

Plenty of other little things that it does.

1 Like

Hi James,

I followed your instructions. Thank you! I had to change the git path to "requirements": [ "git+https://github.com/LonePurpleWolf/airtouch4pyapi.git@main#airtouch4pyapi==1.0.4" ],. I guess this is because


I don’t know if this is right but it made it work for me to a degree… I get the same errors as you.

Logger: homeassistant.components.websocket_api.http.connection
Source: custom_components/airtouch5/climate.py:339
Integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 2:00:09 PM (1 occurrences)
Last logged: 2:00:09 PM

[140492539181664] 'HaveTemperatureControl'
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 200, in handle_call_service
    await hass.services.async_call(
  File "/usr/src/homeassistant/homeassistant/core.py", line 1755, in async_call
    task.result()
  File "/usr/src/homeassistant/homeassistant/core.py", line 1792, in _execute_service
    await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 213, in handle_service
    await service.entity_service_call(
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 678, in entity_service_call
    future.result()  # pop exception if have
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 958, in async_request_call
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 715, in _handle_entity_call
    await result
  File "/config/custom_components/airtouch5/climate.py", line 276, in async_set_hvac_mode
    return await self.async_turn_off()
  File "/config/custom_components/airtouch5/climate.py", line 339, in async_turn_off
    await self._airtouch.TurnGroupOff(self._group_number)
  File "/usr/local/lib/python3.10/site-packages/airtouch4pyapi/airtouch.py", line 226, in TurnGroupOff
    await self.SendMessageToAirtouch(controlMessage)
  File "/usr/local/lib/python3.10/site-packages/airtouch4pyapi/airtouch.py", line 368, in SendMessageToAirtouch
    MESSAGE = communicate.MessageObjectToMessagePacket(messageObject, messageObject.MessageType, self.atVersion);
  File "/usr/local/lib/python3.10/site-packages/airtouch4pyapi/communicate.py", line 21, in MessageObjectToMessagePacket
    binaryMessagePayloadString = AddMapValueToBinaryValue(binaryMessagePayloadString, groupControlPacketLocationMap[attribute], messageObject.MessageValues[attribute])
KeyError: 'HaveTemperatureControl'

It’s a start at least. Nice to be able to see all my room temperatures.

Kind regards,
Roger

Hi folks, I also have the integration “working” for my Air Touch 5, in that it shows me the temperatures of each zone. Attempts to turn on any of my units or change settings results in a ZeroedByte error.

2023-01-15 20:49:07.920 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140309424343264] 'ZeroedByte'
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 200, in handle_call_service
    await hass.services.async_call(
  File "/usr/src/homeassistant/homeassistant/core.py", line 1755, in async_call
    task.result()
  File "/usr/src/homeassistant/homeassistant/core.py", line 1792, in _execute_service
    await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 213, in handle_service
    await service.entity_service_call(
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 678, in entity_service_call
    future.result()  # pop exception if have
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 958, in async_request_call
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 715, in _handle_entity_call
    await result
  File "/config/custom_components/airtouch5/climate.py", line 164, in async_set_hvac_mode
    return await self.async_turn_off()
  File "/config/custom_components/airtouch5/climate.py", line 196, in async_turn_off
    await self._airtouch.TurnAcOff(self._ac_number)
  File "/usr/local/lib/python3.10/site-packages/airtouch4pyapi/airtouch.py", line 256, in TurnAcOff
    await self.SendMessageToAirtouch(controlMessage)
  File "/usr/local/lib/python3.10/site-packages/airtouch4pyapi/airtouch.py", line 368, in SendMessageToAirtouch
    MESSAGE = communicate.MessageObjectToMessagePacket(messageObject, messageObject.MessageType, self.atVersion);
  File "/usr/local/lib/python3.10/site-packages/airtouch4pyapi/communicate.py", line 21, in MessageObjectToMessagePacket
    binaryMessagePayloadString = AddMapValueToBinaryValue(binaryMessagePayloadString, groupControlPacketLocationMap[attribute], messageObject.MessageValues[attribute])
KeyError: 'ZeroedByte'

I should clarify that my setup is as follows:

  • Ducted 10kw unit with no zones named as “Living”
  • Ducted 14kw unit with four zones, named as “Rooms”
  • Zones are named “Bedrooms, Theatre, Study, Rumpus”.

A screnshot of what appears for my setup:

Hey all. If you change your requirements to the following branch, all seems to work in Home Assistant:

"requirements": [
    "git+https://github.com/cemilbrowne/airtouch4pyapi.git#fix_hassio_at5"
]

Hey everyone - recommend waiting for the ‘official’ update soon. All changes have been PR’d in the repositories. In the meantime, one option is to use the homebridge plugin : GitHub - cemilbrowne/homebridge-airtouch5-platform: Airtouch5 Support ← that one work pretty well now, and at least gets the AC unit into homekit. I know, it’s only part of the mission, but it’s something. The screenshot that @Kaldek shared is likely what others will experience until the fixes are committed.

2 Likes

@cemil I assume I add this with the custom repository? I get this message “Repository structure for v1.5.1 is not compliant”

No; unfortunately not. It’s not a Home Assistant add-on, it’s an addon for homebridge (a somewhat complementary system). Hassio is coming! PR is in and just waiting!

3 Likes

Does this integration support controlling individual dampers?

In my setup, I don’t have temperature sensors attached to the airtouch. I control dampers manually as required.
But if there is a way to control dampers via home assistant, I can use third-party temperature controllers that work with HA (like Aranet4) and get the HA to control the desired temp/when needed.

It doesn’t seem that Aranet4 is directly supported on AirTouch5

Cheers

@Kushan hey man, you really should be using the Airtouch sensors with your rooms which will control the airflow automatically. These sensors also add to the whole control logic of the Airtouch and will do more than you would ever be able to do otherwise.
These style of controls really are a waste of money if the room sensors aren’t used so that you can make use of the features to go with them.

Hey all, is the official version out? Just had the Airtouch 5 installed.

not as yet!

also waiting on the official version to be released as well - hopefully we’ll see it soon : ) any eta?

1 Like

:cry: :cry: :sob: :sob: :sob:

also waiting hopefully - my system to be installed Wednesday

I was able to get the airtouch5 integration running by installing as a custom component.

steps I followed are:

  1. Download the home assistant core-dev.zip file GitHub - home-assistant/core: Open source home automation that puts local control and privacy first. (code button)
  2. Unziped the file and copied core-dev.zip \core-dev\homeassistant\components\airtouch4 to /root/config/custom_components/ of my home assistant
  3. Renamed the folder to airtouch5
  4. Edited the manifest.json and updated domain, name, requirements and version entries.

manifest.json i used

{
  "domain": "airtouch5",
  "name": "AirTouch 5",
  "codeowners": ["@LonePurpleWolf"],
  "config_flow": true,
  "documentation": "https://www.home-assistant.io/integrations/airtouch4",
  "iot_class": "local_polling",
  "loggers": ["airtouch4pyapi"],
  "requirements": ["airtouch4pyapi==1.0.8"],
  "version": "1.1.0"
}
  1. Updated the const.py
DOMAIN = "airtouch5"
  1. restarted home assistant
  2. Added the integration settings->devices and services add integration airtouch 5 (was not available after restart so I had to restart my web browser)
  3. Entered the IP address of my airtouch controller when prompted

image

final integration
image

Only been running for a short while and does not seem to be impacting anything else, I was able to control the zones, temperatures and functions using HA

Following official release I will remove custom component and add the offical integration so as to get any future updates.

2 Likes

Amazing thanks at least this gets us going until the official release.

Question: Is it normal to expect about a 30-45 second delay when receiving events from airtouch?

For example, turn off a Zone via the AirTouch app. It takes approximately 30-45 seconds for the climate.zone to be updated in HA.

Is this normal? Does the add-on work by polling the AirTouch controller every X seconds for the state of all device? What is the polling frequency and is it configurable?

Also, does the add-on support open/close percentage % of each zone? If so what attribute is it in the climate.zone entity?

This is amazing add-on thank you!

I was following your (very good) instructions and all was going well until Step 7 (adding the integration) (after restarting HA).

I have double-checked everything and am pretty sure I’ve got it right, but AirTouch 5 is not showing-up as an available integration. I am using Chrome, and closed and re-opened it - still no luck, did a ctrl-F5 refresh - also no luck.

any other ideas?

Ian

image
image
image