kayjei / adax_wifi

Home assistant integration for Adax Wifi heaters
14 stars 1 forks source link

Wow! Finally! Thanks! #6

Open jonerikandersen opened 4 years ago

jonerikandersen commented 4 years ago

Will give the implementation a go, and give you some feedback along the way :-)

jonerikandersen commented 4 years ago

Getting those heat signatures... Wow. I'll give it a massive go to get it from one heater. But I have four in total.

kayjei commented 4 years ago

Thanks! Basically, you get the signatures per zone, not per radiator. Do you have them all in different zones?

jonerikandersen commented 4 years ago

IMG_CB80F5FC6616-1

Thanks! Basically, you get the signatures per zone, not per radiator. Do you have them all in different zones?

And yes: I do. Because that's the only way to set unique temperatures in different rooms.

I have fetched all the signatures (I reckon it's the URL Encoded form: signature; ie. 302D0214616BC6DF275E505E923592AA5473566FBCCD9A08021500943A7xxxxxxxxxxx)

Is it mandatory to have the entire temperature range?

kayjei commented 4 years ago

No, but you need to retreive signature for all temperature you want to be able to set, plus temperature 0 (which is used to turn it off. My recommendation is to retrieve siganture for all temperatures between min and max ( set in app). Please also note that you must use the dev-branch to be able to set multiple zones

jonerikandersen commented 4 years ago

Allready on it. At the moment, I get read temps from all through the zone list I guess. However, setting the temperatures, I need to add all four zones with all 30 temp signatures. Even though I think I only need 0+14 to 23. Using the dev-branch atm. But this looks great! I'm trying to bridge it into Homekit atm. : )

joggs commented 4 years ago

Have you succeeded in sniffing the adax app version 2? I am curious what the appVersion parameter value is and if the api response gives you different and hopefully more data.

jchasey commented 4 years ago

Grabbed the signatures just fine for heat and zone. For the temperature however, there does not appear to be an encoded signature, just the temperature encoded into the url? Could you give an example of the form required? Thanks!

jchasey commented 4 years ago

Grabbed the signatures just fine for heat and zone. For the temperature however, there does not appear to be an encoded signature, just the temperature encoded into the url? Could you give an example of the form required? Thanks!

Sorted, was checking the wrong request, signatures found ok.

kayjei commented 4 years ago

Have you succeeded in sniffing the adax app version 2? I am curious what the appVersion parameter value is and if the api response gives you different and hopefully more data.

@joggs my appversion is iOS-adax-2.4.0. I would say Yes, this should be version 2

cortado commented 4 years ago

You have an example of how the parameters.py should look. Have got all the values, but still no dice. I am wondering if I have some values with wrong syntax or notation.

kayjei commented 4 years ago

Sorry for my late reply. Basically, the file looks like (dev-branch):

def get_static(value):
    switcher = {
    "account_id": '12345',
    "appVersion": 'iOS-adax-2.4.0',
    "device": 'iPhone10,4',
    "os": 'iOS 2012.4',
    "timeOffset": '120',
    "timeZone": 'Europe/Stockholm',
    "locale": '',
    "zone_signature": '302C02142396D5FGFGAFG856468FDGCB4018FDF93F0214079A870064DBFE22691A27FC09F3AFE23B7A7B22'
    }
    return switcher.get(value,"Key missing")

def get_signature_456789(value):
    switcher = {
    "heat_signature": '302D0214035B337E5CDDC9EE3C59AA54FA688610215009740C147DAAB144859E592B9BC4493DBC2CAA004',
    0: '302D02146DB0C8AA23548666A666A69A81485434226B02150080BD1B0DE19DEABD3D8EE007AA09B93EB3BBBFBA', #Set as HVAC_OFF
    5: '302D02142572F806E126F9F4DEF0510AF7A9526ED3AC91D70215008AB85235A584FB928423C50E366261D4DD315B',
    }
    return switcher.get(value,"Key missing")

The signature key is normally 32 or 34 characters.