使用 InfluxDB 和 IFTTT 监控您的智能家居
作者:Gene Hynson / 产品,用例,开发者
2021年11月17日
导航至
您有智能和物联网家居设备开关、摄像头、门铃、报警系统或家电吗?您想无代码地将这些设备的监控和事件发送到 InfluxDB 吗?使用 IFTTT Webhooks,您可以实现这一点!
让我们深入探讨。
什么是 IFTTT?
IFTTT 代表“如果这个,那么那个”。它是一个允许您连接物联网设备和服务的云服务。这是一项非常强大的服务,可以帮助您自动化您的智能家居。
我使用 IFTTT 来
- 当接近家时打开我的车库门
- 使用运动检测打开我家的灯光
- 当我打开冰箱门太长时间时,给我的手机发送通知
- 当我的家报警系统触发时,开始视频摄像机的录制。
然而,如果我想做更多的事情,比如
- 跟踪我摄像头的所有运动和声音事件
- 或记录冰箱温度随时间的变化
- 了解哪些灯最长时间亮着
- 跟踪我家中温度波动频率
我该如何做所有这些?这就是 InfluxDB 发挥作用的地方。
什么是 InfluxDB?
InfluxDB 是一个时序数据库,允许您跟踪设备和服务随时间变化的指标和事件。InfluxDB 接受以 行协议 形式提交的数据。它旨在进行扩展并从所有设备流式传输数据。InfluxDB 是一个 开源项目。但是,它还提供免费的 云服务,我在这个练习中使用的是该服务。
不仅仅是监控 Wyze 摄像头的运动和声音事件
Wyze 应用程序让我可以看到我的 Wyze 摄像头 的运动和声音事件。但它没有提供合并数据的方法,以回答我的摄像头每分钟捕获运动事件有多频繁。为了解决这个问题,我将使用 IFTTT + InfluxDB 集成来管理我的 Wyze 摄像头。
最好的部分是,这个集成不需要编写代码!以下是它的工作原理。
创建 IFTTT 和 InfluxDB 集成
首先,创建一个 IFTTT 和 InfluxDB Cloud 账户。两者都是免费的!
完成之后,进入您的 IFTTT 账户并 “连接” Wyze。
接下来,登录您的 InfluxDB Cloud 账户并创建一个桶。桶是您将存储时序数据的地方。您可以通过访问 加载数据 页面并选择 桶 选项卡来创建桶。您可以根据需要命名这个桶。我将其命名为“wyze”。
当您在这个页面上时,点击“API令牌”标签页。为您新创建的存储桶创建一个新的“读写”令牌,并授予对存储桶的写权限。此令牌将允许IFTTT将数据写入您的InfluxDB存储桶。
创建新令牌后,将其复制到剪贴板。
最后,您需要找到您的InfluxDB组织ID。点击导航栏上的初始图标,然后选择关于。
您可以在该页面上找到组织ID。也要将其复制下来,以备以后参考。
创建IFTTT集成
好了,有趣的部分开始了!回到IFTTT登录页面。
点击右上角的创建按钮。然后您将进入“如果这个……”,“……那么那个”的界面。
点击“如果这个……”,然后搜索Wyze服务。
您将看到可以订阅的事件。在我们的案例中,我们对来自相机的运动事件感兴趣。
选择检测到运动,然后在下拉列表中选择任何相机。
点击创建触发器后,您应该会看到这个界面。这意味着您的工作已经完成了一半!
现在,如您所料,点击……然后那个按钮!
创建Webhook网络请求
现在搜索Webhooks,并选择创建网络请求。您应该会看到一个类似这样的明亮的蓝色界面
以下是每个字段将写入的内容
- 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。
收集了一些运动事件后,您可以登录InfluxDB开始分析。我将创建一个InfluxDB笔记本来探索这些数据。您也可以通过从导航树中选择“笔记本”选项来完成相同的操作。
InfluxDb将为您提供一个查询构建器和下面的一些可视化面板,以及一个新的笔记本。
在查询构建器中选择您的存储桶和测量值“activity”。
接下来,点击笔记本顶部的“运行”按钮来运行查询。
你应该会看到一些数据。
编写用于运动事件的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小时”。我的可视化看起来像这样
门摄像头每10分钟最多看到两个运动事件。如果我重复同样的过程并为全景摄像头生成另一个可视化,它看起来非常相似。似乎大多数情况下,两个摄像头检测到相同的事件。我可能需要检查它们可见区域是否有重叠。
就这样了!
我给你留下一个挑战:重复这个练习,同时捕获您的Wyze摄像头的“声音检测”事件!您应该能够在可视化中重叠运动和声音数据。以下是我两个摄像头合并的预览
试试看吧
这里展示的与Wyze的集成是您可以使用IFTTT和InfluxDB创建的许多潜在集成之一!IFTTT有其他数百个设备和服务的IFTTT服务。您可以使用上述方式使用IFTTT Webhooks将它们中的任何数据发送到InfluxDB。
通过加入InfluxDB社区Slack与我分享您的智能家居项目。我很想看看您如何使用IFTTT和InfluxDB来监控您的智能家居
常见问题解答
IFTTT是否与Wyze兼容?
是的,Wyze 与IFTTT兼容。您只需在您的手机上的IFTTT应用或通过桌面访问,并搜索WYZE。一旦到达那里,您就可以使用Wyze提供的众多applets。
我如何将Wyze添加到IFTTT中?
要开始使用IFTTT,您必须首先创建一个帐户。您可以在Google Play或App 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技能来实现这一点。点击此链接获取教程。