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
Dolby Atmos: zo haal je écht bioscoopgeluid naar je woonkamer
© ER | ID.nl
Huis

Dolby Atmos: zo haal je écht bioscoopgeluid naar je woonkamer

Wil je films en series ervaren zoals de regisseur het bedoelde? Dan kun je tegenwoordig niet meer om Dolby Atmos heen. Deze populaire audiotechniek wordt gezien als de grootste sprong voorwaarts sinds de uitvinding van surround sound. In dit artikel leggen we je uit wat het precies is en hoe je jouw huiskamer omtovert tot een driedimensionale geluidsstudio.

Dolby Atmos is de huidige gouden standaard voor bioscoopgeluid en verovert in rap tempo ook de Nederlandse huiskamers. Waar traditioneel surroundgeluid je slechts omringt met geluid op oorniveau, voegt deze techniek een serieuze nieuwe dimensie toe: hoogte. Hierdoor vliegen helikopters daadwerkelijk óver je hoofd en klinkt regen levensecht. We leggen hieronder in begrijpelijke taal uit hoe het werkt en wat je ervoor nodig hebt.

Op zoek naar het beste geluid bij jouw films en series? Check Kieskeurig.nl!

Van vaste kanalen naar bewegende objecten

Om te begrijpen wat Dolby Atmos zo uniek maakt, moeten we eerst kijken naar hoe surroundgeluid vroeger werkte. Bij traditionele systemen, zoals 5.1 of 7.1, is het geluid kanaal-gebaseerd. De geluidsmixer in de studio beslist dat een bepaald geluidseffect uit de speaker linksachter moet komen. Als jij die speaker niet precies goed hebt staan, klopt het effect niet helemaal.

Dolby Atmos gooit dit concept overboord en introduceert object-gebaseerde audio. In plaats van geluid naar een specifieke luidspreker te sturen, plaatst de geluidstechnicus een geluidsobject (zoals een zoemende bij of een overvliegend vliegtuig) op een specifieke coördinaat in een driedimensionale ruimte. Jouw apparatuur berekent vervolgens razendsnel welke speakers op welk moment moeten worden aangestuurd om dat geluid exact op die plek in jouw kamer te laten horen.

©ER | ID.nl

De magie van hoogtekanalen

Het meest hoorbare verschil dat Dolby Atmos biedt ten opzichte van eerdere systemen is de toevoeging van hoogte. Omdat geluid nu als een object in de ruimte wordt behandeld, ben je niet meer beperkt tot geluid van links, rechts, voor of achter. Het geluid kan nu ook van boven komen. In bioscopen zie je hiervoor vaak speakers die fysiek aan het plafond hangen. Thuis is dat voor veel mensen geen optie, en daarom zijn er slimme alternatieven ontwikkeld.

Veel moderne soundbars en speakersystemen maken gebruik van zogenaamde 'upfiring drivers'. Dat zijn luidsprekers die schuin omhoog zijn gericht. Ze sturen het geluid naar je plafond, waarna het weerkaatst richting jouw luisterpositie. Onze hersenen interpreteren die weerkaatsing alsof het geluid daadwerkelijk van boven komt, waardoor je in een complete bubbel van geluid zit.

Hardware en content voor de beste ervaring

Om thuis van Dolby Atmos te kunnen genieten, heb je wel geschikte apparatuur en content nodig. Allereerst moet de bron, zoals een film of serie op Netflix, Disney+ of een Blu-ray, beschikken over een Dolby Atmos-audiotrack. Vervolgens moet je televisie of mediaspeler in staat zijn om dat signaal door te geven, meestal via een HDMI eARC-aansluiting.

Tot slot heb je het audiosysteem zelf nodig. Dat kan een uitgebreide AV-receiver zijn met losse speakers, maar tegenwoordig zijn er ook zeer capabele soundbars die de Atmos-ervaring indrukwekkend weten te simuleren. Zelfs smartphones en koptelefoons bieden tegenwoordig ondersteuning voor een virtuele variant van Atmos, waarbij softwarematige trucs worden gebruikt om ruimtelijkheid te creëren in een stereo-omgeving.

⭐ Populaire merken voor Dolby Atmos

Als je op zoek bent naar apparatuur die Dolby Atmos ondersteunt, kom je al snel een aantal toonaangevende fabrikanten tegen die de markt domineren. Sonos is hierin een van de meest bekende namen, voornamelijk vanwege hun gebruiksvriendelijke soundbars zoals de Arc en de Beam die naadloos samenwerken in een multiroom-systeem. Naast Sonos spelen ook de Zuid-Koreaanse giganten Samsung en LG een grote rol in dit segment; zij ontwikkelen soundbars die vaak specifieke synergievoordelen bieden wanneer je ze combineert met televisies van hetzelfde merk, zoals het synchroniseren van tv-speakers met de soundbar. Voor de liefhebbers die liever werken met een traditionele versterker en losse luidsprekers, zijn Denon en Marantz de aangewezen merken, aangezien zij al jarenlang receivers bouwen die bekendstaan om hun uitstekende decodering van 3D-geluidsformaten.

▼ Volgende artikel
The Division-maker ruilt Ubisoft in voor Battlefield Studios
Huis

The Division-maker ruilt Ubisoft in voor Battlefield Studios

Julian Gerighty, de regisseur van de The Division-games bij de Franse ontwikkelaar en uitgever Ubisoft, is vertrokken bij het bedrijf en gaat aan de slag bij concurrent Electronic Arts, om precies te zijn bij Battlefield Studios.

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.

Gerighty heeft jarenlang gewerkt bij Ubisoft-studio Massive Entertainment. Hij was een van de regisseurs van The Division en vervolg The Division 2, en nam de regie voor Star Wars Outlaws helemaal op zich. In 2023 werd hij uitgeroepen tot de producent van de gehele The Disivion-reeks.

Gerighty gaat aan de slag bij Battlefield Studios, de ontwikkelaar van Electronic Arts die - de naam zegt het al - verantwoordelijk is voor de Battlefield-reeks. Afgelopen jaar is er nog een nieuw deel in die populaire shooterserie uitgekomen. Battlefield 6. Het is niet bekend wat zijn rol daarin precies wordt.

The Division

Ubisoft en Massive Entertainment werken ondertussen aan The Division 3. In de The Division-games werken spelers samen in teamverband om het tegen vijandelijke, computergestuurde facties op te nemen in Amerikaanse steden die uiteen zijn gevallen nadat een dodelijke pandemie om zich heen heeft geslagen. De eerste The Division speelde zich in New York City af, het vervolg in Washington D.C.

Over de derde The Division-game is nog weinig bekend. Ubisoft heeft echter geprobeerd fans gerust te spellen. "We gaan (Gerighty) missen en we blijven de wereld die hij mede heeft gecreëerd nog jaren naar spelers brengen. Onze spelers hoeven zich geen zorgen te maken: onze teams die deze wereld samen met Julian hebben opgebouwd zijn er nog steeds, en zullen deze vooruit dragen met onveranderde ambitie in de vorm van The Division 2, The Division 2: Survivors, The Division Resurgence The Division 3."

Ubisoft heeft ook laten weten dat Yannick Banchereau en Mathias Karlson aan The Division blijven werken. Massive-oudgediende Magnus Jansen gaat werken aan de Survivors-update voor The Division 2 die eerder is aangekondigd en later dit jaar moet verschijnen.

Ontslagen

Overigens werd eerder deze week een herstructurering van Massive Entertainment aangekondigd, waarbij mogelijk tientallen werknemers hun baan kunnen verliezen. Het is niet bekend of het vertrek van Gerighty daar direct aan is gekoppeld, maar dat lijkt onwaarschijnlijk.

View post on X