问题标签 [azure-iot-sdk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
778 浏览

azure - 如何访问 Azure IoT Edge Pipeline 中的各种时间戳?

我在 Azure IoT Edge 中有 2 个简单的管道。现在,我有兴趣访问在管道中的每个步骤/节点添加到 iot 消息中的时间戳。例如 IoTHub 和 ASA 的“enqueuingTime”和 IoTHub 和 ASA 的“processedTime”等。以下是管道:

  1. IoT Edge 设备(输入数据源)-> IoTHub -> 自定义端点到 Azure 存储 + 路由 -> Azure Blob

    到目前为止,我发现每个 iot 消息都附加到一个带有属性的 blob 文件,EnqueuedTimeUtc并且SystemProperties.enqueuedTime在标头中。此外,两者都显示相同的值。这是IoTHub收到消息的时间还是IoTHub内部处理的时间?

    此外,如果我在 Azure 存储中使用自定义端点,消息会被批处理到单个 blob 文件中。是否可以在单个消息离开 IotHub 以及将其写入 blob 文件时访问时间戳?(即,我想获得诸如IoTHub-Processed-Timestamp或单个消息的Blob-Insertion-Timestamp之类的东西。)

  2. IoT Edge 设备(输入数据源)-> IoTHub -> Azure 流分析 -> Azure SQL 数据库

    在这种情况下,当我定义 ASA 查询时,输入是 IoTHub 端点Messaging。在Select语句中,我可以访问整个消息头,因此,我还可以访问EventEnqueuedUtcTimeEventProcessedUtcTime,它们是流分析作业中消息入队和处理完成的时间戳。此外,我可以访问IoTHub.EnqueuedTime,我假设它给出了消息在 IoTHub 中排队时的时间戳。当消息从 ASA 进入并插入 SQL DB 时,有没有办法获取时间戳?到目前为止,我正在使用GETDATE()在插入记录期间自动附加时间戳。这是一个好主意吗?

    如果我对 Azure IoT 时间戳有正确的理解,谁能告诉我?是否有关于如何访问所有此类时间戳的文档?

0 投票
0 回答
552 浏览

azure-iot-sdk - 基于 websockets 的 IoT Edge Mqtt

我有一个小的边缘模块,使用 azure-iot-sdk-python 用 python 编写,它使用 Mqtt 将事件发送回 IoT 中心。这很好用。

当我切换到通过 websockets ( ) 使用 Mqtt 时,不再传递事件IoTHubTransportProvider.MQTT_WS

在 edgeHub 日志中,我可以看到: 2018-06-14 07:33:33.599 +00:00 [ERR] [Microsoft.AspNetCore.Server.Kestrel] - Uncaught exception from the OnConnectionAsync method of an IConnectionAdapter. System.Security.Authentication.AuthenticationException: A call to SSPI failed, see inner exception. ---> Interop+OpenSsl+SslException: SSL Handshake failed with OpenSSL error - SSL_ERROR_SSL. ---> Interop+Crypto+OpenSslCryptographicException: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol

当我手动将注入的EdgeHubConnectionStringexport EdgeHubConnectionString=...Device Details

如何使用注入的EdgeHubConnectionString模块连接字符串通过 websockets 获取 Mqtt,而不是从“设备详细信息”页面获取?

0 投票
2 回答
153 浏览

azure-iot-sdk - azure-iot-sdk-c - 在纯静态分配的内存环境中使用 Azure IoT 设备 SDK C

是否可以在仅允许静态分配 RAM(无 malloc/free)的环境中使用 Azure IoT 设备 SDK C?

最好的

费边

0 投票
1 回答
1095 浏览

python - 如何在 Python 中接收 Azure 设备遥测?

如何使用 Python 在事件中心接收设备消息?我看到来自事件中心的摘要消息,但缺少详细的设备消息。

使用 Azure IOT 远程监控示例 ( https://github.com/Azure/azure-iot-remote-monitoring , https://www.azureiotsolutions.com/Accelerators ) 和 IOT Hub Explorer https://github.com/ Azure/iothub-explorer提供如下消息:

====来自:'chiller-01.0' at '2018-06-27T17:35:13.835Z' ==== {“温度”:74.8813305672404,“温度单位”:“F”,“湿度”:67.345695720448,“湿度单位”:“%”,“压力”:155.648674178239,“压力单位”:“psig”}----应用程序属性----{“iothub-message-schema”:“chiller-sensors;v1”,“iothub -creation-time-utc": "2018-06-27T17:35:13.5066336Z", "$$CreationTimeUtc": "2018-06-27T17:35:13+00:00", "$$MessageSchema": "冷却器传感器;v1", "$$ContentType": "JSON" }

为了在 python 中获取这些消息,我使用 azure-event-hubs-python 库和https://github.com/Azure/azure-event-hubs-python上的示例使用事件从事件中心读取 IOT 消息在“操作”选项卡上为 IOT 集线器指定的集线器连接字符串。用 Node JS 编写的 IOT Hub Explorer 使用 IOT Hub 连接字符串,但是使用 python 编写相应的代码失败并且 EventHubClient.from_connection_string 失败,因为 'EndPoint' 不在连接字符串中。将连接字符串中的“HostName”更改为“EndPoint”会在 connection.pyx 中出现错误:

文件“./src/connection.pyx”,第 20 行,在 uamqp.c_uamqp.create_connection TypeError: expected bytes, NoneType found

将协议 sb:// 预先添加到端点会抱怨未指定 EventHub:

ValueError:未指定 EventHub

添加 ;EntityPath= 会更进一步,但会因 CBS 令牌身份验证错误而失败:

azure.eventhub.EventHubError:接收失败:CBS 令牌身份验证失败。状态码:401 说明:b'指定的 SAS 令牌的签名无效。它与主键或辅助键都不匹配。

使用 IOT 中心的事件中心连接字符串连接并接收消息可修复这些错误,但仅接收摘要数据而不接收任何设备遥测,例如:

由于缺少设备数据,我不确定是否将正确的参数传递给 Python EventHubClient,或者客户端是否只是没有返回它们。一年前的此堆栈交换如何接收来自 Azure IoT Hub 的设备发送的消息?表示无法使用 Python 读取遥测数据,但由于 Python EventHub SDK 已经存在,我希望这已得到修复。

0 投票
1 回答
279 浏览

azure-iot-hub - Azure IoT Hub Java SDK,通过单个 AMQP 连接连接多路复用的 X.509 设备

我已经通过 Azure IoT DPS 自动配置了一堆 IoT 设备。这些设备已在我的 IoT 中心注册。所有设备都具有 X.509 证书身份验证。

我现在要做的是向设备发送消息。所有证书都可用,我可以使用 DeviceClient 连接到集线器上的设备。这是我正在使用的 Azure IoT Java SDK 的方法:

它以SecurityProviderX509Cert作为参数。

但是,每个 DeviceClient 都有自己的物理连接。我想要的是通过使用这个构造函数来使用 AMQP 多路复用:

这不适用于 X.509 设备。在连接字符串中,我使用了来自集线器的共享访问策略中的共享访问密钥,但出现异常:

未经授权:IotHub 'yyy' 上的设备 'xxx' 没有 PrimaryKey 或 SecondaryKey

我认为这只有在我使用对称密钥注册设备时才有效。但是,这些设备无法通过 Azure DPS 自动注册。我只能使用 X.509 或 TPM 注册设备。

那么如何获得通过单个 AMQPS 连接连接多个 X.509 设备的技巧呢?

0 投票
1 回答
577 浏览

azure-iot-hub - 在 Azure IoT Hub 中使用设备孪生的额外字段标签创建设备

在 Azure IoT Hub 中创建设备时,是否可以在 deviceTwin 的标签中定义属性?或者需要先创建设备,然后获取并更新deviceTwin。似乎“Registry.create”(来自节点 sdk)不接受这样的选项。我想要实现的是以下

0 投票
1 回答
360 浏览

react-native - 反应原生 Azure Iothub 客户端

我需要 AzureIothub 的 npm 包。是任何可用于从 azure 获取值的包。任何人都可以帮助解决这个问题。提前致谢

0 投票
2 回答
257 浏览

azure - Azure 设备预配:组注册

我已经使用已验证的根证书在 Azure 设备预配服务中设置了一个组注册。

使用 openssI 我创建了根证书和叶证书。如果我使用“c”天蓝色物联网 sdk 在 custom_hsm 上运行 cmake 并提供叶证书、私钥和公用名,那么这是否允许我编译并运行 prov_dev_client_sample.c(具有正确的范围和 url)必须构建 Visual Studio Azure_IoT_sdks.sln。

我目前在 Linux 上运行,想知道是否可以绕过构建 Visual Studio 解决方案的步骤。

请让我知道是否需要澄清。我的监控 azure-iot-hub 的 MS 开发人员应该可以理解这个问题。

0 投票
1 回答
349 浏览

azure - Azure IoT 文件上传

我已成功使用此功能将文件上传到 Azure Blob 存储中的存储容器。我想问一下,这种形式的文件上传是否与使用 MD5 哈希的完整性检查与普通 Blob 存储上传一样。此链接描述了 Blob 存储的该功能。此外,似乎此检查是可选的,如果是这样,我是否有办法确保在我使用azure-iot-sdk从我的 iot 设备上传时发生这种情况。

0 投票
1 回答
112 浏览

azure - Azure IoT 将文件上传到 Blob

azure-iot-sdk-c 的上传文件到 blob 功能当前是否实施任何完整性检查,例如 blob 内容的 md5 哈希?我知道 c-sharp sdk 这样做,但我需要确认 c sdk。