检测Apple TV第4代何时从睡眠中醒来

时间:2016-02-27 21:43:26

标签: bluetooth tvos apple-tv hdmi home-automation

我正在研究一些家庭自动化程序,而我希望能够做的事情之一就是检测我的第四代Apple TV何时从睡梦中醒来。当有人按下Siri遥控器上的按钮将其唤醒时,通常只会发生这种情况。

我有一台PC(连接到与Apple TV相同的电视机),它有一个Pulse-Eight USB-CEC适配器,所以我尝试的第一件事就是使用CEC确定Apple TV何时处于清醒状态。不幸的是,它不可靠,因为监控Apple TV的电源状态以确定它什么时候醒来会产生误报。 (我应该注意到我没有"控制电视和接收器"在Apple TV上启用,并且无法为我正在处理的特定项目启用它,因为我需要Apple TV不会改变电视的输入。)

我试图想出其他方法来做到这一点。我对任何可能性持开放态度,包括:

  • 在Apple TV上使用私人API
  • 一直打开'在Apple TV唤醒时发送信号的Apple TV背景中的程序,如果可能的话。 (我怀疑它不是。)
  • 监控Siri Remote和Apple TV之间的蓝牙通信(如果可能的话)
  • 以某种方式过滤HDMI-CEC命令,以便我可以打开“控制电视和接收器”,允许Apple TV的CEC命令打开和关闭电视,并排除更改命令电视的输入。
  • 任何其他方法,无论多么hacky或荒谬,只要它有效!

有没有人有任何建议?我的事情已经不多了!

2 个答案:

答案 0 :(得分:2)

我尝试在苹果讨论/支持社区发布以下内容,但被告知我无权发布此内容。也许这个小组中的某个人可以成功地做到这一点:

  

Apple TV 4 CEC集成在它工作时非常棒,但它不能一直工作,而不是所有各种设备,你可以跨论坛进行搜索,你会看到很多不满意的用户。我想使用覆盆子PI检测我的AppleTV何时进入睡眠状态并使用其RS232C或自定义CEC命令以编程方式打开或关闭电视。

     

我使用了一个bonjour服务资源管理器,比较了睡眠和状态之间的每一个结果,并且没有任何差异。我本以为Apple会欢迎这样的自动化项目,并通过状态:sleep或status:on等变量随时提供这些信息。

     

有没有办法通过网络连接告诉两个州?

     

如果没有,可以构建一个在后台运行的TvOS应用程序,并以某种方式向客户提供这些信息吗?

答案 1 :(得分:0)

我终于找到了一种似乎一致的方法。这种方法令人难以置信的hacky并不是我喜欢这样做的方式,但它是迄今为止我发现的唯一能够始终如一的方法。

我带了一个旧的USB网络摄像头并将其贴在Apple TV的正面,这样它的镜头就直接位于Apply TV的正面光源前面。每当Apple TV睡着时,我只需通过从相机拍摄图像并分析它们的平均亮度来检查灯光是否打开。由于镜头位于灯光旁边,当它开启时,它会在图像中创建一个巨大的白色圆圈,非常容易被发现。

只要Apple TV处于睡眠状态,开启的灯光似乎表示它已经醒来的时间是100%。我还没有找到一个假阳性或假阴性的事件。

由于按下Siri遥控器上的按钮会导致此灯闪烁,这也意味着我可以通过在Apple TV唤醒时查看灯光的变化来检测按下的按钮。它不是100%准确,因为有些按键比我糟糕的旧USB网络摄像头的帧速率快,但效果还不错。

我非常希望找到一种更好的方法来做到这一点,例如通过局域网向Apple TV发出请求,其中响应清楚地表明它处于清醒或睡眠状态,但到目前为止它看起来并不像那样。 #39;可能。