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
Help, de deur van mijn wasmachine gaat niet open! Wat nu?
© StockPhotoPro - stock.adobe.com
Huis

Help, de deur van mijn wasmachine gaat niet open! Wat nu?

Blijft de deur van je wasmachine dicht, ook al is het programma afgelopen, en krijg je hem niet open? Dat probleem komt vaak voor en heeft meestal een eenvoudige oorzaak. In dit artikel noemen we vijf redenen waarom de deur niet opengaat en wat je zelf kunt doen om dat snel en veilig op te lossen.

In dit artikel ontdek je:
  • Waarom de deur van je wasmachine soms geblokkeerd blijft
  • Welke eenvoudige stappen je zelf kunt nemen om de deur te openen
  • Hoe je de noodontgrendeling gebruikt als niets anders werkt
  • Wanneer er sprake is van een defect slot en je een monteur nodig hebt
  • Praktische tips om dit probleem in de toekomst te voorkomen

Ook interessant: Slimmer wassen: deze functies maken je wasmachine nét even handiger

Het komt vaker voor dan je denkt: de wasmachine is klaar, maar de deur weigert open te gaan. Lastig, zeker als je schone was nog nat in de trommel ligt. Gelukkig is er meestal geen reden tot paniek. Vaak ligt het aan een simpele oorzaak die je zelf kunt oplossen.

1 - Water in de trommel

De meest voorkomende boosdoener is achtergebleven water. Zolang er water in de machine zit, blijft de deur bewust op slot om lekkage te voorkomen. Zie je nog water in de trommel? Start dan opnieuw het afvoerprogramma. Werkt dat niet, maak dan het filter onderin schoon en laat via het slangetje of de opening het restwater weglopen. Vaak schiet de deur daarna vanzelf los.

2 - Het kinderslot is ingeschakeld

Sommige modellen hebben een kinderslot of extra beveiliging. Staat dit ingeschakeld, dan blijft de deur dicht, ook al is het programma afgerond. Controleer in de handleiding hoe je het slot uitschakelt. Meestal gaat het om een combinatie van knoppen op het display. Pas als dit is gedeactiveerd, kun je de deur openen.

©Engin Akyurt

Zie je nog water in de trommel? Start dan opnieuw het afvoerprogramma.

3 - Elektronische vertraging of reset

Bij veel moderne machines zit er enkele minuten vertraging tussen het einde van het programma en het ontgrendelen van de deur. Even wachten kan dus al genoeg zijn. Blijft de deur toch op slot, haal de stekker er een paar minuten uit en sluit hem opnieuw aan. Zo wordt de elektronica gereset en komt de deur vaak alsnog vrij.

4 - Handmatige noodontgrendeling

Lukt het nog steeds niet, dan is er vaak een handmatige oplossing. De meeste wasmachines hebben een noodontgrendeling, meestal te vinden achter het klepje bij het filter of onderaan de machine. Door hier voorzichtig aan te trekken, kun je de deur veilig openen zonder schade. Raadpleeg de handleiding voor de exacte plek en werkwijze.

5 - Defecte vergrendeling

Als geen van deze stappen helpt, kan de vergrendeling zelf kapot zijn. Dit onderdeel slijt met de tijd en kan uiteindelijk defect raken. Soms helpt het tijdelijk om de machine spanningsvrij te maken, maar blijft de deur gesloten, dan is vervanging van het slot nodig. Dit is werk voor een monteur.

Problemen voorkomen

Met goed onderhoud voorkom je veel ellende. Maak filter en afvoer regelmatig schoon zodat de machine altijd goed leegloopt. Zet de wasmachine pas uit als het programma volledig is afgerond en controleer of er geen kledingstukken klem zitten tussen deur en rubber. Draai af en toe een lege was op hoge temperatuur met een reinigingsmiddel of wat azijn, zodat zeepresten en vuil zich niet ophopen en het deurslot soepel blijft werken.

Wanneer moet je hulp inschakelen?

Blijft de deur hardnekkig dicht of merk je andere signalen, zoals vreemde geluiden of een brandlucht, stop dan direct met zelf proberen. Forceren kan schade veroorzaken. In dat geval is het verstandig een monteur te bellen.

Een geblokkeerde deur hoeft in elk lang niet altijd een groot probleem te zijn. Vaak is een eenvoudige reset, het verwijderen van restwater of het uitschakelen van het kinderslot al genoeg. Lukt het niet, dan kan de noodontgrendeling of een monteur uitkomst bieden. Met regelmatig onderhoud en een beetje oplettendheid verklein je de kans dat je opnieuw voor een gesloten deur staat.

▼ Volgende artikel
Wat is Liquid Glass? Alles over instellen en aanpassen op je iPhone
© Apple
Huis

Wat is Liquid Glass? Alles over instellen en aanpassen op je iPhone

Liquid Glass is een nieuwe manier waarop Apple de vormgeving van knoppen, tabbladen, iconen en widgets neerzet. Alles krijgt een glasachtige uitstraling: halfdoorzichtig en met kleuren die meekomen uit je wallpaper of de inhoud van een app. Het reageert bovendien vloeiend op beweging, omdat het beeld steeds in realtime wordt opgebouwd. Zo ontstaat een herkenbare stijl die op al je Apple-apparaten hetzelfde aanvoelt.

In dit artikel lees je wat Apple's nieuwe Liquid Glass precies is en wat het doet. We laten zien hoe je de instellingen aanpast, het effect naar smaak bijstelt en wat je kunt doen als je het rustiger wilt houden.

Lees meer over iOS 26

Op je iPhone zie je Liquid Glass meteen terug in het toegangsscherm, het Dock, de zoekbalk en appmappen. Iconen ogen daarbij gelaagd en glanzend of zelfs helemaal doorzichtig. Wil je dat proberen, houd dan je beginscherm ingedrukt tot de iconen bewegen, tik op Wijzig, kies Pas aan en zet Helder aan. Tik daarna ergens op het scherm om te bevestigen. Je ziet direct hoe de achtergrond subtiel door de iconen heen komt. Vind je het toch minder prettig, dan kun je op dezelfde plek altijd terug naar Automatisch of Donker.

Op welke toestellen en vanaf welke versie?

Liquid Glass is onderdeel van iOS 26, dat vanaf 15 september beschikbaar is voor alle ondersteunde iPhones. Extra downloads zijn niet nodig. Apple geeft aan dat iPhone 11 en iPhone SE (2e generatie) en nieuwer worden ondersteund.

Wil je nagaan of jouw toestel in aanmerking komt, open Instellingen, kies Algemeen en tik op Software-update. Zie je iOS 26 staan, dan kun je meteen bijwerken. Maak vooraf een back-up en update je apps. Voer de update bij voorkeur uit via wifi en zorg dat de batterij minstens halfvol is, of sluit je iPhone aan op de oplader. Wil je controleren of de installatie geslaagd is, ga dan in Instellingen naar Algemeen, open Info en bekijk het versienummer.

Ook iPadOS 26 en macOS Tahoe 26 ondersteunen Liquid Glass, zodat de uitstraling op je iPad en Mac aansluit bij die van je iPhone. Apple heeft dezelfde stijl bovendien doorgetrokken naar watchOS en tvOS, waardoor al je apparaten er herkenbaar en consistent uitzien.

©Apple

Zo maak je Liquid Glass rustiger

Liquid Glass helemaal uitschakelen kan niet, maar je kunt het effect wel verzachten. Open Instellingen, tik op Toegankelijkheid, kies Weergave en tekstgrootte en zet Maak minder doorzichtig aan. Achtergronden worden dan donkerder, waardoor contrast en leesbaarheid verbeteren zonder dat de glaslook verdwijnt.

Wil je nog meer verschil zien, zet op dezelfde pagina ook Verhoog contrast aan. Voor een snelle manier ga je in Instellingen naar Toegankelijkheid, open je Activeringsknop en vink je Maak minder doorzichtig aan. Je kunt de functie dan via het bedieningspaneel eenvoudig aanpassen.

Vind je vooral de transparante iconen te overheersend, houd dan opnieuw je beginscherm ingedrukt, tik op Wijzig, kies Pas aan en ga terug naar Automatisch of Donker. Donkere achtergronden en de Donkere modus (te vinden bij Beeldscherm en helderheid) dempen het glaseffect eveneens, bijvoorbeeld buiten in fel zonlicht. Zo houd je in elke situatie zelf de regie over hoe nadrukkelijk Liquid Glass aanwezig is.

Hoesje nodig

Voor je iPhone 17?