Polyaire AirTouch 2 A/C controller

I still havent found an answer to this but can now manage it via Alexa routines - which can then be set up as switches, or other controls in openhab - bit messy and still very limited but can at least turn on, off and change temperature.

If anyone has found a way to control it directly would love to hear.

Hi just wondering if anyone had any luck figuring out how to communicate with the airtouch2 directly?

Closest I got was now using the alexa control alpha binding which exposes alexa controllable items - one step closer but still not directly controlled

That’s a shame :(. I tried to use the packet capture app on my android phone. The data I got back seemed to be encrypted or something.

I did noticed in one of the logs it said the host name was “modem.HF-A11”. Maybe its making a serial connection or something?

When it connects via internet it connects to https://airtouch.com.au:9000/. Surely if the app can connect to it there must be a way we can?

Yeah that’s the high flying branded stuff I mentioned in the opening post.

It seems simple but I’m not clever enough to know what to do with this info

I don’t own anything android do packet capture is tricky and virtual Devices with virtual nics make it worse

Do you see simple URL calls with parameters if you send say an on or off command?

Unfortunately not.

All I see is gibberish.

I think its connecting via Modbus over ip or something like that.

I found this post at homeseer about the airtouch 4.

I think it would be similar to control the airtouch2?

well that command doesnt work but even the port is different - not sure theres a reference on homeseer forums back to this article and someone doing some more stuff but no real answer

Yeah I was hoping using the 8899 port would work.

https://community.home-assistant.io/t/polyaire-air-touch-2-or-3/19650/4 there was some talk about airtouch 2/3 looks like someone got something working with Airtouch3. I was hoping Airtouch2 would be similar, I mean the app can talk to the aircon locally and polyaire can talk to it remotely…

I’ve gotten a fair way into decoding the output on port 8899 i have posted this all up on the HA forum in the topic you mention but i’ll post it here as well, updates since i published that list are

(looks like FNG’s on this forum are limited to posting only 1 embedded item per post)

also i’m using a nodeRED flow to translate into MQTT where i can more readily access the decoded data

[{"id":"58b5e101.08975","type":"tab","label":"AirTouch","disabled":false,"info":""},{"id":"1bb819ab.902fa6","type":"tcp in","z":"58b5e101.08975","name":"","server":"client","host":"CONTROLLER_IP_ADDRESS","port":"8899","datamode":"stream","datatype":"buffer","newline":"","topic":"","base64":false,"x":220,"y":120,"wires":[["c5afa6a8.a9cb38","d094db5e.852fa8"]]},{"id":"d7a24eba.95206","type":"debug","z":"58b5e101.08975","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":670,"y":180,"wires":[]},{"id":"d094db5e.852fa8","type":"function","z":"58b5e101.08975","name":"AC Status","func":"var newMsg = \"\"\nvar mqttMessage = \"\"\nvar sysStatus = \"\"\n\nif (msg.payload[354] > 10){\n    mqttMessage = {payload:\"ON\", topic:\"tele/AirCon/Power\"};\n} else {\n    mqttMessage = {payload:\"OFF\", topic:\"tele/AirCon/Power\"};\n}\nnode.send(mqttMessage,false);\nnode.done();\n\nswitch(msg.payload[358]) {\n    case 0:\n        mqttMessage = {payload:\"auto\", topic:\"tele/AirCon/Mode\"};\n    break;\n    case 1:\n        mqttMessage = {payload:\"heat\", topic:\"tele/AirCon/Mode\"};\n    break;\n    case 2:\n        mqttMessage = {payload:\"dry\", topic:\"tele/AirCon/Mode\"};\n    break;\n    case 3:\n        mqttMessage = {payload:\"fan_only\", topic:\"tele/AirCon/Mode\"};\n    break;\n    case 4:\n        mqttMessage = {payload:\"cool\", topic:\"tele/AirCon/Mode\"};\n    break\n}\nnode.send(mqttMessage,false)\nnode.done();\n\nmqttMessage = {payload:msg.payload[362], topic:\"tele/AirCon/SetPoint\"}\nnode.send(mqttMessage,false);\nnode.done();\nmqttMessage = {payload:msg.payload[364], topic:\"tele/AirCon/CurrentTemp\"}\nnode.send(mqttMessage,false);\nnode.done();\n\nswitch(msg.payload[360]) {\n    case 48:\n        mqttMessage = {payload:\"Auto\", topic:\"tele/AirCon/FanSpeed\"};\n    break;\n    case 49:\n        mqttMessage = {payload:\"Low\", topic:\"tele/AirCon/FanSpeed\"};\n    break;\n    case 50:\n        mqttMessage = {payload:\"Medium\", topic:\"tele/AirCon/FanSpeed\"};\n    break;\n    case 51:\n        mqttMessage = {payload:\"High\", topic:\"tele/AirCon/FanSpeed\"};\n    break;\n}\nnode.send(mqttMessage,false);\nnode.done();\nreturn;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":440,"y":180,"wires":[["f740d5ae.191468","d7a24eba.95206"]]},{"id":"c5afa6a8.a9cb38","type":"mqtt out","z":"58b5e101.08975","name":"AC Raw Data","topic":"tele/AirCon/rawmessage","qos":"","retain":"","broker":"5778013a.241c4","x":460,"y":60,"wires":[]},{"id":"f740d5ae.191468","type":"mqtt out","z":"58b5e101.08975","name":"ACMQTTDecoded","topic":"","qos":"","retain":"","broker":"5778013a.241c4","x":690,"y":120,"wires":[]},{"id":"5778013a.241c4","type":"mqtt-broker","name":"HAssMQTT","broker":"MQTT_SERVER_IP_ADDRESS","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]

No control of the system just yet but at least we can see what’s happening and mabe trigger some other actions dependant on what happens here. My first one is to trigger a text-to-speech announcement if any one of the house doors is open and the AC is turned on.

This is great, but I am a bit lost as to NodeRED - is this something we have to do?

No idea about the OpenHAB ecosystem, i had taken some inspiration from this thread and was kinda just doing the good human thing and sharing the knowledge. I just use nodeRED it as an easy way to prototype code and deploy it, HA has it as a plugin for accessing the programming GUI through the main GUI and i assumed (maybe wrongly) the OHAB would have it as well, but, there isn’t any reason why you couldn’t install it as a docker container or even natively on your base OS that runs your server. It is multi-platform so there should be a way.

I realise this off-topic (slightly), but I got in touch with PolyAire and got copy of the Aitouch4 API spec.
I am about halfway through coding a java library to talk to the the Airtouch4 app.

Based on the post from @Selmak I got the old doc (v1.1), and then emailed them. They sent me version 1.5 of the API spec.

Once I have that working, I will work on an OH binding for the Airtouch4. I have no idea what the Airtouch2 and Airtouch3 are like though sorry. I am focused on the Airtouch4, as that’s what I have in my home.

I gave up trying to control the polyaire 2 directly but they do have an Alexa skill so I am doing the control from openhab to Alexa to the air conditioner - there is two way communication and it works ok