[RELEASE] Lennox iComfort Thermostat

Que on icomfort (Lennox) connection with smartthing -

I tried the code from github, installed app on on the phone. Entered the USername and Password on the screen and Im getting a blank screen. Looked into the logs and I see following error.

error javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target @ line 255

Am I missing anything?

If you’re no longer getting errors, it should be resolved. Try changing your temperature and see if it reflects in your thermostat.

I just posted a workaround on this:

[quote]It’s either SmartThings had some issue with trusting Lennox HTTPS certificate or Lennox changed their certs.
try this:

  1. create runscope.com account
  2. once you log in, you should see a bucket key in their ā€˜traffic’ tab. E.g xjor6gavxo3b
  3. replace in SmartApp line 517 https://services.myicomfort.com to ā€œhttps://services-myicomfort-com-xjor6gavxo3b.runscope.netā€
    This would redirect traffic to runscope and runscope.com will call Lennox on behalf of SmartThings[/quote]

Yes it works but this is a temporary resolution as the run scope account only last 15 days without spending $79 a month for a paid account. I am not a programer by trade and not sure how to resolve the underlying issue of either SmartThings or Lenox not allowing communication between the two sites. Is there something in the Runsope.com feeds that would help in determining which site is blocking this application from working without a runscope.com routing?

FWIW I put in a support ticket with ST… @slagle maybe you can help? Lennox changed their certs…

I’ll do the same. I’m wondering if this is the same type of issue related to their API integration with the Netatmo system. I reported that a few weeks ago and was told their engineers are working on it.

ah. i didn’t notice the free option isn’t there anymore. sorry about that.

No luck unfortunately… Tried to replace the existing line on 517 with the bucket key I see on my account.

Response from ST support was their standard answer when dealing with non-ST apps. ā€œAs this is not an official Works With SmartThings device, there is nothing on our end that would have changed to cause your issue.ā€ So now I will be losing integration of my climate control into ST. The research I have done on-line all suggest that the Lenox system does not work well with other thermostats that might be ST compatible. I had even asked the installer if I could keep the Nest that I had when I updated my system in 2015 and he said the Nest does not work with Lenox units.

1 Like

yes the lennox t-stat is a communication device, so it speaks a digital language to your components where as most thermostats speak analog. The digital language is proprietary of course…

That said, I’m pretty sure this is a problem with ST - since the api server works fine unless the traffic is from ST. I suppose its possible Lennox has blocked the ST server, but somehow I doubt it given it is a cloud hosted solution…

I’ve taken the step of putting in a support ticket with the developer group. Perhaps that will provide some insight.

1 Like

Just to let you all know I also am saddened by the recent disconnect and the issues discussed. It was nice having my Lennox integrated with ST…particularly setting temperature on departure and return. I know it is outside of my capability to fix; however, you have all my support and appreciation for working on this.

I also would like to see this working again. I was thinking about creating a web page on a domain I have that would be a relay like the runscope account. I have written a few pages in PHP in the past, and a PHP page could maybe be used to create something that line 517 would call and in turn call the Lennox page.

1 Like

I put a ticket into support and got the same response. We don’t support custom device handlers and they suggested I reach out directly to the community as well. What I was really looking for was insight here on the error I received to determine if this is a SmartThings issue where it cannot format the HTTPPut into the format that Lennox is looking for or is it really a certificate thing that has changed as @cwaddell suggested. The exception response seems to corroborate his assumption:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Trying to do some research on this error but it doesn’t seem to have a clear solution as not always clear on if it is a issue on Client or Server side of the request. Is anyone sure if this is a Lennox vs SmartThings issue?

@cwaddell: You indicated you put a ticket in with the Dev Group: Any feedback on this? I didn’t see anything posted in the community Dev group about this.
@tslagle13 is this something you can ask/confirm with a developer to get a clear statement on if this is a SmartThings side issue or a Lennox issue? If Lennox has blocked the SmartThings IPs/servers (which in my experience with BloomSky was resulting in a too many requests response), then can SmartThings ask Lennox to clear this? If it is a SmartThings issue, is there someone on the SmartThings side that can look at this as Support has basically washed their hands of this so far.

If anyone finds a free solution like runscape please share. I am almost to the point of paying someone to code one for me. I have noticed that the app responds so much faster going through runscope than it did before this issue arose. I’m in Texas and it is not fun coming home to a house where the heat was on all day and the temps outside is 70 degrees after being 40 at night. So I am not able to use the Lenox schedule to attempt at some sort of automation.

Instead of Runscope, try APIGee. It should be free. I’m not too sure if this will definitely work because I don’t own a Lennox anymore. Give it a try and let me know.

  1. go to apigee.com, sign up for an account
  2. once verified, log in and go to API management. it will take a while to activate
  3. go to Develop (left menu) > API Proxies > + Proxy (top right) > Reverse Proxy
  4. Proxy Name: icomfort
    Proxy Base path: / (make sure you only put /)
    Existing API : https://services.myicomfort.com
  5. Security Authorization : Pass through (none)
  6. click next for the rest of them
  7. now, change 517 to the URL that’s on your HTTPS proxy.
2 Likes

it worked oh my god :slight_smile:
Thank you sooooo much @copyninja

Do you know how Alexa can work with this app. I tried multiple ways and it seems like im failing to ask her to change the temprature or to change the program.

I appreciate all your help on this.

Thanks

@copyninja: If the above works as noted by @aryaclid by using apigee.com services, what is the root cause of this issue? Is Lennox blocking the SmartThing Servers? If yes, is there any chance SmartThings can talk to Lennox to get it unblocked? Would rather not have to make another hop through apigee and just have SmartThings be able to go direct to Lennox.

1 Like

Lennox is not blocking SmartThings Servers nor reducing QoS. What most likely happened is Lennox changed/renewed their HTTPS SSL certificate, and SmartThings didn’t automatically update their SSL certs. I maybe wrong, since I’m not too well versed with Java.

You can try raising support ticket, but I highly doubt that support would acknowledge that this is a SmartThings issue. Either that they will brush it off since this is a unofficial third party integration, which will never get any priority when it comes to fixing it. I’d say you’re better off using apigee for now.

Any volunteer interested with integrating S30, PM me. I just wanted to check if Lennox reused their S20 api’s… So i’ll need an account to a working S30.