在Nest恒温器上更改离开状态(Nest API)

时间:2016-03-22 18:22:50

标签: objective-c firebase nest-api

使用Nest API我试图设置嵌套恒温器的离开状态

  • 阅读&温度设定工作正常。

  • 我为两个正确配置了读写权限 温控器温度控制和温控器设置

我可以正确阅读状态。有这种API经验的人是否知道如何处理setting此状态?

"FirebaseManager.h"

中的

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

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

         NSLog(@"Dict Contents %@", dict); // <--- Reads thermostat status.  A string either home or away

        dict[@"away"] = @"away";  //<--- Changes status string but not a correct solution, and does not set the stat to away

        //Changes status name but this is not parsed back to firebase
        NSLog(@"new status =  %@", [dict valueForKey:@"away"]);

    }];

1 个答案:

答案 0 :(得分:3)

更新子值

假设这个结构

structures
   structure_id_0
      away: "home"

将离开节点设置为一个离开的字符串(此代码非常详细,因此很容易理解)

Firebase *structuresRef = [self.rootFirebase childByAppendingPath:@"structures"];

//build a reference to where we want to write structures/structure_id/
Firebase *thisStructureRef = [structuresRef childByAppendingPath:@"structure_id_0"];
Firebase *awayRef = [thisStructureRef childByAppendingPath:@"away"];

[awayRef setValue:@"away"];

现在,如果要对通过观察具有FEventTypeChildAdded的节点检索的快照执行此操作,则节点名称将是用于代替structure_id_0的任何内容。这是键的关键:值对。

可以通过snapshot.key获得。

所以NSString * key = snapshot.key

在路径中替换@“structure_id_0”中的键变量。

同时查看Firebase Writing Data,然后查看updateChildValues以获取其他选项。