问题标签 [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 中心设备孪生更改通知问题
当设备孪生属性更改时,我正在尝试在云后端接收通知。为此,我设置了一条路线,如下图链接所示
我还创建了一个 Azure 函数,该函数在内置端点事件的默认使用者组上触发。但是,当我为其中一台设备更新设备孪生文档时,不会触发 azure 功能。如果我使用 iothubexplorer 或设备资源管理器监视设备的事件,我根本看不到“updateTwin”事件。但是,如果我从收到的设备发送常规设备到云,它会起作用。
我使用以下代码更新设备孪生:
我还尝试使用 iothub-explorer 使用以下命令:iothub-explorer update-twin InitialDevice {\"properties\":{\"desired\": {\"interval\":9000}}} --login ""
azure-iot-hub - Azure IoT 设备预配
我正在研究使用 Azure IoT 中心在软件客户端和后端之间进行通信。软件客户端应充当 IoT 中心用语中的设备。
是否可以将软件客户端配置为具有 IoT 中心设备配置服务的设备,而无需在 TPM 模块中为每个客户端提供唯一标识符或唯一 X.509 证书?
我不需要在配置之前对客户端进行身份验证,我只希望每个客户端都能够与 IoT 中心安全地通信。配置后,客户端必须是唯一可识别的。那时,其他客户端应该无法冒充它。
目前,我认为客户端软件需要嵌入一个中间证书,它可以使用它来签署它在尝试配置自己时创建的证书。
是否有其他方法可以让 IoT 中心客户端设备自行配置而无需使用 SAS、令牌或其他唯一标识符进行预编程?
azure-iot-sdk - 出现错误:需要授权,使用提供的密钥重新发送请求
而不是 SDK,而是直接调用 azure iot provisioning rest api 来注册设备,然后注册它。
注册调用 rest api 工作正常,但注册调用失败并出现错误
""需要授权,使用提供的密钥重新发送请求""
- 在错误响应中给我keyname 和 authenticationkey 。
我使用 fiddler 截获了 sdk 如何进行注册调用,并注意到 sdk 首先得到 401 并出现上述错误,然后它重新发出另一个成功的请求。
目前正在根据 azure dps 的共享键名和主键生成 sas 令牌。
我有一个 Windows 应用程序,它将调用这个 webapi 来在一个电话中注册+注册设备。我将registrationid、tpmendoresmentkey、storagekey 传递给api。这个 api 在内部对 azure rest api 进行了 2 个 httpclient 调用:
- 将设备注册为单独注册。
- 注册设备
请帮助任何有助于理解解决它的想法或指示。
node.js - Azure 设备孪生客户端错误管理
我并不是从设备双胞胎和天蓝色开始,而是更接近新手而不是专家。我无法弄清楚如何正确管理 azure 设备孪生的连接问题。
我有一个长时间运行的节点应用程序,可以打开一个客户端。我发现几天或几周后,它可能开始无法与支持的设备孪生进行通信。我不确定如何管理这个或更具体地说,捕获问题并重新连接。
这是代码:
}
有 twin.error 方法吗?
部分问题是我似乎无法理解/找到有关这些方法的正确文档。
azure - azure iothub 设备停止发送消息
我最近开始使用 Azure-Iot-SDK,想知道如何调查这种行为。我的应用程序可以在一段时间内向 IoT 中心发送消息,但突然停止发送。没有错误或任何其他可以帮助我找到根本原因的东西。只需重新启动应用程序(准确地说是一项服务)就足以让它再次工作。
代码是这样的(在 DataChangedEvent 上):
不知何故,“完成发送!” 消息停止出现在日志中,但“开始发送消息”不断出现。有人对如何进行有任何建议吗?
azure - 从 1000 台设备中获取 connectionState 的最佳方法 - Azure IoTHub
connectionState
从 1000 台设备中获取的最佳方式。目前没有那么多设备,但需要一个有效的解决方案。
根据我的理解,目前我可以connectionState
使用
- IotHub
Queries(select * from devices)
或registryManager.GetDevicesAsync(100);
-- 这些方法在查询 1000 台设备时不是实时的,或者在设备数量增加时效率不高。 - HeartBeat - 我不喜欢这样,因为当设备数量很大时这会导致配额过载,从而导致发送太多消息。
- 操作监控/诊断监控——第一个很好,但它在 2018 年 10 月被弃用,第二个需要大约 2 分钟才能在 eventthub 中收到消息(这个延迟我自己试过并发现了)。
如果我对上述任何一项有误,请提出一些方法并纠正我。
azure - Azure 预配服务示例不适用于节点
我按照 node.js 教程通过 Azure DPS(设备配置服务)@ https://docs.microsoft.com/en-us/azure/iot-dps/quick-create-simulated-device-x509-node注册设备. 对于单个设备注册,它成功了,但是当我尝试通过注册组注册设备时它失败了。我曾经"create_test-cert.js root"
生成我的根证书和
验证 。我还要used create_test-cert.js device {leafcertificate} {rootcertificate-name}
创建设备证书。最后,我使用 register_x509.js 文件将我的设备注册到 Azure。执行这个文件我有以下错误
错误代码“401002 是 IotHubUnauthorizedAccess”
谢谢
azure - azure-iot-sdk-c 子模块/库版本
我想知道如何选择 azure-iot-sdk-c 使用的依赖项的版本。例如,我打算使用:
来自 github.com/Azure/azure-iot-sdk-c.git 的 azure-iot-sdk-c,release_2018_02_09_after_bump_version(3deb0ca3a8e2d220a50175bef71d16d1650a3a79),
那么我怎么知道它的正确子模块/库版本呢?例如https://github.com/Azure/azure-uamqp-c/releases、 github.com/Azure/azure-umqtt-c.git ...中的子模块?
提前致谢。