BACnet
BACnet is the default data driver for Open-FDD. Discovery, diy-bacnet-server, and the BACnet scraper are documented here. Swagger (diy-bacnet-server): http://localhost:8080/docs
Setup (do this before the platform scrapes data)
Recommended: data model
- Start the platform (including diy-bacnet-server) — e.g.
./scripts/bootstrap.sh. - Discover devices and points — In the Config UI (
/app/) use the BACnet panel: Who-Is range, then Point discovery per device. Or call the API:POST /bacnet/whois_range,POST /bacnet/point_discovery. - Graph and data model — Call POST /bacnet/point_discovery_to_graph (device instance) to put BACnet devices and points into the in-memory graph and sync
config/data_model.ttl. Create points in the DB via CRUD (setbacnet_device_id,object_identifier,object_name) or use GET /data-model/export → LLM/human tagging → PUT /data-model/import. - Scraper runs automatically — The bacnet-scraper container runs
python -m openfdd_stack.platform.drivers.run_bacnet_scrape; it loads BACnet addresses from the knowledge graph (points) and polls only those. Configuration is via the frontend and data model only.
Verification and lab (OpenClaw bench)
| Page | Description |
|---|---|
| BACnet graph context | What the graph must expose for BACnet-backed verification and rules. |
| BACnet-to-fault verification | Evidence chain from fake devices through RPC, SPARQL, rules, to faults. |
| DIY BACnet gateway RPC contract | JSON-RPC envelope for client_read_property and similar calls. |
Example SPARQL files for modeling checks live under openclaw/bench/sparql/ in the repository (not on this docs site).