1

让我强调一下,我不是程序员,但我喜欢搞事情。我多年来一直在使用@ifttt 和@nest,最近开始使用@smartthings 在我家做一些很酷的事情。

我想在离开家时关闭我的灯和热水器等设备。我不想让这依赖于一个设备,例如电话或 keyfoob,而是想使用嵌套“自动离开”功能。

自动离开似乎不会暴露给@ifttt 或@smartthings。我问过@nestsupport,他们告诉我来这里:-o。

Nest 开发团队的任何人都知道开发人员和其他产品何时能够从他的 Nest 设备上使用它?几年后还没有曝光,真是太可惜了。不仅如此,它还可以成为集成和打开/关闭您家中物品的额外卖点。

感谢

4

3 回答 3

1

我不是来自 Nest 开发团队,但我过去曾使用过 Nest API,并用它来绘制我的能源使用情况。

API 中已经可以访问“自动离开”信息,并且看起来在许多 IFTTT 配方中使用:

https://ifttt.com/recipes/search?q=auto+away&ac=false

在 API 接收回的 (JSON) 数据中,“自动离开”状态可通过以下方式访问;

shared->{serial_number}->auto_away

这设置为布尔值(0 或 1)。

如果您喜欢乱写代码,并且了解任何 PHP,那么 Nest API 的这个 PHP 类在获取所有信息等方面非常有用;

https://github.com/gboudreau/nest-api

于 2015-04-16T14:04:02.983 回答
0

自动离开一直是可读的https://developer.nest.com/documentation/cloud/api-overview#away

于 2015-04-18T09:34:05.087 回答
0

有几种方法可以做到这一点,但如果你编写一个 SmartApp 只是为了你自己的用途,我建议你在 SmartThings 上为 Nest 搭载现有的设备类型之一。作为一个简单的例子,我将使用我使用的那个:

https://github.com/bmmiller/device-type.nest/blob/master/nest.devicetype.groovy

在第 96 行之后,这是向您可能编写的任何 SmartApp 公开状态

attribute "temperatureUnit", "string"
attribute "humiditySetpoint", "number"
attribute "autoAwayStatus", "number"     // New Line

现在,您需要在现有的 poll() 方法中获取数据,目前从第 459 行开始。

在第 480 行之后,更新属性

sendEvent(name: 'humidity', value: humidity)
sendEvent(name: 'humiditySetpoint', value: humiditySetpoint, unit: Humidity)
sendEvent(name: 'thermostatFanMode', value: fanMode)
sendEvent(name: 'thermostatMode', value: temperatureType)
sendEvent(name: 'autoAwayStatus', value: data.shared.auto_away)     // New Line

这将显示 auto_away 状态的数值。

  • -1 = 自动离开未启用
  • 0 = 自动离开关闭
  • 1 = 自动离开

然后,在您编写的 SmartApp 中,您包含一个恒温器类型的输入,如下所示:

section("Choose thermostat... ") {
    input "thermostat", "capability.thermostat"
}

您将能够通过参考访问自动离开状态

thermostat.autoAwayStatus 

从代码中的任何位置,您都可以执行类似的操作

if (thermostat.autoAwayStatus == 1) {
     // Turn off everything
}
于 2015-09-01T16:53:34.797 回答