0

サーモスタットのデバイス ID を簡単に見つけて区別する方法はありますか? デバイス インターフェイスのどこかで、または Firebase ライブラリを使用して deviceId を見つけることができると期待していましたが、どちらもそうではありませんでした。

私のFirebaseオブジェクトは次のように作成されます(サーモスタットで終わるURL):

Firebase fb = new Firebase("https://developer-api.nest.com/devices/thermostats/");

サーモスタットのプロパティを変更するには、私のコードは次のようになります...

/* このメソッドは、(firebase ではなく) http get を実行して、サーモスタット データ構造全体を JSON オブジェクトとして取得します。次に、各サーモスタットの deviceId 構造体を反復処理して、一致する部屋名を探します。一致が見つかると、デバイス ID を中断して文字列として返します。デバイス ID は、firebase を使用してそのサーモスタット デバイスに固有のすべてのデータを変更するために必要です。*/

deviceId = getDeviceIdFromRoomName(roomName); 

//次に、「target_temperature_f」を新しい値に変更するようなアクションを実行します。

fb.child(deviceId).child(NestConstants.TARGET_TEMP_F).setValue(newValue);

Firebase ライブラリを使用してこれを行うためのより簡単で信頼性の高い方法があるはずですが、私はそれを見つけることができませんでした. 助言がありますか?

視覚化するために、これは私が解析しているデータ構造であり、「CRfcK-QwEZLAr4qxHshPmZyFayBdIYv5」(存在する場合) を取得するためのより良い方法に関する提案を探しています。

{
    "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
        }``
4

3 に答える 3

1

ここで正しく理解できているかどうかわかりませんが、構造 ID を呼び出してみましたか? これを行うと、その構造に関連付けられているすべてのサーモスタットが一覧表示されます。すべてのサーモスタットを取得したら、それらを呼び出して関連する名前を保存していただけますか? もし私がかなり離れているなら、私に知らせてください、そして私はそれをもう一度見ようとします.

于 2014-07-07T16:56:40.270 に答える