Page 2 of 46 FirstFirst 123456712 ... LastLast
Results 11 to 20 of 454

Thread: Decoded - EvoHome API access to control remotely.

  1. #11
    Automated Home Jr Member
    Join Date
    Mar 2014
    Posts
    19

    Default

    I've just pushed a bunch of updates to my python library at https://github.com/watchforstock/evohome-client

    This now includes the ability to choose each of the various modes either on a permanent or timed basis as well as overriding individual zones. The documentation is still playing catch-up, but if you have any trouble give me a shout and I'll try to help

    Andrew

  2. #12
    Automated Home Lurker
    Join Date
    Jan 2014
    Posts
    1

    Default

    Interesting to see this work in progress. You shouldn't have to be doing it (there's no reason for Honeywell not to offer API or web access) but there y'go.

    Have you considered decoding the link between gateway and server instead of gateway and app? Communicating with the gateway (via a Pi running a web server on the same network, for example) would cut Honeywell's servers out of the loop completely, useful if Honeywell decide they're end-of-life and try to push a replacement product.

    For what it's worth I've installed Wireshark today to see what the gateway is up to. I'm unfamiliar with Wireshark so forgive any noobishness

    First thing it does is looks for the local router, then makes a HTTPS request (from port 30000 to dest port 443) to auiredir1.alarmnet.com (204.141.57.100).
    After a brief chat it then turns its attention to auiredir2.alarmnet.com (204.141.57.101), again HTTPS but this time with a source port of 30001.
    Next is more HTTPS to 12.149.218.73 (registered to ADI), incrementing the source port once more.
    The cycle then repeats over and over, with the gateway sending snippets of data to auiredir1.alarmnet.com, auiredir2.alarmnet.com and 12.149.218.73 and incrementing the source port counter each time. Most data packets I saw were 170 bytes or less, the third ever auiredir2 packet being the only exception at 634 bytes.

    None of these three appear to make the first move, the Evohome gateway calls them first.
    Last edited by eXOBeX; 3rd May 2014 at 02:44 PM.

  3. #13
    Automated Home Legend
    Join Date
    Jul 2014
    Posts
    991

    Default

    Has anyone figured out how to get the outdoor temperature from a installed sensor. There is a field but it always returns 128.0000

  4. #14
    Automated Home Jr Member
    Join Date
    Mar 2014
    Posts
    19

    Default

    Are you looking at all the data the remote system returns?

    If you're using my python client, you can do:

    from evohomeclient import EvohomeClient

    client = EvohomeClient('username', 'password')
    client.temperatures() # necessary to populate the data
    print client.full_data


    If the right information is contained there you'll be hopefully able to see it and work out where it's coming back. I don't have an outdoor sensor so never specifically looked for its output.

    Let us know how you get on

  5. #15
    Automated Home Legend
    Join Date
    Jul 2014
    Posts
    991

    Default

    Quote Originally Posted by watchforstock View Post
    Are you looking at all the data the remote system returns?

    If you're using my python client, you can do:

    from evohomeclient import EvohomeClient

    client = EvohomeClient('username', 'password')
    client.temperatures() # necessary to populate the data
    print client.full_data


    If the right information is contained there you'll be hopefully able to see it and work out where it's coming back. I don't have an outdoor sensor so never specifically looked for its output.

    Let us know how you get on
    There is something wrong with your code here. I get a return of None with the code above. All other calls as per your documentation works OK.
    Also anyone noticed the fact that the developers at Honeywell can't spell too "outdootHumidityAvailable" is one of the variables used. :-)
    Last edited by bruce_miranda; 23rd September 2014 at 10:28 PM.

  6. #16
    Automated Home Legend
    Join Date
    Jul 2014
    Posts
    991

    Default

    You have a print response.content on the library that needs commenting out.

  7. #17
    Automated Home Lurker
    Join Date
    Oct 2014
    Posts
    2

    Lightbulb

    I found this thread through google. I have done some of these analyses myself for other applications without an API.
    Nice to see that this protocol has been analysed this far already.
    I think about creating a c# implementation and linking it to HomeSeer, the home automation system I use.
    I haven't checked the complete library yet, but I am sure that I will find it helpful.

    Quote Originally Posted by eXOBeX View Post
    Interesting to see this work in progress. You shouldn't have to be doing it (there's no reason for Honeywell not to offer API or web access) but there y'go.

    Have you considered decoding the link between gateway and server instead of gateway and app? Communicating with the gateway (via a Pi running a web server on the same network, for example) would cut Honeywell's servers out of the loop completely, useful if Honeywell decide they're end-of-life and try to push a replacement product.

    For what it's worth I've installed Wireshark today to see what the gateway is up to. I'm unfamiliar with Wireshark so forgive any noobishness

    First thing it does is looks for the local router, then makes a HTTPS request (from port 30000 to dest port 443) to auiredir1.alarmnet.com (204.141.57.100).
    After a brief chat it then turns its attention to auiredir2.alarmnet.com (204.141.57.101), again HTTPS but this time with a source port of 30001.
    Next is more HTTPS to 12.149.218.73 (registered to ADI), incrementing the source port once more.
    The cycle then repeats over and over, with the gateway sending snippets of data to auiredir1.alarmnet.com, auiredir2.alarmnet.com and 12.149.218.73 and incrementing the source port counter each time. Most data packets I saw were 170 bytes or less, the third ever auiredir2 packet being the only exception at 634 bytes.

    None of these three appear to make the first move, the Evohome gateway calls them first.
    The gateway is using HTTP-push protocol. It connects to the servers of HW and identifies itself. After that it just sits and wait for you to send commands through that server.
    It is a HTTP(s) client, not a server. Therefore the only way that you will be able to send messages to this device is to reroute the servers you mentioned above to your own server (which includes running your own DNS or a proxy) and implement your own serversoftware.

    The traffic you see is the instantiationrequest of the push protocol and keep-alive messages for the connection (which explains the low byte count). These can differ in contents due to server-architecture and implementation decisions.
    When it was a server, you would have to open up all kinds of ports on your firewall to get this to work. When using HTTP-push, it actually is a continuously open HTTP get-request and therefore can pass through a normal firewall without problems.
    Last edited by fraggel; 3rd October 2014 at 10:30 AM.

  8. #18
    Automated Home Jr Member
    Join Date
    Feb 2004
    Posts
    28

    Default

    I'd be very interested in hearing how you get on with linking evohome to Homeseer - I was planning on having a look at this when I have some time, I've been running HS for quite a few years and installed Evohome last month. Scripting/programming was never my strong point however

  9. #19
    Automated Home Jr Member
    Join Date
    Sep 2014
    Location
    Nottingham
    Posts
    24

    Default

    Hi guys,

    With the help of Roy and Andrew's code, I've put together a web (PHP) version of the evohome controller. It's very much work in progress at the moment, I would like to pull the data in real time eventually (currently only the time and date update in real time), and then at least have a further screen where you can set the target temperature by clicking on a zone, along with a quick actions screen. Let me know your thoughts on this, and if you see any problems with it. It's currently pulling the temperatures in my house, but I can easily add a login box if anyone would like to see it working for their own system?

    Evohome Web Controller
    Last edited by magga; 15th October 2014 at 02:54 PM.

  10. #20
    Automated Home Lurker
    Join Date
    Oct 2014
    Posts
    2

    Default

    The conversion from python to C# is complete and works like a charm.
    I am now looking into the HS3 api. Unfortunately, the developer documentation is quite sluggish and far from complete.
    I hope to find some example plugins someware. I have added some plugins myself and looked at the decompiled source, but most of them weren't written by professional programmers, making the code dreadfull to read.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •