HttpPost errors


(Jeremy Stroebel) #1

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


(Scott G) #2

@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.


(Jeremy Stroebel) #3

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).


(Minollo) #4

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…


(Minollo) #5

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…


(Jeremy Stroebel) #6

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


(Iamk3) #7

Waiting with bated breath. :slight_smile:


(Dan Forys) #8

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.


(Dan Forys) #9

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.


(Jeremy Stroebel) #10

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)…


(Dan Forys) #11

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

(Minollo) #12

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…


(Dan Forys) #13

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.


(Tim Stewart) #14

Can someone share how to use the asynchronous method?


(Jim Anderson) #15

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


(Jeremy Stroebel) #16

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.