From 24493c648a634fff622beb98fe5fc9c88e1f3e61 Mon Sep 17 00:00:00 2001 From: brentru Date: Fri, 29 Jun 2018 16:59:35 -0400 Subject: [PATCH 1/3] modified model for location feeds --- Adafruit_IO/model.py | 5 ++++- examples/api/location.py | 45 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 examples/api/location.py diff --git a/Adafruit_IO/model.py b/Adafruit_IO/model.py index 7e87a52..04bb0c8 100644 --- a/Adafruit_IO/model.py +++ b/Adafruit_IO/model.py @@ -36,7 +36,10 @@ 'feed_id', 'expiration', 'position', - 'id' ] + 'id', + 'lat', + 'lon', + 'ele'] FEED_FIELDS = [ 'name', 'key', diff --git a/examples/api/location.py b/examples/api/location.py new file mode 100644 index 0000000..491151f --- /dev/null +++ b/examples/api/location.py @@ -0,0 +1,45 @@ +""" +'location.py' +================================== +Example of sending location over an +Adafruit IO feed to a Map Dashboard +block + +Author(s): Brent Rubell +""" + +# Import Adafruit IO REST client. +from Adafruit_IO import Client, Feed, Data, RequestError +import datetime + +# Set to your Adafruit IO key. +ADAFRUIT_IO_USERNAME = 'YOUR_IO_USERNAME' +ADAFRUIT_IO_KEY = 'YOUR_IO_KEY' + +# Create an instance of the REST client. +aio = Client(ADAFRUIT_IO_USERNAME, ADAFRUIT_IO_KEY) + +# create a location feed +try: + location = aio.feeds('location') +except RequestError: + feed = Feed(name="location") + location = aio.create_feed(feed) + + +# Adafruit HQ Coordinates +lat = 40.726190 +lon = 74.005334 +ele = 0 + +# WIP: send_location_data implementation +#aio.send_location_data(location.key,lat,lon,ele) + +# send implementation + + +# send_batch_data implementation +data_list = [Data(value=0, id='value', +lat = 40.726190,lon=-74.005334, ele=0)] +aio.send_batch_data(location.key, data_list) + From c0fd895a065c635b6aa8aa67f37eab7d5e4849cc Mon Sep 17 00:00:00 2001 From: brentru Date: Fri, 29 Jun 2018 17:17:42 -0400 Subject: [PATCH 2/3] added send_location_data method to API client wrapper --- Adafruit_IO/client.py | 11 +++++++++++ examples/api/location.py | 13 ++++++------- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/Adafruit_IO/client.py b/Adafruit_IO/client.py index 6a67beb..5031718 100644 --- a/Adafruit_IO/client.py +++ b/Adafruit_IO/client.py @@ -130,6 +130,17 @@ def append(self, feed, value): """ return self.create_data(feed, Data(value=value)) + def send_location_data(self, feed, value, lat, lon, ele): + """Sends locational data to a feed + + args: + - lat: latitude + - lon: logitude + - ele: elevation + - (optional) value: value to send to the feed + """ + return self.create_data(feed, Data(value = value,lat=lat, lon=lon, ele=ele)) + def receive(self, feed): """Retrieve the most recent value for the specified feed. Feed can be a feed ID, feed key, or feed name. Returns a Data instance whose value diff --git a/examples/api/location.py b/examples/api/location.py index 491151f..0cf7367 100644 --- a/examples/api/location.py +++ b/examples/api/location.py @@ -13,8 +13,8 @@ import datetime # Set to your Adafruit IO key. -ADAFRUIT_IO_USERNAME = 'YOUR_IO_USERNAME' -ADAFRUIT_IO_KEY = 'YOUR_IO_KEY' +ADAFRUIT_IO_USERNAME = 'YOUR_USERNAME' +ADAFRUIT_IO_KEY = 'YOUR_KEY' # Create an instance of the REST client. aio = Client(ADAFRUIT_IO_USERNAME, ADAFRUIT_IO_KEY) @@ -28,14 +28,13 @@ # Adafruit HQ Coordinates +value = 0 lat = 40.726190 -lon = 74.005334 +lon = -74.005334 ele = 0 -# WIP: send_location_data implementation -#aio.send_location_data(location.key,lat,lon,ele) - -# send implementation +# new send_location_data implementation +aio.send_location_data(location.key,value,lat,lon,ele) # send_batch_data implementation From 3b59782d0d7a0be40b563aca7f9285c232e816ca Mon Sep 17 00:00:00 2001 From: brentru Date: Mon, 2 Jul 2018 11:14:05 -0400 Subject: [PATCH 3/3] fix send_location_data arg order, update example --- examples/api/location.py | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/examples/api/location.py b/examples/api/location.py index 0cf7367..7bec293 100644 --- a/examples/api/location.py +++ b/examples/api/location.py @@ -9,17 +9,16 @@ """ # Import Adafruit IO REST client. -from Adafruit_IO import Client, Feed, Data, RequestError -import datetime +from Adafruit_IO import Client, Feed, RequestError # Set to your Adafruit IO key. -ADAFRUIT_IO_USERNAME = 'YOUR_USERNAME' -ADAFRUIT_IO_KEY = 'YOUR_KEY' +ADAFRUIT_IO_USERNAME = 'YOUR_AIO_USERNAME' +ADAFRUIT_IO_KEY = 'YOUR_AIO_KEY' # Create an instance of the REST client. aio = Client(ADAFRUIT_IO_USERNAME, ADAFRUIT_IO_KEY) -# create a location feed +# Create a location feed try: location = aio.feeds('location') except RequestError: @@ -27,18 +26,11 @@ location = aio.create_feed(feed) -# Adafruit HQ Coordinates -value = 0 +# Top Secret Adafruit HQ Location +value = 1 lat = 40.726190 lon = -74.005334 -ele = 0 - -# new send_location_data implementation -aio.send_location_data(location.key,value,lat,lon,ele) - - -# send_batch_data implementation -data_list = [Data(value=0, id='value', -lat = 40.726190,lon=-74.005334, ele=0)] -aio.send_batch_data(location.key, data_list) +ele = 6 # elevation above sea level (meters) +# Send location data to Adafruit IO +aio.send_location_data(location.key, value, lat, lon, ele)