我如何从 HomeKit 传感器访问历史数据——或者自己记录这些数据

问题描述

我在 HomeKit 上有一个内外温度传感器。 最近我遇到了一个问题,我想在几天前检查温度。 据我所知,似乎没有办法从 HomeKit 获取历史数据。

作为替代方案,是否可以自己记录 homekit 数据? 我知道 iOS 应用程序可以请求访问 HomeKit 数据,所以这可能是一种方法。 但是,当我的手机关闭/没有网络时,我也更愿意这样做。是否有一个(网络)API 可以调用,以便从(比如)RaspBerry PI 访问这些数据,以便我可以定期记录这些数据?

解决方法

确实存在 no way to access historical data from Homekit devices(除非您能够通过设备制造商的云实现)。

据我所知,如果您不是 iOS/macOS 设备,则无法获取 HomeKit 数据。 四年前 Homekit opened up the devices-end 以便可以使用第三方设备。 控制器/阅读器端似乎没有类似的动作。

iOS 应用程序只能 access data while they run in the foreground - 据说是出于安全和隐私原因(就我而言,这是很好的理由 :))。因此,除非您有 iOS 设备并且愿意为此牺牲,否则这是不行的。 可能你可以让它在 24/7 全天候运行的 Mac 上工作;我不确定那里有什么限制。

如果您想记录这些数据,您可以做一些事情。 使用 Shortcuts 家庭版,您可以在家庭集线器(通常是 Apple TV 或 HomePod)上运行一个小型快捷方式程序。 您将可以访问 fewer commands 而不是完整的 (iOS) 快捷方式,但是您可以做的是读出 HomeKit 设备的值,并进行 HTTPS(发布)调用。

遗憾的是,iOS Home 应用只允许您将此快捷方式安排为每天运行一次,但是使用第三方(免费)Eve app 您可以安排它每 5 分钟运行一次。 只需确保您开始设置计时器,然后然后将其转换为快捷方式——由于 Apple 工作方式的错误/限制,它不会似乎相反。

几天前,我对整个过程进行了writeup,包括将数据发布到 Google 表格的方法,以获得 100% 免费的解决方案。

Example Google Sheets with Homekit log

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...