From 68286dcef8e342eeb45affd5b5edd7218198404e Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 20 Sep 2015 00:27:50 -0700 Subject: [PATCH] initial owntracks support --- .../components/device_tracker/owntracks.py | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 homeassistant/components/device_tracker/owntracks.py diff --git a/homeassistant/components/device_tracker/owntracks.py b/homeassistant/components/device_tracker/owntracks.py new file mode 100644 index 00000000000..46a4c6b1e34 --- /dev/null +++ b/homeassistant/components/device_tracker/owntracks.py @@ -0,0 +1,31 @@ +""" +homeassistant.components.device_tracker.owntracks +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +OwnTracks platform for the device tracker. + +device_tracker: + platform: owntracks +""" +import json + +import homeassistant.components.mqtt as mqtt + +DEPENDENCIES = ['mqtt'] + +LOCATION_TOPIC = 'owntracks/+/+' + + +def setup_scanner(hass, config, see): + """ Set up a MQTT tracker. """ + + def owntracks_location_update(topic, payload, qos): + """ MQTT message received. """ + parts = topic.split('/') + data = json.loads(payload) + dev_id = '{}_{}'.format(parts[1], parts[2]) + see(dev_id=dev_id, host_name=parts[1], gps=[data['lat'], data['lon']]) + + mqtt.subscribe(hass, LOCATION_TOPIC, owntracks_location_update, 1) + + return True