Terwijl broadcasten een one-to-many-vorm van communicatie is die maar in één richting werkt, heeft BLE ook een one-to-one-vorm van communicatie in twee richtingen: verbindingen. Als een peripheral verbindingen accepteert, wordt dat met een speciaal type advertising packet aangeduid. Zo kunnen centrals in de buurt te weten komen met welke apparaten ze verbinding kunnen maken.
Een peripheral kan maar met één central tegelijk verbonden zijn, maar een central kan met verschillende peripherals tegelijk verbinding maken. Een verbinding is in BLE by design asymmetrisch; de central voert de zwaarste taken uit, zodat de peripheral zo weinig mogelijk stroom verbruikt en dus lang meekan op een batterijlading.
Een peripheral kun je beschouwen als een verzameling data en die data wordt in BLE gestructureerd volgens het Attribute Protocol, of ATT. Elk stukje data is een attribuut, met een type (een 16bit- of 128bit-uuid), een handle (een 16bit-adres), een waarde en permissies. Twee types attributen zijn belangrijk om in een verbinding toegang tot de data van een peripheral te krijgen: services en characteristics. In het Attribute Protocol wordt overigens niet meer van peripheral en central gesproken, maar van server (die de data heeft) en client (die de data wil lezen of schrijven).
Services en characteristics
Het generic attribute profile (afgekort tot GATT, omdat het anders dezelfde afkorting zou hebben als generic access profile, een andere laag van de protocolstack) definieert het formaat van services en characteristics en hoe je deze vindt en gebruikt. Elk stukje informatie, zoals een batterijniveau of een temperatuur, is een characteristic. Een characteristic staat nooit geïsoleerd, maar maakt altijd deel uit van een service. Een service is een groepering van een of meer characteristics die samen een specifieke functionaliteit van een apparaat definiëren. Zo heeft de service device information characteristics voor de naam van de fabrikant, het modelnummer, de firmwarerevisie en nog andere informatie van het apparaat. Veel services bevatten echter gewoon één characteristic, zoals de battery service die een battery level heeft.
Met nRF Connect kun je eenvoudig de services en characteristics van je BLE-apparaten in huis verkennen
Als je de services en characteristics van je BLE-apparaten in huis eens wilt verkennen, kan dat eenvoudig met de mobiele app nRF Connect van Nordic Semiconductor, die bestaat voor Android en iOS. De app scant naar BLE-apparaten, toont je de advertisementdata en laat je verbinding maken met de apparaten. Zodra je verbonden bent, kun je de services verkennen en van alle characteristics de waarde lezen of schrijven.
Een client die altijd de recentste temperatuur of het recentste batterijniveau wil weten, kan in principe om de zoveel seconden of minuten de overeenkomstige characteristics uitlezen. Dan zou de server echter heel wat energie verspillen. Daarom kan een server bij een characteristic ook aanduiden dat hij notificaties ondersteunt. De client laat dan aan de server weten dat hij geïnteresseerd is in notificaties voor die ene characteristic, bijvoorbeeld de temperatuur, en de server stuurt dan alleen een bericht naar de client als de waarde van die characteristic verandert. Een variant zijn indicaties; dat zijn notificaties waarbij de client een bevestiging moet terugsturen dat hij de data heeft ontvangen.