HttpPost errors

I wrote a smart app to integrate with Honeywell’s totalConnect 2.0 cloud and everything worked up until 3 days ago. Now the httpPost command from SmartThings is returning an error:

error Something unexpected went wrong: java.net.SocketException: Connection reset

The new asynchronous methods work still… the synchronous methods don’t…

Any thoughts? I’m at a loss

2 Likes

@tpmanley might not be your area of expertise, but maybe you can help direct. I have a sneaky feeling that Honeywell is doing some IP restricting against ST due to volume of requests, but it only affects the synchronous methods.

Its weird the Async ones are fine… I have reached out to honeywell in an attempt to resolve and work with them (if indeed it is on their end).

1 Like

I noticed the same problem (but I haven’t tried the asynch methods). All indications are that honeywell has blacklisted smartthings; a simple workaround, going through a reverse proxy on my server, did solve the issue…

I tried contacting smartthings support; and of course they refused any involvement, as this is about a custom integration with a 3rd party vendor…

1 Like

BTW, the easiest explanation for the asynch methods working is that the actual web service calls are performed by a different cluster of nodes which hasn’t been blacklisted by honeywell - yet…

Thank you! I got a response back from Honeywell so I will see if they can shed more light.

1 Like

Waiting with bated breath. :slight_smile:

I also see this connection reset - but posting to my own server. I’ve had this problem before where SmartThings didn’t like my server’s TLS certificate but it had been fine until very recently with my letsencrypt certificate. I’ll try without HTTPS later on today and see if it’s network access or HTTPS problems.

Yeah so I have verified that my server works over HTTP but not over HTTPS. So I think SmartThings has somehow broken HTTPS support for httpPost, at least as far as my letsencrypt certificates go.

Any errors other than Connection Reset? Any chance its a certificate issue?

I know they made some updates around this time (there was planned downtime)…

The things that I definitely know are:

  • Looking at logging in place on my server, the post from SmartThings never reaches my application at all when over HTTPS
  • The TLS certificate from letsencrypt is perfectly valid according to Chrome (and indeed SmartThings was happy with it until recently)
  • Renewing the certificate does not fix it
  • Removing TLS and running over HTTP results in it working perfectly
  • The same app has a web front-end also running over HTTPS which I can use just fine in any browser with no security warnings

Totalconnect uses a standard digicert certificate, which expires in September 2017 - which implies they likely haven’t changed in the last several months.
The proxy I set up on my server does expose HTTPS, with a less solid certificate than the Totalconnect one; but Smartthings can connect to it (and through it to Totalconnect) without any problem…

As @jhstroebel notes above, the beta async method alternative works fine too. Guess I’ll stick with that then.

If https isn’t broken generally, then maybe in my case there’s something about the renewed letsencrypt certs that SmartThings synchronous http methods doesn’t like.

Can someone share how to use the asynchronous method?

http://docs.smartthings.com/en/latest/smartapp-developers-guide/async-http.html#quick-example

Jim, any known issues with HTTPS requests (per some other user’s testing) using the synchronous http methods?

Trying to avoid rewriting a bunch of code that really needs synchronous calls… I’m going to have to code a bunch of goofy things to make asynchronous calls work how they are being used.