【发布时间】:2015-03-12 04:07:28
【问题描述】:
我正在尝试编写一个基于 JavaScript 的简单网站,该网站可以在我的 Nest 中读取和写入 ETA 值。我正在使用下面的代码。
我想我已经能够设置 ETA,但我没有看到任何改变的迹象。恒温器没有在指定时间开启,ETA字段也不会出现在后续的数据请求中。
我很确定设置值是成功的,但我可能是错的。如果我故意输入错误的日期字符串,我会收到一条错误消息。但是当我使用下面的代码设置 ETA 时,我看不到任何错误消息(或根本没有任何输出)。我将缺少输出视为成功(我在设置 home/away 状态时看到了类似的行为,我能够验证它是否按预期工作)。
我正在设置这样的值:
var nest = new Firebase('wss://developer-api.nest.com');
// Authentication and connection code omitted.
function setETA(structureID, minutes) {
var structureNode = nest.child("structures/" + structureID + "/eta");
var d = new Date();
d.setTime(d.getTime() + (minutes*60*1000));
var estimated_arrival_window_begin = d.toISOString();
d.setTime(d.getTime() + (60*60*1000));
var estimated_arrival_window_end = d.toISOString();
console.log(estimated_arrival_window_begin);
console.log(estimated_arrival_window_end);
console.log('Structre ID: ' + structureID);
structureNode.set({
"trip_id":"sample-trip-id",
"estimated_arrival_window_begin": estimated_arrival_window_begin,
"estimated_arrival_window_end": estimated_arrival_window_end
});
}
即使在运行该代码之后,结构对象中也没有“eta”字段。我用2分钟试了上面的代码,然后等了几分钟,温控器没有自动变回原位。这应该发生吗?还是假设任何创建 ETA 的应用程序都会在时间过去后将 Nest 设置为“home”?
我尝试使用 ETA 的主要目的是让 Nest 在我回家之前开始预热。我的目标是能够说“我将在 3 小时后到家”,并且让我的 Nest 自动打开暖气,而不是立即打开暖气,但要足够早,以便在我到达时让我的房子暖和起来。
还有其他人使用 Nest API 的 ETA 功能取得了成功吗?关于为什么我无法读取 ETA 值的任何猜测?
【问题讨论】:
-
我正在尝试使用 REST API 设置 ETA 并收到 404 错误。 ://
标签: nest-api