如何使用Nest-API和Firebase基于唯一标识符检索数据?

时间:2015-01-22 19:49:53

标签: firebase nest-api

目前,我正在监控Nest设备,并可以根据变化采取行动。使用此代码:

fireRef = new Firebase('wss://developer-api.nest.com');
fireRef.on('value', function (snapshot) {
  var snap = snapshot.val();
  console.log(snap);
});

这项工作很好,但是,我想访问一些数据而不必听取它。以上功能将返回所有设备,因此很难监控特定的更改。鉴于上述函数将返回这样的对象,具有唯一标识符,例如structure_id

{devices: {},
 metadata: {},
 structures{}
}

我如何访问特定设备的属性,例如:

get wss://developer-api.nest.com/devices/thermostats/_uniqueID

这显然不会奏效。有类似的命令吗?

1 个答案:

答案 0 :(得分:0)

要仅从“x”向下接收结构,您需要使用指向该路径的数据设置读取。这是一个.bat示例。您首先OAuth将重定向到某个新网址。如果您的读取方法考虑了重定向,那么您可以使用https://developer-api.nest.com。来源位于pastebin。必要时评论/取消注释。此示例使用CURL。这假设您已拥有访问令牌。

set access_token=[you'll get this from a successful oauth]

set new_url=https://firebase-apiserver02-tah01-iad01.dapi.production.nest.com:9553

rem VALUE_CONFIG
set value1=target_temperature_f
set value2=name
set value3=hvac_mode
set value4=ambient_temperature_f
set value5=target_temperature_high_f

set value_name=%value3%

rem DEVICE_CONFIG
rem virtual:
set dev_id1=[manually enter example dev_id]
rem real:
set dev_id2=[manually enter example dev_id]

set dev_id=%dev_id1%

set url=https://developer-api.nest.com/%struct_name%.json?auth=%access_token%
set url_by_id=%new_url%/devices/thermostats/%dev_id%.json?auth=%access_token%
set url_by_value=%new_url%/devices/thermostats/%dev_id%/%value_name%.json?auth=%access_token%

rem TOGGLE FOR GET
set GET_DATA=true
rem TOGGLE FOR GET

rem GET_DATA
set get_struct=curl\curl.exe -k -L %url%
set get_by_id=curl\curl.exe -k -L %url_by_id%
set get_by_value=curl\curl.exe -k -L %url_by_value%

set get_url=%get_by_id%

if defined GET_DATA echo %get_url%
if defined GET_DATA echo.
if defined GET_DATA %get_url%
if defined GET_DATA echo.