BAC0: «RuntimeError: нет цикла событий» при подключении к внешнему устройствуPython

Программы на Python
Ответить
Anonymous
 BAC0: «RuntimeError: нет цикла событий» при подключении к внешнему устройству

Сообщение Anonymous »

Я пытаюсь подключиться к внешнему устройству BACnet с помощью библиотеки Python BAC0. Ниже мой сценарий:

Код: Выделить всё

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 
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(), но ошибка сохраняется
  • Я проверил, что мои устройства BACnet доступны с помощью программного обеспечения Yabe, где я могу зарегистрироваться и успешно обнаружить все устройства
  • Я экспериментировал с добавлением цикла событий вручную, но это не сработало
Почему asyncio.create_task() ошибка RuntimeError: нет цикла обработки событий, и как мне правильно подключиться к внешнему устройству BACnet с помощью BAC0?

Подробнее здесь: https://stackoverflow.com/questions/793 ... ign-device
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»