Closed Know1 closed 5 months ago
OK after some messing around with an old Android I have grabbed the App traffic. I think the key piece missing is "productId": "1656269521923575808"
If I look at the array on line 27 of custom_components/aqua_temp/common/consts.py it's not in there. Temp Sensor (and App) is AquaTemp but the heater is an AstralPool Viron iHP 283 if it matters.
Not sure what normal codes looks like but this is what it wanted (yes the req really was "protocalCodes")
{
"deviceCode": "
Response was of the form { "sessionid": null, "error_code": "0", "error_msg": "Success", "error_msg_code": "", "totalSize": null, "totalPage": null, "nextPage": null, "objectResult": [ { "value": "0", "code": "Power" }, { "value": "1", "code": "Mode" }, { "value": "0", "code": "Manual-mute" }, { "value": "18.2", "code": "T02" }, { "value": "0000000000000000", "code": "2074" }, { "value": "0000000000000000", "code": "2075" }, { "value": "0000000000000000", "code": "2076" }, { "value": "0000000000000000", "code": "2077" }, { "value": "0", "code": "H03" }, { "value": "32.0", "code": "Set_Temp" }, { "value": "8.0", "code": "R08" }, { "value": "35.0", "code": "R09" }, { "value": "15.0", "code": "R10" }, { "value": "40.0", "code": "R11" }, { "value": "27.0", "code": "R01" }, { "value": "32.0", "code": "R02" }, { "value": "27.0", "code": "R03" }, { "value": "18.4", "code": "T03" }, { "value": "0", "code": "1158" }, { "value": "0", "code": "1159" }, { "value": "0", "code": "F17" }, { "value": "1", "code": "H02" }, { "value": "0", "code": "2064" } ], "isReusltSuc": true }
I'll have a play around and see if it's enough to just update the array or more is required, but hopefully it helps. Thanks
Also not sure if there's a later App or what but the various request now also pass in the body this list of ProductIDs "productIds": [ "1132174963097280512", "1656269521923575808", "1663080854333558784", "1596427678569979904", "1674238226096406528", "1650063968998252544", "1668781858447085568", "1186904563333062656", "1158905952238313472", "1442284873216843776", "1732565142225256450", "1548963836789501952", "1669159229372477440", "1650758828508766208", "1664085465655808000" ]
I've bolded the ones not in source which includes mine.
Confirmed just needed to update productIds in consts.py and integreation can now discover the newer device.
Submitting PR to include newer productIds
I have setup a new aquatemp/pool heater and have it connecting fine to the mobile app (Android) I created a second user that will be used for HomeAssistant, to avoid the logout issue, and shared the device to them and signed into the app confirming I could see the pool heater and operate it correctly.
I then setup Aquatemp integration via HACS as per the docs and it all went smoothly except no devices or entities were populated. Configuring confirms the creds work
So I enabled debug logs and can confirm the login looks correct just it's not returning any devices
In an effort to confirm I dumped network traffic from my phone and confirmed the host and port being accessed are still correct/unchanged but because of Android security I can't see what URLs are being hit or the cleartext data being returned, just TLS encrypted packets
I also looked at your and the original dst6se repos to try figure out what URLs it was calling and knocked up some raw curl calls and confirmed that yes it does appear to login correctly and no it's not returning any devices.
I suspect because it's a relatively new model (heater was installed Feb 2024) there's new code or similar, but without being able to test the API I can't confirm. Hopefully you're able to point me in the right direction.
Thanks