Owntracks reporting from iOS stopped working

Ever since the upgrade 0.59.x, Owntracks is no longer reporting locations from iOS devices (Android devices are fine). I am using the Owntracks HTTP component.

When going into the iOS Owntracks app and manually pushing, I instantly get an error in the Home Assistant log.

Error in logging
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/aiohttp/helpers.py", line 554, in __get__
    return inst._cache[self.name]
KeyError: 'remote'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/aiohttp/helpers.py", line 521, in log
    for key, value in fmt_info:
  File "/usr/lib/python3.6/site-packages/aiohttp/helpers.py", line 513, in <genexpr>
    for key, method in self._methods)
  File "/usr/lib/python3.6/site-packages/aiohttp/helpers.py", line 473, in _format_a
    ip = request.remote
  File "/usr/lib/python3.6/site-packages/aiohttp/helpers.py", line 556, in __get__
    val = self.wrapped(inst)
  File "/usr/lib/python3.6/site-packages/aiohttp/web_request.py", line 319, in remote
    peername = transport.get_extra_info('peername')
  File "/usr/lib/python3.6/asyncio/sslproto.py", line 306, in get_extra_info
    return self._ssl_protocol._get_extra_info(name, default)
  File "/usr/lib/python3.6/asyncio/sslproto.py", line 547, in _get_extra_info
    return self._transport.get_extra_info(name, default)
AttributeError: 'NoneType' object has no attribute 'get_extra_info'

Anyone else seeing issues with this?

You probably have an outdated version of HASS. I remember such an error being fixed a few months ago.

Nope, Hass.io has other problems, so every new version, it is a fresh install. I’m on 0.59.2 right now with this problem.

i keep having these too, and many other related errors, either asyncio or helpers., like here. Havent thought Owntracks to be the culprit, so will try and see what happens.

If so, it has been there for a longer while, no just .59. or even .58 for that matter.


just here to report that i have the same issue…

I get a slightly different error message though:

2017-12-12 21:43:00 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
File “/opt/homeassistant/lib/python3.6/site-packages/aiohttp/web_protocol.py”, line 410, in start
resp = yield from self._request_handler(request)
File “/opt/homeassistant/lib/python3.6/site-packages/aiohttp/web.py”, line 326, in _handle
resp = yield from handler(request)
File “/opt/homeassistant/lib/python3.6/site-packages/aiohttp/web_middlewares.py”, line 93, in impl
return (yield from handler(request))
File “/opt/homeassistant/lib/python3.6/site-packages/homeassistant/components/http/ban.py”, line 58, in ban_middleware
return (yield from handler(request))
File “/usr/lib64/python3.6/asyncio/coroutines.py”, line 213, in coro
res = yield from res
File “/usr/lib64/python3.6/asyncio/coroutines.py”, line 213, in coro
res = yield from res
File “/opt/homeassistant/lib/python3.6/site-packages/homeassistant/components/http/init.py”, line 430, in handle
result = yield from result
File “/opt/homeassistant/lib/python3.6/site-packages/homeassistant/components/device_tracker/owntracks_http.py”, line 46, in post
message = yield from request.json()
File “/opt/homeassistant/lib/python3.6/site-packages/aiohttp/web_request.py”, line 511, in json
return loads(body)
File “/usr/lib64/python3.6/json/init.py”, line 354, in loads
return _default_decoder.decode(s)
File “/usr/lib64/python3.6/json/decoder.py”, line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File “/usr/lib64/python3.6/json/decoder.py”, line 357, in raw_decode
raise JSONDecodeError(“Expecting value”, s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

upgraded to 0.61.1, and im still having the issue. BTW, someone opened an issue on github for this:

looks like this has been solved! check out the update on the github issue.

tl;dr - on your phone, turn owntracks over to mqtt, and then back to HTTP