samsinnamon / airtouch4pyapi

An api allowing control of AC state (temperature, on/off, mode) of an Airtouch 4 controller locally over TCP
MIT License
27 stars 14 forks source link

Air Touch 5 #12

Closed majurgens closed 1 year ago

majurgens commented 1 year ago

I attach the Air Touch 5 communication protocol document. To me it looks like the bulk of the codes are the same with some differences in the sub type (zone control, zone status etc). Hopefully, this document would allow you to also support Air Touch 5 AirTouch 5 Communication ProtocolV1.1.pdf

majurgens commented 1 year ago

And for completeness, I also attach the Air Touch 4 protocol document AirTouch 4 Communication Protocol V1.6.pdf

cemilbrowne commented 1 year ago

I've built preliminary support for AirTouch5, but some of the messages, including group names, require console v1.0.3 - my console, which claims to be up-to-date, only has 1.0.2.

@majurgens , do you happen to have a contact at Polyaire who gave you the protocol, so I can reach out?

noobydp commented 1 year ago

Is AT5 a software upgrade or does it require new hardware?

cemilbrowne commented 1 year ago

I think it requires new hardware. I just got the AT5 system, so I don't know for sure.

majurgens commented 1 year ago

I got the AT5 document from jianwei@Polyaire.com.au

Also, be aware that another project has started with AT5 https://github.com/manvil/airtouch5pyapi/issues/1

cemilbrowne commented 1 year ago

Thanks @majurgens . I've got it mostly working at this point in my fork, I can update info, turn on/off zones & ACs, and set temperatures.

The issue I've got is the console version - hopefully Jianwei can point me in the right direction...

majurgens commented 1 year ago

I expect to have a working AT5 in a few weeks, so I can't help with testing or anything till then. How have you structured your update? Does the code support both AT4 and AT5 or is it just focused on AT5? Are you going to PR back to this repo or do we move to a new repo? I suspect that the original author only has an AT4 and has little interest/ability to work with the AT5 version

cemilbrowne commented 1 year ago

At this point, I've extended the original work to continue working on AT4 untouched (no API changes), but if you pass in an AT5 and set the right variable, everything works in AT5 'mode'.

It should mean that the Home Assistant or Homebridge plugins "just work" with no changes at all. If we wanted to, it'd be trivial to fork and cut out the AT4 stuff and make a dedicated AT5 api.

My plan is to PR soon. I've emailed Jianwei and waiting...

majurgens commented 1 year ago

The name of this project is tied to the protocol version. It needs to be renamed

cemilbrowne commented 1 year ago

I take your point, @majurgens . Good news: I've finished AT5 support. It all works. I need to clean up the code a little, but I'd expect a drop soon.

What's the overall vote - do we fork the project, rename it to something else (airtouchpyapi, perhaps) and publish? The good news is that the Home Assistant component should just work(tm) for 4 and 5. Homebridge will need an update, since it's written in JS.

cemilbrowne commented 1 year ago

@LonePurpleWolf Keen to hear your thoughts on best way forward. You've done all the hard work, I've just stood on the shoulders of a giant.

majurgens commented 1 year ago

I am happy to have the repo live where ever. I don't know if you can do an in-place rename or if you have to fork it.

If it is to stay with @LonePurpleWolf then we need to hear from @LonePurpleWolf since we would need to be able to do PRs against the repo.

Certainly a great base of code

samsinnamon commented 1 year ago

Hey guys, awesome to see people using this - happy to accept PRs against this (though I do wish I had thought ahead better with the naming) - my instinct is that if you guys are ultimately aiming for home assistant integration, it'll be an easier path including in this library and then looping into HA via this repo - but happy for whichever path everyone thinks is easier

cemilbrowne commented 1 year ago

Ok awesome, thanks @LonePurpleWolf. At some point in the next day or so, I’ll submit a PR. I want to create a little test app - everything works on AT5 and I want to make sure it all still works on AT4 (which I can’t test). I’ve tried to make it api compatible, so in theory, nothing should need to change.

majurgens commented 1 year ago

(though I do wish I had thought ahead better with the naming)

As I understand it now, you can just rename this repo in the github console

cemilbrowne commented 1 year ago

OK team, I've just submitted a PR. @LonePurpleWolf could I please ask you to review?

Notes

It probably needs further testing. I've added a demo.py file to allow for that testing. You can run it, it does some non-destructive tests and gets info. It should work identically in AT4 and AT5. I can't test on AT4, so I need someone to do so.

@majurgens could I please ask you to test on your AT5?

majurgens commented 1 year ago

@majurgens could I please ask you to test on your AT5?

I am still a few weeks away from having an operational AT5

cemilbrowne commented 1 year ago

I am still a few weeks away from having an operational AT5

The good news is it should work here and in Home Assistant by then, hopefully!

stas1000 commented 1 year ago

A little amateur here but i cant add this integration through hacs. i get this error: <Integration LonePurpleWolf/airtouch4pyapi> Repository structure for main is not compliant

Should I be integrating a different way?

nkeilar commented 1 year ago

I've just had an Airtouch 5 system installed - happy to do some testing. Trying to add the IP address of the Airtouch 5 system to the Airtouch 4 integration fails currently. Is there a recommended way to test?

cemilbrowne commented 1 year ago

@nkeilar right now, we haven't gotten to that stage - first we need to get the AT5 API working (this repository). Once that's tested & pushed, we can then get Home Assistant working. I'd estimate a few weeks, given the time of year.

If you want to test the API directly, and have the knowledge / background to do so (basic terminal / git / python skills), let me know and I'll walk you through it. Thanks!

cemilbrowne commented 1 year ago

Hi @LonePurpleWolf any luck?

samsinnamon commented 1 year ago

Havent had a chance to look yet as its been tough with full time work + end of year - will try and get some time on the weekend

samsinnamon commented 1 year ago

commented on PR - I managed to get it to work with AT 4 with a few tweaks which I have hopefully covered in PR comments

Demo file is awesome and made it a lot easier to test so thank you heaps for that!

Fair warning, I probably won't have a huge amount of time through the week to look at this - will try and schedule some time for the weekend if you manage to get a chance to update the PR

samsinnamon commented 1 year ago

sorry about the delay, Christmas got away from me - looks good now, merged and the public package has been updated to 1.0.6. If HA is the goal, next steps are PRs over there (following their processes) - to get the original integration in took me over a year of waiting for their reviews, so youre welcome to just tweak the existing AT 4 integration and doco and slip in support that way, I believe the process is faster if its modifying an existing integration

Good luck!

cemilbrowne commented 1 year ago

Awesome stuff! @LonePurpleWolf is it worth updating the public package to a major version (2.x) perhaps, to signify that it's a significant upgrade?

In terms of HA, I'll tweak existing - to the best of my knowledge, right now, the API should be 100% compatible, so it's just tweaking the library requirement and doco - what do you think?

cemilbrowne commented 1 year ago

For those watching this, I've built and published a homebridge plugin for Airtouch5. Search for homebridge-airtouch5-platform.

mrvautin commented 1 year ago

Thanks @cemilbrowne for your work! I've just got an Airtouch 5 installed today. Can I somehow load your code to support the Airtouch 5 into Home assistant or do I need wait until all code is merged into Home Assistant repo? Maybe in the custom_components directory or something?

nkeilar commented 1 year ago

@cemilbrowne thank you very much for your efforts. I'm having trouble installing and would share here so someone can point me in the right direction.

  1. Not clear if I need to search in official integrations or HACS integrations
  2. Searching both yields no results for me
  3. Adding a custom repo in HACS produces the following error. "Integration cemilbrowne/homebridge-airtouch5-platform> Repository structure for v1.2 is not compliant" as per screenshot.

image

Thanks in advance

mrvautin commented 1 year ago

If you follow the steps here you can get it mostly working. It seems that there is still issues changing temp but you can turn the unit on, change the cold/hot/fan and turn on and off zones ok.

stas1000 commented 1 year ago

What I can't find is the manifest.json file do we need to create our own? It does t seem to be part of the downloads.

mrvautin commented 1 year ago

@stas1000 you need to be using this repos folder as the Home assistant component: https://github.com/home-assistant/core/tree/dev/homeassistant/components/airtouch4 then link the requirements from that thread.

samsinnamon commented 1 year ago

@cemilbrowne thank you very much for your efforts. I'm having trouble installing and would share here so someone can point me in the right direction.

  1. Not clear if I need to search in official integrations or HACS integrations
  2. Searching both yields no results for me
  3. Adding a custom repo in HACS produces the following error. "Integration cemilbrowne/homebridge-airtouch5-platform> Repository structure for v1.2 is not compliant" as per screenshot.

image

Thanks in advance

This repo is not a HACS repo, as others have mentioned, to install this requires a manual change to your home assistant installation until the official integration is updated

cemilbrowne commented 1 year ago

@LonePurpleWolf is spot on! It shouldn't be long. I've submitted the required chagnes, just waiting for final tick of approval.

cemilbrowne commented 1 year ago

Also, for those interested, there is a homebridge plugin that now works. https://github.com/cemilbrowne/homebridge-airtouch5-platform

cemilbrowne commented 1 year ago

@LonePurpleWolf Sorry mate, I probably wasn't clear - there's a PR waiting for your review in the hassio core repo around this. It's minor changes mostly.

samsinnamon commented 1 year ago

@LonePurpleWolf Sorry mate, I probably wasn't clear - there's a PR waiting for your review in the hassio core repo around this. It's minor changes mostly.

Hey @cemilbrowne, I have approved it but I don't actually have permission to approve things in the ha core repo (at least not in a way that is useful) - you have to get approval from a core maintainer... that is what took me a year the first time. Hopefully yours is more expedient given that it's not a whole new integration

cemilbrowne commented 1 year ago

Ahhh I see. Hopefully that doesn't take long! Thanks, @LonePurpleWolf

cemilbrowne commented 1 year ago

@majurgens you OK to close this issue?

majurgens commented 1 year ago

Closing since the original purpose of this issue was to provide support for Air Touch 5, which has now happened. Thanks for the new version support!