-
-
Save davidrea/17ba3aebfa65c933daca to your computer and use it in GitHub Desktop.
function performLogin(email, password) { | |
var payload = { | |
"username" : email, | |
"password" : password | |
}; | |
var options = { | |
"method" : "post", | |
"payload" : payload | |
}; | |
var response = JSON.parse(UrlFetchApp.fetch('https://home.nest.com/user/login', options).getContentText()); | |
if ('error' in response) { | |
throw "Invalid login credentials"; | |
} | |
return response | |
} | |
function getData() { | |
var login_auth = performLogin('<YOUR NEST USERNAME>','<YOUR NEST PASSWORD>'); | |
var headers = { | |
"Authorization" : 'Basic '+login_auth['access_token'], | |
"X-nl-user-id" : login_auth['userid'], | |
"X-nl-protocol-version" : '1', | |
'Accept-Language': 'en-us', | |
'Connection' : 'keep-alive', | |
'Accept' : '*/*', | |
}; | |
var options = { | |
'headers' : headers | |
}; | |
var request=UrlFetchApp.fetch(login_auth['urls']['transport_url']+'/v2/mobile/user.'+login_auth['userid'], options); | |
var result=JSON.parse(request.getContentText()); | |
var structure_id = result['user'][login_auth['userid']]['structures'][0].split('.')[1] | |
var device_id = result['structure'][structure_id]['devices'][0].split('.')[1] | |
var current_temp = result["shared"][device_id]["current_temperature"]; | |
var target_temp = result["shared"][device_id]["target_temperature"]; | |
var humidity = result["device"][device_id]["current_humidity"]/100; | |
var auto_away = result["shared"][device_id]["auto_away"]; | |
var heater_state = result["shared"][device_id]["hvac_heater_state"]; | |
Logger.log("Current Temp: "+current_temp+", Target Temp: "+ target_temp +", Humidity: "+ humidity*100 + "%" ); | |
var time = new Date(); | |
var wxrequest=UrlFetchApp.fetch('http://api.openweathermap.org/data/2.5/weather?q=<YOUR ZIP CODE>'); | |
var wxresult=JSON.parse(wxrequest.getContentText()); | |
var outside_temp = (wxresult["main"]["temp"] - 273); | |
var ss = SpreadsheetApp.getActiveSpreadsheet(); | |
var sheet = ss.getSheets()[0]; | |
// Appends a new row with 3 columns to the bottom of the | |
// spreadsheet containing the values in the array | |
sheet.appendRow( [ time, current_temp, target_temp, outside_temp, humidity, heater_state, auto_away ] ); | |
} | |
The outside temperature API is not pulling right data. Might be an issue with the API itself but the lat/long it pulled for my zipcode is wrong and so was the outside temp. any ideas?
@gobindbi, if you're in the US just add a ",us" after your zip code. The code should be:
var wxrequest=UrlFetchApp.fetch('http://api.openweathermap.org/data/2.5/weather?q=,us');
This worked for me.
Since October 2015
please add this
&APPID=
to openwheathtermap URL But you need to Sign Up to get an APPID
var wxrequest=UrlFetchApp.fetch('http://api.openweathermap.org/data/2.5/weather?q=,us');
it becomes this
var wxrequest=UrlFetchApp.fetch('http://api.openweathermap.org/data/2.5/weather?q=,us&APPID=XXXXXXXXXXXXXXXXXX');
This is because fetching live temp doesnt work any more with out APPID
Any ideas why im getting this error?
Start Function Error Message Trigger End
5/17/15 1:26 PM getData SyntaxError: Empty JSON string (line 37, file "Code") time-based 5/17/15 1:28 PM
5/17/15 1:41 PM getData Unexpected error: https://home.nest.com/user/login (line 12, file "Code") time-based 5/17/15 1:42 PM
5/17/15 1:43 PM getData Unexpected error: https://home.nest.com/user/login (line 12, file "Code") time-based 5/17/15 1:44 PM
5/17/15 1:56 PM getData Unexpected error: https://home.nest.com/user/login (line 12, file "Code") time-based 5/17/15 1:57 PM
5/17/15 2:11 PM getData Unexpected error: https://home.nest.com/user/login (line 12, file "Code") time-based 5/17/15 2:12 PM
5/17/15 2:26 PM getData Unexpected error: https://transport04-rts08-iad01.transport.home.nest.com:443/v2/mobile/user.44835 (line 36, file "Code") time-based 5/17/15 2:28 PM
5/17/15 2:41 PM getData SyntaxError: Empty JSON string (line 12, file "Code") time-based 5/17/15 2:42 PM
5/17/15 2:56 PM getData SyntaxError: Empty JSON string (line 12, file "Code") time-based 5/17/15 2:57 PM
5/17/15 3:11 PM getData SyntaxError: Empty JSON string (line 37, file "Code") time-based 5/17/15 3:13 PM
5/17/15 3:26 PM getData Unexpected error: https://home.nest.com/user/login (line 12, file "Code") time-based 5/17/15 3:27 PM
5/17/15 3:41 PM getData Unexpected error: https://home.nest.com/user/login (line 12, file "Code") time-based 5/17/15 3:42 PM
5/17/15 3:56 PM getData SyntaxError: Empty JSON string (line 37, file "Code") time-based 5/17/15 3:57 PM
5/17/15 4:11 PM getData Unexpected error: https://home.nest.com/user/login (line 12, file "Code") time-based 5/17/15 4:12 PM
5/17/15 4:26 PM getData SyntaxError: Empty JSON string (line 12, file "Code") time-based 5/17/15 4:27 PM
5/17/15 4:41 PM getData Unexpected error: https://home.nest.com/user/login (line 12, file "Code") time-based 5/17/15 4:42 PM
5/17/15 4:56 PM getData Unexpected error: https://home.nest.com/user/login (line 12, file "Code") time-based 5/17/15 4:57 PM
5/17/15 5:11 PM getData Unexpected error: https://home.nest.com/user/login (line 12, file "Code") time-based 5/17/15 5:12 PM
5/17/15 5:26 PM getData SyntaxError: Empty JSON string (line 12, file "Code") time-based 5/17/15 5:27 PM
5/17/15 5:41 PM getData SyntaxError: Empty JSON string (line 12, file "Code") time-based 5/17/15 5:42 PM
5/17/15 5:56 PM getData Unexpected error: https://home.nest.com/user/login (line 12, file "Code") time-based 5/17/15 5:57 PM
5/17/15 6:26 PM getData SyntaxError: Empty JSON string (line 12, file "Code") time-based 5/17/15 6:27 PM
5/17/15 6:41 PM getData SyntaxError: Empty JSON string (line 12, file "Code") time-based 5/17/15 6:42 PM
5/17/15 6:56 PM getData SyntaxError: Empty JSON string (line 12, file "Code") time-based 5/17/15 6:57 PM
5/17/15 7:11 PM getData SyntaxError: Empty JSON string (line 12, file "Code") time-based 5/17/15 7:12 PM
5/17/15 7:35 PM getData Request failed for https://home.nest.com/user/login returned code 429. Truncated server response: Too many requests (use muteHttpExceptions option to examine full response) (line 12, file "Code") time-based 5/17/15 7:36 PM
5/17/15 7:56 PM getData SyntaxError: Empty JSON string (line 37, file "Code") time-based 5/17/15 7:58 PM
5/17/15 8:26 PM getData Request failed for https://home.nest.com/user/login returned code 429. Truncated server response: Too many requests (use muteHttpExceptions option to examine full response) (line 12, file "Code") time-based 5/17/15 8:27 PM
5/17/15 8:41 PM getData Unexpected error: https://home.nest.com/user/login (line 12, file "Code") time-based 5/17/15 8:42 PM
5/17/15 8:56 PM getData Unexpected error: https://home.nest.com/user/login (line 12, file "Code") time-based 5/17/15 8:57 PM
5/17/15 9:11 PM getData SyntaxError: Empty JSON string (line 37, file "Code") time-based 5/17/15 9:13 PM
5/17/15 9:26 PM getData Unexpected error: https://home.nest.com/user/login (line 12, file "Code") time-based 5/17/15 9:27 PM
5/17/15 9:41 PM getData Unexpected error: https://home.nest.com/user/login (line 12, file "Code") time-based 5/17/15 9:42 PM
5/17/15 10:26 PM getData SyntaxError: Empty JSON string (line 12, file "Code") time-based 5/17/15 10:27 PM