【问题标题】:Reading from azure IoT endpoint从 Azure IoT 端点读取
【发布时间】:2018-02-08 17:08:40
【问题描述】:

我有一个使用一台设备的小物联网项目。 Arduino 将一些值发送到 azure,函数应用程序在其中处理它们,并将 arduino 的指令发送到 IoT 中心的端点。 (/devices/MKR1000/messages/devicebound?api-version=2016-02-03) 我需要从这个端点实时获取数据,所以我希望 arduino 每次都只读取最后一条(最新的)消息,但它从最旧的开始。

可以让 arduino 读取来自端点的所有消息,而不是显示最后一条消息,但我正在寻找一种更有效的方法。

谢谢。

【问题讨论】:

  • 是否需要丢弃旧消息,只处理最后一条?
  • 是的,完全正确。 .
  • 如果您只对从云应用程序“发送”的最新信息感兴趣,您可以考虑使用设备孪生而不是消息。这是一种声明性模式,因此您可以使用它来表达设备的所需状态(而不是调用命令或发送消息)。可以使用 pub 子模型监听设备孪生更改,注册回调,并且在更改时您将读取设备孪生以查看新的“所需”状态。
  • @Openzz,设备协议是什么?在 MQTT 或 AMQP 协议的情况下,使用设备直接方法可以帮助处理云后端和设备之间的实时通信。

标签: azure arduino iot azure-iot-hub endpoints


【解决方案1】:

您收到旧消息是因为设备未“完成”这些消息,因此它们仍在 Azure IoT 中心排队。 IoT Hub supports the option to complete/reject/abandon C2D messages over HTTPS and AMQP only at the moment.

另一个选项是设置 ExpiryTimeUtc(在函数应用程序中?)以更快地发布旧消息(最少 1 分钟。默认值:1 小时。)。

更多信息可以参考“Send cloud-to-device messages from IoT Hub”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    • 2020-12-19
    • 1970-01-01
    • 2017-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多