Skip to main content

BACnet Commissioning Checklist

Acceptance tests for Inspextor AIDA Controller BACnet/IP integration with a municipal or commercial BMS. Use alongside the municipal guide §3.6 System Startup and Commissioning and Level 1 PICS Addendum.

:::info Select integration level first Run Level 1 tests for all deployments today. Run Level 2 tests only when Realtime Controller is enabled and integration_level=2 is configured. See Municipal BMS Integration Brief. :::

Pre-commissioning

#TaskOwnerPass
P1PoE switches configured per municipal IT (VLAN, IP, QoS, 802.1X as required)IT / comms
P2Controller on lighting/management VLAN; UDP 47808 permitted to BMS subnetIT
P3All PoE nodes discovered in Inspextor (100% network discovery test per guide §3.5)Installer
P4Clusters assigned; legacy cluster IDs stable for BACnet instance blocksMHT / installer
P5BACnet point naming coordinated with BMS administrator (name prefixes, device instance unique)BMS integrator
P6BACnet/IP Server module enabled on controllerMHT
P7exported_cluster_ids and per-cluster metadata.bacnet reviewedMHT

Level 1 — BACnet discovery and inventory

#TestExpected resultPass
L1.1BMS sends Who-Is (or browse by IP)Controller responds I-Am with configured device instance
L1.2GET /api/v1/bacnet/statusModule running, object count > 0, bind address correct
L1.3Export GET /api/v1/bacnet/inventoryJSON lists all exported clusters and read/write flags
L1.4Export GET /api/v1/bacnet/pics.mdAttach to commissioning report / public records file
L1.5Verify PICS lists SubscribeCOV as not supportedDocumented in submittal

Level 1 — Command and control (writable objects)

Per exported cluster, repeat for {cluster}-PWR, {cluster}-DIM, and {cluster}-CCT (if present):

#TestExpected resultPass
L1.6BMS WriteProperty {cluster}-PWR = activeZone lights turn on
L1.7BMS WriteProperty {cluster}-PWR = inactiveZone lights turn off
L1.8BMS WriteProperty {cluster}-DIM = 100Full brightness
L1.9BMS WriteProperty {cluster}-DIM = 50~50% dim, no visible flicker
L1.10BMS WriteProperty {cluster}-DIM = 0 (or minimum)Minimum level per fixture capability
L1.11BMS WriteProperty {cluster}-CCT (if exported)Color temperature changes on tunable-white fixtures
L1.12Attempt WriteProperty on {cluster}-OCCRejected (read-only)

Level 1 — Monitoring (read-only objects)

#TestExpected resultPass
L1.13Trigger occupancy in zone{cluster}-OCC ReadProperty → active within event path + refresh cycle
L1.14Clear occupancy (vacancy timeout or manual){cluster}-OCC → inactive
L1.15Perimeter lux sensor (if installed){cluster}-LUX updates on sentype light events
L1.16Temperature sensor (if installed){cluster}-TEMP updates
L1.17BMS ReadProperty {cluster}-DIM after writeReadback matches commanded level within one state_refresh_sec cycle (default 30 s)
L1.18Disconnect one node (simulate offline)Affected points set reliability=no-confidence when stale threshold exceeded

Level 1 — Municipal guide §3.6 mapping

Guide item §116 Integration Testing — Level 1 scope:

Guide requirementLevel 1 testPass
BMS/BACnet — occupancy at BMS workstationL1.13–L1.14
BMS/BACnet — lux at BMS workstationL1.15
BMS/BACnet — dimming at BMS workstationL1.8–L1.10, L1.17
BMS/BACnet — CO₂ at BMS workstationNot in Level 1 — document exclusion or upgrade to Level 2
Demand response via REST APITest via Public API if in scope (not BACnet DR point at L1)
ENERGY STAR Portfolio Manager exportInspextor energy module — separate from BACnet

Level 1 — Resilience

#TestExpected resultPass
L1.19Disconnect BMS from network; operate scenes/schedules from Inspextor UILocal control continues
L1.2024/7 facility: disconnect central server (if in scope)Local edge control continues per project critical-facility plan (guide §3.5.107)
L1.21Reconnect BMSReadProperty / WriteProperty resume

Level 1 — Public API parity (if REST also contracted)

#TestExpected resultPass
L1.22POST /aida/api/channelControl same zone as BACnet dim writeSame physical response
L1.23POST /aida/api/getLightLevelsReturns cluster levels (note: may lag BACnet readback until state write-back aligned)

Level 2 — additional tests (when RTC enabled)

Run all Level 1 tests first, then:

#TestExpected resultPass
L2.1Confirm integration_level=2 and RTC healthy/api/v1/bacnet/status reports level 2; RTC status OK
L2.2{cluster}-CO2 present where NDIR sensors installedReadProperty returns ppm; max aggregation in multi-sensor cluster
L2.3{cluster}-RH present where humidity sensors installedReadProperty returns % RH
L2.4Lux step response in perimeter zoneAI updates within project-specified timing; SubscribeCOV notifies BMS if enabled
L2.5{cluster}-SCN scene recall from BMSScene activates in zone
L2.6{cluster}-OVR BMS overrideOverride priority supersedes local schedule per priority array rules
L2.7{cluster}-DR demand response writeLoad shed behavior per DR module configuration
L2.8{cluster}-STS zone statusReflects normal / fault / offline
L2.9Attempted WriteProperty on read-only AI/BIRejected with appropriate BACnet error
L2.10RTC loss simulationReactive policies stop; operator alerted; document degraded readback

Closeout documentation

#DeliverableFormatPass
C1Final PICS / object inventoryPDF + pics.md from controller
C2BACnet read/write matrix signed by BMS integratorPDF
C3Test logs (L1/L2 tables above)PDF + native spreadsheet
C4As-built BACnet device instance and point list in BMS databaseBMS export + controller inventory
C5Level 1 exclusion statement (if CO₂/COV not in scope)Included in PICS addendum
C6Owner training — BMS operatorsPer guide §3.8 (4 hr FM minimum)

Sign-off

RoleNameSignatureDate
MHT Technologies commissioning
BMS integrator
Owner representative / Cx agent
Municipal IT (network / UDP 47808)

Vendor: MHT Technologies · Product: Inspextor AIDA Controller 2.0