У меня есть пример кода BAC0, но он генерирует ошибку, сообщающую что-то о датаграмме IPv4. Я прочитал документацию и файлы справки библиотеки, и, похоже, часть этого работает, прежде чем произойдет сбой.
[12/16/24 12:00:06] INFO 2024-12-16 12:00:06,757 - INFO | notes.py:267
Starting Asynchronous BAC0 version
2024.09.10 (Lite)
INFO 2024-12-16 12:00:06,760 - INFO | notes.py:267
Using bacpypes3 version 0.0.98
INFO 2024-12-16 12:00:06,761 - INFO | notes.py:267
Use BAC0.log_level to adjust verbosity
of the app.
INFO 2024-12-16 12:00:06,762 - INFO | notes.py:267
Ex. BAC0.log_level('silence') or
BAC0.log_level('error')
INFO 2024-12-16 12:00:06,786 - INFO | Lite.py:164
Using ip : 192.168.13.193/24 on port
47808 | broadcast : 192.168.13.255
[12/16/24 12:00:06] INFO 2024-12-16 12:00:06,789 - INFO | notes.py:267
Using default JSON configuration file
INFO 2024-12-16 12:00:06,796 - INFO | notes.py:267
Registered as BACnet/IP App | mode
normal
INFO 2024-12-16 12:00:06,798 - INFO | notes.py:267
Device instance (id) : 3056500
An error occurred: 'Frequency'
[12/16/24 12:00:06] INFO 2024-12-16 12:00:06,802 - INFO | notes.py:267
Installing recurring task Ping Task
(id:128923930364320)
Exception in callback IPv4DatagramServer.set_broadcast_transport_protocol()(>)
handle: )>
Traceback (most recent call last):
File "/home/eric/.local/lib/python3.10/site-packages/bacpypes3/ipv4/__init__.py", line 159, in retrying_create_datagram_endpoint
return await loop.create_datagram_endpoint(
File "/usr/lib/python3.10/asyncio/base_events.py", line 1385, in create_datagram_endpoint
raise exceptions[0]
File "/usr/lib/python3.10/asyncio/base_events.py", line 1369, in create_datagram_endpoint
sock.bind(local_address)
OSError: [Errno 99] Cannot assign requested address
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/eric/.local/lib/python3.10/site-packages/bacpypes3/ipv4/__init__.py", line 167, in retrying_create_datagram_endpoint
await asyncio.sleep(BACPYPES_ENDPOINT_RETRY_INTERVAL)
File "/usr/lib/python3.10/asyncio/tasks.py", line 605, in sleep
return await future
asyncio.exceptions.CancelledError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.10/asyncio/events.py", line 80, in _run
self._context.run(self._callback, *self._args)
File "/home/eric/.local/lib/python3.10/site-packages/bacpypes3/ipv4/__init__.py", line 207, in set_broadcast_transport_protocol
transport, protocol = task.result()
asyncio.exceptions.CancelledError
Exception in callback IPv4DatagramServer.set_local_transport_protocol()(>)
handle: )>
Traceback (most recent call last):
File "/home/eric/.local/lib/python3.10/site-packages/bacpypes3/ipv4/__init__.py", line 159, in retrying_create_datagram_endpoint
return await loop.create_datagram_endpoint(
File "/usr/lib/python3.10/asyncio/base_events.py", line 1402, in create_datagram_endpoint
await waiter
asyncio.exceptions.CancelledError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.10/asyncio/events.py", line 80, in _run
self._context.run(self._callback, *self._args)
File "/home/eric/.local/lib/python3.10/site-packages/bacpypes3/ipv4/__init__.py", line 176, in set_local_transport_protocol
transport, protocol = task.result()
asyncio.exceptions.CancelledError
------------------
(program exited with code: 0)
Press return to continue
Я не знаю, смогу ли я вообще использовать свою Wi-Fi-карту в качестве сервера bacnet с BAC0. Мне просто нужна помощь о том, как правильно настроить BAC0 для сообщения значения, которое я могу использовать YABE для мониторинга по сети.
У меня есть пример кода BAC0, но он генерирует ошибку, сообщающую что-то о датаграмме IPv4. Я прочитал документацию и файлы справки библиотеки, и, похоже, часть этого работает, прежде чем произойдет сбой. [code]#!/usr/bin/env python3 import asyncio from BAC0 import connect from BAC0.core.devices.local.factory import analog_input
def defining_objects(device): from BAC0.core.devices.local.factory import ObjectFactory ObjectFactory.clear_objects()
while True: device1["Frequency"].presentValue = 42.0 # Test value print("Device 1 Frequency:", device1["Frequency"].presentValue) await asyncio.sleep(2) except Exception as e: print(f"An error occurred: {e}")
if __name__ == "__main__": asyncio.run(main()) [/code] [code][12/16/24 12:00:06] INFO 2024-12-16 12:00:06,757 - INFO | notes.py:267 Starting Asynchronous BAC0 version 2024.09.10 (Lite) INFO 2024-12-16 12:00:06,760 - INFO | notes.py:267 Using bacpypes3 version 0.0.98 INFO 2024-12-16 12:00:06,761 - INFO | notes.py:267 Use BAC0.log_level to adjust verbosity of the app. INFO 2024-12-16 12:00:06,762 - INFO | notes.py:267 Ex. BAC0.log_level('silence') or BAC0.log_level('error') INFO 2024-12-16 12:00:06,786 - INFO | Lite.py:164 Using ip : 192.168.13.193/24 on port 47808 | broadcast : 192.168.13.255 [12/16/24 12:00:06] INFO 2024-12-16 12:00:06,789 - INFO | notes.py:267 Using default JSON configuration file INFO 2024-12-16 12:00:06,796 - INFO | notes.py:267 Registered as BACnet/IP App | mode normal INFO 2024-12-16 12:00:06,798 - INFO | notes.py:267 Device instance (id) : 3056500 An error occurred: 'Frequency' [12/16/24 12:00:06] INFO 2024-12-16 12:00:06,802 - INFO | notes.py:267 Installing recurring task Ping Task (id:128923930364320) Exception in callback IPv4DatagramServer.set_broadcast_transport_protocol()(>) handle: )> Traceback (most recent call last): File "/home/eric/.local/lib/python3.10/site-packages/bacpypes3/ipv4/__init__.py", line 159, in retrying_create_datagram_endpoint return await loop.create_datagram_endpoint( File "/usr/lib/python3.10/asyncio/base_events.py", line 1385, in create_datagram_endpoint raise exceptions[0] File "/usr/lib/python3.10/asyncio/base_events.py", line 1369, in create_datagram_endpoint sock.bind(local_address) OSError: [Errno 99] Cannot assign requested address
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/home/eric/.local/lib/python3.10/site-packages/bacpypes3/ipv4/__init__.py", line 167, in retrying_create_datagram_endpoint await asyncio.sleep(BACPYPES_ENDPOINT_RETRY_INTERVAL) File "/usr/lib/python3.10/asyncio/tasks.py", line 605, in sleep return await future asyncio.exceptions.CancelledError
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/usr/lib/python3.10/asyncio/events.py", line 80, in _run self._context.run(self._callback, *self._args) File "/home/eric/.local/lib/python3.10/site-packages/bacpypes3/ipv4/__init__.py", line 207, in set_broadcast_transport_protocol transport, protocol = task.result() asyncio.exceptions.CancelledError Exception in callback IPv4DatagramServer.set_local_transport_protocol()(>) handle: )> Traceback (most recent call last): File "/home/eric/.local/lib/python3.10/site-packages/bacpypes3/ipv4/__init__.py", line 159, in retrying_create_datagram_endpoint return await loop.create_datagram_endpoint( File "/usr/lib/python3.10/asyncio/base_events.py", line 1402, in create_datagram_endpoint await waiter asyncio.exceptions.CancelledError
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/usr/lib/python3.10/asyncio/events.py", line 80, in _run self._context.run(self._callback, *self._args) File "/home/eric/.local/lib/python3.10/site-packages/bacpypes3/ipv4/__init__.py", line 176, in set_local_transport_protocol transport, protocol = task.result() asyncio.exceptions.CancelledError
------------------ (program exited with code: 0) Press return to continue [/code] Я не знаю, смогу ли я вообще использовать свою Wi-Fi-карту в качестве сервера bacnet с BAC0. Мне просто нужна помощь о том, как правильно настроить BAC0 для сообщения значения, которое я могу использовать YABE для мониторинга по сети.