Is there an easy way to discover and differentiate thermostat devicesIDs? I would have expected to be able to find the deviceId somewhere in the device interface or by using the Firebase library, but I haven't found either to be the case.
My Firebase object is created as such (url ending at thermostats):
Firebase fb = new Firebase("https://developer-api.nest.com/devices/thermostats/");
To change a property on the thermostat, my code looks like this...
/*This method does an http get (not firebase) to get the entire thermostats data structure as a JSON Object. It then iterates through each thermostat deviceId structure looking for a matching room name. When it finds a match, it breaks and returns the deviceID as a string. The device id is needed to change all data specific to that thermostat device using firebase. */
deviceId = getDeviceIdFromRoomName(roomName);
//I then perform an action like so to change the "target_temperature_f" to a new value.
fb.child(deviceId).child(NestConstants.TARGET_TEMP_F).setValue(newValue);
It seems like there should be an easier, more reliable way to do this using the Firebase library, but I haven't been able to find it. Any suggestions?
To help visualize, this is the data structure that I'm parsing and I'm looking for suggestions on a better way to acquire "CRfcK-QwEZLAr4qxHshPmZyFayBdIYv5" (if it exists).
{
"thermostats": {
"CRfcK-QwEZLAr4qxHshPmZyFayBdIYv5": {
"locale": "en-US",
"temperature_scale": "F",
"is_using_emergency_heat": false,
"has_fan": true,
"software_version": "4.1",
"has_leaf": true,
"device_id": "CRfcK-QwEZLAr4qxHshPmZyFayBdIYv5",
"name": "Master Bedroom",
"can_heat": true,
"can_cool": false,
"hvac_mode": "heat",
"target_temperature_c": 18.5,
"target_temperature_f": 66,
"target_temperature_high_c": 24,
"target_temperature_high_f": 75,
"target_temperature_low_c": 20,
"target_temperature_low_f": 68,
"ambient_temperature_c": 12,
"ambient_temperature_f": 54,
"away_temperature_high_c": 24,
"away_temperature_high_f": 76,
"away_temperature_low_c": 12.5,
"away_temperature_low_f": 55,
"structure_id": "xF7P6wyrR7-8VHerOAcHYDMBc_odGpO2CIpQO_g5EpM13LINO9Oxdg",
"fan_timer_active": false,
"name_long": "Master Bedroom Thermostat",
"is_online": true
}``