bacpypes3
BACnet Communications Library
What it is and what it does
BACpypes3 is a complete rewrite of the original BACpypes library, modernized for Python 3.8+ using async/await and asyncio. It implements the BACnet protocol stack—both application and network layers—allowing you to build daemons, scripts, and graphical interfaces that communicate with BACnet devices on building automation networks.
The library is actively maintained and supports Python versions from 3.8 through 3.14. With no external runtime dependencies, it installs cleanly and runs on any compatible Python environment. However, it is marked Pre-Alpha, meaning the API may change and edge cases may not be fully handled; it is suitable for development and testing but carries risk in production deployments without thorough validation.
Use it for:
- Build a BACnet client daemon to monitor and control HVAC systems, lighting, or other building automation devices.
- Write scripts to query BACnet device properties, read sensor values, or send commands to building equipment.
- Develop a graphical interface or web service that exposes BACnet device data to operators or building management systems.
- Simulate BACnet devices for testing and integration work without requiring physical hardware.
- Integrate building automation data into Python-based analytics or home automation platforms.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
BACpypes3 is a Python library for building BACnet applications with async/await support, providing application and network layer implementations for BACnet protocol communication.
Yes, if you are building BACnet applications in Python and can tolerate Pre-Alpha stability. The library has no dependencies, installs easily, and is actively maintained. However, validate thoroughly in your specific BACnet environment before relying on it in production, as the Pre-Alpha status signals that breaking changes and edge cases remain possible.
Install
bacpypes3 on PyPI
pip
pip install bacpypes3uv
uv add bacpypes3poetry
poetry add bacpypes3Installing bacpypes3
Before you install
Low friction install with no runtime dependencies. Active maintenance as of July 2026, though marked Pre-Alpha status indicates the API and behavior may still shift between releases.
License in practice
MIT license permits commercial and private use with minimal restrictions, requiring only attribution and inclusion of the license text.
Quickstart
pip install bacpypes3
import asyncio
from bacpypes3.app import Application
async def main():
app = Application()
await app.run()
asyncio.run(main())
Requires Python 3.8 or later; BACnet communication requires appropriate network interface and BACnet device configuration.
Verify before relying
- Whether the Pre-Alpha status reflects incomplete feature coverage or ongoing API stabilization.
- Real-world performance and reliability in production building automation deployments.
- Compatibility with specific BACnet device types and vendors beyond basic protocol support.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 150 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 137,420/month — #11,367 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: bacpypes3-0.0.106-py3-none-any.whl
Tags
More Networking packages
h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
psutilpsutil retrieves real-time information about…
permissive · top 1,000 on PyPI
pyOpenSSLpyOpenSSL wraps OpenSSL's SSL/TLS functionality…
permissive · top 1,000 on PyPI
uvloopuvloop is a drop-in replacement for Python's…
permissive · top 1,000 on PyPI
execnetexecnet lets you spawn and communicate with…
permissive · top 1,000 on PyPI
pyzmqPyZMQ provides Python bindings for ZeroMQ…
permissive · top 1,000 on PyPI
BAC0BAC0 is an asynchronous Python scripting…
copyleft · top 15,000 on PyPI
bacpypesBACpypes implements the BACnet protocol stack…
permissive · top 15,000 on PyPI
jeedomdaemonProvides a base class and framework for…
permissive · top 15,000 on PyPI
async-modbusAsync ModBus provides an asynchronous Python…
unclear · top 15,000 on PyPI
pymodbusPyModbus is a complete Modbus protocol…
permissive · top 5,000 on PyPI
websocketswebsockets is a library for building WebSocket…
permissive · top 100 on PyPI
daemonizeDaemonize provides a Python library for…
permissive · top 15,000 on PyPI
pmd-pytcpA pure-Python TCP/IP stack (Ethernet through…
copyleft · top 15,000 on PyPI
pyserial-asyncioAdds async/await support to pyserial for…
permissive · top 15,000 on PyPI
ldap3ldap3 is a pure Python LDAP V3 client library…
copyleft · top 5,000 on PyPI