在 iOS 9 中执行预定义场景

Execute Predefined scenes in iOS 9

您好,我已经更新了 Xcode 和 iOS 。在 iOS 9 他们对 HomeKit 做了一些改动。因为他们默认添加了一些预定义的场景。像 HMActionSetTypeSleep,HMActionSetTypeWakeUp ... 当我在 HMCatalog 应用程序中单击该场景时,它会抛出错误,指出操作中没有操作。任何人都可以告诉我如何执行 scenes.Thank 内置的 HMActionSetTypeWakeUp 类型,以节省您宝贵的时间。如果我不清楚,请告诉我。

'Scenes' 本身就是 HMAction 聚合器,即 HMActionSet。您需要将操作添加到 HMActionSet 才能执行,或者使操作 set/scene 执行任何操作。

例如,当我在 HMHome 下执行唤醒或早安预定义场景时,我想将所需的恒温器温度设置为 22 摄氏度。

为此,您将创建一个 HMAction(或更准确地说,HMCharacteristicWriteAction - HMAction 的子class),它将值 24 写入恒温器的所需温度 HMCharacteristic。

创建 HMAction 后(您可以创建多个这样的动作),将该 HMAction 添加到预定义的场景中。查看 iOS api 以了解确切的 api 调用。

在 HMCatalog 应用程序中,查看 'ActionSetCreator' class。

此外,您可以通过在 HMCatalog 本身中添加 HMActions 来查看此操作。深入到恒温器(或任何其他 homekit 配对服务)。更改 HMService 下某些 HMCharacteristics 的值,然后向上钻取并保存您的场景(我可能会因屏幕细节而偏离确切的屏幕,因为在飞机座位上的内存不足,但您明白了这一点 - 希望如此) .

一旦您在预定义场景下列出了(任何)HMActions - 尝试对 Siri 说出场景的名称(或者您可以通过按下 HMCatalog 上的场景来简单地执行它)。

如果恒温器(或其他 HomeKit 服务)正确配对,您应该会看到您的状态问题已解决。