嗨,我更新了我的Xcode和iOS。在iOS 9中,他们对HomeKit做了一些改变。因为他们默认添加了一些预定义的场景。比如HMActionSetTypeSleep
、HMActionSetTypeWakeUp
……当我点击HMCatalog应用中的场景时它会抛出错误,动作中没有动作。有谁能告诉我如何执行场景内置的HMActionSetTypeWakeUp
类型?谢谢您的宝贵时间。
"场景"本身就是HMAction聚合器,即HMActionSets。为了执行,你需要向hactionset添加动作,或者让动作集/场景做任何事情。
例如,当我在HMHome下执行Wake Up或Good Morning预定义场景时,我想将所需的恒温器温度设置为22摄氏度。
为了做到这一点,你需要创建一个HMAction(或者更准确地说,HMCharacteristicWriteAction——HMAction的一个子类),它将值24写入恒温器的期望温度。
一旦创建了HMAction(你可以创建多个这样的动作),将这个HMAction添加到预定义的场景中。请查看iOS api,了解具体的api调用。
在HMCatalog应用程序中,看看'ActionSetCreator'类。
同样,你可以通过在HMCatalog本身中添加HMActions来看到这个动作。深入到恒温器(或任何其他家庭配套服务)。在HMService下更改一些HMCharacteristics的值,然后进行回溯并保存您的场景(我可能会从一个屏幕一个屏幕的细节出发,就像在飞机座位上用内存写这篇文章一样,但希望您能明白这一点)。
一旦你在预定义的场景下列出了(任何)HMActions -试着向Siri说出场景的名称(或者你可以简单地通过在HMCatalog上按场景来执行它)。
如果恒温器(或其他HomeKit服务)正确配对,您应该看到您的状态问题解决了。