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
Switch-versie van Dispatch is gecensureerd
Huis

Switch-versie van Dispatch is gecensureerd

Belangrijk om te weten voor iedereen die Dispatch op een Switch of Switch 2 wil aanschaffen: de game is op die platforms gecensureerd, en dit kan niet uitgezet worden.

Dispatch kwam afgelopen jaar al uit op platforms als pc en PlayStation 5, en is sinds eerder deze week ook te koop voor Nintendo Switch en Nintendo Switch 2. Veel Switch-gamers keken al lange tijd uit naar de release van deze geprezen indiegame.

Censuur in Dispatch

Nu blijkt echter dat Dispatch op Switch-consoles gecensureerd is. De game bevat zo nu en dan scènes waarin (getekende) naaktheid voorkomt. Ook zitten er andere volwassen beelden in, zoals het opsteken van een middelvinger. In de andere platformversies zit er als optie de mogelijkheid deze beelden te censureren, maar spelers kunnen dit zelf bepalen door het aan of uit te zetten.

Op Switch en Switch 2 blijkt dit dus niet het geval: daar is het censuur vooralsnog verplicht. Volgens Dispatch-ontwikkelaar AdHoc (via Eurogamer) is dit gedaan omdat de game aan bepaalde regels moet doen om op de Nintendo eShop uit te komen.

Het lijkt er dan ook niet op dat er een patch uitkomt waarmee spelers het alsnog zelf kunnen bepalen, al is de kritiek online niet mals. Mocht die kritiek groeien, dan wordt er wellicht alsnog wat aan gedaan, maar dit is vooralsnog niet bevestigd.

Mogelijk heeft het te maken met strengere regels in bepaalde regio's - zoals Japan. Het zou kunnen dat AdHoc er voor heeft gekozen één versie van het spel voor alle regio's uit te brengen, waardoor het censuur voor alle regio's geldt. In Japan is de PS5-versie van de game bijvoorbeeld ook gecensureerd.

Nintendo heeft in een statement aan NintendoLife niet veel meer duidelijkheid gegeven over de situatie. Het bedrijf benadrukt dat leeftijdsclassificaties door onafhankelijke organisaties worden gegeven, maar dat het ook zelf richtlijnen voor zijn platforms heeft. "We informeren partners wanneer hun games niet aan deze richtlijnen voldoen, maar Nintendo past zelf niet de content van partners aan."

Watch on YouTube

Nintendo en volwassen games

Nintendo zelf heeft in het verleden enkele controversiële keuzes gemaakt rondom censuur. Nintendo's spelcomputers staan er om bekend dat ze voor de hele familie bedoeld zijn, en in het verleden zorgde dit er bijvoorbeeld voor dat rood bloed met een andere kleur werd vervangen.

De laatste jaren leek Nintendo echter steeds coulanter te worden op het gebied van het vertonen van geweld en andere volwassen beelden in games. Diverse andere Switch 2- en Switch-games tonen wel volwassen materiaal, dus het is niet duidelijk waarom Dispatch dan toch gecensureerd is. Wellicht ligt het aan de combinatie met de tekenfilmachtige beelden in de game.

Over Dispatch

Dispatch draait om de aan lager wal geraakte superheld Robert Robertson. Tegenwoordig vult hij zijn tijd met een kantoorbaan, waarbij hij de administratie van andere superhelden verzorgt. Toch hoopt hij zelf uiteindelijk ook weer de held uit te kunnen hangen.

De game heeft daarmee een focus op het narratief, en doet daardoor meer dan eens denken aan de adventuregames van Telltale Games. Ontwikkelaar AdHoc bestaat dan ook gedeeltelijk uit voormalige werknemers van de studio achter de The Walking Dead-spellen.

Dispatch heeft daarbij een sterrencast die de rollen van de personages vervullen. Denk aan Aaron Paul (in de rol van de hierboven genoemde Robert), Jeffrey Wright (The Last of Us, Westworld, Matthew Mercer en Laura Bailey.

Dispatch is gestructureerd als een seizoen van een serie - de game kwam uit verspreid over meerdere episodes. AdHoc heeft eerder al laten weten dat een 'tweede seizoen' wordt overwogen.

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
Eerste Fallout-seizoen tijdelijk gratis te zien
Huis

Eerste Fallout-seizoen tijdelijk gratis te zien

Het is tijdelijk mogelijk om het eerste seizoen van de Amazon Prime Video-serie Fallout geheel gratis te zien.

De Fallout-serie is normaliter alleen te zien door een Amazon Prime Video-abonnement af te sluiten, maar de komende tijd zal het bedrijf gratis de afleveringen van het eerste seizoen op YouTube uitbrengen. Op moment van schrijven staan de eerste twee afleveringen er op, en de komende dagen volgt de rest.

De gratis afleveringen kunnen via het YouTube-kanaal van Amazon Prime Video bekeken worden. Tot 12 februari kan het eerste seizoen gratis via YouTube bekeken worden.

De gratis afleveringen zijn duidelijk bedoeld als promotie voor de serie, waarvan het tweede seizoen nu bezig is op Amazon Prime Video. Op 1 februari zal de laatste aflevering van dat tweede seizoen op Amazon Prime Video verschijnen.

Watch on YouTube

Het succes van Fallout

In 2024 begon de fictieve Fallout-serie al op Amazon Prime Video, gebaseerd op de games van Bethesda. Met acteurs als Ella Purnell, Walton Goggins en Kyle MacLachlan wordt een alternatieve geschiedenis (en toekomst) geschetst waarbij de Verenigde Staten door een nucleaire winter geteisterd worden. Diverse samenlevingen houden het jarenlang vol in schuilkelders, en wanneer ze daar weer uit durven te komen, maken ze kennis met een aardoppervlakte die voorgoed veranderd is.

De serie bleek een grote hit en het eerste seizoen behaalde meer dan honderd miljoen kijkers. Ondertussen is al bevestigd dat er een derde seizoen komt - de opnames daarvan zullen in mei van start gaan.

Ook werkt Amazon aan een realityshow rondom Fallout, waarin deelnemers in een schuilkelder moeten leven en deel zullen nemen aan diverse spellen. Volgens de beschrijving "is het een spel van machtspatronen, populariteit en sociale strategieën waarbij uiteindelijk een gigantische geldprijs gewonnen kan worden". Verdere concrete detail zijn er nog niet, en het is ook niet duidelijk vanaf wanneer de realityshow op Amazon Prime Video te zien zal zijn.

Watch on YouTube
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.