我正在使用python azure-iot-device python包动态配置IoT设备。我用的是v2而不是3.0.0b2。我都没法编译。
下面是我的python代码,它尝试配置一个设备:
import asyncio
import os
from azure.iot.device.aio import (
ProvisioningDeviceClient,
)
from dotenv import load_dotenv
load_dotenv(dotenv_path=".env")
CONNECTION_STRING = os.getenv("IOTHUB_DEVICE_CONNECTION_STRING")
ID_SCOPE = os.getenv("PROVISIONING_IDSCOPE")
REGISTRATION_ID = os.getenv("PROVISIONING_REGISTRATION_ID")
SYMMETRIC_KEY = os.getenv("PROVISIONING_SYMMETRIC_KEY")
PROVISIONING_HOST = os.getenv("PROVISIONING_HOST")
# PROVISIONING_SHARED_ACCESS_KEY = os.getenv("PROVISIONING_SHARED_ACCESS_KEY")
async def main():
print("Starting multi-feature sample")
provisioning_device_client = ProvisioningDeviceClient.create_from_symmetric_key(
provisioning_host=PROVISIONING_HOST,
registration_id=REGISTRATION_ID,
id_scope=ID_SCOPE,
symmetric_key=SYMMETRIC_KEY,
)
provisioning_device_client.provisioning_payload = "<Your Payload>"
provisioning_result = None
try:
provisioning_result = await provisioning_device_client.register()
except Exception as e:
print(f"an error occurred provisioning the device -- {e}")
finally:
print(f"result -- {provisioning_result}")
if __name__ == "__main__":
try:
asyncio.run(main())
except KeyboardInterrupt:
# Exit application because user indicated they wish to exit.
# This will have cancelled `main()` implicitly.
print("User initiated exit. Exiting.")
字符串
通过使用注册组主密钥来计算设备的注册ID的HMAC-SHA 256来导出对称密钥。我只是简单地按照本指南中的“派生设备密钥”一节进行操作--https://learn.microsoft.com/en-us/azure/iot-dps/how-to-legacy-device-symm-key?tabs=linux&pivots=programming-language-python#derive-a-device-key
我一直收到“意外失败”错误。代码非常少,几乎没有什么可调试的。我相信我在设置我的物联网中心和DPS时密切遵循了这些步骤。请让我知道任何建议
1条答案
按热度按时间vfhzx4xs1#
错误消息“意外失败”过于一般,无法确定问题的根本原因。但是,我们可以检查一些事情来解决问题。
的数据
的
az iot dps enrollment-group
。derived-device-key
或PROVISIONING_SYMMETRIC_KEY
。字符串
的
的
验证码:
型
输出:
的
配置状态:
型