让我强调一点,我不是程序员,但我喜欢弄乱事物。我多年来一直在使用@ifttt和@nest,最近开始使用@smartthings在我的房子里做很酷的事情。
我想在离开家的时候关掉我的灯和热水器等设备。而不是依赖于一个设备,如电话或钥匙扣,我想使用巢"自动离开"特征
自动离开似乎不会暴露给@ifttt或@smartthings。我问过@nestsupport,他们告诉我来这里:-o。
来自嵌套开发人员团队的人是否知道开发人员和其他产品何时可以从嵌套设备中使用它?真是太遗憾了,经过几年的努力,这还没有暴露出来。不仅如此,它还可以成为您家中集成和打开/关闭物品的额外卖点。
感谢
答案 0 :(得分: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类在获取所有信息等方面非常有用;
答案 1 :(得分:0)
答案 2 :(得分: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状态的数值。
然后,在您编写的SmartApp中,您可以在其中包含类似恒温器的输入:
section("Choose thermostat... ") {
input "thermostat", "capability.thermostat"
}
您可以参考
访问自动离开状态thermostat.autoAwayStatus
从代码中的任何位置开始,您可以执行类似
的操作if (thermostat.autoAwayStatus == 1) {
// Turn off everything
}