Android 嵌套恒温器温度未更新

Android 嵌套恒温器温度未更新,android,nest-api,Android,Nest Api,我正试图通过编程(Android)来改变我巢穴的温度,但没有任何运气。请求可能在30-50次尝试中起作用 我已经尝试过通过Firebase Nest SDK来实现,但是NestAPI.CompletionListener根本没有被调用。看到这不起作用,我尝试了RESTAPI,在那里它工作了两次,然后又是30次尝试中的1次。 我还在命令行中使用curl进行了尝试,得到了相同的结果,直到最后由于速率限制而被“阻止”。在被阻止之前,请求返回完整的恒温器对象,就像执行GET请求而不是PUT请求一样 当温

我正试图通过编程(Android)来改变我巢穴的温度,但没有任何运气。请求可能在30-50次尝试中起作用

我已经尝试过通过Firebase Nest SDK来实现,但是NestAPI.CompletionListener根本没有被调用。看到这不起作用,我尝试了RESTAPI,在那里它工作了两次,然后又是30次尝试中的1次。 我还在命令行中使用curl进行了尝试,得到了相同的结果,直到最后由于速率限制而被“阻止”。在被阻止之前,请求返回完整的恒温器对象,就像执行GET请求而不是PUT请求一样

当温度确实得到更新时,响应只包含新的目标温度\u高\u c目标温度\u高\u c

还有谁见过类似的行为吗

编辑:在下面添加了一些代码

以下是我使用Nest Android API(基于Firebase)的代码:

NestAPI.CompletionListener CompletionListener=新建NestAPI.CompletionListener(){
未完成的公共空间(){
Debug.d(“嵌套”,“请求完成”);
}
公共无效onError(内部错误代码){
Debug.e(“嵌套”,“错误:+errorCode”);
}
};
NestAPI.getInstance().setTargetTemperatureHighC(myNest.getDeviceID(),25,completionListener);
这只有在我每小时打一次电话的情况下才有效。如果我试着做两次,第二次也不行

接下来,我尝试使用REST界面。这似乎更为频繁(工作了5-6次,之后API开始表现得像我在做GET请求而不是PUT

JSONObject dataToSend=new JSONObject();
dataToSend.put(“目标温度低摄氏度”,23);
dataToSend.put(“目标温度高”,26);
HttpPut HttpPost=新的HttpPut(“https://developer-api.nest.com/devices/thermostats/“+myNest.getDeviceID()+”?auth=“+myAuthToken”);
setHeader(“内容类型”、“应用程序/json”);
setEntity(新的StringEntity(dataToSend.toString());
HttpResponse response=defaultHttpClient.execute(httpost);
HttpEntity=response.getEntity();
字符串响应=convertStreamToString(entity.getContent());

编辑2:刚刚用Nest Home模拟器测试了这一点,它工作得非常好。尽管
setTargetTemperatureHighC的javadocs中说真正的硬件有问题

此值仅在“加热和冷却”模式下相关。否则,请参阅 {@link#setTargetTemperatureC(字符串,Long,com.nestapi.lib.API.nestapi.CompletionListener)}

您可以使用

如果它不在加热和冷却模式下,您应该使用:

i、 e.如果您告诉Nest设备在当前温度为30摄氏度且处于“冷却”模式的情况下将温度调到50摄氏度,它将忽略您


(这可能就是为什么当它处于加热模式时,当你要求它预热时,它会工作一次——一旦达到这个温度,它就可以进入冷却模式,而要求它加热更多的温度将被忽略。)

你能准确地发布你在打什么电话吗?URL加上有效负载?我假设这些都是PUT请求?添加了我的代码示例。再次说明:这些可以工作几次,之后..它们不要紧,我应该更清楚。恒温器处于加热和冷却模式。与你的示例中的情况不同,你使用的是
NestAPI.getInstance()
没有明确检查模式?如果我把全部活动都放进去,我会填满几页。只说我所描述的内容对你的问题非常有意义,而不把它放在问题中,这让我想知道你还遗漏了什么,因为我们必须猜出答案。你应该始终尝试创建最小值工作原型再现了您的问题,涵盖了您已经探索过的所有途径。只需使用模拟器对其进行测试,它工作得非常好。至于示例代码:您是对的,本来可以先添加更多。现在使用模拟器进行的测试确认代码本身是正确的,我必须开始寻找其他可能的错误资源。