Home/Knowledge Base/Tools & Libraries

Tools & Libraries

YABE, BAC0, BACpypes, PyModbus, open-source explorers, diagnostic utilities

14 articles in Tools & Libraries

TReference guide

Why bacpypes3 Defines class TimeValue(Sequence)

Developers reading bacpypes3 source see class TimeValue(Sequence) and need to know what the time and value elements are, why it subclasses Sequence, and how to build one for a DailySchedule without passing the wrong type to the value slot.

8 min read
TReference guide

bacpypes3 class Any: The Open BACnet Value Container

Reading bacpypes3 source you land on class Any and need to know what the open container holds, how it differs from AnyAtomic, and how to get a typed value in or out of it.

8 min read
TReference guide

bacpypes3 Time Class: Why It's a Tuple of (Hour, Minute, Second, Hundredth)

A bacpypes3 Time value comes back as a 4-tuple rather than a datetime.time, and constructing one fails with ValueError: 4-tuple expected — developers need to know why Time subclasses tuple and how to build and read it correctly.

8 min read
TReference guide

Why bacpypes3 Defines class AnyAtomic(Any)

Developers reading bacpypes3 source see class AnyAtomic(Any) and need to know why an 'atomic' type inherits from the open Any container, where it is used, and how to get a native Python value out of one returned by ReadProperty.

8 min read
TReference guide

Why bacpypes3 Defines class Choice(Sequence)

Developers reading bacpypes3 source see class Choice(Sequence) and need to know why a CHOICE inherits from a SEQUENCE, what the inheritance changes at runtime, and how to construct a Choice without tripping the 'initialize one choice' and 'choice is not an element' errors.

8 min read
TReference guide

bacpypes3 AnyAtomic and get_value(): Source and Usage

Reading a property typed as BACnetAnyAtomic (most commonly a TimeValue.value inside a Schedule's Weekly_Schedule) returns a wrapper object rather than a native Python value, and the accessor name and source location vary across bacpypes3 releases.

8 min read
TReference guide

bacpypes3 Choice, _choice, and _elements: Source and Usage

Developers reading bacpypes3 source need to know what the _choice and _elements attributes represent on a Choice subclass — and how to construct, introspect, or extend a CHOICE type without breaking encoding.

8 min read
TReference guide

bacpypes3 Real Class: Why It Inherits From Atomic and float

Developers reading bacpypes3 source see class Real(Atomic, float) and need to know what the dual inheritance means in practice — when to pass a raw Python float versus a Real instance, and why mixing the two sometimes fails encoding.

8 min read
TReference guide

bacpypes3 DailySchedule, TimeValue, AnyAtomic: Source and Usage

Building a BACnet Schedule object with bacpypes3 fails with type errors around AnyAtomic and TimeValue, and the project documentation does not show a full Weekly_Schedule example.

8 min read
TIntegration guide

ThingsBoard IoT Gateway for Building Automation

Integrating legacy BAS protocols (BACnet, Modbus) with modern IoT platforms.

9 min read
TTool review

VOLTTRON for Building Energy Management

Open-source platform from DOE for building controls and distributed energy, but documentation is fragmented.

8 min read
TTool guide

KNX Network Scanning with KNXmap

Auditing and scanning KNXnet/IP gateways for security assessment or device inventory.

7 min read
TTool guide

BACnet Discovery Tool (BDT) Setup and Usage

Technicians need a vendor-neutral free tool to verify BACnet/IP communication and discover MS/TP devices through routers.

6 min read
TTool guide

YABE (Yet Another BACnet Explorer) Tutorial

Technicians need a free tool to browse BACnet devices but YABE documentation is sparse.

7 min read