目前,我正在监控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这显然行不通。有没有类似的命令?
发布于 2016-02-20 02:21:16
为了只接收从"x“往下的结构,你需要用指向该路径的数据设置你的读取。这是一个.bat示例。您的第一个OAuth将重定向到某个新的URL。如果你的read方法支持重定向,那么你可以只使用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.https://stackoverflow.com/questions/28097434
复制相似问题