ProbeHarbor · kit
Ingest protocol
Engineering home for push/pull ingest. The live product, dashboard, and billing live at probeharbor.dev. Case study: ProbeHarbor. Full operator ingest docs: probeharbor.dev/developers.
Goals
- First successful POST creates or binds the device (auto-import).
- Push ingest and scheduled HTTPS pull feeds both work; many payload shapes are accepted.
- Auth is per-device (URL token or header), not a global firmware secret.
Minimal reading (flat keys)
Illustrative flat payload — live ingest also accepts sensors[], SenML, and Home Assistant REST shapes. Keys become sensor IDs on first contact.
{
"device_id": "garage-north-01",
"ts": "2026-09-07T16:02:11.000Z",
"firmware": "esp32-dht22-1.4.0",
"temp1": 3.2,
"humidity1": 41,
"door1": false
}device_id— stable id you control.ts— ISO-8601 UTC when the sample was taken.temp1/humidity1— preferred flat channels (°C).- Optional channels:
door1, leak / wet contacts, battery, rssi, firmware.
Transport
Push: POST JSON to a per-device ingest URL over HTTPS. Expect 2xx on accept; treat retries as idempotent on (device_id, ts) when possible.
Pull: expose an HTTPS feed the edge can fetch on a schedule. Same JSON object, a small array of readings, or a documented HA/SenML shape. Prefer fresh samples; stale feeds should not reset alerts falsely.