收集家庭自动化物联网数据的明智方法
作者:Chris Churilo / 产品, 用例
2017 年 8 月 22 日
导航至
无论我与多少客户交谈,我仍然对他们开发的有趣产品感到惊喜,也对他们将 InfluxData 组件融入其解决方案的创造性方式感到同样惊讶!这种创造性的一个例子是我们的家庭自动化客户 tado° 构建的产品。 tado° 提供智能恒温器解决方案,可预测您的到达,以确保完美的家居温度,同时考虑到环境和您的钱包。他们的产品不仅使消费者在能源消耗方面高效,而且他们收集正确的指标和事件并将信息提供到他们的智能手机应用程序中的方法也同样高效。这种效率付出了一定的代价,因为他们确实必须努力使 InfluxQL 支持他们的应用程序,而好消息是他们的努力得到了回报,不仅使他们的查询工作,而且他们还能够在使用 LAST() 查询的查询中获得 200 倍的速度提升。
继续阅读以了解 tado° 的朋友们的这段旅程。
背景
tado° 是一家总部位于德国慕尼黑的公司,通过推出智能空调控制和智能恒温器,改变了家庭能源消耗的方式。公司名称 tado° 是日语单词“Tadaima”(????)的谐音,这是一个您回家时说的问候语。在家的人会认出您的到来,并以“O kaeri nasai”(???????.)回应。这种友好的互动是 tado° 产品工作的核心。通过使用地理感知应用程序,tado° 根据居民的位置自动调节温度,使家庭能够显着节省能源成本,同时达到更高的舒适度。
为了支持这种互动,用户需要有一个 tado° 智能恒温器连接到每个居民手机上下载的 tado° 智能手机应用程序。用户设置温度阈值(在家、外出、在家睡眠时间等),并且 tado° 智能系统收集实际室温并将其与阈值和每个居民的位置进行比较。如果所有居民都外出,则温度会自动调整为外出温度。一旦居民接近他们的家,系统将根据设定的阈值调整温度,因此当居民最终到家时,温度将达到指定的水平 - 无需等待!
收集和使用的内容
以下是支持自动温度调节和智能手机应用程序中的用户报告(图表)所需收集的基本数据集
- 家庭温度阈值
- 每个居民的地理位置,以确定在家或外出状态
- 房屋温度(我们假设只有一个区域)
看起来很简单,对吧?现在让我介绍一下 tado° 在他们的网络研讨会:中阐述的挑战和解决方案:
- 恒温器是电池供电的,由于它们使用射频与网关通信,这很容易耗尽电池,因此它们将室内温度传输频率限制为每隔几秒钟一次。
- 设备仅报告 >0.1° 的室内温度变化,这可能需要相当长的时间才能触发。
- 用户报告要求
- 峰值请求速率为 10 个请求/秒(大多数请求是针对当天的数据)
- 这些报告需要 500 毫秒的响应时间
- 数据保留 12 个月
tado° 为用户报告收集哪些时间序列?
-
- 连续数据 - 室内温度 - 这些是不断变化的值,并在用户报告中以 15 分钟的间隔绘制。例如
- 0:00:64.5°
- 0:15:64.1°
- 0:30:63.9°
- 离散状态 - 在家与外出 - 这不会经常改变,并且状态变化发生的确切时间很重要。例如
- 0:00 - 7:43 - 在家
- 7:43 - 16:13 - 外出
- 16:13 - 0:00 - 在家
- 连续数据 - 室内温度 - 这些是不断变化的值,并在用户报告中以 15 分钟的间隔绘制。例如
- 用户报告架构 - 其中每个唯一客户都有一个 homeID
-
- 测量:home
- 标签:homeID
- 字段:insideTemperature,tadoMode
- 保留期:12 个月
这是整个日期(2017 年 5 月 15 日)的室内温度的 InfluxDB 查询。您可以看到他们正在查找 ID 为 42 的客户在 24 小时期间的室内温度,并按 15 分钟的间隔分组。
SELECT insideTemperature
FROM home
>WHERE "homeID" = '42'
AND time => "2017-05-15T02:00:00.000Z" AND time < "2017-05-16T02:00:00.000Z"
GROUP BY time(900s) FILL(previous)
由于他们提供消费者服务,他们需要确保他们提取的数据符合客户的时区,而不是显示 UTC 中的数据,因此上述查询中使用的时间设置为 UTC 时间凌晨 2 点。
此外,在某些情况下,查询间隔开始时的值可能为空,因此他们需要创建额外的查询来确定上次温度是多少,并在查询期间的开始时使用它。正如您在下图中看到的,查询的前两个间隔为空;但是,您可以使用在该期间之前在 01:42 记录的上次温度,因为只有在与之前的时间相比发生变化时才会记录温度。
SELECT LAST(insideTemperature)
FROM home
WHERE "homeID" = '42'
AND time => "2017-01-03T11:52:13.354Z" AND time < "2017-05-15T02:00:00.000Z"
在上述查询中,他们将下限设置为帐户创建日期,因为他们知道在此之前没有进行任何测量,而上限设置为查询的开始。
他们使用一组类似的查询来提取数据,以帮助应用程序了解客户是在家模式还是外出模式。此数据用于设置房屋的正确温度,也用于在其智能手机应用程序中生成报告,因此对于 tado° 而言,查询性能至关重要。
后续步骤
我鼓励您观看网络研讨会,其中 tado° 团队更详细地介绍了他们在 InfluxData 方面的经验、这些查询以及一些其他优化,这些优化有助于保持他们的应用程序平稳运行。他们还回顾了他们面临的一些挑战以及他们如何克服这些挑战。此外,还有一份书面案例研究,其中他们回顾了他们的数据架构以及他们从创建 MySQL 原型到构建支持超过 100,000 名使用 InfluxData 的客户的生产就绪解决方案的旅程。
tado° 案例研究 | tado° 网络研讨会 | tado° 概览
在 InfluxDB 连帽衫售罄之前获取一件!
您的公司是否有在生产中使用 InfluxData 的炫酷应用程序或产品?我们很乐意在 influxdata.com 上推荐它,并在社交媒体上为您宣传。作为“感谢”礼物,我们将向您发送一件 InfluxData 连帽衫和一包贴纸。只需填写此简单表格,我们会在您的条目上线并且连帽衫已在邮寄中时通知您。如果您有任何问题,请发送邮件至 [email protected] 联系我们。感谢您的支持!