Google 致力于为黑人社区推动种族平等。查看具体举措

离开和预计到达时间

离开

在 Nest API 中,“Home”或“Away”的概念对 Nest 的节能和便利功能的行为具有强大的影响。

Home and Away 的工作原理

Nest 使用各种信号来检测家庭中是否有人。如果 Nest 在很长一段时间内检测到无人存在,它会自动将家设置为离开。当它检测到人类存在时,它会将结构返回到 Home 状态。

对 Home/Away 状态的变化做出反应为您的产品开辟了广泛的机会。例如,您的产品可以:

  • 当家里进入外出时关灯以节省能源
  • 如果在家中离开时车库门打开,则发送通知
  • 当房子切换到家庭时播放音乐

ETA 的工作原理

在某些情况下,用户拥有使用 GPS 向 Nest API 提供预计到达时间 (ETA) 数据的第 3 方应用程序。在其他情况下,用户可能会使用应用程序手动输入他们的 ETA。或者 ETA 可能是根据用户的定期计划计算的。

与 Nest Thermostat 集成的 ETA 应用程序会导致恒温器在用户到达之前开始加热或冷却房屋。

当用户帐户中存在 ETA/恒温器集成时,ETA 数据可供其他 Works with Nest 开发人员在他们的 Works with Nest 集成中使用。

在将 ETA 输入 Nest 服务后,另一个 Works with Nest 集成可以将其用作信号,为用户的到来做好准备。

  1. 该ETA通过使用只写一个鸟巢开发者编写PUT eta API调用
  2. Nest Thermostat 使用此数据。
  3. 如果其他开发人员想使用它,太,他们可以使用只读GET eta_begin API调用
预计到达时间数据

要记住的重要一点是 ETA 数据必须由第 3 方输入。 Nest 目前不提供 ETA 数据。如果尚未写入 ETA 数据,Nest API 将返回默认值“1970-01-01T00:00:00.000Z”。

例如,假设您是照明供应商。您可以获取 ETA/恒温器集成提供的 ETA 数据,并将其用作开灯的信号。

这样,不仅温度舒适,用户到家时灯也亮了。

对 ETA 状态的变化做出反应为您的产品开辟了广泛的机会。例如,您的产品可以:

  • 当用户接近家时打开电视
  • 当用户快到家时打开车库门
  • 当用户回家时,音乐已经在播放

离开权限

下面的访问权限级别可供客场相关的数据值



使用权

远离阅读
离开读/写

预计到达时间

ETA 读/写

烟雾+一氧化碳警报读取
恒温器读数
恒温器读/写
away是的是的是的
eta_begin (只读)是的是的
eta对象(只写)是的

欲了解更多信息,请参见权限概述

客场特色

主客场

away数据的值可以告诉你,如果鸟巢认为结构被占用。可能的值为:

价值描述
home结构中有人。可以设置此状态:
• 如果 Nest 对运动传感器数据有很高的置信度
•经由用户Nest应用,Nest Thermostat会或你的产品
• 通过 ETA 算法
away结构中没有人。用户具有结构明确地设定了,无论是通过Nest应用,Nest Thermostat会或你的产品。
unknown如果没有设备与结构相关联,那么离开状态是unknown

Nest API 提供了直接设置 Home 和 Away 以及监听这些状态变化的能力。但是,设置主客场的时候,它应该做的Nest应用做的:作为一个明确的用户请求的结果。试图算法设置这种状态运行创造一个令人困惑的用户体验的风险,并通过禁止鸟巢的设计策略

要知道,用户总是要手动设置首页/客场状态的能力。

详细了解用户如何设置主客场状态

预计到达时间

离开

ETA是与可以在结构上被设置的字段的对象。它用于让 Nest 知道用户预计会在特定时间回家。当设置ETA,产品生成一个唯一trip_id和提供到达的预期窗口,由下列值指定:

  • estimated_arrival_window_begin
  • estimated_arrival_window_end

由于交通状况、用户计划更改和其他事件可能会导致旅行环境发生变化,因此产品应随着旅行的进行定期更新 ETA,为 Nest 提供预计到达时间流(5 分钟是理想的时间间隔)。

我们收到的信息越多,我们对 ETA 输入的可靠性就越有信心,这使我们在采取行动准备房屋时更有信心。

ETA 独立于本国。如果一个预计到达时间与另一个预计到达时间冲突,则以最早到达时间为准。

拨打 ETA 写入电话

ETA 逻辑取决于结构中是否存在恒温器。如果结构不存在温控器,则对ETA对象所做的失败,并在“不配对的设备”的错误消息。即使结构中存在其他类型的设备(例如 Nest Cam 或 Nest Protect),也会发生此错误。

数据值

ETA 调用需要以下数据值:

名称类型描述
trip_id细绳唯一的 ETA 行程标识符
estimated_arrival_window_begin细绳时间戳
必须大于NOW ,在ISO 8601格式
estimated_arrival_window_end细绳时间戳
必须大于estimated_arrival_window_begin ,在ISO 8601格式

由于 GPS 通信中连接中断的可能性,我们建议使用样本流,最好每 5 分钟一次。

每个ETA调用必须包括一个独特的trip_id字符串您在初始呼叫定义。其他参数可以连续调用同一个改变trip_id

ETA 调用在成功时返回 200 OK HTTP 状态代码。

例子

卷曲
curl --location-trusted -X PUT -d \
  '{"trip_id":"sample-trip-id","estimated_arrival_window_begin":"2014-10-31T22:42:00.000Z","estimated_arrival_window_end":"2014-10-31T23:59:59.000Z"}' \
  "http://developer-api.nest.com/structures/5af48890-b516-11e3-9eff-123139166438/eta.json?auth=c.VG6bfzyOxAltaih6P4v..."

取消预计到达时间

要取消ETA,发送estimated_arrival_window_begin = 0 。检查您在此调用中发送的是整数 (0),而不是字符串 ("0"),否则调用将失败。

错误信息

对于哪些API调用错误的含义及如何处理这些信息,请参阅错误信息