Getting started

I know nothing about Python

First, welcome to the Python community. If you’re new to Python programming, it can be hard to know where to start.

I highly recommend to start with a complete distribution. That will help you a lot as the majority of important modules will be installed for you.

If you are using Windows, it will simplify your life as some modules needs a C compiler and it can be hard sometimes to compile a module by yourself.

Some examples of complete distributions are Anaconda or Enthought Canopy. As I use Anaconda, I’ll focus on this one but you’re free to choose the one you prefer.

If you are using a RaspberryPi, have a look to miniconda or berryconda. Both can allow a complete installation of modules like bokeh and Flask. For berryconda, once it’s done, run conda install pandas. This will install pandas on your RaspberryPi without the need to compile it.

Installing a complete distribution

Begin by downloading Anaconda. Install it. Once it’s done, you’ll get access to a variety of tools like :

  • Spyder (and IDE to write the code)
  • Anaconda Prompt (a console configured for Python)
  • Jupyter Notebook (Python in your browser)
  • pip (a script allowing you to install modules)
  • conda (a package manager used by Anaconda)

Start using pip

Open the Anaconda Prompt (a console terminal with Python configured in the path)

pip install BAC0

This simple line will look in Pypi (The Python Package Index), download and install everything you need to start using BAC0

Check that BAC0 works

In the terminal again, type


This will open a python terminal. In the terminal type

>>import BAC0

This will show you the installed version. You’re good to go.

Where to download the source code

There you’ll be able to open issues if you find bugs.


  • BAC0 is based on BACpypes for all BACnet/IP communication.

    Starting at version 0.9.900, BAC0 will not strictly depend on bokeh or Flask or Pandas to work. Having them will allow to use the complete set of features (the web app with live trending features) but if you don’t have them installed, you will be able to use the ‘lite’ version of BAC0 which is sufficient to interact with BACnet devices.

  • It uses Bokeh for Live trending features

  • It uses Pandas for every Series and DataFrame (histories)

  • It uses Flask to serve the Web app (you will need to pip install flask_bootstrap)

Normally, if you have installed Anaconda, Flask, Bokeh and Pandas will already be installed. You’ll only need to install BACpypes

pip install bacpypes
pip install bokeh (or conda install bokeh if using Anaconda)

You’re ready to begin using BAC0 !