Extending a lennox icomfort thermostat: part 2

I setup up an android emulator, side loaded the icomfort app, installed charles proxy, installed the cert from charles proxy, started the emulator with an http proxy, then started sniffing the https traffic. This all took me a while to get all working, but after a lot of banging of heads i finally started to get the unencrypted packets from the app.

The website and the android app use a completely different API. i converted my first attempt at a logging app to the same API that android uses and now have a much cleaner app. Have a look at https://github.com/bruman/ruby-icomfort for the full code.

I added a lot of debug statements so you can see the json that gets passed back and forward, then it starts print

"date, Cool_Set_Point, Head_Set_Point, Indoor_temp, Fan_Mode, Indoor_Humidity, System_Status, Operation_Mode"
"/Date(1416870002787+0000)/,78.0,68.0,71.0,auto,47,idle,heat or cool"

part 1 of my post about interfacing with the icomfort



8 thoughts on “Extending a lennox icomfort thermostat: part 2

  1. ut666

    Very nice work. Thanks for sharing!

    I went down a different route, lazy parsing of the website page, so read-only, but very nice you managed to figure out the API calls. For the curious: https://github.com/ut666/LennoxThermoPi

    What kind of stuff are you doing with the API out of interest?
    I think my next project will be a few remote temperature sensors that take control the thermostat!

  2. Curtman

    Hello, I just found your blog while trying to find if anyone else was hacking iComfort hvac stuff. Wonderful progress! I thought I’d ask if you’ve made any more progress with your home automation interface, and describe where I’m at..

    I have a iComfort wifi touch thermostat connected to an interface module which translates between the iComfort to legacy (R), (C), (W), (Y), (G) 24vac signals for my hvac equipment. I know from experience that it is possible to connect multiple iComforts to one system to control it. The Zoning options for this system are very very interesting to me. For home automation integration, my thoughts have been that it would be best to reverse engineer the packets on the CAN bus. Then it would be possible to use a can transceiver like these ( http://www.14core.com/wiring-the-mcp2515-controller-area-network-can-bus-diagnostics/ ) and a raspberry pi, etc to replace and/or coexist with the iComfort thermostat in a home automation setup. I chose that board because it uses the same CAN transceiver as the iComfort ( TGA1050 – https://docs.google.com/viewer?url=http%3A%2F%2Fcache.nxp.com%2Fdocuments%2Fdata_sheet%2FTJA1050.pdf%3Fpspll%3D1 ).

    Anyway.. I thought I would say hello, and cheers to iComfort hacking.

    1. Ian Macdonald Post author

      interesting, I really haven’t done much with it. I have been playing with openhab2 recently and have added some more motion sensors, my goal was to detect if a human was in the house and if not set the icomfort to away mode, but the cats are triggering the motion sensors I have so that may not work.

    2. David OBerry

      Do you think reversing that so a Nest or Ecobee could operate a Lennox system properly would be possible?

  3. David OBerry

    Hi folks. Besides the logging has anyone been working on the gateway type concept mentioned above? It is incredibly annoying to not be able to use any other smart thermostat with these expensive systems.

  4. John Hannemann

    I’m enrolled in ComEd’s real-time pricing. I’m looking to write a service to poll the prices of electricity and then adjust my thermostat accordingly. ComEd conveniently provides their API, but this is the first place I’ve stumbled across that helps at all with the API for iComfort.

    Thanks for the info


Leave a Reply

Your email address will not be published. Required fields are marked *