Skip to main content

BACnet Scripting Framework for testing DDC Controls

Project description

BAC0

.. image:: https://github.com/ChristianTremblay/BAC0/workflows/Build%20&%20Test/badge.svg?branch=main :alt: Build status .. image:: https://coveralls.io/repos/github/ChristianTremblay/BAC0/badge.svg?branch=master :alt: Coverage .. image:: https://readthedocs.org/projects/bac0/badge/?version=stable :target: https://bac0.readthedocs.io/en/stable/?badge=stable :alt: Documentation Status

.. image:: https://badges.gitter.im/ChristianTremblay/BAC0.svg :target: https://gitter.im/ChristianTremblay/BAC0?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge :alt: Join the chat at https://gitter.im/ChristianTremblay/BAC0

BAC0 is an asynchronous Python 3 (3.10 and over) scripting application that uses BACpypes3 <https://github.com/JoelBender/BACpypes3>_ to process BACnet™ messages on an IP network. This library brings out simple commands to browse a BACnet network, read properties from BACnet devices, or write to them.

Python is a simple language to learn and a very powerful tool for data processing. Coupled with BACnet, it becomes a great tool to test devices and interact with controllers.

BAC0 takes its name from the default IP port used by BACnet/IP communication which is port 47808. In hexadecimal, it's written 0xBAC0.

Test driven development (TDD) for DDC controls

BAC0 is made for building automation system (BAS) programmers. Controllers used in this field are commonly called DDC Controllers (Direct Digital Control).

Typical controllers can be programmed in different ways, depending on the manufacturer selling them (block programming, basic "kinda" scripts, C code, etc...). BAC0 is a unified way, using Python language and BACnet/IP communication, to interact with those controllers once their sequence is built.

BAC0 allows users to simply test an application even if sensors are not connected to the controller. Using the out_of_service property, it's easy to write a value to the input so the controller will think an input is connected.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bac0-2025.9.15.tar.gz (97.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bac0-2025.9.15-py3-none-any.whl (120.3 kB view details)

Uploaded Python 3

File details

Details for the file bac0-2025.9.15.tar.gz.

File metadata

  • Download URL: bac0-2025.9.15.tar.gz
  • Upload date:
  • Size: 97.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.23

File hashes

Hashes for bac0-2025.9.15.tar.gz
Algorithm Hash digest
SHA256 e86a1dd18094000e3290d09e43597ebf34d68eaca5989e21bd1590abf1a7b38a
MD5 df0e146ed396bb11363110b9235b13c4
BLAKE2b-256 8b811cf98cfa12745c3416455b022901601b349140f550e267a6d58e0229842a

See more details on using hashes here.

File details

Details for the file bac0-2025.9.15-py3-none-any.whl.

File metadata

  • Download URL: bac0-2025.9.15-py3-none-any.whl
  • Upload date:
  • Size: 120.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.23

File hashes

Hashes for bac0-2025.9.15-py3-none-any.whl
Algorithm Hash digest
SHA256 01288b4262b2b63c7ae84d6b5222ab542efbc66359498aece545e7e0276a4702
MD5 d6da0789cb38e07a544b2f225853569c
BLAKE2b-256 e5d235bc59646ce9119d1bbe05cdf7c84fd69a02ca720ba178c822e88c9cf985

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page