Conformance

BIBB (BACnet Interoperability Building Block) declarations and PICS (Protocol Implementation Conformance Statement) generation for documenting device capabilities per Clause 24.

BACnet conformance tools (PICS generation, BIBB matrix).

BIBBs

BIBB (BACnet Interoperability Building Block) conformance matrix.

Auto-detects which BIBBs are supported by introspecting registered service handlers per ASHRAE 135-2020 Annex K.

class bac_py.conformance.bibb.BIBBDefinition(name, description, confirmed_services=<factory>, unconfirmed_services=<factory>, role='A')[source]

Bases: object

A BIBB definition with required services.

Parameters:
name: str

BIBB identifier (e.g. ‘DS-RP-B’).

description: str

Human-readable description.

confirmed_services: frozenset[ConfirmedServiceChoice]

Confirmed services required for this BIBB.

unconfirmed_services: frozenset[UnconfirmedServiceChoice]

Unconfirmed services required for this BIBB.

role: str

‘A’ = client/initiator, ‘B’ = server/responder.

class bac_py.conformance.bibb.BIBBMatrix(registry)[source]

Bases: object

Determine which BIBBs are supported by a BACnet application.

The matrix checks registered service handlers against the requirements for each BIBB definition.

Parameters:

registry (ServiceRegistry)

supported_bibbs()[source]

Return all BIBBs for which required services are registered.

Return type:

list[BIBBDefinition]

supported_bibb_names()[source]

Return names of all supported BIBBs.

Return type:

list[str]

generate_matrix()[source]

Generate a matrix dict mapping BIBB name → info.

Return type:

dict[str, dict[str, str | bool]]

PICS

PICS (Protocol Implementation Conformance Statement) generator.

Generates a structured PICS report by introspecting a BACnet application’s registered services, object types, and device properties per ASHRAE 135-2020 Clause 22 / Annex A.

class bac_py.conformance.pics.PICSGenerator(object_db, device)[source]

Bases: object

Generate a PICS report from a running BACnet application.

Introspects the application’s device object, service registry, and object database to produce a structured conformance statement.

Parameters:
generate()[source]

Generate the full PICS report as a JSON-serializable dict.

Return type:

dict[str, Any]