API
Koppelen via hello
Hoe een apparaat zonder token met POST /device/hello en een koppelcode zelf aan zijn token komt, en wanneer een sleutel uit het portaal handiger is.
Met POST /device/hello haalt een apparaat zelf zijn token op. Het krijgt een koppelcode, de eigenaar vult die in het portaal in, en bij de volgende hello komt het token. Niemand hoeft dan een sleutel over te typen.
Liever niet bouwen? Maak dan een sleutel in het portaal en zet die zelf op het apparaat: zie onderaan.
Het verloop
-
Het apparaat maakt één keer een willekeurige uuid (versie 4) en bewaart die, ook over herstarts heen.
-
Het stuurt
POST /device/hello, zonder token:{"device_uuid": "7b0e2f4c-1d3a-4e5b-9c6d-8f7a6b5c4d3e", "hw_serial": "00000000abcd1234", "firmware_version": "0.3.0"}Alleen
device_uuidis verplicht;hw_serialmag tot 64 tekens zijn,firmware_versiontot 32. -
Zolang niemand het apparaat heeft gekoppeld, krijgt het een koppelcode:
{"claimed": false, "pairing_code": "BB-7KQ4-M2XD", "expires_at": "2026-10-10T12:00:00+00:00"}Het apparaat toont de code, bijvoorbeeld op een scherm of in een log.
-
De eigenaar vult de code in: op de pagina van het apparaat met Koppelen met code, of bij Nieuw apparaat in Koppelcode (optioneel).
-
Bij de volgende
hellokrijgt het apparaat zijn token:{"claimed": true, "token": "bb_live_42_Xk3…"} -
Het apparaat bewaart het token en gebruikt het. Daarna antwoordt
helloalleen nog{"claimed": true}.
Uuid en code
- Een uuid van een andere versie dan 4, zoals een uuid uit tijd en MAC-adres, krijgt
422. - Houd de uuid geheim tot het token gebruikt is: wie hem kent, kan na het koppelen het token ophalen. Dus niet op een sticker en niet in een log die anderen zien.
- Stuur ongeveer elke 15 seconden een
helloterwijl je wacht. Met dezelfde uuid krijg je dezelfde code, tot die 24 uur na het eerste antwoord verloopt. - Een code is
BB-plus twee keer vier tekens, zonder 0, O, 1 en I. Hoofdletters, spaties en streepjes maken in het portaal niet uit. Na tien foute codes in een uur weigert het portaal elke code tot dat uur om is.
Eerst bewaren, dan gebruiken
Tot het token één keer gebruikt is, geeft elke hello een nieuw token en werkt het vorige niet meer. Een verloren antwoord is dus geen probleem: vraag opnieuw. Houd daarom deze volgorde aan:
- Sla het token op zodat het een stroomstoring overleeft: eerst naar een tijdelijk bestand, dan hernoemen.
- Gebruik het meteen, met
GET /device/configofPOST /device/status. Dan is het koppelen klaar. - Stuur daarna geen
hellomeer. Doe je dat vóór het eerste gebruik, dan werkt je opgeslagen token niet meer.
Token kwijt na gebruik? Dan helpt hello met dezelfde uuid niet meer. Maak een nieuwe uuid, vraag een nieuwe code en vul die in bij Koppelen met code op de pagina van hetzelfde apparaat. Of maak een sleutel met de hand.
Wat koppelen in het portaal doet
- Alleen wie het apparaat beheert, kan een code invullen, niet iemand met wie het alleen gedeeld is.
- Koppelen met een code zet de huidige API-sleutel direct uit. Het apparaat haalt met zijn volgende
helloeen nieuwe op. - Verwijder je het apparaat, dan begint
hellomet dezelfde uuid opnieuw, met een nieuwe code. - Een gesimuleerd apparaat kun je niet met een code koppelen.
Een sleutel met de hand
Op de pagina van het apparaat staat op Instellingen onder Verbinding de knop Sleutel aanmaken, of Nieuwe sleutel als er al een is. Het portaal vraagt eerst je wachtwoord en toont de sleutel één keer. Voeg je een apparaat toe zonder koppelcode, dan krijg je meteen een sleutel.
Een sleutel met de hand sluit het koppelen af. De volgende hello met die uuid krijgt een nieuwe code, en niets wat het apparaat met hello doet, zet jouw sleutel uit.
Limieten
| Wat | Limiet |
|---|---|
hello per uuid |
10 per minuut |
hello per IP-adres |
30 per minuut. Een IPv6-/64-netwerk telt als één adres |
Daarboven krijg je 429 met een Retry-After-header: wacht zo veel seconden. 422 betekent een ontbrekende of ongeldige device_uuid, of een veld dat te lang is. Zie ook Limieten en foutcodes en de API-referentie.