无法将消息发送到 Azure IoT 中心到设备 ID 中包含“:”的单元

Cannot send message to Azure IoT Hub to units with ":" in their device id

我正在尝试将消息从我的机器发送到 IoT 中心。我正在使用以下代码:

    message = Message('{{"temperature": 20,"humidity": 10}}')
    client = IoTHubDeviceClient.create_from_connection_string(CONNECTION_STRING)
    client.send_message(message)

当 CONNECTION_STRING 中的 deviceId 中没有冒号时,此方法有效。

CONNECTION_STRING = "HostName=my-iot-hub.azure-devices.net;DeviceId=E0:DC:A0:73:C6:C3;SharedAccessKey=password"


CONNECTION_STRING = "HostName=my-iot-hub.azure-devices.net;DeviceId=my_device;SharedAccessKey=password"

第一个连接字符串不起作用。尝试发送消息时进程挂起 - 但没有给我错误消息。第二次发送没有问题。

有什么办法可以避开冒号吗?

我们确认这是 url 编码的错误。在 azure-iot-device 的下一个版本(高于 2.3.0 的版本)中,我们将添加一个修复程序。

谢谢。