Azure IOT Central-使用MQTT的云到设备消息

问题描述 投票:1回答:2

我的IOT设备已连接到IOT中央,并且能够通过导出选项接收数据。现在我想向我的设备发送一些命令,例如,在json数据下,期望在订阅的URL'devices / .... ba50621 / messages / devicebound /#'

上发送设备的心跳
{ "action": "heartBeat", 
  "requestId": "b2c3d4e5-3424-4dca-32dc-12b73290cfed"
}

我通过参考下面的链接创建了服务应用程序,以将云发送到设备消息,

Stackoverlow ansSample app

使用的连接字符串为,

"HostName=asdasdas.azure-devices.net;DeviceId=asdasdasda50621;SharedAccessKey=nXmyveEPrV....pmo9jULvDtik="

当设备通过dps注册时收到此连接字符串。我用这个在服务应用程序上进行连接。我不知道这是否正确。

[当应用程序尝试发送消息时,出现未经授权的错误。在上面的文档中,链接说是从IOT集线器的共享访问策略获取连接字符串。但我使用的是iot Central,并在连接字符串上方使用。

Kindl帮我修复它。

azure-iot-hub azure-iot-sdk azure-iot-central
2个回答
1
投票

云到设备的消息传递在IoT Central中的工作方式与普通的IoT中心有所不同。不必将服务客户端连接到IoT中心,而必须使用IoT Central REST API。

您可以将命令发送到设备或更新属性。包括样本的完整文档为here。您可以找到将命令发送到设备here的文档。


0
投票

如果您的IoTC应用程序是NOT旧版应用程序,则可以使用具有REST API支持的预览IoTC应用程序(这是CapabilityModel驱动的模型类型)来调用您的设备。当前的预览版没有您想要实现的功能,例如向设备发送C2D消息。

IoTC预览仅支持调用设备方法-Execute Command。以下屏幕片段演示了此功能。对于此示例,我使用我的Azure IoT Hub Tester,其中虚拟设备直接使用MQTT协议连接到IoT Central App的基础IoT中心。

我已经使用AzureKit ESP32模板创建了一个免费的IoT Central应用程序,已为device1注册和配置并通过Azure IoT中心测试器进行了连接:

  1. 显示命令echo PnP模型:enter image description here

  2. 通过REST POST调用调用命令echo。请注意,必须在Administration / API令牌页面中创建被保存的授权。

enter image description here

  1. device1收到了直接呼叫,然后发布了响应(请注意,此屏幕未因响应时间短而被删除)。以下屏幕片段显示了与device1的完整同步REST调用。请注意,此预览版本无法根据提到的文档和PnP模型处理响应有效负载。

enter image description here

  1. 最后,此屏幕片段显示了通过REST进行的此命令操作的历史记录:

enter image description here

注意,还缺少设备的响应对象,如CapabilityModel模式中所述。

UPDATE

当调用方法echo时,我在设备端添加了缺少的屏幕片段:

enter image description here

您可以看到上面的图片,设备收到了REST POST有效负载并将其发布的响应基于PnP模型架构发回给调用者。

© www.soinside.com 2019 - 2024. All rights reserved.