有没有人有Nest API ETA功能?

时间:2015-03-12 04:07:29

标签: nest-api

我正在尝试编写一个简单的基于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值?

1 个答案:

答案 0 :(得分:0)

当您将ETA数据发送到API时,恒温器会将其用作许多输入之一,以决定是否激活hvac设备。随着时间的推移,它将尝试确定您的应用程序中的ETA数据是否准确。如果它认为它是准确的,它将用它来激活加热/冷却系统。

要成功使用它,您需要像上面那样map ETA对象(多次随着时间的推移效果更好)。如果您的ETA估计值准确,则nest将使用它们。

至于阅读ETA数据,他们故意禁用了该数据并且没有指明原因。我的猜测是隐私。

我在这里有一个成功的例子in my windows phone app