【问题标题】:NEST Thermostat APINEST 恒温器 API
【发布时间】:2014-08-19 05:30:18
【问题描述】:

我正在尝试使用新发布的 NEST api 开发一个 ios 应用程序,但他们的本机文档有点丢失。

问题:我可以获得访问令牌,但不知道恒温器端点来查询和更新“离开”状态

任何指针将不胜感激..

【问题讨论】:

标签: nest-api


【解决方案1】:

我假设您打算使用 REST 来查询和更新离开状态,因为您提到了“端点”?如果不是,另一种选择是使用 firebase API。这记录在introduction section

要获得离开状态,您需要查询结构/s

curl -v -L https://developer-api.nest.com/structures?auth=<AUTH_TOKEN>

除了该结构中的恒温器/烟雾警报器之外,响应还显示离开状态。

{
    "g-9y-2xkHpBh1MGkVaqXOGJiKOB9MkoW1hhYyQk2vAunCK8a731jbg": {
        "away": "home",
        "country_code": "US",
        "name": "Home",
        "smoke_co_alarms": [
            "0NBM7-QfoLwhMldZ2CoIkQ7hRJoe1Jye"
        ],
        "structure_id": "g-9y-2xkHpBh1MGkVaqXOGJiKOB9MkoW1hhYyQk2vAunCK8a731jbg",
        "thermostats": [
            "GM6Z9JpSKU6_ua8AfD6WRA"
        ],
        "time_zone": "America/Los_Angeles"
    }
}

要更新离开状态,您需要使用 PUT http 动词:

curl -v -L -X PUT "https://developer-api.nest.com/structures/g-9y-2xkHpBh1MGkVaqXOGJiKOB9MkoW1hhYyQk2vAunCK8a731jbg?auth=<AUTH_TOKEN>" -H "Content-Type: application/json" -d '{"away":"away"}'

注意,path参数中使用的ID是get响应中返回的结构ID。

希望有所帮助 纳格什

【讨论】:

  • Nagesh,谢谢..在我可以测试您的方法之前,我遇到了 oAuth 问题..任何关于 oAuth 的指针将不胜感激
  • 您在使用 oauth 时遇到什么问题?在developer.nest.com/clients 页面上,您应该能够看到执行 oauth 所需的 URL。请注意,需要 POST 才能在 api.home.nest.com/oauth2/access_token 处获取 access_token
  • Nagesh ..我如何从返回的 json 中获取 g-9y-2xkHpBh1MGkVaqXOGJiKOB9MkoW1hhYyQk2vAunCK8a731jbg ..我相信它是动态的
  • 如果你直接使用 auth 参数对developer-api.nest.com 进行 get 操作,你应该得到一个包含结构和设备的 JSON 对象。从这里开始,“结构”对象只包含一个 String => StructureInfo 对象的映射。在 java 中,它将被定义为 Map 结构。从这里您将获得名称与您的要求相匹配的结构,并使用该结构 ID 发出 PUT 请求。向您展示一个 Java 示例的要点:gist.github.com/nageshs/178239fd37016bdceede
猜你喜欢
  • 1970-01-01
  • 2016-07-09
  • 1970-01-01
  • 1970-01-01
  • 2022-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多