Polyaire Air Touch 2 or 3

No, relay assistant just emulates voice commands to Google Home. So any command GH can do, AR can do.

You need to link your AT2 to GH first of course

Aha! Thanks for the tip, no GH here unfortunately. Alexa will have to do in the meantime.

I really hope that someone integrates AirTouch2+ at some point. I tried integrating using IFTTT this weekend, but the results were pretty disappointing. Only a bunch of buttons executing commands, with no means of pulling any data from IFTTT to check the status of the air con :frowning: Not to mention that if you want to have more than 5 applets, you need to start paying IFTTT, the AirTouch integration offers 0 way of doing variables aside from setting the temperature, so you need one applet for each command (set fan to high, set fan to medium, set to cool, etc.)

Me to I found the api here https://github.com/ozczecho/vzduch-dotek/files/5699201/AirTouch.2%2B.Communication.Protocol.V1.0.1.pdf but it’s a bit beyond me :frowning:

Good find @Selmak!

How does one go about writing an integration with the new found API?

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