Integrations
One interface for importers, one for connectors. Every brand is one of them.
An importer reads a file offline and needs no connection. A connector reads a live source, read-only by type. The core of Archipelago depends on neither; it depends on the facts they produce.
| Source | Kind | What it reads | What it needs | Status | What it cannot see |
|---|---|---|---|---|---|
| BACnet/IP | Connector | Devices, objects, present values, Trend Logs | Network reach to the controllers | Planned Phase 3 | Logic inside the controller |
| Modbus TCP and RTU | Connector | Registers, per a map you provide | Network or serial reach, a register map | Planned Phase 4 | Anything not in the map |
| Niagara station backup (.bog, .dist) | Importer | Devices, points, links, alarm and history configuration, BACnet addresses | The file. No station connection. | Planned Phase 2 | Passwords (redacted), what a wiresheet means |
| Niagara station (live) | Connector | Histories, alarm records, live values | An optional signed module, or a documented station service | Planned Phase 4, pending legal review | Nothing it did not read |
| Metasys .caf | Importer | BACnet-exposed objects, names, units, states | The file | Planned Phase 4 | Program logic |
| Distech .gfx | Importer | Object tree, writable flags, states | The file | Planned Phase 4 | Program logic |
| Metasys SCT export | Importer | Engines, controllers, points | The file | Planned Phase 4 | Sub-controller device instances |
| Equipment schedule (CSV, XLSX) | Importer | Tags, areas served, design values | The sheet | Planned Phase 4 | Anything not in the sheet |
Why importers and connectors are separate
Importers: file in, facts out, offline
An importer never opens a socket, never reads a second file, and runs in an isolated worker with memory and time limits. A station backup importer needs no station. That is what lets a contractor get value from a backup on a laptop with nothing connected, and it is the same hardened, offline path a hosted trial would use.
Connectors: live source in, observations out, read-only
A connector declares what it can do: discover, read, subscribe, pull histories, pull alarms. Writing is a separate interface that no early connector implements; the descriptor says write: false and the interface shows no write control. Every reading carries its source, so the model records it as observed with the connector as provenance.
How a model built offline goes live without a vendor
A station backup's BACnet proxy extensions hold the device instance, object type and object instance for every proxied point. The importer emits those as binding hints. The BACnet/IP connector can then read the controllers directly, with no station software in the loop. A controller application file holds the same object list. A Modbus register map is itself a set of bindings. Niagara-only facts (station histories, alarm records, non-BACnet drivers) are the part only a Niagara connector can resolve, which is why it is one connector and not the foundation.
About the Niagara connector
Pathways under evaluation, in order of preference: the station's own BACnet server export (standard, vendor-neutral), the documented oBIX driver, the open-source nHaystack module, any documented station API, and only then a signed module of our own. Publication of a module under this project's name waits for legal review of the vendor's developer terms. The core, the website and the BACnet/IP connector do not depend on that timing. What any connector may and may not do.
Product names are trademarks of their owners. Archipelago is not affiliated with or endorsed by any of them. Disclaimer wording pending counsel review.