使用Python库BAC0连接BACnet外部设备时出现RuntimeError: no running event loop错误的解决咨询
使用Python库BAC0连接BACnet外部设备时出现RuntimeError: no running event loop错误的解决咨询
我正在尝试使用BAC0 Python库连接到一个BACnet外部设备,以下是我的脚本:
import BAC0 print(BAC0.version) bbmdIP = '10.x.y.z:47808' # Replace with actual IP bbmdTTL = 900 bacnet = BAC0.lite(bbmdAddress=bbmdIP, bbmdTTL=bbmdTTL) # Connect print(bacnet.vendorName.strValue) print(bacnet.modelName.strValue) whois_results = bacnet.whois() print("WhoIs results:", whois_results) print(bacnet.devices) bacnet.discover(networks='known')
不过我一直遇到以下错误:
2025-01-09 14:35:05,917 - INFO | Starting Asynchronous BAC0 version 2024.09.10 (Lite) 2025-01-09 14:35:05,920 - INFO | Using bacpypes3 version 0.0.98 2025-01-09 14:35:05,921 - INFO | Use BAC0.log_level to adjust verbosity of the app. 2025-01-09 14:35:05,921 - INFO | Ex. BAC0.log_level('silence') or BAC0.log_level('error') Traceback (most recent call last): File "C:\Users\dmaske\Desktop\New folder\test_bacnet.py", line 7, in <module> bacnet = BAC0.connect(bbmdAddress=bbmdIP, bbmdTTL=bbmdTTL) # Connect ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\dmaske\AppData\Roaming\Python\Python311\site-packages\BAC0\scripts\Lite.py", line 141, in __init__ self._ping_task.start() File "C:\Users\dmaske\AppData\Roaming\Python\Python311\site-packages\BAC0\tasks\TaskManager.py", line 143, in start self.aio_task = asyncio.create_task(self.execute(), name=f"aio{self.name}") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\Python311\Lib\asyncio\tasks.py", line 371, in create_task loop = events.get_running_loop() ^^^^^^^^^^^^^^^^^^^^^^^^^ RuntimeError: no running event loop sys:1: RuntimeWarning: coroutine 'Task.execute' was never awaited
我已经尝试过的方法:
- 我尝试用不同的
BAC0.lite()和BAC0.connect()写法运行脚本,但错误依然存在 - 我用Yabe软件验证过我的BACnet设备是可访问的,在Yabe里我可以成功注册并发现所有设备
- 我尝试手动添加事件循环,但没有效果
为什么asyncio.create_task()会出现RuntimeError: no running event loop错误,以及如何正确使用BAC0连接到外部BACnet设备?
备注:内容来源于stack exchange,提问作者Pramod Kumar G H
相关产品推荐
相关产品推荐

