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 L’OR Barista Absolu – Overzichtelijk, maar ijskoffie moet je zelf maken
© Versuni
Huis

Review L’OR Barista Absolu – Overzichtelijk, maar ijskoffie moet je zelf maken

Met de L'OR Barista Absolu zet je thuis zowel warme als gekoelde koffie, om er naar eigen recept ijskoffie van te maken. In deze review bespreken we gebruiksgemak, smaak en consistentie, of de Enjoy Over Ice-stand en Intensity Boost echt verschil maken én of het prijskaartje van 129 euro (adviesprijs) dat waard is.

Goed
Conclusie

De Barista Absolu is een gebruiksvriendelijke, compacte koffiemachine met een stijlvol design. De bediening is eenvoudig en de resultaten zijn betrouwbaar. De speciale ijskoffiefunctie is echter weinig overtuigend; wie daarvan houdt, kan net zo goed een gewoon kopje koffie laten afkoelen.

Plus- en minpunten
  • Eenvoudige bediening
  • Compact, strak design
  • Weinig foutgevoelig
  • XXL-compatibel
  • IJsfunctie stelt teleur
  • Niet heel snel

Design & bouw

De L’OR Barista Absolu is een compacte koffiemachine die werkt met de welbekende capsules. Hij weegt net geen 3,5 kilo en is 28,3 centimeter hoog, 16,2 centimeter breed en 39,6 centimeter diep. Het testexemplaar is uitgevoerd in matgrijs, met aan de achterzijde een waterreservoir met klepje en handig hengsel, en met een capaciteit van 1,2 liter. Bovenop zit een hendel die je naar boven kunt trekken om de capsule op de juiste plek in de machine te doen; daarachter zitten de bedieningsknoppen.

Aan de voorzijde onder het koffietuitje zit een opvangreservoir dat je los kunt halen. Deze is niet in hoogte te verstellen, maar wel los te halen om er een grote mok onder te zetten; handig bij de XXL-koffies. Als je het hele paneel naar voren trekt, zie je het bakje waar gebruikte capsules in vallen. Kortom: een overzichtelijk apparaat.

©Saskia van Weert

Handleiding & meegeleverde capsules

Er zit geen uitgebreide handleiding bij, alleen een boekje waarin met tekeningen wordt aangegeven hoe de machine werkt. Dat is voldoende duidelijk. Ook zit er bij de testmachine een doosje met tien originele L’OR-XXL-capsules om de machine mee te leren kennen.

©Saskia van Weert

Bediening & opties

De bediening en het aantal opties is eveneens vrij overzichtelijk. De Absolu kan overweg met twee formaten capsules: normaal en XXL. Het apparaat herkent het formaat automatisch, daar hoef je als gebruiker niets voor te doen. Er zitten vijf knoppen op. De drie grotere knoppen zijn voor ristretto, espresso en lungo. Daarachter zitten twee kleinere knoppen: links voor ijskoffie en rechts voor extra sterke koffie.

Wie zin heeft in koffie zorgt voor een gevuld waterreservoir, een capsule op de juiste plek en met een druk op de knop gaat de machine aan de gang. Hij is niet per se supersnel; het zetten van een lungo met een XXL-capsule duurt van het indrukken van de knop tot aan de laatste druppels ruim anderhalve minuut.

©Versuni

Iced coffee in de praktijk

De functie waarmee de Absolu wordt aangeprezen, is de ijskoffie. In de beleving van het testteam zijn dat zoete, vaak calorierijke lekkernijen om lekker van te genieten: een combinatie van koffie, zuivel en bijvoorbeeld karamelsaus. De verwachtingen zijn hooggespannen, maar na het bestuderen van de handleiding worden die toch wel flink getemperd.

Capsules bewaar je niet in het kartonnen doosjes

Houd ze langer vers in een stijlvolle capsulehouder

Wat de machine doet als je de Enjoy Over Ice-knop indrukt en de gewenste hoeveelheid koffie (klein, middel of groot) kiest, is lauwe koffie produceren in een glas of mok waar je zelf eerst ijsklontjes in hebt gedaan. Het voordeel is dat de smaken van de koffie niet worden aangetast door de hitte en dat de koffie extra romig is. Maar je zult zelf aan de slag moeten met toevoegingen en toppings.

©Versuni

Eindoordeel

De Barista Absolu is een gebruiksvriendelijk, compact apparaat met een smaakvol uiterlijk. Hij is beschikbaar in wit, grijs en zwart, en past daardoor prima bij de meeste keukens. Het aantal gebruiksopties is overzichtelijk: ristretto, espresso of lungo in normaal of XXL-formaat, extra sterk of lauw om ijskoffie mee te maken. Er kan eigenlijk niks misgaan tijdens het gebruik. Hij werkt met capsules die na gebruik gemakkelijk worden weggegooid door het opvangbakje in een vuilnisbak te legen.

Ben je een liefhebber van dit type koffie, dan is het een prima apparaat. De functie waarmee hij wordt aangeprezen, namelijk de ijskoffie, stelt helaas teleur. Fijnproevers waarderen waarschijnlijk het behoud van de aroma's door de koffie lauw te zetten, maar als je aan de slag gaat met slagroom en zoete sausjes valt dit voordeel helemaal weg. Speciaal voor de ijskoffie hoef je hem niet te kopen, je kunt even goed je kopje koffie in de koelkast zetten als je zin hebt in een luxe ijskoffie.

▼ Volgende artikel
Veiliger online? Deze (extra) bescherming vind je in Edge
© © Simon Lehmann - PhotoGranary
Huis

Veiliger online? Deze (extra) bescherming vind je in Edge

Naast Chrome is Microsoft Edge een van de populairste webbrowsers. Edge bouwt voort op dezelfde basis als Chrome, maar onderscheidt zich vooral met extra functies voor veiligheid en privacy. Daarmee verklein je de kans dat websites je volgen of gevoelige gegevens onderscheppen.

Lees ook: Alternatieve browsers: surf ook eens op een andere golf

Voorkom tracking

Klik in de rechterbovenhoek op de drie puntjes om het menu te openen. Selecteer Instellingen en kies in de linkerkolom Privacy, zoeken en services. Daar vind je de optie Traceringspreventie. Zorg dat deze bescherming is ingeschakeld. Je kunt kiezen uit drie niveaus van traceringspreventie: Basis, Gebalanceerd en Strikt. Trackers worden meestal gebruikt om je gepersonaliseerde advertenties te sturen, maar ze geven ook andere persoonlijke gegevens door, zelfs aan websites die je nog nooit hebt bezocht. Kies je Basis, dan staat Edge de meeste trackers toe, het andere uiterste is Strikt, dat het merendeel van de trackers blokkeert. De eerste optie lijkt ons niet veilig en Strikt kan ervoor zorgen dat bepaalde websites niet naar behoren werken. Daarom raden we de optie Gebalanceerd aan als standaardinstelling.

Onder deze drie niveaus vind je de lijst van websites waarvan trackers alvast zijn geblokkeerd.

We raden aan om het veiligheidsniveau Gebalanceerd te kiezen.

Scareware-blokker

Sluit het venster Traceringspreventie en open het onderdeel Beveiliging, dat iets lager staat. Daar activeer je de Scareware-blokker. Scareware is een methode waarbij hackers je proberen bang te maken met nepwaarschuwingen. Via deze meldingen stellen ze dan voor om software te downloaden die de zaak kan herstellen of dien je een bepaald nummer te bellen van een zogenaamde Microsoft-helpdesk. Als je de Scareware-blokker activeert, sta je toe dat Microsoft AI gebruikt om dit soort scams te detecteren en te blokkeren.

Schakel zeker de Scareware-blokker in.

Betalingsmethoden

Bij Privacy, zoeken en services / Privacy activeer je ook de optie Niet volgen-verzoeken verzenden. Het effect is afhankelijk van de betreffende website. Websites kunnen beslissen om je browsegegevens toch te blijven verzamelen. Eronder vind je de optie Toestaan dat sites controleren of betalingsmethoden zijn opgeslagen. Hoewel het handig is om je betaalmethoden in een webbrowser op te slaan, raden we dit nooit aan. Ten slotte schakel je bij Privacy, zoeken en services / Privacy de bescherming in: Mogelijk ongewenste apps blokkeren.

Voorkom dat een site kan controleren of de betalingsmethoden zijn opgeslagen.

Geen zin in offline pottenkijkers?

Met een privacyscreen op je laptop kunnen ze niet meekijken