I’m trying to do a simple HTTP NOTIFY to the hub, based on example code that I’ve found:
subscribe(location, null, lanResponseHandler, [filterEvents:false])
I’m doing a simple request with Python:
req = urllib.request.Request('http://192.168.0.121:39500/notify',
method='NOTIFY', headers=headers, data=myjson)
response = urllib.request.urlopen(req)
The thing is, it works some of the time. Sometimes it works fine, my SmartApp gets the data, the mobile app shows the update, etc.
Other times, the hub just doesn’t respond. Here’s a working request:
NOTIFY /notify HTTP/1.1
Accept-Encoding: identity
Connection: close
Device: temperature
Host: 192.168.0.121:39500
Content-Length: 23
Content-Type: application/json
User-Agent: Python-urllib/3.5
{"temperature": "57.6"}
And the server sends back a response:
HTTP/1.1 200 OK
Connection: close
Other times, nothing. The request is exactly the same, but the hub doesn’t send back an HTTP OK (or any message), so my script just hangs there. I would say this happens most of the time.
If I ctrl+c and rerun my test script over and over, eventually one will get through. I can actually telnet to the same port and paste the request, and the same thing happens. Sometimes it works, other times I have to terminate telnet, try again, and paste the same request. Eventually it will work.
Does anyone have any idea about what could be happening?
Thanks!