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
Hoor het verschil met de nieuwe Fresh 'n Rebel Clam Ace 2
© Fresh ’n Rebel
Huis

Hoor het verschil met de nieuwe Fresh 'n Rebel Clam Ace 2

Fresh 'n Rebel introduceert de Clam Ace 2, een draadloze over-ear koptelefoon die technologie en comfort slim samenbrengt. Hij klinkt niet alleen goed, maar past zich ook aan jou aan. Met gepersonaliseerd geluid, intelligente noise cancelling en een batterij die het moeiteloos meerdere dagen volhoudt is dit een koptelefoon die meebeweegt met jouw dag.

Partnerbijdrage - in samenwerking met Fresh 'n Rebel

Stilte wanneer jij dat wilt

Of je nu werkt, reist of ontspant: de Clam Ace 2 helpt je de juiste focus te vinden. Dankzij Adaptive Hybrid Active Noise Cancelling bepaal je zelf hoeveel van de wereld je hoort. De technologie filtert storend geluid weg, en jij bepaalt zelf hoeveel daarvan je wilt dempen. In de My Sound App stel je het niveau eenvoudig bij, afhankelijk van waar je bent – op kantoor, in de trein of thuis op de bank. Zo houd je zelf de controle over wat je wel en niet hoort.

Met de Ambient Sound Mode blijf je alert op wat er om je heen gebeurt. Het omgevingsgeluid wordt subtiel versterkt, zodat je bijvoorbeeld het verkeer hoort of iemand kort kunt aanspreken. De Quick Access-functie maakt het extra handig: houd kort de linkeroorschelp ingedrukt en je schakelt direct over naar hear-through, zonder instellingen te veranderen.

©Fresh ’n Rebel

Geluid dat zich aan jou aanpast

Iedereen hoort anders, en dat merk je pas echt met Personal Sound by Audiodo. Deze technologie, geïntegreerd in de My Sound App, meet met een gehoortest hoe goed jij verschillende frequenties waarneemt. Op basis daarvan wordt een geluidsprofiel aangemaakt dat de muziek afstemt op jouw gehoor. De lage tonen worden iets krachtiger waar nodig, de hoge juist helderder. Zo klinkt elke noot precies goed!

De app geeft bovendien volledige controle over je instellingen. Je kunt de equalizer aanpassen, knoppen een eigen functie geven, het volume begrenzen of batterijbesparing activeren. Alles in één overzichtelijke interface.

©Fresh ’n Rebel

Schakelen zonder onderbreking

De Clam Ace 2 ondersteunt Multipoint Bluetooth, waarmee je twee apparaten tegelijk kunt verbinden. Zo kun je moeiteloos wisselen tussen laptop en smartphone. Een inkomend telefoontje aannemen terwijl je muziek luistert of een video bekijkt? De koptelefoon schakelt automatisch over.

Tijdens gesprekken zorgen twee Environmental Noise Cancelling-microfoons dat je stem helder blijft, zelfs in een rumoerige omgeving. En met Wind Noise Cancelling blijft ook buiten het geluid helder, zelfs als het waait. Dankzij on-ear detectie pauzeert de muziek automatisch als je de koptelefoon afzet, en gaat hij verder zodra je hem weer opzet. Met het volumewieltje en de klikbare knop op de oorschelp bedien je muziek, noise cancelling en spraakassistent zonder je telefoon erbij te hoeven pakken.

©Fresh ’n Rebel

Dagenlang luisteren zonder opladen

Een van de grootste pluspunten van de Clam Ace 2 is de speeltijd. Met meer dan 100 uur luisteren op één lading hoef je nauwelijks nog aan opladen te denken. Zelfs met actieve noise cancelling ingeschakeld haal je nog 60 uur speeltijd, en met tien minuten snelladen heb je alweer acht uur muziek. Handig als je vaak onderweg bent.

Het draagcomfort is net zo goed doordacht. De zachte oorkussens vormen zich naar je oren, terwijl de flexibele hoofdband ook bij lange luistersessies prettig blijft zitten. Na gebruik klap je de Clam Ace 2 eenvoudig in en berg je hem op in het meegeleverde tasje.

Kleur en karakter

Fresh 'n Rebel staat bekend om zijn frisse kleuren, en dat zie je terug in de Clam Ace 2. Van subtiel Ice Grey en Storm Grey tot opvallender Dreamy Lilac, Dried Green, True Blue en Pastel Pink – er is altijd een uitvoering die bij je past. Welke kleur je kiest, maakt voor de prijs geen verschil: die is voor elke tint 99,99 euro.

©Fresh ’n Rebel

In het kort: dit zijn de belangrijkste features van de Clam Ace 2

  • My Sound App + Audiodo Personal Sound

  • +100 uur speelduur

  • Adaptive Hybrid Active Noise Cancelling

  • Multipoint Bluetooth (verbind 2 apparaten tegelijkertijd)

  • Ambient Sound Mode met Quick Access

Dit maakt de Clam Ace 2 bijzonder

De Clam Ace 2 past zich aan jou aan. Hij filtert storend geluid weg, stemt het geluid af op jouw gehoor met Personal Sound by Audiodo en houdt het moeiteloos dagenlang vol. Een slimme koptelefoon die meedenkt, comfortabel zit en altijd klaarstaat. Zoals het hoort. Zoals jíj het hoort!

▼ Volgende artikel
Waar voor je geld: 5 platenspelers met klep voor minder dan 275 euro
© © Przemek Klos
Huis

Waar voor je geld: 5 platenspelers met klep voor minder dan 275 euro

In de rubriek Waar voor je geld gaan we op zoek naar bijzondere producten voor een mooie prijs. Vinyl is de laatste jaren weer helemaal terug, maar die kun je natuurlijk alleen afspelen op een platenspeler. Wij vonden vijf interessante modellen voorzien van een stofklep, voor minder dan 275 euro.

Platenspelers worden steeds vaker aangeboden, en ook op Kieskeurig.nl zien we ze meer en meer in de verschillende aangesloten webshops. Wij vonden vijf mooie exemplaren voor je die ook nog eens zijn voorzien van een klep om het mechanisme en je platen te beschermen tegen stof.

Sony PS-LX310BT

De Sony PS-LX310BT is een volautomatische platenspeler. Dit betekent dat je met een druk op de knop de arm naar de plaat kunt bewegen om het afspelen te starten. Aan het einde van de plaat keert de arm automatisch terug naar zijn beginpositie. De speler is aangedreven met een snaar. Een kenmerkende functie is de ingebouwde Bluetooth-zender, waarmee je het geluid van je vinyl draadloos kunt doorsturen naar een Bluetooth-speaker, -soundbar of -hoofdtelefoon.

Mocht je de voorkeur geven aan een bekabelde opstelling, dan kan dat ook via de RCA-uitgang. De platenspeler heeft een ingebouwde phono-voorversterker. Dit maakt het mogelijk om de speler direct aan te sluiten op een versterker of actieve luidsprekers die geen speciale phono-ingang hebben. De aluminium draaischijf is ontworpen om trillingen te minimaliseren en een stabiele rotatie te waarborgen. De meegeleverde stofkap beschermt de plaat en de naald tegen stof.

Lenco L-3808

Bij de Lenco L-3808 heb je te maken met een direct aangedreven platenspeler, wat inhoudt dat de motor de draaischijf direct aandrijft zonder tussenkomst van een snaar. Dit zorgt voor een snelle start- en stoptijd. Een bijzondere eigenschap is de USB-aansluiting. Hiermee kun je de platenspeler verbinden met een computer om je vinylplaten te digitaliseren.

Verder beschikt dit model over een ingebouwde phono-voorversterker, die je naar wens kunt in- of uitschakelen. Hierdoor kun je hem aansluiten op een breed scala aan audiosystemen, zowel met als zonder specifieke phono-ingang. De arm is S-vormig en voorzien van een afneembare headshell, wat het wisselen van het element vereenvoudigt. De aanwezigheid van pitch control geeft je de mogelijkheid om de afspeelsnelheid handmatig fijn te stellen. Een doorzichtige stofkap houdt stof op afstand.

Audio-Technica AT-LP60XBT

De Audio-Technica AT-LP60XBT functioneert als een volautomatische, snaaraangedreven platenspeler. Het bedieningsgemak staat hierbij centraal: met knoppen voor start en stop kun je het afspeelproces eenvoudig beheren. De arm plaatst zichzelf op de groef en keert na afloop van de plaat vanzelf weer terug. Net als de Sony beschikt dit model over een geïntegreerde Bluetooth-functionaliteit. Dit maakt het mogelijk om draadloos verbinding te maken met maximaal acht verschillende Bluetooth-apparaten, zoals luidsprekers of een koptelefoon.

Voor een standaard opstelling is er een RCA-uitgang beschikbaar. De ingebouwde phono-voorversterker is uitschakelbaar, waardoor je de keuze hebt tussen aansluiting op een phono- of een lijningang van je versterker. De draaischijf is vervaardigd uit gegoten aluminium. Het meegeleverde element is een Dual Magnet-cartridge met een vervangbare naald. De stofkap is scharnierend en afneembaar.

Denon DP-29F

Dit model, de Denon DP-29F, is een snaaraangedreven en volautomatische platenspeler. Je bedient de speler met de start- en stopknoppen, waarna de toonarm automatisch naar het begin van de plaat beweegt en aan het einde weer terugkeert. Een belangrijk kenmerk is de ingebouwde, inschakelbare RIAA phono-equalizer. Dankzij deze voorversterker kun je de DP-29F direct aansluiten op een versterker of receiver via een standaard AUX- of lijningang, zonder dat een aparte phono-ingang nodig is.

De draaischijf is gemaakt van gegoten aluminium en de platenspeler wordt geleverd met een MM-element (Moving Magnet), zodat je na het aansluiten direct kunt beginnen met luisteren. Het geheel wordt beschermd door een stofkap die het mechanisme en je platen vrijhoudt van stof en vuil.

Lenco LBT-188

Ook deze Lencois uitgerust met een snaaraandrijving. Een opvallende functie van dit model is de ingebouwde Bluetooth-zender. Hiermee heb je de mogelijkheid om het geluid van je vinylplaten draadloos te streamen naar een compatibele Bluetooth-luidspreker of -hoofdtelefoon. Daarnaast is de platenspeler voorzien van een USB-aansluiting, waarmee je hem aan een computer kunt koppelen. Dit stelt je in staat om je platencollectie te digitaliseren.

De Lenco LBT-188 beschikt over een geïntegreerde phono-voorversterker, wat betekent dat je hem direct kunt aansluiten op de aux-ingang van vrijwel elke versterker of set actieve speakers. De toonarm is voorzien van een instelbaar contragewicht voor een nauwkeurige naalddruk. Het geheel wordt geleverd met een afneembare, doorzichtige stofkap die de draaitafel en de plaat beschermt.