Windrow BACnet & Modbus Discovery, Connections & Devices API
The "SkySpark-easy, but via API" surface: discover BACnet devices,
learn what points are on one, then create a connection with the
points you picked - no hand-typed BACnet object identifiers anywhere
in the flow. See docs/bacnet-discovery-api.md for the full
discover → learn → create-connection recipe with a worked example.
Modbus has no discovery protocol of its own, so /modbus/discover
sweeps a user-supplied CIDR on port 502 instead of broadcasting -
see /modbus/discover's own description. /devices is a periodic-scan
result registry, separate from /connections and /modbus/connections:
it tracks every device either kind of scan has ever seen, whether or
not a human has provisioned a connection for it yet, plus an optional
per-device credential and a best-effort flag for devices still on a
factory-default login (see /devices/{id}/recheck-credentials).
This document is served live by the API itself at GET /openapi.yaml
- it is read straight off disk by the same process handling every other route, not maintained as a separate promise about the code.

