mirror of
https://github.com/home-assistant/core.git
synced 2025-07-14 08:47:10 +00:00
Make owntracks more robust
This commit is contained in:
parent
3af4f267b3
commit
a866d515f7
@ -8,6 +8,7 @@ device_tracker:
|
|||||||
platform: owntracks
|
platform: owntracks
|
||||||
"""
|
"""
|
||||||
import json
|
import json
|
||||||
|
import logging
|
||||||
|
|
||||||
import homeassistant.components.mqtt as mqtt
|
import homeassistant.components.mqtt as mqtt
|
||||||
|
|
||||||
@ -24,18 +25,30 @@ def setup_scanner(hass, config, see):
|
|||||||
|
|
||||||
# Docs on available data:
|
# Docs on available data:
|
||||||
# http://owntracks.org/booklet/tech/json/#_typelocation
|
# http://owntracks.org/booklet/tech/json/#_typelocation
|
||||||
|
print("BIER", payload)
|
||||||
parts = topic.split('/')
|
|
||||||
try:
|
try:
|
||||||
data = json.loads(payload)
|
data = json.loads(payload)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
# If invalid JSON
|
# If invalid JSON
|
||||||
|
logging.getLogger(__name__).error(
|
||||||
|
'Unable to parse payload as JSON: %s', payload)
|
||||||
return
|
return
|
||||||
|
|
||||||
if data.get('_type') != 'location':
|
if data.get('_type') != 'location':
|
||||||
return
|
return
|
||||||
dev_id = '{}_{}'.format(parts[1], parts[2])
|
|
||||||
see(dev_id=dev_id, host_name=parts[1], gps=(data['lat'], data['lon']),
|
parts = topic.split('/')
|
||||||
gps_accuracy=data['acc'], battery=data['batt'])
|
kwargs = {
|
||||||
|
'dev_id': '{}_{}'.format(parts[1], parts[2]),
|
||||||
|
'host_name': parts[1],
|
||||||
|
'gps': (data['lat'], data['lon']),
|
||||||
|
}
|
||||||
|
if 'acc' in data:
|
||||||
|
kwargs['gps_accuracy'] = data['acc']
|
||||||
|
if 'batt' in data:
|
||||||
|
kwargs['battery'] = data['batt']
|
||||||
|
|
||||||
|
see(**kwargs)
|
||||||
|
|
||||||
mqtt.subscribe(hass, LOCATION_TOPIC, owntracks_location_update, 1)
|
mqtt.subscribe(hass, LOCATION_TOPIC, owntracks_location_update, 1)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user