ID.nl logo
Zekerheid & gemak

Alles over het internet-of-things-protocol MQTT

De naam MQTT zal niet bij veel mensen een belletje doen rinkelen, maar het internet-of-things-protocol vormt de basis van talloze systemen in domotica. We kijken naar de werking van dit protocol en de verschillende manieren waarop je het kunt inzetten.

Het internet der dingen (internet of things, IoT) is de laatste jaren een hype, maar de meest gebruikte technologie om al die apparaten met elkaar te laten praten bestaat al twintig jaar: MQTT (Message Queuing Telemetry Transport). De eerste versie van het MQTT-protocol werd namelijk al in 1999 geschreven door Andy Stanford-Clark van IBM en Arlen Nipper van Arcom (later Eurotech).

Hun bedoeling was om een licht protocol te ontwikkelen dat met een efficiënt gebruik van bandbreedte allerlei soorten gegevens kon doorsturen met verschillende vormen van quality of service (QoS). En laat dat nu net een combinatie van eigenschappen zijn die essentieel is in het internet of things. Het mag dan ook niet verbazen dat talloze IoT-projecten ervoor gekozen hebben om onder de motorkap MQTT te gebruiken. Overigens toonde MQTT-uitvinder Stanford-Clark in 2009 de mogelijkheden al door zijn domoticasysteem via MQTT met Twitter te verbinden.

Centrale tussenpartij

Een cruciale rol in MQTT is weggelegd de ‘broker’, een centrale tussenpartij die de communicatie tussen zenders en ontvangers in goede banen leidt. In traditioneler taalgebruik zouden we het de server noemen. De broker is niet de enige afwijkende term die het MQTT-protocol gebruikt: een zender heet er uitgever (‘publisher’) en een ontvanger abonnee (‘subscriber’). Beide zijn vormen van clients. Uiteraard kan een client ook zowel zenden als ontvangen.

De broker zorgt ervoor dat uitgevers en abonnees niet van elkaars bestaan hoeven te weten: alles verloopt via de broker. Dat gaat als volgt: de broker beheert onderwerpen (‘topics’) met inhoud (‘payloads’). Een abonnee die in een onderwerp geïnteresseerd is, abonneert zich daarop bij de broker. Een uitgever die een boodschap wil sturen, publiceert zijn inhoud op een specifiek onderwerp door dit naar de broker te sturen. Zodra de broker een boodschap voor een onderwerp ontvangt, stuurt hij die door naar alle clients die op dit onderwerp geabonneerd zijn.

Hiërarchische onderwerpen

Een onderwerp kunnen we dus beschouwen als een soort locatie waarvan de naam bij uitgever en abonnee bekend is. Maar om hier wat systematiek in te brengen, definieert MQTT de onderwerpen als hiërarchische namen, gescheiden door een slash (/), zoals in url’s. Elke toepassing is voor de rest volledig vrij in de keuze van de namen; in tegenstelling tot url’s zijn er dus geen vastgelegde topdomeinen.

Wil je wat orde in je MQTT-netwerk houden, dan is het aan te raden om een systeem voor je onderwerpen te gebruiken. Een domoticatoepassing als Home Assistant doet dat door de onderwerpen van de volgende vorm te maken:

<discovery_prefix>/<component>/[<node_id>/]<object_id>/&lt;&gt;</object_id></node_id></component></discovery_prefix>

Daarbij is discovery_prefix standaard gelijk aan homeassistant. Component het type component, zoals binary_sensor enzovoort. Een voorbeeld van een onderwerp is:

homeassistant/sensor/slaapkamer_temperature/state

Dat bevat als inhoud de temperatuur van een temperatuursensor in de slaapkamer, bijvoorbeeld 18.7.

Wildcards

MQTT kent ook ‘wildcards’ voor onderwerpen. Een client die in alle onderwerpen onder homeassistant/sensor/slaapkamer_temperature geïnteresseerd is, abonneert zich dan op:

homeassistant/sensor/slaapkamer_temperature/#

Hij krijgt dan ook boodschappen over de onderwerpen:

homeassistant/sensor/slaapkamer_temperature/last_updated
homeassistant/sensor/slaapkamer_temperature/last_changed

Enzovoort.En als een client in alle onderwerpen van Home Assistant geïnteresseerd is, abonneert hij zich op:

homeassistant/#

Soms ben je geïnteresseerd in alle onderwerpen met een specifieke naam van het onderste niveau, ongeacht het niveau erboven. Daarvoor gebruik je de wildcard +. Zo abonneer je je bijvoorbeeld eenvoudig op de boodschappen over de laatste veranderingen van alle sensoren in Home Assistant:

homeassistant/sensor/+/last_changed

De hiërarchische opbouw van onderwerpen maakt dit heel eenvoudig.

©PXimport

Verbinding en beveiliging

MQTT is ontworpen om over tcp/ip te draaien, meestal op poort 1883. Recentelijk is ook MQTT over WebSocket populair, omdat dit het mogelijk maakt om rechtstreeks in een webbrowser via MQTT te communiceren. Een JavaScript-client pakt de pakketten dan uit de WebSocket-laag uit en behandelt de MQTT-pakketten die erin zitten. MQTT over WebSocket verloopt meestal via poort 9001. Zowel MQTT over tcp/ip als MQTT over WebSocket zijn ook te gebruiken over een versleutelde verbinding, via tls.

Tot nu toe lijkt het alsof iedereen zomaar alle onderwerpen op je MQTT-broker kan uitlezen, en zo gebeurt het in veel lokale MQTT-installaties ook, maar de meeste MQTT-brokers bieden een gebruikersbeheer met bijbehorende authenticatie en gebruikersrechten. Je stelt dan in de configuratie van de broker in dat elke MQTT-client zich moet aanmelden met een gebruikersnaam en wachtwoord en lees- en schrijfrechten voor specifieke onderwerpen heeft. Zo voorkom je dat een willekeurige sensornode in je netwerk waarin iemand is ingebroken je hele domoticasysteem via MQTT kan aansturen.

Zelf aan de slag met MQTT

MQTT is in heel wat software ondersteund, dus je kunt het protocol zelf eenvoudig in je eigen projecten inzetten. Een eenvoudige manier om een Raspberry Pi, Arduino of ESP8266 via MQTT over internet te laten werken, is via de clouddienst Adafruit IO. Werk je liever in het ecosysteem van Amazon of Microsoft, gebruik dan AWS IoT respectievelijk Azure IoT Hub.

Je hoeft MQTT trouwens niet in de cloud te gebruiken: met het opensourceproject Eclipse Mosquitto, dat MQTT-protocols 3.1 en 3.1.1 ondersteunt, draai je eenvoudig een MQTT-broker op je eigen netwerk. Mosquitto komt ook met eenvoudige MQTT-clients voor op de opdrachtregel: mosquitto_pub en mosquitto_sub.

Wil je op een grafische manier MQTT-boodschappen doorzoeken, bekijken en publiceren, dan is MQTT Explorer een handig programma.

Wil je MQTT in je eigen programma’s gebruiken, dan is het project Eclipse Paho met bibliotheken in C, C++, Java, JavaScript, Python en Lua onmisbaar.

▼ Volgende artikel
Redesign van mobiele Netflix-app krijgt ruimte voor verticale video's
© ink drop - stock.adobe.com
Huis

Redesign van mobiele Netflix-app krijgt ruimte voor verticale video's

Netflix gaat dit jaar zijn mobiele app van een redesign voorzien. Daarbij komt er ruimte voor verticale video's om het verticale scherm van smartphones tegemoet te komen.

Dat kondigde co-CEO Greg Peters gisteren aan tijdens een gesprek met investeerders. De nieuwe interface van de mobiele app is nog niet getoond, maar moet ergens dit jaar uitkomen en Netflix helpen met "de uitbreiding van onze zaken gedurende het komende decennium".

Verticale video's

Netflix geeft aan dat het al sinds mei vorig jaar experimenteert met verticale video's. Daarbij worden er korte clips uit films en series van Netflix getoond in een verticaal formaat - iets wat voor smartphonegebruikers wereldwijd steeds natuurlijker voelt dankzij socialmedia-apps als TikTok en Instagram. Daarbij wordt het voor consumenten steeds normaler om videocontent op hun mobiel te kijken in plaats van op tv.

Netflix wil de opties voor verticale video's dus uitbreiden en de vernieuwde mobiele app die later dit jaar uit zal komen, moet dit mogelijk maken. Daarnaast wil het bedrijf ook meer stappen maken in de wereld van videopodcasts, waar de vernieuwde app ook geschikter voor moet worden. Deze week heeft Netflix de eerste exclusieve videopodcasts gedebuteerd.

Plannen van Netflix

De hierboven beschreven veranderingen lijken te suggereren dat Netflix zijn markt wil verbreden en het een en ander leert van populaire socialmediaplatforms. Tegelijkertijd blijft het streamingbedrijf investeren in nieuwe films en series.

Netflix wil ook nog altijd filmproductiebedrijf Warner Bros. overnemen, en daarmee dus ook HBO Max. Beide bedrijven zien de overname zitten, maar Paramount zit ertussen en wil Warner Bros. ook graag overnemen. Uiteindelijk beslissen aandeelhouders van Warner Bros. Daarom heeft Netflix de overnamedeal deze week nog wat verfijnd, waarbij er in meer 'contant' geld uitbetaald wordt in plaats van aandelen.

Nieuw op ID: het complete plaatje

Misschien valt het je op dat er vanaf nu ook berichten over games, films en series op onze site verschijnen. Dat is een bewuste stap. Wij geloven dat technologie niet stopt bij hardware; het gaat uiteindelijk om wat je ermee beleeft. Daarom combineren we onze expertise in tech nu met het laatste nieuws over entertainment. Dat doen we met de gezichten die mensen kennen van Power Unlimited, dé experts op het gebied van gaming en streaming. Zo helpen we je niet alleen aan de beste tv, smartphone of laptop, maar vertellen we je ook direct wat je erop moet kijken of spelen. Je vindt hier dus voortaan de ideale mix van hardware én content.

▼ Volgende artikel
Hoe kies je de juiste powerbank?
© Tevarak Phanduang | NaMaKuki_2016
Huis

Hoe kies je de juiste powerbank?

Je bent onderweg en ziet dat je telefoon nog maar vijf procent batterij heeft. Op dat moment is een powerbank precies wat je nodig hebt. Alleen: welke? De juiste keuze begint met twee vragen: hoeveel energie heb je onderweg nodig en hoe snel moet die energie eruit kunnen?

In dit artikel

Je leest hier hoe je een powerbank kiest die past bij jouw gebruik. Je ziet waarom mAh op de verpakking niet alles zegt en hoe je met wattuur (Wh) beter ziet hoeveel energie een powerbank kan opslaan en afgeven.  Ook leggen we uit waar laadsnelheid vandaan komt, wat usb-c en Power Delivery doen en waarom de juiste kabel bij hogere vermogens belangrijk is. Tot slot krijg je tips voor het opladen van een tablet of laptop.

Lees ook: Slimme tips om energie te besparen op je smartphone

Capaciteit: mAh is handig, maar reken in Wh

In de specificaties van powerbanks zie je bijna altijd een getal in milliampère-uur (mAh). Maar daarbij moet je je wel realiseren dat dat niet het hele verhaal is. Fabrikanten geven die mAh vaak op bij de interne batterijspanning van de cellen in de powerbank (meestal rond 3,6 tot 3,7 volt). Jouw telefoon laadt meestal via 5 volt, en bij snelladen soms op 9 of 12 volt. Die omzetting kost energie.

Zie de powerbank als een watertank met een kraan die je moet omzetten naar een andere maat aansluiting. Dat omzetten levert altijd wat verlies op. Daarom haal je in de praktijk niet 10.000 mAh uit 10.000 mAh. Reken grofweg met een bruikbare opbrengst die vaak ergens rond de 60 tot 80 procent ligt, afhankelijk van de kwaliteit van de elektronica en hoe je laadt. Met 10.000 mAh kun je een gemiddelde smartphone daarom meestal geen twee keer volledig vullen, maar eerder ongeveer anderhalf keer. Heb je een telefoon met een kleinere accu, dan kom je dichter bij de opgegeven twee keer; met een grotere accu haal je dat juist minder snel.

Wil je wat preciezer rekenen, kijk dan naar wattuur (Wh). Dat is de eenheid die echt iets zegt over hoeveel energie erin zit. Een eenvoudige omrekening helpt: Wh = (mAh × volt) / 1000. Staat er op de powerbank bijvoorbeeld 10.000 mAh bij 3,7 V, dan is dat ongeveer 37 Wh aan energie in de cellen, voordat je het omzetverlies meeneemt.

Powerbanks vergelijken

In de winkel zie je bijna altijd mAh als capaciteitsaanduiding. Zoals je hierboven hebt kunnen lezen is dat niet perfect. Maar omdat fabrikanten dezelfde soort cellen gebruiken en allemaal op dezelfde manier rekenen, kun je mAh wel gebruiken om powerbanks onderling te vergelijken. Heb je een powerbank gevonden die je wat lijkt, dan kun je bovenstaande berekening gebruiken om een meer realistisch beeld van het aantal keer opladen te krijgen.

View post on TikTok

Hoeveel capaciteit heb je echt nodig?

Als je vooral een extra lading voor je telefoon zoekt op een lange dag, dan zit je met 10.000 mAh in de praktijk vaak goed. Is 'bijna vol' al al genoeg, dan kan 5.000 mAh ook, maar reken er dan niet op dat je elke moderne smartphone die helemaal leeg is weer volledig volgeladen krijgt. Ga je een weekend weg of laad je meerdere apparaten op, dan is 20.000 mAh een logische stap. Je hebt dan meer oplaadcapaciteit, maar houd er wel rekening mee dat dat ook betekent dat de powerbank groter en zwaarder is.

Voor tablets geldt hetzelfde principe, alleen is de interne accu meestal groter dan die van een telefoon. Daardoor lijkt een powerbank die voor je telefoon prima is, bij een tablet ineens snel leeg. Dat is niet vreemd: je giet simpelweg meer water in een grotere emmer. Voor laptops ligt het net even anders: daar draait het niet alleen om capaciteit, maar vooral om het vermogen (wattage). Daar komen we zo op terug.


🔋Tot zover ging het over de hoeveelheid energie (mAh/Wh). De volgende stap is de afgifte: met welk vermogen (watt) kan de powerbank die energie aan je telefoon, tablet of laptop leveren? 


Snelheid: wattage maakt het verschil

Capaciteit zegt iets over hoe vaak je kunt laden. Snelheid gaat over wattage: hoeveel vermogen de powerbank kan leveren. Dat vermogen is vooral relevant als je snel wilt bijladen, of als je een tablet of laptop wilt opladen. USB-c is daarbij de norm geworden, en USB Power Delivery (PD) is de techniek waarmee lader en toestel afspraken maken over spanning en stroom. Je powerbank en je telefoon of laptop stemmen dat onderling af, zodat laden snel kan zonder dat het onveilig wordt. Daarvoor moeten de poort en je kabel het wel ondersteunen. Let daarom ook op de aansluitingen: usb-c heb je nodig voor snelladen met Power Delivery, terwijl usb-a vooral handig is als je oudere kabels of accessoires gebruikt.

©vadish - stock.adobe.com

Eén powerbank voor telefoon én laptop: waar je op let

Een laptop opladen vraagt meer dan een telefoon. Bij een telefoon kom je vaak weg met 10 tot 20 watt. Een laptop heeft meestal 45 watt of meer nodig, en veel modellen werken prettiger met 65 watt of hoger, zeker als je tijdens het laden ook blijft werken. De beste snelcheck is simpel: kijk naar het wattage van je eigen laptoplader. Dat is je richtgetal. Zit je daar ver onder, dan kan het laden extreem traag worden, of je laptop accepteert de lader helemaal niet.

Ook de juiste kabel is belangrijk. Voor hogere vermogens is niet elke usb-C-kabel geschikt. Tot ongeveer 60 watt (meestal 20 V bij 3 A) gaat het vaak goed met een kabel die expliciet 3 A ondersteunt. Ga je boven de 60 watt, dan heb je doorgaans een usb-c-kabel nodig die 5 A aankan. Zulke kabels hebben meestal een kleine chip in de stekker, een zogeheten e-marker. Die chip vertelt aan de powerbank en je laptop dat de kabel veilig meer stroom kan verwerken. Zie het als een identiteitsbewijs: zonder e-marker schakelt het systeem vaak terug naar een lagere stand, zodat het laden langzamer gaat en de kabel niet te warm wordt. Kijk in de specificaties of op de kabel zelf of er 3 A (tot circa 60 W) of 5 A (voor hogere vermogens) staat; dat is de snelste check. 

Formaat en gewicht: energie weegt nu eenmaal wat

Meer capaciteit betekent meestal meer cellen, en dus meer gewicht. Een powerbank van 20.000 mAh zit vaak ergens in de buurt van 350 tot 500 gram. Dat voelt in een jaszak al snel log. In een rugtas valt het mee. Stel jezelf dus de vraag: wil je elke dag een kleine powerbank mee voor noodgevallen, of is dat voor jou niet genoeg en ga je dus voor een grotere powerbank? 

Veiligheid: kies niet alleen op prijs

Bij draagbare accu's wil je geen twijfel over veiligheid. Een powerbank hoort bescherming te hebben tegen oververhitting, overladen en kortsluiting, maar bij heel goedkope modellen is dat niet altijd goed geregeld. De kans dat het misgaat is klein, alleen zijn de gevolgen groot als het wél gebeurt. Kies daarom liever een merk dat laat zien hoe het met veiligheid omgaat en dat testnormen en keurmerken gewoon vermeldt. Je hoeft die standaarden niet uit je hoofd te leren, maar het helpt als een merk concreet zegt welke testen en keurmerken het gebruikt. 

Zo kies je de juiste powerbank

 De juiste powerbank kies je door stap voor stap te bepalen wat je nodig hebt: eerst de hoeveelheid energie (liefst in Wh, met mAh als praktische indicatie), daarna de laadsnelheid (wattage en PD), en pas daarna pas de vorm en het gewicht. Voor dagelijks gebruik zit je vaak goed met een compacte powerbank rond 10.000 mAh met usb-c en Power Delivery. Wil je meer capaciteit zodat je meerdere keren kunt opladen (of ook je tablet opladen), dan is 20.000 mAh logischer. Houd er dan wel rekening mee dat de powerbank zwaarder wordt. Wil je ook een laptop kunnen laden, kijk dan naar het wattage van je laptoplader en kies een powerbank die dat vermogen via usb-c PD kan leveren, inclusief een kabel die geschikt is voor dat hogere vermogen.