HomeKit:将SIRI名称与自定义特征相关联

时间:2015-08-21 08:33:34

标签: ios siri homekit hmcharacteristic

我想将SIRI名称与我使用HomeKit模拟器定义的家庭套件附件的CUSTOM特征相关联(有关如何<的详细信息,请参阅此question / strong>我做到了。)

我可以做类似的事情:

  • &#34;在HOME&#34;
  • 中将CHARACTERISTICONENAME设置为VALUE
  • &#34;在HOME&#34;
  • 中打开ACCESSORYNAME
  • &#34;在HOME&#34;
  • 中将CHARACTERISTICTWONAME设置为VALUE

使用预定义的特征可以轻松实现,但我需要能够使用自定义特征。

知道如何实现这个目标吗?

编辑:只有HMService类有一个&#34; updateName&#34;功能。 HMCharacteristic没有它。

如果我尝试访问服务名称和相关特征制造商描述,这就是我得到的:

for (int i=0;  i< [accessory.services count]; i++) {
    HMService * service = [accessory.services objectAtIndex:i];
    for (int j=0;  j< [service.characteristics count]; j++) {
    HMCharacteristic * characteristic = [service.characteristics objectAtIndex:j];

    NSLog(@"service name: %@", service.name);

    if ([characteristic.properties containsObject:HMCharacteristicPropertySupportsEventNotification]) {
        NSLog(@"description of characteristic: %@", characteristic.metadata);

        [characteristic enableNotification:TRUE completionHandler:^(NSError *error) {
            if (error) {
                NSLog(@"Error while enabling notification");
            }
            else    {
                NSLog(@"Notification enabled");
            }
        }];
    }
}
}
  

服务名称:MyServiceName服务2015-08-21 09:40:20.833   AppName [217:5673]特征描述:[%@格式:字符串,   最大长度:1,制造商描述:SomethingCustom Mode]

1 个答案:

答案 0 :(得分:1)

我怀疑这是不可能的。 Siri与homekit建立了硬编码关系,允许它与定义类型的附件进行通信。

需要注意的是,siri使用服务名称来确定指向命令的位置。所以,如果你有一个名为&#34;楼上&#34;的恒温器,你可以告诉siri将楼上的温度设置为65度&#34;。 Siri对您与服务互动的解释很复杂,看起来苹果只支持他们定义的服务,因此他们可以提供他们想要的体验。