问题标签 [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.
azure - 如何访问 Azure IoT Edge Pipeline 中的各种时间戳?
我在 Azure IoT Edge 中有 2 个简单的管道。现在,我有兴趣访问在管道中的每个步骤/节点添加到 iot 消息中的时间戳。例如 IoTHub 和 ASA 的“enqueuingTime”和 IoTHub 和 ASA 的“processedTime”等。以下是管道:
IoT Edge 设备(输入数据源)-> IoTHub -> 自定义端点到 Azure 存储 + 路由 -> Azure Blob
到目前为止,我发现每个 iot 消息都附加到一个带有属性的 blob 文件,
EnqueuedTimeUtc
并且SystemProperties.enqueuedTime
在标头中。此外,两者都显示相同的值。这是IoTHub收到消息的时间还是IoTHub内部处理的时间?此外,如果我在 Azure 存储中使用自定义端点,消息会被批处理到单个 blob 文件中。是否可以在单个消息离开 IotHub 以及将其写入 blob 文件时访问时间戳?(即,我想获得诸如IoTHub-Processed-Timestamp或单个消息的Blob-Insertion-Timestamp之类的东西。)
IoT Edge 设备(输入数据源)-> IoTHub -> Azure 流分析 -> Azure SQL 数据库
在这种情况下,当我定义 ASA 查询时,输入是 IoTHub 端点
Messaging
。在Select
语句中,我可以访问整个消息头,因此,我还可以访问EventEnqueuedUtcTime
和EventProcessedUtcTime
,它们是流分析作业中消息入队和处理完成的时间戳。此外,我可以访问IoTHub.EnqueuedTime
,我假设它给出了消息在 IoTHub 中排队时的时间戳。当消息从 ASA 进入并插入 SQL DB 时,有没有办法获取时间戳?到目前为止,我正在使用GETDATE()
在插入记录期间自动附加时间戳。这是一个好主意吗?如果我对 Azure IoT 时间戳有正确的理解,谁能告诉我?是否有关于如何访问所有此类时间戳的文档?
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
当我手动将注入的EdgeHubConnectionString
(export EdgeHubConnectionString=...
Device Details
如何使用注入的EdgeHubConnectionString
模块连接字符串通过 websockets 获取 Mqtt,而不是从“设备详细信息”页面获取?
azure-iot-sdk - azure-iot-sdk-c - 在纯静态分配的内存环境中使用 Azure IoT 设备 SDK C
是否可以在仅允许静态分配 RAM(无 malloc/free)的环境中使用 Azure IoT 设备 SDK C?
最好的
费边
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 已经存在,我希望这已得到修复。
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 设备的技巧呢?
azure-iot-hub - 在 Azure IoT Hub 中使用设备孪生的额外字段标签创建设备
在 Azure IoT Hub 中创建设备时,是否可以在 deviceTwin 的标签中定义属性?或者需要先创建设备,然后获取并更新deviceTwin。似乎“Registry.create”(来自节点 sdk)不接受这样的选项。我想要实现的是以下
react-native - 反应原生 Azure Iothub 客户端
我需要 AzureIothub 的 npm 包。是任何可用于从 azure 获取值的包。任何人都可以帮助解决这个问题。提前致谢
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 开发人员应该可以理解这个问题。
azure - Azure IoT 将文件上传到 Blob
azure-iot-sdk-c 的上传文件到 blob 功能当前是否实施任何完整性检查,例如 blob 内容的 md5 哈希?我知道 c-sharp sdk 这样做,但我需要确认 c sdk。