To test the issue, I wrote this piece of code, which kind of works
********
- Code: Select all
import simplejson as json
import urllib2
from base64 import b64encode
import datetime
#import value from indigo variable
token = indigo.variables["AWAir_token"].value
AWAir_Family_deviceID = indigo.variables["AWAir_Family_deviceID"].value
url = "https://developer-apis.awair.is/v1/users/self/devices/awair/" + AWAir_Family_deviceID + "/air-data/latest?fahrenheit=true"
#get DEVICE Data in json from api url
request = urllib2.Request(url)
request.add_header('Authorization', 'Bearer ' + token)
#get TOKEN in json from api url
try:
urlReturned = urllib2.urlopen(request)
except:
indigo.variable.updateValue("awair_family_status", value="Could not retreive Family data")
indigo.server.log ("awair_family_status = " + "Could not retrive Family")
exit(0)
#format api returned data
data_getStatus = urlReturned.read()
#interpret json
try:
dict = json.loads(data_getStatus)
except:
indigo.variable.updateValue("awair_family_status", value="error json.loads(data_getStatus)")
indigo.server.log ("awair data_getStatus = " + "error json.loads(data_getStatus)")
exit(0)
#temperature
try:
awair_family_0_temp=dict[u'data'][0][u'sensors'][0][u'value']
except:
indigo.variable.updateValue("awair_family_status", value="error parcing TEMPERATURE")
indigo.server.log ("awair_family_0_temp = " + "error parcing TEMPERATURE")
exit(0)
awair_family_0_temp=str(round(awair_family_0_temp,1))
*******
GhostXML using "Token" is asking for "token URL" and "token password", for which I am not sure what to use.
Thank you in advance.
JP