Software
A real API, not a web page with buttons.
One Python service runs the fluidics, the chemistry math, a scheduler, SQLite history and the dashboard. Every result keeps its raw titration curve or absorbance channels and a quality score. A hardware simulator with a carbonate-system model runs the whole stack on a laptop.
- REST + WebSocket, OpenAPI schema, API-key auth
- Hydros developer API rules and a hardware alarm contact
- MQTT with Home Assistant discovery, webhooks, Prometheus
- Calibration wizard: pH buffers, acid standardisation, curve fits, reagent characterisation
API reference
$ curl -s -H "X-API-Key: $KEY" http://openreef.local:8080/api/v1/results/latest
{
"alkalinity": { "value": 8.29, "unit": "dKH", "quality": 0.98, "ts": 1794093600 },
"phosphate": { "value": 0.08, "unit": "ppm", "quality": 1.00, "ts": 1794072600 },
"nitrate": { "value": 5.1, "unit": "ppm", "quality": 0.95, "ts": 1794074400 }
}
$ curl -s -X POST -H "X-API-Key: $KEY" http://openreef.local:8080/api/v1/tests/alkalinity
{ "run_id": 418, "test": "alkalinity", "status": "started" }