Polyaire Air Touch 2 or 3

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?

Seeing as most of the people I’ve interacted with do NOT have the ‘QUIET’ fan speed I’d like someone WITH it to produce a dump for me as described here: Fan speed miss match · Issue #2 · nathanvdh/homeassistant-airtouch2 · GitHub

This will help narrow down where in the response message this information is stored as I’m struggling to find it at the moment.

@Radebe2k perhaps you would be able to? It’s thanks to you I have the most significant pieces of the protocol already, thank you.

So stoked i can finally connect my AT2!!
Though I’ve run in to an issue, it wont pull he current temp, any idea on how to fix this

Please post logs, can’t help without any more information.

I think I’m a bit out of my depth here, but i couldnt find anything in the logs, unless im looking in the wrong place.
I’ve also linked a PCAP file on the the fan speed issue if that helps.