2016-03-28 12 views
2

ネストのサーモスタットSDKをネストし、ネストのiOSサンプルコードを参考にネストします。ネストサーモスタットアウェイの状態が家に戻る

温度の設定については、サンプルコードを参照してください。アウェイステータスをawayまたはhomeに設定する(ファイアベースへの文字列値は設定されていません)。

前の質問からChange Away Status on Nest Thermostat (Nest API)イムは離れて、ステータス変更:これは、ログにawayとして反映

self.rootFirebase = [[Firebase alloc] initWithUrl:@"https://developer-api.nest.com/"]; 
    Firebase *structuresRef = [self.rootFirebase childByAppendingPath:@"structures"]; 
    Firebase *thisStructureRef = [structuresRef childByAppendingPath: @"structure_id_0"]; 
    Firebase *awayRef = [thisStructureRef childByAppendingPath: @"away"]; 

    // Set Status 
    [awayRef setValue:@"away"]; 

を。これをスティックにすることは問題を引き起こしています。

awayを設定した後、ログをもう一度表示すると、もう一度homeに戻ります。

STATは

- (void)addSubscriptionToURL:(NSString *)URL withBlock:(SubscriptionBlock)block { 

    Firebase *newFirebase2 = [self.rootFirebase childByAppendingPath:@"structures"]; 
    [newFirebase2 observeEventType:FEventTypeChildAdded withBlock:^(FDataSnapshot *snapshot) { 

     // Put structures int a dictionary 
     NSMutableDictionary *dict = snapshot.value; 
     NSLog(@"\n\n******** STATUS: Away Status = %@ **********\n\n", [dict valueForKey:@"away"]); 

     }]; 
} 

は、誰もが成功した巣のSDKと離れた状態を設定した優先順位を持っているのstatに何のアプリからの要求を、オーバーライドしているようですか? Iveは、アプリケーションが滞在するステータスを取得しようとするだけで、アプリモデルのさまざまなセクションでアプリが起動するとすぐにアウェイステータスを設定しようとしました。いずれかを助けるためにGoogleの検索では、適切ではなかったgithubのサンプルプロジェクトを除いて

+0

を参照してください、あなたの実際のstructure_idに依存しますか?巣のサーモスタットは家に設定されていますか?答えがコードでなければ、おそらくデバイスのうちの1つが、離れたところへの変更を通知され、そのノードの設定でノードを上書きするでしょう。 – Jay

+0

'structures/structure_id_0/away'は1つの場所でのみアクセスされます。また、statを 'away'に設定してアプリから' home'に設定すると、同じ動作が逆になりますので、statがアプリのリクエストを上書きしてしまう可能性があることを示唆しています。統計情報は公式のネストからの家庭/離れた状態とそこにある非公式のアプリを尊重します。 – JSA986

答えて

0

あなたは構造体を正しく呼んでいますか?それは、次のことを想定:

structures/VqFabWH21nwVyd4RWgJgNb292wa7hG_dUwo2i2SG7j3/away 

は、あなたのコード内で離れた構造/ structure_id_0を/アクセスする他にどこhere

+0

確信はありません。あなたの答えにはもう少しコンテキストを追加できますか?ここにすべての提案を開く – JSA986

+0

あなたのコード 'Firebase * thisStructureRef = [structuresRef childByAppendingPath:@" structure_id_0 "];' Firebase * thisStructureRef = [structuresRef childByAppendingPath:@ "VqFabWH21nwVyd4RWgJgNb292wa7hG_dUwo2i2SG7j3"]; 'が必要ですが、実際のstructure_idはこれは単なる例です。 – Allen

+0

それ、ありがとう – JSA986

関連する問題