Polyaire Air Touch 2 or 3

Wished I knew how. I asked a year ago when I got the api.

I’m going to give it a shot this week, see if I can write a bit of Python to handle the sock requests. Shall keep you posted if I managed to get something working

Awesome. good luck :smiley: if you need someone to test anything I can help.

1 Like

I can have a look and test too if needed

1 Like

@Redndh let me know if you need help with this.
I might see if I can whip up a simple python client based on the communication protocol. I don’t have a unit to test against though…

2 Likes

Thanks! I got a bit sidetracked unfortunately, but I’ll aim to start playing with this later this week :slight_smile:

@ozczecho I’m wondering if you have a description of the AT3 protocol? I’m looking at reversing the AT2 protocol and I think it seems fairly similar to AT3 but I’m having a hard time working out the AT3 protocol from your source code. Why do you set almost every byte value by casting a negative integer??
Also could you explain the checksum code a little? It seems to just be a standard checksum8 mod 256 (summing the bytes) but the conditionals in there are confusing me: Byte.MinValue is just zero and this is already encompassed by the previous if statement, and adding 256 to a single byte just causes it to overflow back to its original value?

@bignacho Maybe ask on github GitHub - ozczecho/vzduch-dotek: An API to interface with AirTouch 3 AC controller.

@Redndh Had any luck :slight_smile:

Assuming there still isn’t an integration for AT2+, it would be useful to send basic commands via nodered (on, off, temp etc). Has anyone managed to do this using the AT2+ API doc?

Without success, I have tried injecting some of the example messages from the API doc into the TCP node. I can listen and log messages on the the 9200 port so I know nodered connects. No doubt I have made errors on the message structure or format. I don’t understand it well enough to construct the message for each of the commands that I would use in the flows.

Keen to hear if anyone has tinkered with this and their results.

I did think about trying to use node red but wasn’t sure where to start. how are you logging the messages?

This is the flow that I use to record the TCP traffic on port 9200 to a CSV file. The CSV contains decimal values.

[{"id":"85c16c1.65dec9","type":"tcp in","z":"23d2f20b.49781e","name":"","server":"client","host":"192.168.1.XXX","port":"9200","datamode":"stream","datatype":"buffer","newline":"","topic":"","base64":false,"x":250,"y":160,"wires":[["4902982d.32eb48"]]},{"id":"4902982d.32eb48","type":"csv","z":"23d2f20b.49781e","name":"","sep":",","hdrin":"","hdrout":"none","multi":"mult","ret":"\\n","temp":"","skip":"0","strings":true,"include_empty_strings":"","include_null_values":"","x":470,"y":160,"wires":[["b3e0295.b61b7d8"]]},{"id":"b3e0295.b61b7d8","type":"file","z":"23d2f20b.49781e","name":"","filename":"/config/airtouch_log.csv","appendNewline":false,"createDir":true,"overwriteFile":"false","encoding":"none","x":690,"y":160,"wires":[[]]}]

I then wrote a short python script that converts the decimal values in the CSV (85, 85, 176, 128, …) to hex [‘0x55’, ‘0x55’, ‘0x9f’, ‘0x80’, …] so I could easily compare with the communication protocol document (Maybe I could have done this conversion step in nodered, but I don’t know how).

From looking at my log, and the communication protocol document, it appears that the messages I have logged are sent from the AirTouch controller (“When receiving from AirTouch, last byte of address will be 0x80”) which is not much use other than improving my understanding of the message structure.

My broad motivation for doing this is to make flows that control my A/C depending on my solar generation (via Fronius integration). If export limit to grid reached then A/C is on. Conversely if the solar generation plummets and I am drawing power from the grid I want to make sure the A/C is off.

I don’t mind if I need to make a list of messages for every function then manually copy these into nodered (or call a dictionary). I just don’t know how to write the messages and with correct checksum - i.e. the message that the AirTouch receives. Is there another software that listen for messages sent to 9200?

Currently, my very hacky solution is to rely on the AirTouch integration with Google Home. I have successfully used nodered to send TTS messages to one Google Mini “Ok Google, Turn AC/Zone/Whatever ON/OFF” and another device in my home will hear this and action it. I am considering two Google Minis whispering to each other in the corner of my garage is the easiest solution at the moment :laughing:

Thank you, I will have a tinker when I get a free moment.

This AirTouch 2 integration works

How do you get it to work? there are no instructions with this integration that work. The click install step does nothing

You need to add the custom repository to HACS, restart, the “add integration” though HA

1 Like

All working now…had a bit of a brain fart!

All installed but when I enter the IP of the airtouch 2, I get ‘failed to connect’. To confirm, I have a Airtouch2+ Any ideas?

Not sure this will work with the 2+, maybe ask nathanvdh on GitHub.

IP is definitely correct?

1 Like

Thanks for the reply. Yes, IP definitely correct. I wasn’t able to find an ‘airtouch 2’ model. Did it ever exist? I did notice there is an Airtouch 5 out now though! I have messaged Nathan directly.

Airtouch 2 control unit? Airtouch 2 was the latest and greatest when I installed.

There is working solutions for Airtouch 3 and 4. Have you tried either of them?