Programlı olarak (Android) şansımı kullanmadan Nest'in sıcaklığını değiştirmeye çalışıyorum. İstekler belki 30-50 denemede 1 çalışır.Yuva Termostatı sıcaklığı güncellenmiyor
Bunu Firebase Nest SDK'sı üzerinden yapmaya çalıştım ve NestAPI.CompletionListener hiç çağrılmadı. Bunun nasıl işe yaramadığını görünce, iki kez çalıştığı REST api ile denedim ve 30 denemede 1 tekrar denedim. Ayrıca, hız sınırlama nedeniyle nihayet “bloke” olana kadar aynı sonuçları veren komut satırından kıvrımla da denedim. Engellemeden önce, istekleri tam termostat nesnesini, PUT yerine GET isteği yapmak gibi geri döndürüyordu.
sıcaklık aslında güncellenmeyen ne zaman, tepki sadece yeni target_temperature_high_c ve target_temperature_high_c değerler içeriyordu.Başkası benzer davranışlar sergiledi mi?
Düzenleme: Bir keresinde çağrı saatte yaparsanız
NestAPI.CompletionListener completionListener = new NestAPI.CompletionListener() {
public void onComplete() {
Debug.d("NEST", "request complete");
}
public void onError(int errorCode) {
Debug.e("NEST", "error: "+errorCode);
}
};
NestAPI.getInstance().setTargetTemperatureHighC(myNest.getDeviceID(), 25, completionListener);
Bu, yalnızca: İşte (Firebase göre) Nest Android API kullanarak kod bu
aşağıda bazı kod eklemiş. İki kere yapmaya bile çalışırsam, ikinci deneme işe yaramıyor.
Sonraki, REST arabirimiyle denedim. Bu daha sık çalışacak gibi görünüyor (API yerine PUT GET istekleri yapıyordu gibi davranmaya başladı, bundan sonra 5-6 defa çalıştı
JSONObject dataToSend = new JSONObject();
dataToSend.put("target_temperature_low_c", 23);
dataToSend.put("target_temperature_high_c", 26);
HttpPut httpost = new HttpPut("https://developer-api.nest.com/devices/thermostats/"+myNest.getDeviceID()+"?auth="+myAuthToken);
httpost.setHeader("Content-type", "application/json");
httpost.setEntity(new StringEntity(dataToSend.toString()));
HttpResponse response = defaultHttpClient.execute(httpost);
HttpEntity entity = response.getEntity();
String response = convertStreamToString(entity.getContent());
Düzenleme 2:. Sadece Nest Ev Simülatörü ile bu test, ve mükemmel çalışıyor. setTargetTemperatureHighC
için javadocs itibaren
Tam olarak ne yaptığınızı söyleyebilir misiniz? URL artı taşıma kapasitesi? Bunların hepsinin PUT talepleri olduğunu mu varsayıyorum? – urman
kod örneklerimi ekledi.Yine: bunlar birkaç kez çalışıyor, ondan sonra .. onlar değil – zrgiu