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
Review Teufel Airy Sports TWS 2 – Perfect zittende oordopjes voor actievelingen
© Maikel Dijkhuizen
Huis

Review Teufel Airy Sports TWS 2 – Perfect zittende oordopjes voor actievelingen

Teufel komt met een nieuwe generatie van zijn Airy Sports TWS. Deze tweede versie is beschikbaar in meerdere kleuren en voorzien van een hogere IP-classificatie (IPx4). Een andere verbetering is dat je in een mobiele app naar eigen wens de audio-instellingen kunt aanpassen. Maar de opvallendste vernieuwing is de toevoeging van noise cancelling. Tijd voor een praktijktest.

Uitstekend
Conclusie

Als je van de noise cancelling-functie geen wonderen verwacht, is de Teufel Airy Sports TWS 2 een interessant product voor actievelingen. Tijdens het wandelen, hardlopen, fitnessen en fietsen blijven de oordopjes goed zitten. Fijn is dat je tijdens al die activiteiten muziek, podcasts en luisterboeken makkelijk kunt bedienen via de aanraakpaneeltjes. Ten slotte is ook de audiokwaliteit dik in orde. Al met al vinden we de adviesprijs van 119,99 euro voor dit kwalitatieve setje in-ears gerechtvaardigd.

Plus- en minpunten
  • Diverse maten oordopjes
  • In-ears blijven goed zitten
  • Hoog draagcomfort
  • Spatwaterbestendig
  • Prettige bediening
  • Duidelijke handleiding
  • Prima audiokwaliteit
  • Equalizerinstellingen aanpassen in app
  • Goede prijs-kwaliteitverhouding
  • Korte usb-c-kabel
  • Matige noise cancelling-functie
CategorieSpecificatie
Formaat audiodrivers10 millimeter (fullrange driver)
AccucapaciteitIn-ears 2× 60 mAh, oplaadcase 750 mAh
IP-classificatieIPx4 (spatwaterdicht)
Beschikbare kleurenZwart, grijs, groen, blauw
Inbegrepen accessoiresOplaadcase, usb-c-oplaadkabel, 5 maten oordopjes

De Berlijnse audiospecialist heeft aan het uiterlijk van de Teufel Airy Sports TWS 2 niet veel veranderd. Het door ons geteste zwarte model bevat aan de buitenzijde van elk oordopje een iets onopvallender Teufel-logo. Daarnaast zijn de oorhaken iets korter en zitten de magneetpunten op een andere plek. Via deze magneetpunten laden de ingebouwde accu's op. De opbergcase heeft zelf ook een accu met een capaciteit van 750 mAh. Die kun je met de inbegrepen usb-c-kabel bijladen. Helaas is dit snoertje met een lengte van nog geen dertig centimeter erg kort.

©Maikel Dijkhuizen

Naast de in-ears levert de fabrikant een oplaadcase, usb-c-kabel, handleiding en vijf maten oordopjes mee.

Draagcomfort

Elk oor is anders en dat begrijpt Teufel maar al te goed. Het merk levert maar liefst vijf setjes siliconen oordoppen mee. Je verwisselt ze eenvoudig, waardoor iedere persoon de juiste pasvorm kan kiezen. Nadat je de Airy Sports TWS 2 aan een bluetooth-bron hebt gekoppeld, haal je de in-ears uit de oplaadcase. Dankzij de flexibele oorhaken blijven de oordoppen prima op hun plek zitten. Ook tijdens het sporten zitten de luisterapparaatjes als gegoten, want de in-ears gaan bij lichamelijke inspanning niet wiebelen. Wegens de prettige pasvorm en het lichte gewicht voel je amper dat je ze in hebt.

©Maikel Dijkhuizen

Dankzij de IPx4-gecertificeerde behuizing kun je de Airy Sports TWS 2 ook bij slecht weer gebruiken.

Bediening

Voor de bediening beschikken beide in-ears aan de buitenzijde over een aanraakpaneeltje. De werking is even wennen, want de linker- en rechterkant herbergen verschillende functies. Tik bijvoorbeeld aan de rechterkant tweemaal om een liedje te skippen en tik links twee keer om naar het vorige liedje te gaan. Je drukt tijdelijk op de behuizing om het volume te wijzigen. Met driemaal tikken kun je de transparantiemodus (links) of noise cancelling (rechts) activeren. Tot slot neem je simpel inkomende gesprekken aan, waarna je handsfree kunt bellen. Zodra je alle functies eenmaal onder de knie hebt, voelt de bediening intuïtief aan. De bijgevoegde handleiding bevat voor alle beschikbare opties duidelijke instructies.

Geluidskwaliteit

De Airy Sports TWS 2 levert zowel op lage als hoge volumes een helder geluid. Muziek klinkt erg levendig waarbij luisteraars een duidelijk stereobeeld kunnen horen. Vrouwelijke en mannelijke stemmen zijn duidelijk te verstaan, waardoor je podcasts, audioboeken en radio-uitzendingen moeiteloos kunt volgen. De in-ears sluiten je oren namelijk goed af van de omgeving. Daarnaast kun je natuurlijk noise cancelling inschakelen, maar deze functie zorgt slechts voor een bescheiden demping van de lage tonen in jouw omgeving. Je hoort omringende geluiden hierdoor een fractie zachter.

Met de standaardinstellingen laten de bassen zich niet zo nadrukkelijk gelden. Vind je een diepere laagweergave prettig, dan loont het de moeite om de Teufel Go-app te installeren. Kies vervolgens de geluidsinstelling Bass Boost en ervaar een steviger geluid. Overigens zijn er nog meer audio-opties beschikbaar, namelijk Podcast, Techno, Pop, Treble boost, Rock en Klassiek. Bovendien pas je de equalizerinstellingen eventueel handmatig aan. Kortom, genoeg mogelijkheden om het geluid naar je hand te zetten.

Gebruikers kunnen in de app ook nog noise cancelling of de transparantiemodus activeren. Laatstgenoemde functie laat geluid van buitenaf door, zodat je tijdens het luisteren soepel een gesprek kunt voeren. Verder toont de app de resterende batterijcapaciteit van elk oordopje en de huidige firmware-versie. Als er een nieuwe software-update verschijnt, kun je die meteen installeren.

©Maikel Dijkhuizen

Pas in de Teufel Go-app het geluid naar eigen smaak aan.

Teufel Airy Sports TWS 2 kopen?

Als je van de noise cancelling-functie geen wonderen verwacht, is de Teufel Airy Sports TWS 2 een interessant product voor actievelingen. Tijdens het wandelen, hardlopen, fitnessen en fietsen blijven de oordopjes goed zitten. Fijn is dat je tijdens al die activiteiten muziek, podcasts en luisterboeken makkelijk kunt bedienen via de aanraakpaneeltjes. Ten slotte is ook de audiokwaliteit dik in orde. Al met al vinden we de adviesprijs van 119,99 euro voor dit kwalitatieve setje in-ears gerechtvaardigd.

▼ Volgende artikel
Home Alone- en The Last of Us-actrice Catherine O'Hara overleden
Huis

Home Alone- en The Last of Us-actrice Catherine O'Hara overleden

Catherine O'Hara, de actrice die onder andere bekend is van haar rol in de eerste twee Home Alone-films, is op 71-jarige leeftijd overleden.

Ze kwam in haar huis te Los Angeles te overlijden na een korte ziekte. Het internet stond gisteren vol met mooie herinneringen aan O'Hara van collega-acteurs en anderen uit het acteervak.

De Canadees-Amerikaanse actrice was vooral bekend om haar rol als moeder van hoofdpersonage Kevin McCallister in de eerste twee Home Alone-films. Ook haar rol als Delia Deetz in de gotische Tim Burton-film Beetlejuice was bekend.

De laatste jaren kreeg O'Hara's carrière een tweede leven dankzij haar rol in de sitcom Schitt's Creek, alsmede in het vervolg op Beetlejuice. Daarnaast had ze rollen in recente series als The Last of Us en The Studio.

View post on X
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.