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
| # | Task | Owner | Pass |
|---|
| P1 | PoE switches configured per municipal IT (VLAN, IP, QoS, 802.1X as required) | IT / comms | ☐ |
| P2 | Controller on lighting/management VLAN; UDP 47808 permitted to BMS subnet | IT | ☐ |
| P3 | All PoE nodes discovered in Inspextor (100% network discovery test per guide §3.5) | Installer | ☐ |
| P4 | Clusters assigned; legacy cluster IDs stable for BACnet instance blocks | MHT / installer | ☐ |
| P5 | BACnet point naming coordinated with BMS administrator (name prefixes, device instance unique) | BMS integrator | ☐ |
| P6 | BACnet/IP Server module enabled on controller | MHT | ☐ |
| P7 | exported_cluster_ids and per-cluster metadata.bacnet reviewed | MHT | ☐ |
Level 1 — BACnet discovery and inventory
| # | Test | Expected result | Pass |
|---|
| L1.1 | BMS sends Who-Is (or browse by IP) | Controller responds I-Am with configured device instance | ☐ |
| L1.2 | GET /api/v1/bacnet/status | Module running, object count > 0, bind address correct | ☐ |
| L1.3 | Export GET /api/v1/bacnet/inventory | JSON lists all exported clusters and read/write flags | ☐ |
| L1.4 | Export GET /api/v1/bacnet/pics.md | Attach to commissioning report / public records file | ☐ |
| L1.5 | Verify PICS lists SubscribeCOV as not supported | Documented in submittal | ☐ |
Level 1 — Command and control (writable objects)
Per exported cluster, repeat for {cluster}-PWR, {cluster}-DIM, and {cluster}-CCT (if present):
| # | Test | Expected result | Pass |
|---|
| L1.6 | BMS WriteProperty {cluster}-PWR = active | Zone lights turn on | ☐ |
| L1.7 | BMS WriteProperty {cluster}-PWR = inactive | Zone lights turn off | ☐ |
| L1.8 | BMS WriteProperty {cluster}-DIM = 100 | Full brightness | ☐ |
| L1.9 | BMS WriteProperty {cluster}-DIM = 50 | ~50% dim, no visible flicker | ☐ |
| L1.10 | BMS WriteProperty {cluster}-DIM = 0 (or minimum) | Minimum level per fixture capability | ☐ |
| L1.11 | BMS WriteProperty {cluster}-CCT (if exported) | Color temperature changes on tunable-white fixtures | ☐ |
| L1.12 | Attempt WriteProperty on {cluster}-OCC | Rejected (read-only) | ☐ |
Level 1 — Monitoring (read-only objects)
| # | Test | Expected result | Pass |
|---|
| L1.13 | Trigger occupancy in zone | {cluster}-OCC ReadProperty → active within event path + refresh cycle | ☐ |
| L1.14 | Clear occupancy (vacancy timeout or manual) | {cluster}-OCC → inactive | ☐ |
| L1.15 | Perimeter lux sensor (if installed) | {cluster}-LUX updates on sentype light events | ☐ |
| L1.16 | Temperature sensor (if installed) | {cluster}-TEMP updates | ☐ |
| L1.17 | BMS ReadProperty {cluster}-DIM after write | Readback matches commanded level within one state_refresh_sec cycle (default 30 s) | ☐ |
| L1.18 | Disconnect 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 requirement | Level 1 test | Pass |
|---|
| BMS/BACnet — occupancy at BMS workstation | L1.13–L1.14 | ☐ |
| BMS/BACnet — lux at BMS workstation | L1.15 | ☐ |
| BMS/BACnet — dimming at BMS workstation | L1.8–L1.10, L1.17 | ☐ |
| BMS/BACnet — CO₂ at BMS workstation | Not in Level 1 — document exclusion or upgrade to Level 2 | ☐ |
| Demand response via REST API | Test via Public API if in scope (not BACnet DR point at L1) | ☐ |
| ENERGY STAR Portfolio Manager export | Inspextor energy module — separate from BACnet | ☐ |
Level 1 — Resilience
| # | Test | Expected result | Pass |
|---|
| L1.19 | Disconnect BMS from network; operate scenes/schedules from Inspextor UI | Local control continues | ☐ |
| L1.20 | 24/7 facility: disconnect central server (if in scope) | Local edge control continues per project critical-facility plan (guide §3.5.107) | ☐ |
| L1.21 | Reconnect BMS | ReadProperty / WriteProperty resume | ☐ |
Level 1 — Public API parity (if REST also contracted)
| # | Test | Expected result | Pass |
|---|
| L1.22 | POST /aida/api/channelControl same zone as BACnet dim write | Same physical response | ☐ |
| L1.23 | POST /aida/api/getLightLevels | Returns 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:
| # | Test | Expected result | Pass |
|---|
| L2.1 | Confirm integration_level=2 and RTC healthy | /api/v1/bacnet/status reports level 2; RTC status OK | ☐ |
| L2.2 | {cluster}-CO2 present where NDIR sensors installed | ReadProperty returns ppm; max aggregation in multi-sensor cluster | ☐ |
| L2.3 | {cluster}-RH present where humidity sensors installed | ReadProperty returns % RH | ☐ |
| L2.4 | Lux step response in perimeter zone | AI updates within project-specified timing; SubscribeCOV notifies BMS if enabled | ☐ |
| L2.5 | {cluster}-SCN scene recall from BMS | Scene activates in zone | ☐ |
| L2.6 | {cluster}-OVR BMS override | Override priority supersedes local schedule per priority array rules | ☐ |
| L2.7 | {cluster}-DR demand response write | Load shed behavior per DR module configuration | ☐ |
| L2.8 | {cluster}-STS zone status | Reflects normal / fault / offline | ☐ |
| L2.9 | Attempted WriteProperty on read-only AI/BI | Rejected with appropriate BACnet error | ☐ |
| L2.10 | RTC loss simulation | Reactive policies stop; operator alerted; document degraded readback | ☐ |
Closeout documentation
| # | Deliverable | Format | Pass |
|---|
| C1 | Final PICS / object inventory | PDF + pics.md from controller | ☐ |
| C2 | BACnet read/write matrix signed by BMS integrator | PDF | ☐ |
| C3 | Test logs (L1/L2 tables above) | PDF + native spreadsheet | ☐ |
| C4 | As-built BACnet device instance and point list in BMS database | BMS export + controller inventory | ☐ |
| C5 | Level 1 exclusion statement (if CO₂/COV not in scope) | Included in PICS addendum | ☐ |
| C6 | Owner training — BMS operators | Per guide §3.8 (4 hr FM minimum) | ☐ |
Sign-off
| Role | Name | Signature | Date |
|---|
| MHT Technologies commissioning | | | |
| BMS integrator | | | |
| Owner representative / Cx agent | | | |
| Municipal IT (network / UDP 47808) | | | |
Vendor: MHT Technologies · Product: Inspextor AIDA Controller 2.0