问题标签 [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-iot-hub - 如何从 Microsoft Azure IoT Hub 中的 TwinChangeEvents 事件中获取旧设备孪生值?
我在 Microsoft Azure 门户中为 TwinChangeEvents创建了一条路由,当设备孪生发生更改时,我可以接收设备到云的消息。但该消息仅包含新的设备孪生值。我需要旧值进行分析,这样我就不必分析整个设备。
有什么办法可以获得旧值吗?
azure - Azure IOT ServiceClient / RegistryClient:建议的 CloseAsync 频率是多少?
Microsoft.Azure.Devices.ServiceClient
两者Microsoft.Azure.Devices.RegistryManager
都有和方法。 ConnectFromConnectionString
CloseAsync
我们是否应该像使用其他 .NETconnection-close
模式一样使用它们,例如 ADO.NET 连接、Redis 连接、Sockets 等?当我使用类似的对象时,我会尽快尝试使用Close
它们。Disposable.Dispose()
Microsoft.Azure.Devices
访问同一个 IOT Hub 时,对对象执行相同操作的好处和坏处是什么?我运行的代码将个体RegistryManager
和ServiceClient
实例视为单例,它们在应用程序的整个生命周期中使用——可能是数周或数月。我们是否通过在这段时间内保持这些对象“打开”而使自己短路?
arduino - 未知类型名称“IRsend”
在simplesample_mqtt.c的 C 文件中,将 Arduino 连接到 Azure IoT 集线器,我需要使用 IRsend 和 IrRemoteESP8266 库通过 Azure IoT 集线器发送红外信号。
#include <IRremoteESP8266.h>
#include <IRsend.h>
IRsend irsend(10); // An IR LED is controlled by GPIO pin 4 (D2)
当我在我的主要 Ardunio 文件中使用此代码时,我没有任何问题。但是当我在 C 文件 (implesample_mqtt.c) 中使用这些包含时,我从第 3 行收到此错误:“未知类型名称 'IRsend'”。
错误完整信息:Arduino:1.8.2(Windows 10),板:“NodeMCU 0.9(ESP-12 模块)、80 MHz、115200、4M(3M SPIFFS)”
在草图\simplesample_mqtt.c:29:0 包含的文件中:
C:\Program Files (x86)\Arduino\libraries\IRremoteESP8266\src/IRsend.h:29:1:错误:未知类型名称“类”
类IRsend {
C:\Program Files (x86)\Arduino\libraries\IRremoteESP8266\src/IRsend.h:29:14: 错误:在 '{ ' 令牌
类IRsend {
simplesample_mqtt.c:31:错误:未知类型名称“IRsend”
IRsend irsend(10); // IR LED 由 GPIO 引脚 4 (D2) 控制
simplesample_mqtt.c:31:错误:预期的声明说明符或数字常量之前的“...”
IRsend irsend(10); // IR LED 由 GPIO 引脚 4 (D2) 控制
退出状态 1 未知类型名称 'IRsend'
此报告将在文件 -> 首选项中启用“在编译期间显示详细输出”选项提供更多信息。
azure-eventhub - IoT Hub 密钥重新生成,旧密钥仍然有效
我有一个有效的 IoT 中心,带有传入的遥测数据。我已经好几个月没有碰它了,我想回去检查我的设备正在连接的共享访问密钥的权限。我找不到与我的设备正在使用的密钥匹配的策略。我确实记得很久以前重新生成密钥,并且感觉设备密钥可能是重新生成之前的一个实例。
再生后旧钥匙应该工作吗?如果是这样,这个 SharedAccess 密钥还能如何工作,是否有我不记得的历史记录或其他密钥?
谢谢
-约翰
azure-iot-hub - 使用 IoT 中心接收确认
使用 DeviceClient 时,我可以使用 SendEvent 发送消息,使用 SendBlob 发送文件。但是我没有找到一种方法来接收 Azure IoT Hub 已收到消息/文件的确认?
我发现解决这个问题的唯一方法是使用 serviceClient.GetFileNotificationReceiver()。我错过了什么还是这是唯一的方法?
此外,似乎我需要 SharedAccessKeyName 才能使用 ServiceClient。但这并不存在于例如由 DeviceExplorer(我用于 DeviceClient)创建的令牌中。任何建议表示赞赏。
azure-iot-hub - 具有 AMQP 的 Azure IoT Hub 设备孪生是否已经可用?
我克隆了最新版本的 Azure C-SDK。最近的一条提交消息说,添加了基于 AMQP 的设备孪生。我尝试将序列化程序示例的 devicetwin_simplesample.c 切换到 AMQP:
它编译。但是,当我启动它时,我收到以下错误并且应用程序立即退出:
我还尝试从模型中删除 CarVIN 并评论相应的方法,这也没有帮助。
正如我在错误日志中看到的“未实现”:是否可以使用 AMQP 设备双胞胎或者稍后会“完成”?
编译器/操作系统:gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
networking - Azure IoT Hub MQTT 无连接,选择/SSL 失败
我目前正在使用基于 Azure-IoT-Hub-C-SDK MQTT 示例以及示例本身的程序。在我的 Ubuntu 机器上,启动程序后,我得到一个重复的连接错误:
simplesample_mqtt 和 devicetwin_simplesample 都会发生这种情况。有时错误不会停止,我没有机会尝试该程序。我只更改了示例中的连接字符串。AMQP 示例 (simplesample_amqp) 没有显示任何连接错误,即使在多次启动后也能正常工作。在我的 Yocto 板上,每次启动基于 SDK 示例构建的自定义 MQTT 应用程序时,我都会看到一些连接错误。
有谁知道可能的原因?我不知道它是由 SDK、IoT 中心还是我的本地设置(Ubuntu、Yocto?)引起的。即使使用蜂窝连接,我也会收到此错误,有时在运行一段时间后也会重新出现。
请,如果您认为我应该发布更多信息,请提出要求。现在我只是不知道从哪里开始。
更新:现在,什么都没有了,我只收到错误,应用程序不再连接。在此处查看 github 上的问题: https ://github.com/Azure/azure-iot-sdk-c/issues/214
azure-iot-hub - Azure IoT 中心设备孪生报告属性的限制
我们有一个非常大的设备双胞胎(超过 2800 行)。在某个时间点之后,我们在尝试发送报告的属性时始终收到 500 状态代码。从这里Cloud-to-device communication guide,我看到所需的属性可以有 8KB 的最大大小。但是没有关于报告属性的消息。本文档参考 - IoT 中心配额和限制指出,设备到云的消息最大为 256KB。所以我认为我们仍然可以发送我们的大型报告属性。当我从 IoT 中心的 Web 界面复制纯文本 JSON 消息并保存时(包含所有空格和所有元数据),它的大小为 84KB。
报告的属性是否有其他大小限制?是否有可能将设备孪生消息自动拆分为多条消息(不进行部分更新)?
备注:我知道拥有大型设备双胞胎并不是最佳选择,但它需要处理多个实际设备,因为我们使用的是 MQTT(因为设备双胞胎和直接方法)并且因为物联网边缘网关现在不适合我们.
azure - Microsoft.Azure.Devices.dll 中出现“System.FormatException”类型的未处理异常
我指的是本教程来创建设备标识。但是,得到如下异常:
这是我的配置文件:
编辑:
App.Config 中的 Instrumentation 键和值是什么?我只是从示例代码中复制的。但是,如果我使用的是真实设备,我可以从哪里获得它?
我是否缺少任何 SDK 或其他任何东西?我需要下载一些额外的东西吗?本教程没有任何建议。即使我从 GiTHub 运行示例代码时也会遇到相同的错误。
c++ - CMakeTools 扩展无法初始化:错误:无效的后端承诺 [有关详细信息,请参阅输出窗口]
我已将最新的 CMake 扩展安装到 Visual Studio 代码 V1.16.0 中,但无法使扩展工作,因为我得到“CMakeTools 扩展无法初始化:错误:无效的后端承诺 [有关详细信息,请参阅输出窗口]”单击配置时出错。我搜索了各种来源,但找不到任何可以让我让扩展工作和代码构建的答案。
任何帮助将不胜感激!