使用 InfluxDB 和 IFTTT 监控您的智能家居

导航至

您有智能和物联网家居设备开关、摄像头、门铃、报警系统或家电吗?您想无代码地将这些设备的监控和事件发送到 InfluxDB 吗?使用 IFTTT Webhooks,您可以实现这一点!

让我们深入探讨。

什么是 IFTTT?

IFTTT 代表“如果这个,那么那个”。它是一个允许您连接物联网设备和服务的云服务。这是一项非常强大的服务,可以帮助您自动化您的智能家居。

Do more with the things you love

我使用 IFTTT 来

  • 当接近家时打开我的车库门
  • 使用运动检测打开我家的灯光
  • 当我打开冰箱门太长时间时,给我的手机发送通知
  • 当我的家报警系统触发时,开始视频摄像机的录制。

然而,如果我想做更多的事情,比如

  • 跟踪我摄像头的所有运动和声音事件
  • 或记录冰箱温度随时间的变化
  • 了解哪些灯最长时间亮着
  • 跟踪我家中温度波动频率

我该如何做所有这些?这就是 InfluxDB 发挥作用的地方。

什么是 InfluxDB?

InfluxDB 是一个时序数据库,允许您跟踪设备和服务随时间变化的指标和事件。InfluxDB 接受以 行协议 形式提交的数据。它旨在进行扩展并从所有设备流式传输数据。InfluxDB 是一个 开源项目。但是,它还提供免费的 云服务,我在这个练习中使用的是该服务。

不仅仅是监控 Wyze 摄像头的运动和声音事件

Wyze 应用程序让我可以看到我的 Wyze 摄像头 的运动和声音事件。但它没有提供合并数据的方法,以回答我的摄像头每分钟捕获运动事件有多频繁。为了解决这个问题,我将使用 IFTTT + InfluxDB 集成来管理我的 Wyze 摄像头。

最好的部分是,这个集成不需要编写代码!以下是它的工作原理。

创建 IFTTT 和 InfluxDB 集成

首先,创建一个 IFTTTInfluxDB Cloud 账户。两者都是免费的!

完成之后,进入您的 IFTTT 账户并 “连接” Wyze

接下来,登录您的 InfluxDB Cloud 账户并创建一个桶。桶是您将存储时序数据的地方。您可以通过访问 加载数据 页面并选择 选项卡来创建桶。您可以根据需要命名这个桶。我将其命名为“wyze”。

当您在这个页面上时,点击“API令牌”标签页。为您新创建的存储桶创建一个新的“读写”令牌,并授予对存储桶的写权限。此令牌将允许IFTTT将数据写入您的InfluxDB存储桶。

Generate Read-Write API token

创建新令牌后,将其复制到剪贴板。

最后,您需要找到您的InfluxDB组织ID。点击导航栏上的初始图标,然后选择关于

Find your InfluxDB Organization ID

您可以在该页面上找到组织ID。也要将其复制下来,以备以后参考。

创建IFTTT集成

好了,有趣的部分开始了!回到IFTTT登录页面。

点击右上角的创建按钮。然后您将进入“如果这个……”,“……那么那个”的界面。

点击“如果这个……”,然后搜索Wyze服务。

Create your own - if this - then that

您将看到可以订阅的事件。在我们的案例中,我们对来自相机的运动事件感兴趣。

选择检测到运动,然后在下拉列表中选择任何相机

点击创建触发器后,您应该会看到这个界面。这意味着您的工作已经完成了一半!

Create Trigger

现在,如您所料,点击……然后那个按钮!

创建Webhook网络请求

现在搜索Webhooks,并选择创建网络请求。您应该会看到一个类似这样的明亮的蓝色界面

Make a web request

以下是每个字段将写入的内容

  • URL:这取决于您在哪个InfluxDB区域注册。您可以在登录InfluxDB Cloud后,从浏览器地址栏复制域名来找出。在我的例子中,我的区域是https://us-west-2-1.aws.cloud2.influxdata.com/。找到您的区域后,将“/api/v2/write?orgID=[[your org id]]&bucket=[[your bucket name]]”追加到URL
  • 方法:选择“POST”
  • 内容类型:选择“text/plain”
  • 附加头:输入“Authorization: Token [[your InfluxDB API token]]”

正文:输入activity,type=motion message=”{{MotionDetected}}”。使用and转义消息,以便双引号能够正确通过。IFTTT将使用您的API令牌进行授权,向InfluxDB Cloud发送API请求。

在请求正文中,您正在发送一些非常基本的行协议。您将“activity”设置为测量值,将“motion”值设置为字段“type”,并创建一个标签“message”,其值为来自Wyze相机的任何内容。在这种情况下,它将是消息“Motion detected on [[camera name]]”。由于此行协议中没有时间戳,InfluxDB将在接收到您的消息时自动附加当前时间。

点击保存按钮!您完成了!在Wyze摄像头前跳舞庆祝,以开始将运动事件发送到InfluxDB。

sending motion events to InfluxDB

收集了一些运动事件后,您可以登录InfluxDB开始分析。我将创建一个InfluxDB笔记本来探索这些数据。您也可以通过从导航树中选择“笔记本”选项来完成相同的操作。

InfluxDb将为您提供一个查询构建器和下面的一些可视化面板,以及一个新的笔记本。

在查询构建器中选择您的存储桶和测量值“activity”。

接下来,点击笔记本顶部的“运行”按钮来运行查询。

Build a Query

你应该会看到一些数据。

Validate the Data

编写用于运动事件的Flux查询

我有两个摄像头:门摄像头和全景摄像头。我想知道哪个每10分钟接收到的运动事件更多。这里是一个我可以帮助可视化的Flux查询

import "strings"
from(bucket: "wyze")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "activity")
|> filter(fn: (r) => strings.containsStr(v: r["_value"], substr: "Door Cam"))
|> aggregateWindow(every: 10m, fn: count, createEmpty: false)
|> yield(name: "count")

这个Flux查询查找所有出现“门摄像头检测到运动”消息的事件,并按10分钟的时间窗口统计这些事件的数量。

将Flux查询添加到您的笔记本中

您可以通过点击底部的+按钮并选择脚本将此查询添加到笔记本中。然后,粘贴查询。

接下来,再次点击+按钮并选择“图形”。

最后,点击运行按钮重新运行整个笔记本。你应该会看到一个可视化效果。

如果您没有看到,请确保检查笔记本右上角的时间窗口——我的设置为“过去24小时”。我的可视化看起来像这样

Door Cam activity

门摄像头每10分钟最多看到两个运动事件。如果我重复同样的过程并为全景摄像头生成另一个可视化,它看起来非常相似。似乎大多数情况下,两个摄像头检测到相同的事件。我可能需要检查它们可见区域是否有重叠。

check there is not any overlap in their visible field

就这样了!

我给你留下一个挑战:重复这个练习,同时捕获您的Wyze摄像头的“声音检测”事件!您应该能够在可视化中重叠运动和声音数据。以下是我两个摄像头合并的预览

both cameras combined

试试看吧

这里展示的与Wyze的集成是您可以使用IFTTT和InfluxDB创建的许多潜在集成之一!IFTTT有其他数百个设备和服务的IFTTT服务。您可以使用上述方式使用IFTTT Webhooks将它们中的任何数据发送到InfluxDB。

通过加入InfluxDB社区Slack与我分享您的智能家居项目。我很想看看您如何使用IFTTT和InfluxDB来监控您的智能家居

常见问题解答

IFTTT是否与Wyze兼容?

是的,Wyze 与IFTTT兼容。您只需在您的手机上的IFTTT应用或通过桌面访问,并搜索WYZE。一旦到达那里,您就可以使用Wyze提供的众多applets。

我如何将Wyze添加到IFTTT中?

要开始使用IFTTT,您必须首先创建一个帐户。您可以在Google PlayApp Store下载IFTTT应用。按照提示创建用户帐户。

要将您的Wyze帐户链接到IFTTT,搜索Wyze。按下连接。它将要求您登录到您的Wyze帐户。

Wyze Applet
一旦您在IFTT中有了一个帐户并且已将其连接到Wyze App,您就可以开始使用Wyze applets。您可以尝试一个applet,让自己变得舒适。您也可以在这里搜索applets

Wyze是否被亚马逊拥有?

不,亚马逊不拥有它。Wyze Labs, Inc.以及所有相关商标和标志,是一家位于西雅图华盛顿州的美国公司。它由四位前亚马逊员工——张云、宋东升、伊莱娜·费什曼和戴夫·克罗斯比创立。

Wyze能否触发Alexa?

Alexa(在亚马逊Echo设备中)和相关标志是amazon.com inc.的商标。Wyze可以触发Alexa,但您需要在您的Alexa应用中使用Voice Monkey技能来实现这一点。点击此链接获取教程。