需求
- IBM Bluemix 帐户
- IoT Real-Time Insights 服务
简介
IBM® Watson IoT Real-Time Insights 使您能够在来自 IoT 设备的实时数据上执行分析,获得它们的健康状况和您的总体操作状态的洞察。IBM® Watson IoT Real-Time Insights 连接到 IBM Watson IoT Platform 来获得实时设备数据反馈。传入的数据通过一个虚拟数据模型进行解释,可以使用来自资产管理系统的资产主数据来扩充它。
此外,可以对实时流数据应用用户定义的规则,识别需要注意的一些条件。操作引擎允许您为检测到的条件定义自动响应,比如发送电子邮件,触发一个 IFTTT 秘诀,执行 Node-RED 工作流或使用 webhook 连接到各种 Web 服务。最后,实时数据也会显示在一个可配置的仪表板上,提供您的 IoT 设备的位置、数据、指标和警报的概览视图。
您将在本文中学到什么?
在本文中,您将学习如何为您在 IBM Watson IoT Platform Analytics Real-Time Insights 中创建的规则创建操作。
对于在 IBM Bluemix 中创建 IoT Real-Time Insights 服务以及在 IoT Real-Time Insights 中创建规则,可以参阅以下文章。
- 使用 IoT Real-Time Insights 执行移动数据分析
- 使用 IoT Real-Time Insights 执行车辆遥测分析
IoT Real-Time Insights 中的操作
IBM Watson IoT Platform Analytics Real-Time Insights 中的操作可用于做许多事情,比如向服务人员发送消息,创建设备服务请求,创建工作订单,等等。
IBM Watson IoT Platform Analytics Real-Time Insights 中支持的操作包括:
- IFTTT
- 发送电子邮件
- Webhook
- Node-RED
在以下各小节中,我们将详细介绍如何配置每个操作。
IFTTT
IFTTT 用于自动化所有一切,从您最喜爱的应用程序到网站,再到启用了应用程序的附件。IFTTT 拥有触发器和操作。触发器用于触发操作。
IoT Real-Time Insights 中的 IFTTT 操作用于在触发规则时触发 IFTTT 秘诀。IFTTT 操作使用了 IFTTT 上的 Maker Channel 。
在本教程中,您将学习如何集成 IoT Real-Time Insight 与 IFTTT。以便在 IoT Real-Time Insights 中调用一条规则时,在服务人员的 Evernote 中创建一个 To-Do 。
在 IFTTT 中配置 Maker Channel 并在 IFTTT 中创建一个秘诀
- 访问 https://ifttt.com/maker
- 单击 Connect
- 现在,将会连接您的 Maker Channel 。复制生成的 Key 。本教程的后面部分将会使用它。
- 接下来,单击 Receive a web request 。我们将创建一个新的 IFTTT 秘诀。单击 Create a new Recipe 。
- 在 Choose Trigger Channel 中搜索 “Maker” 。选择 Maker 。
- 单击“ Receive a web request ”。
- 输入事件名称“ rti-trigger ”。
- 选择 That 。现在选择 Choose Action Channel 。
- 在本教程中,我们将使用 Evernote Action Channel 为来自 IoT Realtime Insights 的每个触发器创建新的 ToDo。
- 搜索“Evernote”并选择 Evernote 。
- 选择 Append a to-do to note 。
- 输入操作的标题和 To-Do 的内容。
- 可以使用您从 RTI 传递的事件名称和 3 个值。
- “Value1”是从 RTI 传递的值。我们将在下一小节中配置该值。
- 单击 Create App 。
- 检查该秘诀并单击 Create Recipe。
配置 IoT Real Time Insights
- 在 IoT Real-Time Insights 仪表板上,单击 Analytics ,然后单击 Actions 选项卡。
- 单击 Add new action 。
- 在 Type 下拉列表中,选择 IFTTT 。
- 填入操作 名称 和 描述 。
- 输入您在“ 在 IFTTT 中配置 Maker Channel ”的第 3 步中创建 Maker Channel 时生成的 Key 。
- 输入您在“在 IFTTT 中配置 Maker Channel”的第 7 步中创建的 事件“rti-trigger” 。
- 可以将 3 个值从 RTI 传递到 IFTTT Maker Channel。在本教程中,我们将使用 Value1 来传递触发了该操作的设备事件消息。有关变量替换(比如消息)的更多信息,请参阅下面的小节。
-
现在,在 IoT Real Time Insights 中调用规则时,就会触发 IFTTT 中的 Maker Channel,后者会在服务人员的 Evernote 中创建 To-Do。
备注:
可以使用 变量替换 在值 1-3 中动态地包含设备数据。
在 值 1-3 中:
- {{timestamp}} 是来自消息的时间戳。
- {{tenantId}} 是 Real-Time Insights 服务的 ID。
- {{deviceId}} 是设备的 ID。
- {{ruleName}} 是包含该操作的规则的名称。
- {{ruleDescription}} 是包含该操作的规则的描述。
- {{ruleCondition}} 是触发该操作的规则条件。
- {{ message}} 是包含触发该规则的数据点值的原始设备消息。
在这一步中,我们成功地在 IoT Real-Time Insights 中配置了 IFTTT 操作。下一步将详细介绍如何设置电子邮件操作。
发送电子邮件
当某个规则阈值被突破时,可以使用此操作向相关人员发送电子邮件。
- 在 IoT Real-Time Insights 仪表板上,单击 Analytics ,然后单击 Actions 选项卡。
- 单击 Add new action 。
- 在 Type 下拉列表中,选择 Send Email 。
- 填入操作 名称 和 描述 。
- 在 To 字段中输入电子邮件收件人 ID。如果想要包含其他收件人,可以在 CC 字段中输入他们的电子邮件 ID。
- 输入该电子邮件的 主题 。
- 如果不希望在电子邮件内容中包含设备数据,可以选中 Do not include device data in the email message 复选框。
现在, Send Email 操作已设置好。可以将此操作绑定到 IoT Real-Time Insights 规则。
在这一步中,我们成功地在 IoT Real-Time Insights 中配置了 Send Email 操作。下一步将详细介绍如何设置 WebHook 操作。
Webhook
Webhook 操作用于向启用了 WebHook 的 Web 服务发出 HTTP 请求。例如,在设备报告一个异常读数时,可以使用该操作在资产管理系统中创建一个新的工作订单。
- 在 IoT Real-Time Insights 仪表板上,单击 Analytics ,然后单击 Actions 选项卡。
- 单击 Add new action 。
- 在 Type 下拉列表中,选择 IFTTT 。
- 填入操作 名称 和 描述 。
- 输入目标 Webhook 服务器的 URL。
- 选择将在 Webhook 服务器上执行的 HTTP 方法 。
- 输入 用户名/密码 ,以便将凭证传递给 Webhook 服务器。仅在需要时提供这些信息。
- 添加 Header 作为键值对。
以下属性仅在为 OPTIONS、PATCH、PUT、POST 和 DELETE 选择该方法时可用。
- 为 Webhook 请求选择 Content-Type 。可用选项包括 JSON、XML、WWW 形式的 URL 编码或明文。
- webhook 调用的 Body 。
- 选择 Use customized message body 来编辑 body 字段的内容。
可以使用 变量替换 将 设备数据 动态地包含在 Webhook 调用的 URL、Header 和 Body 中。
在 URL 、 Head 和 Body 中 :
- {{timestamp}} 是来自消息的时间戳。
- {{tenantId}} 是 Real-Time Insights 服务的 ID。
- {{deviceId}} 是备的 ID。
- {{ruleName}} 是包含该操作的规则的名称。
仅在 Body 中:
- {{ruleDescription}} 是包含该操作的规则的描述。
- {{ruleCondition}} 是触发该操作的规则条件。
- {{message}} 是包含触发该规则的数据点值的原始设备消息。
在这一步中,我们成功地在 IoT Real-Time Insights 中配置了 Webhook 操作。下一步将详细介绍如何设置 Node-RED。
Node-RED
在 IoT Real-Time Insights Rules 中突破一个阈值时,可以使用 Node-RED 操作来调用 Node-RED 流。有关创建 Node-RED 流的更多信息,请参阅Node-RED 秘诀。
- 在 IoT Real-Time Insights 仪表板上,单击 Analytics ,然后单击 Actions 选项卡。
- 单击 Add new action 。
- 在 Type 下拉列表中,选择 IFTTT 。
- 填入操作 名称和描述 。
- 在 URL 字段中,输入目标 Node-RED HTTP 输入节点的 URL。
- 输入 用户名/密码 ,将凭证传递给 Node-RED。仅在需要时提供这些信息。
- webhook 调用的 Body 。
- 选择 Use customized message body 来编辑 body 字段的内容。
可以使用 变量替换 将 设备数据 动态地包含在 URL 和 Body 中。
在 URL 和 Body 中:
- {{timestamp}} 是来自消息的时间戳。
- {{tenantId}} 是 Real-Time Insights 服务的 ID
- {{deviceId}} 是设备的 ID。
- {{ruleName}} 是包含该操作的规则的名称。
仅在 Body 中:
- {{ruleDescription}} 是包含该操作的规则的描述。
- {{ruleCondition}} 是触发该操作的规则条件。
- {{message}} 是包含触发该规则的数据点值的原始设备消息。
提示:使用下面的 Node-RED 流获得使用 Node-RED 操作的示例流。
- 单击 Node-RED 流右上角的 Menu 按钮。
- 选择 Import ,然后选择 Clipboard 。
- 复制下面的内容并将其粘贴在剪贴板上,然后选择 OK 。
- 单击 Deploy 。该流现在已激活。当在 IoT Real-Time Insights 中调用一个规则时,会调用这个 Node-RED 流。
[{"id":"9b67744e.89b88","type":"debug","name":"","active":true,"console":"false","complete":"false","x":421,"y":227,"z":"1f3a9428.039e64","wires":[]},{"id":"4f95546d.dad284","type":"http response","name":"Action Response","x":450,"y":91,"z":"1f3a9428.039e64","wires":[]},{"id":"92660a90.f0d7f8","type":"http in","name":"Action Receiver","url":"/action","method":"post","swaggerDoc":"","x":103,"y":192,"z":"1f3a9428.039e64","wires":[["9b67744e.89b88","4f95546d.dad284"]]}]
在这一步中,我们成功地配置了 Node-RED 操作。
结束语
在本文中,我们学习了如何在 IBM Watson IoT Platform Analytics Real-Time Insights 中创建各种操作。现在,开发人员可以使用本文作为模板,利用本文构建强大的实时分析解决方案。
如果您对本文有任何评论/反馈,请发表在下面。
http://www.ibm.com/developerworks/cn/iot/blog/perform-actions-in-ibm-watson-iot-platform-analytics-real-time-insights/index.html?ca=drs-