IOT集线器到电子邮件通知

时间:2018-01-16 15:16:12

标签: azure azure-logic-apps azure-iot-hub

我正在开发Azure IOTHUB用例。

  • 多个称重传感器连续发送(每1/2秒)向IOTHUB发送数据。 (DeviceID,重量)。

  • 包含用户数据的SQL表。

我想建立一个向设备所有者发送特定权重的电子邮件通知的系统。

实现这一目标的正确方法是什么。

我看过Logic应用程序是一个选项,但如何使用多个用户帐户和设备来实现它。

3 个答案:

答案 0 :(得分:1)

我会使用IoT Hub路由将符合权重标准的消息推送到服务总线队列。从那里,您可以使用Azure功能和服务总线触发器。我假设用户帐户信息(电子邮件地址?)可通过SQL表中的查询获得。 Azure Functions具有SendGrid绑定,您可以使用该绑定发送电子邮件。

请注意,routing IoT Hub directly to a function位于待办事项上。

答案 1 :(得分:1)

基本上,当您的方案有两种解决方案时,每个设备都有自己的权重标准:

  1. 设备双向所需属性包含用于由真实设备向Azure IoT Hub发布非遥测警报消息的权重值。此警报消息可以在Azure IoT中心路由中路由到自定义端点,方式与Jim的答案(ServiceBus-> AzureFuction-> SendGrid)

  2. 中描述的方式相同
  3. 第二种解决方案更复杂,通用,非常灵活,并且在设备端或设备双胞胎上不需要任何特殊编码。它基于具有Azure流分析(ASA)作业的标准遥测流管道,用于分析事件并生成通过SendGrid输出到Azure功能的通知消息。 ASA作业使用SQL数据库生成和刷新的blob文件中的参考数据(用户数据,权重等)。 以下屏幕截图显示了此解决方案: enter image description here

答案 2 :(得分:0)

我想提出一种我认为也是正确的方法(我测试了此流程):

enter image description here

  1. 数据从设备发送到Azure IoT中心
  2. Azure Stream Analytics根据重量和deviceID过滤此数据
  3. 一旦分析了数据,就会调用Azure函数,该函数会使用从Stream Analytics收集的数据触发Azure Logic App
  4. Azure Logic App从Azure Function App接收数据(HTTP触发器)
  5. 然后Logic App使用“获取行”操作步骤从SQL数据库获取用户数据
  6. 最后一步由您决定-您可以使用“ SendGrid-发送电子邮件”操作,也可以将Logic App与Outlook甚至Office365,Gmail和其他服务集成。

以下是文档的链接:

Connect to SQL Server or Azure SQL Database from Azure Logic Apps

Send emails and manage mailing lists in SendGrid by using Azure Logic Apps