Naar de inhoud
BoilerBuddy

Ontwikkelaars

Bouw je eigen BoilerBuddy

Lees je zonneboiler uit met je eigen hardware en stuur de metingen naar BoilerBuddy. Dan heb je het hele portaal erbij: grafieken, meldingen en delen. De BoilerBuddy Alpo gebruikt dezelfde API.

Basis-URL, API v1

https://boilerbuddy.eu/api/v1

OpenAPI 3.1, als YAML. Open hem in Swagger UI, Postman of je eigen codegenerator. Dit bestand is het contract: wat erin staat, doet de server.

API

Vier endpoints

Meer heb je niet nodig om een apparaat te koppelen en metingen in te sturen.

  • POST/device/hello

    Koppelen. Je apparaat krijgt een koppelcode om te tonen, en na het koppelen eenmalig zijn token.

  • GET/device/config

    Welke sensoren je apparaat instuurt en hoe vaak. Met ETag, dus goedkoop te pollen.

  • POST/device/readings

    Metingen in batches tot 1000, elk met een eigen tijdstip. Twee keer insturen kan geen kwaad.

  • POST/device/status

    Een heartbeat, zodat het portaal ziet of je apparaat offline is of alleen stil.

Authenticatie

Elk verzoek behalve hello stuurt een token mee in de Authorization-header. Dat token krijg je door te koppelen met een code, of je maakt het aan in het portaal bij je apparaat. Je ziet het één keer, dus bewaar het goed.

Authorization: Bearer bb_live_…

Goed om te weten

  • Tijden in ISO 8601 met tijdzone. De server slaat UTC op.
  • Een goed gevormde batch krijgt altijd 200, ook als losse metingen zijn afgewezen. Het antwoord zegt per meting waarom.
  • Per apparaat 60 verzoeken per minuut, waarvan hooguit 10 met metingen. Krijg je een 429, wacht dan zo lang als Retry-After zegt.
  • Buffer lokaal en stuur later na: metingen tot een jaar oud worden geaccepteerd.

Je eerste meting

Zo stuur je met curl een collectortemperatuur in. De sensorcode (hier T1) staat in de configuratie van je apparaat.

Verzoek
curl -X POST \
  https://boilerbuddy.eu/api/v1/device/readings \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "batch_uuid": "0d4f6c1e-8a51-4c43-9b6b-3c1f0f7a2e11",
    "readings": [{
      "sensor": "T1",
      "value": 61.4,
      "measured_at": "2026-10-08T11:59:00Z"
    }]
  }'
Antwoord · 200 OK
{
  "accepted": 1,
  "duplicates": 0,
  "unmapped": [],
  "rejected": []
}

Gidsen en voorbeelden

Een apparaat koppelen, metingen betrouwbaar insturen en omgaan met een klok die nog niet gelijk loopt. Met complete voorbeelden.

Loop je ergens tegenaan?

Vragen over de API, of over een regelaar die je wilt aansluiten? Laat het ons weten.

Neem contact op