Open-FDD
Open-FDD is a local-first Rust edge platform for building telemetry, semantic modeling, supervisory fault detection, and HVAC analytics.
Open-source building analytics for operators, integrators, and engineers who need vendor-neutral fault detection on premises — without sending BACnet traffic or historian data to the public internet.
Field to cloud
Secure HVAC data collection, fault detection, and portfolio access for mechanical systems integrators.
| Path | Protocol |
|---|---|
| Building OT → field edge | BACnet / Modbus (+ Haystack model) |
| Field → hub | MQTTS |
| Office browser | HTTPS → React SPA |
| AI / automation agents | JWT REST (+ optional MCP) |
| Weather assist | HTTPS Open-Meteo fetch at the edge |
| Offline import | CSV / JSON package |
What it does
- Collects live data from BACnet, Modbus, Haystack, JSON API, and CSV imports
- Stores telemetry in an Apache Parquet historian (Arrow/DataFusion)
- Models sites with Project Haystack semantics
- Runs DataFusion SQL rules (
sql_rules/registry) - Serves a React SPA — Overview, FDD, RCx, findings against central
/apionly - Exposes JWT REST and optional MCP for engineering agents
Pandas recipes stay in the Pandas cookbook for notebooks / PyPI. Production FDD is DataFusion SQL only.
Who it is for
| Role | Typical use |
|---|---|
| OT / BAS integrators | Live edge on LAN/VPN — BACnet/Modbus, historian, FDD |
| Energy / RCx engineers | CSV analytics on a workstation — import, SQL rules, reports |
| Developers & agents | API + MCP for commissioning and validation |
Deployment models
Live OT edge
Linux edge host on the building LAN. Pull GHCR images, bind-mount workspace/, keep API on loopback or behind a reverse proxy.
Offline engineering
Same stack in Docker on a laptop. Import CSVs, map Haystack roles, run SQL FDD — no live field bus required.
Intended for LAN, VPN, or OT-network deployment. Do not expose the API on the public internet without an independent security review.
Get started
- Quick Start — Compose + Railway + GHCR
- Rule Cookbook — DataFusion SQL + Pandas patterns (+ anomaly screening)
- Haystack modeling — packages and SQL roles
- Architecture — services and data flow
- API & Security — REST + vulnerability reporting
- MCP & Agents — Cursor / OpenClaw
- PyPI agent tools —
open-fdd-anomaly reportfrom mapped roles (local CSV, Railway or self-hosted Open-FDD, or a future vendor API) plus ECM workbooks (pip install open-fdd) - Web App — SPA routes and RCx examples
Stack images
ghcr.io/bbartling/openfdd-central:${OPENFDD_IMAGE_TAG:-nightly}
ghcr.io/bbartling/openfdd-web:${OPENFDD_IMAGE_TAG:-nightly}
ghcr.io/bbartling/openfdd-fieldbus:${OPENFDD_IMAGE_TAG:-nightly}
ghcr.io/bbartling/openfdd-mqtt:${OPENFDD_IMAGE_TAG:-nightly}
ghcr.io/bbartling/openfdd-mcp:${OPENFDD_IMAGE_TAG:-nightly}
See Build recipes and Release channels.