В настоящее время я подключаюсь к Nest Thermostat API с помощью Node.js. В настоящее время в моем приложении работает все, кроме получения подробных сообщений об ошибках.
Всякий раз, когда я хочу внести изменения в структуру, я делаю _sendUpdate
вызов Firebase (_fb
), определенный как:
FireBaseRef.prototype._sendUpdate = function(path, targetValue, callback) {
log.i('set ' + path + ' (' + targetValue + ')');
this._fb.child(path).set(targetValue, function(error {
log.e(JSON.stringify(error));
});
}
Которая использует функцию Firebase.set()
. В случае ошибки этот обратный вызов передает объект ошибки или null
, как описано здесь а>.
В качестве примера ошибки мы пытаемся установить температуру термостата Nest, когда он установлен на Away. Согласно руководству по Nest API, должно появиться сообщение об ошибке следующего вида: быть увиденным
{
"error": "Cannot change target temperature while structure is Away",
"type": "https://developers.nest.com/documentation/cloud/error-messages#structure-in-away-mode",
"message": "Cannot change target temperature while structure is Away",
"instance": "31441a94-ed26-11e4-90ec-1681e6b88ec1",
}
Однако вместо этого я просто получаю предупреждение Firebase:
FIREBASE WARNING: set at /devices/thermostats/-GEIJToEG3M9p_jic4J9u7vAgh/target_temperature_c failed: Cannot change target temperature while structure is away
и мой журнал обнаруживает аналогичную ошибку без подробностей:
{
"code":"CANNOT CHANGE TARGET TEMPERATURE WHILE STRUCTURE IS AWAY"
}
Может ли кто-нибудь объяснить, как я могу получить более подробные сообщения об ошибках?
Примечание. Я использую Firebase API 2.4.2, поскольку v3 выдает ошибки при аутентификации, поэтому я прибег к версии, использованной в примере кода (здесь)