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
Waar voor je geld: 5x betaalbaar funcooken met je hele gezin
© ID.nl
Huis

Waar voor je geld: 5x betaalbaar funcooken met je hele gezin

Bij ID.nl zijn we dol op kwaliteitsproducten waar je niet de hoofdprijs voor betaalt. Een paar keer per week speuren we binnen een bepaald thema naar zulke deals. Wil je funcooken voor een aantrekkelijke prijs? We hebben vijf interessante apparaten voor je gespot die niet duurder zijn dan 190 euro.

Solis 5 in 1 tafelgrill (7910)

Zoek je een kwalitatief gourmetstel waarmee je jarenlang vooruit kunt? Dit luxe exemplaar van Solis voldoet aan alle eisen. Met de traploze regelaar aan de voorzijde kun je heel precies de gewenste temperatuur instellen. Bak vervolgens op de grillplaat de lekkerste hapjes gaar. Daarnaast kun je ook een van de vier bijgesloten miniwoks of (raclette)pannetjes gebruiken. Hiermee maak je bijvoorbeeld een kleine pannenkoek of pizza.

De werking is kinderlijk eenvoudig. Zodra je het kooktoestel inschakelt, gaat er eerst een rood lampje branden. Het gourmetstel is nu aan het opwarmen. Als het lampje groen kleurt, kan het eetfestijn beginnen. Is een gerecht zo heet dat je je mond kunt branden? Plaats het pannetje of de miniwok dan even in de koudzone onderin het toestel. Naast de eerder genoemde accessoires levert de fabrikant ook nog vier spatels mee.

Princess 162655 Black Steel Raclette

De betaalbare Princess 162655 Black Steel Raclette valt bij heel wat Kieskeurig.nl-testers goed in de smaak, want zij beoordelen dit gourmetstel met een 8,3 (gemiddeld cijfer). Verschillende reviewers vinden het prettig dat dit apparaat zich makkelijk laat schoonmaken. De losse onderdelen kunnen bovendien in de vaatwasser. Een ander pluspunt is dat het gourmetstel volgens diverse gebruikers snel opwarmt. Niet vreemd, gezien het respectabele vermogen van 1300 watt.

Het gourmetstel heeft een riant bakoppervlak van 44 × 25 centimeter. Dankzij de stevige anti-aanbaklaag heb je geen bakboter of olie nodig om te grillen. Het apparaat leent zich prima voor een ruim gezelschap, want de productdoos telt acht (raclette)pannetjes met een houten handvat en evenzoveel spatels. Via een draaiknop reguleer je nauwkeurig de temperatuur. Overigens vindt een enkele tester het netsnoer wat aan de korte kant.

Tefal WokParty Duo PY5828

Wie met een groepje gezellig wil wokken, kan dit leuke kooktoestel van Tefal eens uitproberen. Er zijn zes diepe pannen bijgesloten. Dankzij de gekleurde markering op het handvat weet iedereen precies welk pannetje van hem of haar is. De bakplaat bevat ronde uitsparingen, waardoor de boel niet gaat schuiven. Hierin kun je trouwens ook prima mini-pannenkoeken bakken. Speciaal daarvoor is er een handige gietlepel inbegrepen. Verder telt de verpakking zes spatels.

De WokParty Duo PY5828 heeft een zogeheten Thermo-spot. Hieraan zie je in hoeverre het kooktoestel op temperatuur is. Met een vermogen van duizend watt hoef je niet zo lang te wachten. Tefal levert een receptenboek mee, zodat je inspiratie kunt opdoen. Klaar met tafelen? Stop dan alle losse accessoires in de vaatwasser. Handig is dat je het netsnoer, de spatels en de gietlepel in de onderkant kunt opbergen.

Lees ook: Zo voorkom en verwijder je vieze luchtjes na het gourmetten

Emerio PO-113255.4

Pizzaliefhebbers opgelet! De binnenzijde van deze Emerio fungeert als een kleine oven. Op die manier kunnen maximaal zes personen hun eigen mini-pizza bakken. Met behulp van de bakspatel schuif je de lekkernij moeiteloos in de oven. Geen zin in pizza? In de zes bijgesloten pannetjes kun je allerlei andere gerechten klaarmaken. Bovendien bevindt zich bovenop een ronde grillplaat met een diameter van veertig centimeter. Daar kun je dus behoorlijk wat hapjes op kwijt!

De bediening heeft weinig om het lijf, want de behuizing bevat alleen een aan-uitknop. Met een riant vermogen van 1500 watt worden de gerechten goed warm. De maximale oventemperatuur bedraagt dan ook 250 graden. Volgens de fabrikant houdt de koepelvormige behuizing de warmte in de (pizza)over beter vast. Diverse accessoires zijn vaatwasserbestendig, zodat je na afloop niet zoveel tijd kwijt bent aan schoonmaken.

Princess Dinner4All

Als je met een groepje gaat gourmetten, staat het kooktoestel voor sommige personen wellicht te ver weg. Daar heeft Princess iets op bedacht. Met de Dinner4All bedient iedereen zijn eigen bakplaat van 250 watt. Even een satéstokje of biefstukje omdraaien is dus zo gepiept. Is het hapje eenmaal gaar, dan schuif je het zo op je eigen bordje. Princess levert hiervoor vier aardewerken-borden mee.

Je sluit de centrale unit aan op netstroom, waarna je hierop maximaal vier individuele gourmetstellen kunt aansluiten. Vermenging van smaken is dus verleden tijd! Plaats op deze unit eventueel de inbegrepen serveerschaal. Zo kan iedereen zijn of haar favoriete hapjes pakken. Wil je weten hoe andere gebruikers dit slimme gourmetstel beoordelen? Lees dan eens deze reviews op Kieskeurig.nl. Dit kooktoestel is als alternatief ook met twee individuele bakplaten te koop.

▼ Volgende artikel
De top 5 beste wintersportgames
© Ubisoft
Huis

De top 5 beste wintersportgames

De Olympische Winterspelen gaan bijna van start, en het zien van al die atleten in de kou werkt op een bepaalde manier toch inspirerend. Terwijl je dus uitkijkt naar de volgende skivakantie (of juist liever thuisblijft om gebroken botten te voorkomen), kun je jouw wintersportdromen vervullen dankzij videogames. Hieronder staan vijf van de beste wintersportgames waarin je je helemaal kunt uitleven.

⛷️🏂 🪂 Steep

Platforms:PlayStation 4, Xbox One, pc

Een van de meest moderne en toegankelijke wintersportgames komt uit de stal van het Franse Ubisoft, dat in 2016 Steep uitbracht. De game combineert verschillende sporten zoals skiën, snowboarden, parachutespringen en… vliegen met jetpacks? Deze sporten doe je op de Mont Blanc, de hoogste berg in de Alpen - en Europa trouwens. De physics is wat Steep bijzonder maakt: het is een veel realistischere insteek dan bijvoorbeeld SSX.

In Steep beweeg je je al sleeënd en skiënd over deze berg, waar ondertussen ook allerlei andere spelers rondbewegen, wat een bijzonder gevoel van samenhorigheid geeft. Ook kun je dus in alle rust wintersporten met vrienden als een soort virtuele skivakantie. De game draait in principe om het onder de knie krijgen van de verschillende soorten wintersport om zo de 'Ultimate Legend' te worden, maar in alle rust genieten van de Alpen is net zo goed een optie.

Overigens is er ook een soort vervolg in de vorm van Riders Republic, een game die zich meer richt op zomersporten maar ook het snowboarden uit Steep uitstekend overneemt en verbetert.

Watch on YouTube

🏂 SSX 3

Platforms: GameCube, PlayStation 2, Xbox, GameBoy Advance

Wie aan wintersport in games denkt, komt waarschijnlijk zeer snel uit op de SSX-reeks. Het derde deel in die franchise is misschien wel de meest geliefde, vanwege de keiharde soundtrack, grote hoeveelheden complexe trucs die je kunt uitvoeren en een meeslepende, met vele collectables gevulde open wereld om in te snowboarden. De game kwam uit in 2003, en werd toentertijd ook sterk geprezen om de indrukwekkende physics en graphics.

De open wereld van het spel is een soort aaneenschakeling van alle courses waar je op snowboardt. Daar kun je dus in op zichzelf staande races op rondscheuren en tegenstanders van hun bord af meppen, of op je eigen tempo trucs oefenen terwijl je jamt op nummers van onder andere de Black Eyed Peas. Als je nog een PlayStation 2, GameCube of originele Xbox hebt staan is dit het perfecte moment om weer met grandioze tricks te gooien. En mocht je die niet hebben, dan is de game backwards compatible op Xbox.

©Electronic Arts

⛷️🏂 🥌⛸️Mario and Sonic at the Olympic Winter Games

Platforms: Wii, DS

Ooit was de rivaliteit tussen Mario en Sonic zó groot dat er gehele marketingcampagnes vanuit de ontwikkelaars werden gevoerd - Sega does what Nintendon't bijvoorbeeld. Door de jaren heen is die storm gaan liggen, maar in de Mario and Sonic sport-spellen konden fans van beide kampen hun conflicten toch nog een beetje uitvechten. Je kunt namelijk zowel Mario- als Sonic-personages selecteren en deelnemen aan de Olympische Spelen.

In de game uit 2009 gaat het specifiek om de Winterspelen, dus onder de activiteiten vallen in dit deel onder andere sporten als skiën, bobsleeën en schaatsen. Daarbij maakten beide versies van het spel - op de Wii en DS - allebei op eigen manieren gebruik van motion controls of de touchscreen om deze spellen speelbaar te maken. Dat maakt een wintersportervaring die ook zonder de kleurrijke personages uniek is.

Watch on YouTube

⛷️Lonely Mountains: Snow Riders

Platforms:pc, Xbox Series, PlayStation 5

Skiën kan best een rustgevende bezigheid zijn, zeker met een mooi uitzicht en wanneer niemand zijn of haar botten breekt. In Lonely Mountains: Snow Riders komen beide van die aspecten naar voren, terwijl je steeds sierlijker naar de onderkant van een berg beweegt. Waar het juiste pad vinden aanvankelijk wellicht lastig lijkt, word je er na verloop van tijd handiger in, en een bijkomend voordeel is dat je bij een crash zelf geen botbreuken oploopt. Je blijft het gewoon proberen.

Jouw afdaling van de berg perfectioneren kun je in Snow Riders trouwens ook met een aantal vrienden doen - maximaal acht - en daarbij is het mogelijk om tegen elkaar te racen. Een fijne samenkomst van relaxatie en uitdaging, dus. Daarmee kom je wel in de sfeer voor de Winterspelen.

©Megagon Industries

⛷️🏂 🛷☃️Ski or Die

Platforms: Commodore 64, NES, MS-DOS, Amiga

We gaan nog even flink terug in de tijd, naar 1990. Toen kwam Ski or Die namelijk uit, dat weer bestond uit vijf verschillende minigames. Daaronder vallen halfpipe snowboarden, racen in een opblaasbare slee, twee versies van skiën, waarvan één draait om trucs en de ander om het afdalen van een berg zonder obstakels te raken, en als laatste: sneeuwbalgevechten.

We hebben in deze lijst al zoveel sneeuw gezien, en dit is de eerste keer dat de leukste bezigheid in de sneeuw naar voren komt. Deden ze toch goed in 1990. Misschien is het een idee om van sneeuwbalgevechten een Olympische sport te maken?

©Electronic Arts

Overige tips

Uiteraard zijn er nog meer wintersportgames die in mindere of meerdere mate nog steeds relevant zijn. Hieronder daarom nog een aantal overige tips voor games om in de stemming voor de Olympische Winterspelen te komen:

🏂 SSX: Tricky (PlayStation 2, Xbox, GameCube en Game Boy Advance)
🏂 Alto's Adventure (PlayStation 4, Xbox One, Switch, iOS, Android en pc)
🏂 1080 Snowboarding (Switch 2, Switch, Wii U, Wii en Nintendo 64)
🏂 Shaun White Snowboarding (PlayStation 3, Xbox 360, Wii, Nintendo DS, PSP en pc)
🏒 EA Sports NHL 26 (PlayStation 5, Xbox Series X en S)