ID.nl logo
Maak een smarthome-dashboard met UIFlow
Huis

Maak een smarthome-dashboard met UIFlow

M5Stack ontwikkelt ESP32-microcontrollerbordjes met behuizing en scherm die je zo in je woonkamer zou kunnen zetten. Het zijn de ideale producten om een dashboard voor je smarthome van te maken. Met UIFlow is dat ook vrij eenvoudig te programmeren, op een grafische manier. Zo hoef je geen kaas gegeten te hebben van programmeercode.

UIFlow is een grafische ontwikkelomgeving voor de producten van M5Stack, ESP32-microcontrollerbordjes met behuizing en scherm. Met UIFlow kun je op een visuele manier een programma opbouwen door blokjes te verslepen, zonder dat je een letter programmeercode hoeft te schrijven. Ook de grafische interface op het scherm kun je zo eenvoudig met drag-and-drop instellen. Op deze manier maken we in deze masterclass een dashboard voor je smarthome.

Hardwarekeuze

UIFlow ondersteunt alleen de hardware van M5Stack, maar gen willekeurig ESP32-microcontrollerbordjes. Het voordeel is dat de drivers van hun eigen producten allemaal ingebouwd zijn. Voor onze toepassing van een smarthome-dashboard kies je een van de M5Stack-producten met ingebouwd scherm.

Ga je voor een klassiek tft-scherm, dan kom je uit bij de M5Stack Core2 of de voorganger M5Stack Core. De Core2 heeft een aanraakscherm, zodat je je slimme producten ook eenvoudig kunt bedienen via het scherm. De Core heeft geen aanraakscherm, maar wel drie fysieke knoppen onder het scherm, waarmee je ook acties in je smarthome kunt aansturen.

Gaat je voorkeur uit naar een e-ink-scherm, dan heeft M5Stack de Core Ink (1,54 inch) en de M5Paper (4,7 inch). Dit laatste product heeft een aanraakscherm met een hoge resolutie van 960 bij 540 pixels, terwijl de Core Ink aan te sturen is via een knop aan de zijkant. Beide e-ink-apparaten zijn voorzien van een batterij en een magneet. Daardoor kun je ze eenvoudig tegen je koelkast of een ander metalen voorwerp bevestigen.

De M5Stack Core Ink is het ideale apparaatje voor een smarthome-dashboard.

UIFlow-firmware installeren

We gaan aan de slag met de Core Ink om de binnen- en buitentemperatuur van ons huis op het e-paperscherm te tonen. Die lezen we via MQTT in. Onder Windows en macOS moet je eerst nog een driver downloaden voor de USB-naar-UART-chip van het apparaatje. Afhankelijk van het model is dat de CP210x of de CH910x. De drivers zijn ook in de downloadsectie van de website van M5Stack te vinden. De Linux-kernel heeft die drivers al ingebouwd.

Na de installatie van de driver (voor de Core Ink is dat de CP2104) heb je ook nog de software nodig om de UIFlow-firmware op je apparaatje te installeren. Dat is M5Burner, en ook deze software vind je op de downloadpagina van M5Stack, zowel voor Windows als macOS en Linux. In M5Burner kies je links je apparaat en rechts klik je bij UIFlow op Download.

Verbind nu je Core Ink via de usb-kabel met je computer en klik op Burn om de firmware naar je apparaat te schrijven. In het volgende venster vul je de SSID en het wachtwoord in van het wifi-netwerk waarmee je het apparaat wilt verbinden, en klik je op Next. Daarna kies je de juiste seriële poort en snelheid, en klik je op Start.

Download de seriële drivers en M5Burner van de website van M5Stack.

UIFlow verkennen

Wanneer de firmware op je apparaatje staat, verbindt het met je wifi-netwerk en toont het een API-sleutel. Bezoek nu de website van UIFlow, vul daar de API-sleutel van je apparaat in en klik op het model Core Ink. Bevestig met OK. Daarna krijg je links een voorstelling van je Core Ink te zien, in het midden een balk met blokjes in allerlei categorieën, en rechts je ‘code’ in Blockly, die initieel alleen uit een blokje Setup bestaat.

Als eerste test kun je een tekst op het scherm van je Core Ink tonen. Sleep uit de zijbalk helemaal links een Label naar het midden van het scherm van je Core Ink. Klik in het midden op UI, op Label en dan op Label label0 show "Hello M5". Dat blokje verschijnt dan op het canvas rechts. Klik het vast onder het blokje Setup. Klik dan onder UI op Screen, vervolgens op Set screen show en klik dit vast onder het vorige blokje. Klik dan helemaal onderaan op Run. Je code wordt nu op de Core Ink uitgevoerd.

En als je op Download klikt, wordt de code definitief als firmware op het bordje geschreven, zodat die na een herstart ook nog blijft draaien. Om je code dan te laten starten in plaats van de UIFlow-programmeermodus, moet je eerst in M5Burner bij UIFlow op Configurate klikken, je poort kiezen en dan bij Start Mode voor App Mode kiezen en op Save klikken. Wil je daarna je apparaatje weer programmeren, zet dit dan terug op Internet Mode.

Toon een tekst op het scherm met ‘programmeercode’ die je gewoon als LEGO-blokjes bij elkaar klikt.

Verbinden met MQTT

Om van de Core Ink een dashboard voor je smarthome te maken, hebben we een manier nodig om aan de data van bijvoorbeeld sensoren te komen. Dat doen we met MQTT. We gaan er hier vanuit dat je al een MQTT-broker zoals Mosquitto hebt draaien op een Raspberry Pi, bijvoorbeeld als add-on in Home Assistant. Houd de gegevens van je MQTT-broker bij de hand.

Klik in UIFlow op Advanced / MQTT en dan op het blok dat begint met set client id. Vul een unieke client ID in en dan de gegevens voor de server, zoals de hostname, het poortnummer, de gebruikersnaam en het wachtwoord. Verwijder het blokje van het label door erop te klikken en op Delete te drukken. Klik het MQTT-blok dan onder de Setup vast, voeg daaronder nog een blokje mqtt start toe en daaronder Set screen show. Als je deze code op je Core Ink draait, zou je in de logs van Mosquitto iets moeten zien als:

"New client connected from 192.168.0.215:58048 as Core Ink (p2, c1, k300, u'home')."

MQTT-onderwerp

We willen nu dat de Core Ink een sensorwaarde toont die binnenkomt op een specifiek MQTT-onderwerp. Dat doe je door een blokje Advanced / MQTT / mqtt subscribe toe te voegen. Dit klik je niet aan de rest van je blokjes vast, maar staat los daarvan. Vul het MQTT-onderwerp tussen de aanhalingstekens in.

Binnen dit blokje vind je de gegevens die op het gegeven MQTT-onderwerp worden ontvangen in de variabele topic_data. We gaan die waarde eerst in een variabele steken. Klik op Variables / Create variable, noem die bijvoorbeeld buitentemperatuur en klik op OK. Sleep Set buitentemperatuur to in het MQTT-blokje en plak daarachter het blokje Advanced / MQTT / get topic_data.

Temperatuur tonen

Dan rest ons nu nog om de temperatuur te tonen in een label. Omdat we met een e-ink-scherm werken mogen we het scherm niet te snel na elkaar verversen. Dat is de reden waarom we niet in het blok mqtt subscribe onmiddellijk de temperatuur op het scherm tonen, want sommige sensoren sturen elke seconde een nieuwe waarde via MQTT.

Daarom maken we een lus aan die elke minuut het label aanpast. Sleep de lus uit Event / Loop achter mqtt start en verwijder het blokje Set screen show dat er eerst stond. Voeg in de lus het blokje UI / Label / Label show toe. Vervang het blokje met de standaardtekst "Hello M5" door het blokje Variables / buitentemperatuur. Voeg dan het blokje Screen / Set screen show onder het label toe en daaronder Timer / Wait 1 s. Vervang de 1 door 60 voor een update elke minuut.

Update het scherm elke minuut met de buitentemperatuur.

Meerdere interface-elementen

We zijn begonnen met één label, maar we willen uiteraard meerdere sensorwaardes tonen. Gelukkig kun je de interface eenvoudig uitbreiden. Sleep uit de linkerzijbalk een Title, drie keer een Label en één keer een Line naar het scherm van de Core Ink. Je hebt nu vier labels: twee voor sensorwaardes en twee voor een begeleidende tekst. Met de lijn delen we het scherm op in twee vakken.

Sleep naar elke hoek van het scherm (linksboven, rechtsboven, linksonder en rechtsonder) een label. De exacte locatie pas je dadelijk aan. Klik dan op de lijn. Vul achtereenvolgens voor X1, Y1, X2 en Y2 de coördinaten 0, 110, 200 en 110 in. Dat levert een horizontale lijn op die ongeveer het midden van het scherm van 200 bij 200 pixels doorkruist. Klik op het kruisje om de eigenschappen van de lijn te verlaten.

Positioneer de lijn in het midden van het scherm.

Tekst aanpassen

Klik op elk van de labels om hun eigenschappen aan te passen. Het label linksboven geef je de tekst Buiten en lettertype DejaVuSans 18. Het label rechtsboven geef je hetzelfde lettertype. Het label linksonder geef je de tekst Binnen en ook hetzelfde lettertype. Dit lettertype ken je ook aan het label rechtsonder toe. De tekst van de labels rechtsboven en rechtsonder maakt niet uit: die gaat ons programma vervangen door de sensorwaardes. Ook bij de titel laten we de tekst door het programma aanpassen.

Laten we eerst de tekst van de titel aanpassen naar de huidige tijd. Daarvoor ga je naar Advanced / NTP en sleep je het blokje getiteld Init ntptime with host "cn.pool.ntp.org" and timezone 8 naar je canvas. Plaats het tussen Setup en de initialisatie van MQTT. Verander de host naar een server die zich dichterbij bevindt, zoals nl.pool.ntp.org, en verander de tijdzone naar 2. Sleep dan uit UI / Title het blokje Title title0 show "Title" en vervang de aanduiding "Title" door het blokje Get date format with "-" and time format with ":" uit Advanced / NTP. Sleep dan dit titelblokje binnen je lus, vóór het blokje dat je label toont.

Met een titel, labels en lijn bouw je eenvoudig je gebruikersinterface op.

JSON inlezen

Als je nu nog de buitentemperatuur op het juiste label toont en deze code op je Core Ink draait, krijg je in de titelbalk de huidige datum en tijd te zien, en in het bovenste gedeelte de buitentemperatuur. Nu kunnen we in het onderste gedeelte nog een andere temperatuur tonen als we daarvoor een extra variabele aanmaken die we in een ander mqtt-subscribe-blok een waarde geven. Dat blok kan ook complexer zijn, bijvoorbeeld als de MQTT-boodschap in JSON-formaat is (zie ook het kader ‘JSON’).

Maak daarvoor twee variabelen aan: één om de JSON-string in op te slaan (binnenjson), en één om de binnentemperatuur in op te slaan (binnentemperatuur). Voeg dan in een nieuw blok mqtt subscribe met het juiste MQTT-onderwerp het blok Variables / Set binnenjson to toe en vul het ontbrekende slot met JSON / loads json. In het ontbrekende slot van dit laatste plaats je Advanced / MQTT / get topic_data. Op deze manier lees je de MQTT-boodschap als JSON-structuur in en zet je die om naar een ‘map’ die je aan de variabele binnenjson toekent.

Waardes uit JSON halen

Voeg na dit blok dat de JSON-structuur inleest een blok Variables / set binnentemperatuur to toe en vul het ontbrekende slot met Map / get key … in map …. Na get key voeg je Text / " " toe en daar vul je de sleutel in waarin de temperatuurwaarde zit, zoals tempc. Na in map voeg je Variables / binnenjson toe.

Deze opdracht haalt dus de waarde van de sleutel tempc uit de map die de JSON-structuur bevat en kent deze toe aan de variabele met de binnentemperatuur. Als je nu in je lus ook de binnentemperatuur aan het juiste label toekent, zal je apparaatje elke minuut niet alleen de buitentemperatuur maar ook de binnentemperatuur updaten. Vergeet overigens niet je code op te slaan met het icoontje bovenaan rechts, zodat je hem later opnieuw kunt inladen en aanpassen.

Onze volledige UIFlow-code bestaat uit deze blokken.

JSON

JSON (JavaScript Object Notation) is een dataformaat dat zowel voor software als voor mensen eenvoudig is om aan te maken en te lezen. Er zijn twee basiscomponenten in JSON. De eerste is de collectie van paren naam/waarde. Zo’n JSON-code ziet er bijvoorbeeld als volgt uit: {"id":"16:2A:04:CE:19:72","rssi":-52}. Die heeft dus de naam id met waarde 16:2A:04:CE:19:72 en de naam rssi met waarde -52. De tweede basiscomponent is de lijst van waardes. Een waarde in een collectie kan immers ook een lijst van waardes zijn, die tussen rechte haken staat. Zo heeft het volgende voorbeeld de naam identifiers als waarde een lijst met drie strings: {"identifiers":["56847C365278","41CED86E4798","216B02CA25A5"]} Wil je meer weten over de exacte regels voor JSON-data, bekijk dan de website van JSON (www.json.org).

Meer blokjes

In deze masterclass hebben we maar een beperkt aantal blokjes geïntroduceerd om een eenvoudig dashboard voor je smarthome te maken. Maar UIFlow heeft nog veel meer types blokjes met allerlei mogelijkheden. Zo vind je onder Event de mogelijkheid om op het drukken op de knoppen van je Core Ink te reageren. Zo zou je een bericht naar je MQTT-broker kunnen verzenden (Advanced / MQTT / publish topic) als je de knop aan de zijkant naar boven of onder drukt.

En in de categorie Hardware krijg je dan weer toegang tot allerlei hardwarefunctionaliteit. Je spreekt hier de luidspreker aan, leds, batterij, GPIO-pinnen, UART, I²C, wifi enzovoort, afhankelijk van het model van je M5Stack-apparaat. En als je units en hats op je apparaat hebt aangesloten, vind je die functionaliteit in de gelijknamige categorieën.

De Core Ink heeft talloze hardwarematige uitbreidingsmogelijkheden die ook met UIFlow aan te sturen zijn.

Programmeren in blokjes

Onder Advanced vind je ook de mogelijkheid om een http-aanvraag te doen. Je geeft daarbij een methode, url, headers en data op en vult de blokjes in die bepalen wat er gebeurt bij het slagen of falen van de aanvraag. Je kunt ook meer low-level netwerkcommunicatie uitvoeren door een UDP-server of UDP-client op te zetten.

Ook van de echte programmeerconcepten hebben we nog niet veel getoond. Er zijn allerlei blokjes voor wiskundige berekeningen, diverse soorten lussen en vergelijkingen. Je kunt ook teksten manipuleren en met lijsten werken. En je kunt zelfs een functie in een afzonderlijk blok definiëren, die je dan in andere blokjes kunt oproepen. Blockly geeft je dus krachtige grafische programmeermogelijkheden.

MicroPython

Ook krachtig aan UIFlow is dat je Blockly-code onderliggend in MicroPython wordt omgezet, een lichtgewichtversie van de programmeertaal Python voor microcontrollers. Als je bovenaan op Python klikt, krijg je de MicroPython-code te zien die overeenkomt met je blokkenconstructie in Blockly. Klik je daarna op Blockly, dan krijg je weer je blokken te zien.

Tip: bestel ook de cursus Programmeren in Python!

Soms zul je misschien ook externe hardware willen aansturen die niet door UIFlow wordt ondersteund, of andere functionaliteit gebruiken die niet is voorzien. Dan kun je in Blockly onder Advanced / Execute een blokje Execute code toevoegen. Hierin typ je dan MicroPython-code. Die wordt dan rechtstreeks op die plaats uitgevoerd, wat je ook zult zien als je de Python-versie van je programma bekijkt.

Achter je Blockly-programma van UIFlow schuilt MicroPython-code.

Meer inzicht in het energieverbruik van je slimme huis? Bestel dan een energiemeter bij Bol.com.

▼ Volgende artikel
Dit kun je allemaal nog doen in de tuin in november
© melnikviva - stock.adobe.com
Huis

Dit kun je allemaal nog doen in de tuin in november

In november lijkt de tuin tot stilstand te komen, maar schijn bedriegt. Juist nu leg je de basis voor een prachtige tuin in het voorjaar. Van het beschermen van planten tegen de kou tot het planten van bollen en fruitbomen: wie in november de handen uit de mouwen steekt, wordt in de lente beloond met een gezonde, bloeiende tuin.

November in de tuin: in het kort

November is de maand waarin je opruimt, beschermt en voorbereidt. Zet vorstgevoelige planten in pot alvast binnen of maak er ruimte voor in de schuur. Hark het gevallen blad van het gazon, en gebruik het blad op andere plekken in je tuin als natuurlijke bodembedekking. Nu is ook het moment om fruitbomen en bloembollen te planten en wintergroene planten zoals heide of Skimmia in potten te zetten. Snoei fruitstruiken en knot de treurwilg, zodat ze straks sterker terugkomen in het voorjaar.

Lees ook: Zo maak je je tuinmeubilair winterklaar

Maak je tuin winterklaar

Een goed voorbereide tuin kan tegen een stootje. Zodra de temperatuur daalt, bescherm je gevoelige planten met vliesdoek of noppenfolie. Leg dat materiaal nu alvast klaar, zodat je snel kunt handelen bij vorst. Maak in de schuur of het tuinhuisje plek voor planten in pot die niet tegen kou kunnen. Binnen blijven ze het best bij een temperatuur tussen de 2 en 10 graden. Vergeet niet af en toe te luchten en de aarde vochtig te houden, zodat de wortels niet uitdrogen. Controleer tot slot de fruitbomen en verwijder ingedroogde of verschrompelde vruchten. Die kunnen schimmels bevatten en zo de boom verzwakken.

Nog even wat extra liefde voor je gazon

In november geef je het gazon nog een laatste onderhoudsbeurt voordat het in winterrust gaat. Steek de randen strak af en verwijder het blad dat op het gras ligt. Blijven bladeren liggen, dan krijgt het gazon te weinig licht en kunnen er schimmels ontstaan. Gebruik het blad liever op andere plekken in de tuin, bijvoorbeeld onder struiken of tussen vaste planten, omdat het blad verteert en voedingsstoffen aan de grond afgeeft.

©Konstantin Zibert - stock.adobe.com

Planten: fruitbomen...

November is een goede maand om fruitbomen te planten. De grond is nog relatief warm, waardoor de wortels kunnen aanslaan voordat de winter begint. Graaf een ruim plantgat en maak in het midden een kleine heuvel waar de stam op rust. Spreid de wortels voorzichtig uit, vul het gat met een mengsel van aarde en compost en druk de grond stevig aan. Geef ruim water en plaats een boompaal als de boom op een open of winderige plek staat.

Waarom een boompaal belangrijk is

Een pas geplante boom heeft nog geen sterke wortels en kan bij harde wind gaan wiebelen. Daardoor scheuren jonge wortels af en groeit de boom minder goed aan. Een boompaal geeft steun totdat de wortels zich stevig hebben vastgezet. Plaats de paal aan de windzijde van de boom en bevestig hem met een boomband. Na een jaar of twee mag de paal weer weg.

...en bollen

Ook bloembollen kunnen nu de grond in: tulpen, narcissen, hyacinten en irissen bloeien in het voorjaar als je ze nu plant. Wie meteen wat kleur in de tuin wil, kan wintervaste planten als heide, winterviolen, Skimmia of kleine coniferen in potten zetten.

©iMarzi - stock.adobe.com

Snoeien en onkruid wieden (ja, ook nu nog!)

Zolang het niet vriest, kun je nog prima snoeien. Vooral kale fruitstruiken zijn nu aan de beurt: door oude takken weg te halen, verjong je de struik en bevorder je de groei van nieuwe scheuten. Ook jonge boompjes met een doorgaande stam kun je licht terugsnoeien, zodat ze een mooie, evenwichtige vorm ontwikkelen. De treurwilg mag in deze periode worden geknot, zodat hij in het voorjaar weer mooi uitloopt.

Blijf daarnaast onkruid verwijderen, ook al groeit het minder hard. Door het bij te houden, voorkom je dat het in het voorjaar de overhand krijgt. Zo blijft de tuin netjes en houd je het werk beperkt wanneer alles straks weer begint te groeien.

Vooruitkijken naar het voorjaar

Wie in november nog even de handen uit de mouwen steekt, maakt het zichzelf straks een stuk makkelijker. De tuin krijgt rust, maar de basis voor een nieuw seizoen ligt er al. Zodra de eerste zon zich in het voorjaar laat zien, zie je de beloning van het werk dat je nu hebt gedaan: gezonde planten, een sterk gazon en fruitbomen die vol leven zitten.

▼ Volgende artikel
Europese chatbots gaan de concurrentie aan met ChatGPT
© Ranazain - stock.adobe.com
Huis

Europese chatbots gaan de concurrentie aan met ChatGPT

‘Weg met Amerikaanse tech!’ Onze afhankelijkheid van Amerikaanse technologische producten en -diensten stuit een groeiend aantal Europeanen steeds meer tegen de borst. Overstappen op Europese alternatieven lijkt daarom een logische keuze, maar dat is makkelijker gezegd dan gedaan. Europese chatbots zijn lastig te vinden, terwijl kunstmatige intelligentie een steeds grotere rol in de maatschappij lijkt te gaan spelen.

In dit artikel lees je:
  • Waarom Europa zo afhankelijk is van Amerikaanse AI-chatbots

  • Welke risico’s dat met zich meebrengt voor privacy en digitale soevereiniteit

  • Hoe Europese alternatieven als Le Chat (Mistral AI) en Lumo (Proton) proberen tegenwicht te bieden

  • Wat de EU doet om een eigen AI-industrie van de grond te krijgen

ChatGPT van OpenAI, Gemini van Google, Copilot van Microsoft, Grok van xAI of Claude van Anthropic. Als je aan een AI-chatbot denkt, is de kans groot dat een van deze diensten als eerste bij je te binnen schiet. Dat is niet zo vreemd, want het zijn op dit moment de populairste chatbots. Een andere interessante overeenkomst is dat ze allemaal afkomstig zijn uit de Verenigde Staten.
Onlangs kwam er een scheurtje in die Amerikaanse AI-dominantie: de chatbot van het Chinese DeepSeek haalde ineens de voorpagina’s. Voor het eerst leek een niet-Amerikaanse chatbot het te kunnen opnemen tegen de gevestigde orde uit de VS. Dat was goed nieuws voor inwoners van China, aangezien Amerikaanse chatbots daar worden geblokkeerd. Met de komst van DeepSeek kregen Chinezen dus eindelijk toegang tot een geavanceerde AI-bot.
Wij Europeanen hebben wel gewoon toegang tot Amerikaanse AI-modellen. Dat is maar goed ook. Voor de meeste Amerikaanse onlinediensten, zoals WhatsApp, OneDrive of Gmail, zijn er prima Europese alternatieven te vinden. Alleen voor AI-chatbots is dat een stuk lastiger.

Afhankelijk van Amerika

Het verlangen naar de ‘Europeanisering’ van ons internetgebruik is de afgelopen maanden sterk gegroeid. Dat komt vooral door een daling in het vertrouwen in onze samenwerking met Amerika. De huidige Amerikaanse president ziet de EU meer als concurrent dan als partner. Het kan dus riskant zijn om een onvoorspelbaar land zo veel macht over ons (bedrijfs)leven te geven.
Niet alleen privé gebruiken we Amerikaanse diensten, ook op het werk zijn veel producten afkomstig uit de VS, zoals Microsoft Office, Gmail en Slack. In de meeste organisaties kun je AI-chatbots aan dat rijtje toevoegen. Volgens onderzoekers groeit onze AI-afhankelijkheid de komende jaren ook nog eens gestaag verder.

In een hoop werkvelden, waaronder de militaire sector, is kunstmatige intelligentie mogelijk binnen de kortste keren onmisbaar. Het baart experts dan ook zorgen dat wij als Europa momenteel geen enkele controle hebben over deze belangrijke technologie. Ze vrezen dat de VS op een dag besluit om Amerikaanse AI-diensten voor ons te blokkeren. Dan hebben tal van bedrijven ineens een groot probleem.

Volgens het Future of Jobs Report groeit onze AI-afhankelijkheid de komende jaren gestaag door.

Zorgen om privacy

In het verleden is al meerdere keren gebleken dat buitenlandse AI-bedrijven het niet zo nauw nemen met de privacy van hun gebruikers. Zo zou OpenAI zonder toestemming de data van EU-gebruikers hebben gebruikt voor het trainen van ChatGPT. Ook is duidelijk dat AI-chatbots gevoelige gegevens van gebruikers lekken, doordat ze ingevoerde tekst als trainingsdata opslaan en later met andere gebruikers delen.

Daarnaast wordt er gevreesd dat overheden de gegevens die gebruikers met AI-modellen delen, kunnen opeisen. In het privacybeleid van DeepSeek staat bijvoorbeeld dat het persoonsgegevens (denk aan chat- en zoekgeschiedenis en zelfs de toetsaanslag) in China opslaat. Volgens de wetten van het land heeft de Chinese overheid het recht om gegevens op te eisen van binnenlandse bedrijven wanneer zij daarom vraagt. Veel regeringen hebben hun werknemers dan ook verboden om DeepSeek op hun werktelefoons te installeren.

DeepSeek vermeldt nadrukkelijk dat je gegevens naar China worden verstuurd.

Moeilijke markt

Er zijn dus genoeg redenen om over te willen stappen op Europese alternatieven voor AI-diensten, maar dan moeten die er dus wel zijn. De Amerikaanse techindustrie is een stuk groter dan de Europese. EU-bedrijven beginnen daardoor met een grote achterstand en moeten met veel minder middelen een gelijkwaardig product zien te ontwikkelen. We zijn natuurlijk gewend aan de kwaliteit van de Amerikaanse tegenhangers. Slechts weinig mensen en bedrijven zijn bereid om over te stappen op een inferieur alternatief.

Hoe ingewikkelder (en dus duurder) het is om een dienst op te zetten, hoe moeilijker het is om Europese varianten te vinden. En laat het nou net zo zijn dat specifiek het opzetten en trainen van AI-modellen ontzettend prijzig is. Je hebt gigantische datacenters nodig om de vele peperdure, specialistische hardware-installaties 24/7 te kunnen laten draaien. Het trainen van AI-modellen verbruikt bovendien enorme hoeveelheden elektriciteit en de hitte die daarbij vrijkomt, moet dagelijks met miljoenen liters water worden gekoeld.

Er zijn in Europa maar weinig bedrijven voorhanden die bereid zijn om zulke investeringen te doen. Dat komt deels doordat de grote investeerders in Amerika zitten, waardoor start-ups moeilijk aan startkapitaal kunnen komen. Verder zijn de lonen in de VS hoger en is de loonbelasting lager, waardoor ook veel van het toptalent op AI-gebied dáár te vinden is. Daar komt ook nog de strenge regelgeving van de EU bij, die bedrijven kan afschrikken om te innoveren.

Toch is er sinds kort voorzichtig beweging zichtbaar op de Europese AI-markt. Steeds meer bedrijven werken aan eigen taalmodellen en chatbots die binnen de Europese wetgeving opereren en beter aansluiten op onze privacywaarden. Het gaat vaak nog om kleinschalige initiatieven met beperkte rekenkracht, maar ze laten wel zien dat Europa niet stilzit. Zo verschenen er de afgelopen maanden eindelijk enkele concrete voorbeelden van Europese chatbots die de concurrentie durven aan te gaan met Amerika: het Franse Le Chat van Mistral AI en het Zwitserse Lumo van Proton. Hun aanpak verschilt, maar beide projecten tonen dat ook binnen Europa ruimte ontstaat voor kunstmatige intelligentie op eigen voorwaarden.

Nederlandse chatbot

In Europa lijken dus vooral Frankrijk en Zwitserland druk bezig met kunstmatige intelligentie, maar wist je dat ook Nederland aan de weg timmert met een eigen chatbot? In opdracht van de overheid wordt al een paar jaar gewerkt aan GPT-NL, een bot die zich specifiek moet richten ‘op de waarden van Europa en Nederland’. De makers willen er bijvoorbeeld voor zorgen dat alle trainingsdata auteursrechtenvrij is en dat het model duurzaam wordt getraind.

GPT-NL is niet bedoeld als serieuze concurrent van de bekende chatbots, maar dient als ‘veilig alternatief’ voor gebruikers die met gevoelige informatie werken, zoals overheidsinstanties of scholen. Het budget (13,5 miljoen euro) en de rekenkracht komen in de verste verte niet in de buurt van de miljarden die een ChatGPT uitgeeft aan het trainen van zijn krachtigste modellen. In de benchmarks komt Neerlands trots er daardoor waarschijnlijk bekaaid vanaf. Maar dat weten we pas zeker als de bot begin 2026 beschikbaar komt.

Le Chat: Concurrent uit Frankrijk

Het Franse Mistral AI bracht eerder dit jaar onder de toepasselijk genaamde chatbot Le Chat een directe concurrent voor de gevestigde orde uit. Deze bot, beschikbaar voor Android, iOS en webbrowsers, maakt gebruik van volledig zelfgetrainde AI-modellen en staat dus voor een groot deel los van de VS. De hardware wordt nog wel geleverd door Amerikaanse fabrikanten. De gegevens worden echter opgeslagen op Europese servers en moeten daarmee voldoen aan strenge Europese privacywetten. Zo mag Mistral volgens de Algemene verordening gegevensbescherming (AVG) je gegevens niet buiten de EU beschikbaar maken. Er moet een juridisch zwaarwegende reden zijn om de gegevens met de overheid te mogen delen.

Mistral AI doet grootse beloften op zijn website.

Hoe goed is Le Chat?

Voor de privacy is Le Chat dus een interessante keuze, maar hoe presteert Mistral in vergelijking met de concurrentie? Uit onze eigen tests blijkt dat Le Chat op de eerste plaats nog niet zo heel vaardig is in het Nederlands. Bij het schrijven van een Sinterklaasgedicht komt de chatbot met veel kromme zinnen, terwijl ChatGPT (naast wat rare rijmpjes) wel consequent kloppende zinnen aan elkaar rijgt. Datzelfde geldt voor zaken die de Nederlandse cultuur aangaan. Als we vragen om suggesties voor klassieke verjaardagshapjes, zegt Le Chat dat we miniquiches en sushi moeten serveren. ChatGPT begrijpt de opdracht beter en raadt ons oer-Hollandse blokjes kaas met mosterd, leverworst en haring op roggebrood aan.

Ook uit onafhankelijke benchmarks blijkt dat Le Chat het vaak moet afleggen tegen Amerikaanse en Chinese modellen. Benchmarks meten hoe chatbots presteren in een breed scala aan taken, bijvoorbeeld op het gebied van wereldkennis, wetenschappelijk redeneren, wiskunde en programmeren.

Mistral Large 2, het model dat momenteel voor Le Chat wordt gebruikt, krijgt van de grootste AI-vergelijkingssite, Artificial Analysis, een gemiddelde intelligentiescore van 38. Vrijwel alle andere AI-chatbots behalen hogere scores. Het huidige standaardmodel van ChatGPT, GPT-4o, verschilt met zijn score van 41 niet veel van Le Chat. Alleen OpenAI biedt ook een Pro-abonnement aan voor 24 dollar waarmee gebruikers toegang krijgen tot geavanceerdere modellen, zoals o3, die juist een topscore van 69 behaalt.

Mistral biedt ook een betaald abonnement (15 dollar), maar daarbij krijgen gebruikers alleen een hogere daglimiet bij het genereren van teksten en afbeeldingen. Ook kun je dan aangepaste chatbots te maken, bijvoorbeeld een bot die altijd antwoordt als een rapper. Betalende gebruikers krijgen dus geen geavanceerder AI-model.

In het Nederlands dichten moet je niet aan Le Chat overlaten.

Het intelligentieniveau van Le Chat ligt lager dan vrijwel alle andere populaire chatbots.

Lumo: Protons privacygerichte alternatief

Sinds juli 2025 is Proton – bekend van Proton Mail en Proton VPN – met zijn eigen AI-chatbot Lumo op de markt gekomen. Daarmee voegt het bedrijf zich bij de kleine maar groeiende groep Europese spelers die een antwoord proberen te bieden op de Amerikaanse dominantie. Lumo profileert zich nadrukkelijk als een privacyvriendelijk alternatief dat de waarden van de Europese digitale soevereiniteit belichaamt.

De chatbot is gebouwd op open-sourcemodellen, waaronder Nemo, OpenHands, OLMO en Mistral Small, en draait volledig op Europese servers. Dat betekent dat alle gegevens binnen de grenzen van de EU blijven en dus onder de strenge AVG-regels vallen. Proton garandeert dat gesprekken niet worden gelogd en uitsluitend lokaal versleuteld worden opgeslagen, zodat zelfs het bedrijf zelf er geen toegang toe heeft. De dienst gebruikt geen enkele gebruikersinput om zijn modellen verder te trainen, iets wat bij Amerikaanse chatbots nog altijd de norm is.

©Proton

Wie wil, kan de webzoekfunctie inschakelen om actuele informatie op te vragen, maar standaard staat die uit. Daardoor werkt Lumo iets minder up-to-date dan ChatGPT of Gemini, maar het voorkomt dat de dienst ongezien data doorsluist naar externe bronnen. Ook kun je bestanden uploaden voor analyse, die vervolgens via Proton Drive worden verwerkt en net als e-mails en documenten volledig end-to-end-versleuteld blijven.

Lumo kent nog beperkingen. Zo kan de chatbot minder context onthouden dan de grote Amerikaanse modellen en ontbreken geavanceerde multimodale functies, zoals spraakinteractie of beeldherkenning. Toch is de komst van Lumo van grote symbolische waarde: eindelijk heeft Europa een concreet alternatief dat niet draait om schaal of winst, maar om vertrouwen, transparantie en privacy. Het laat zien dat innovatie ook kan ontstaan vanuit principes in plaats van marketingbudgetten – al zal de tijd moeten uitwijzen of dat genoeg is om het tegen de reuzen uit Silicon Valley op te nemen.

Andere Europese AI-modellen

Mistral is niet het enige Europese bedrijf dat AI-modellen heeft uitgebracht. Zo heeft de Duitse OpenGPT-X zijn taalmodel Teuken 7B opensource uitgebracht. Dat is specifiek getraind om de 24 officiële talen van de Europese Unie optimaal te kunnen beheersen. Je hebt ook het Italiaanse iGenius. Hiermee worden ‘veilige’ AI-producten ontwikkeld met eigen taalmodellen voor industrieën waarbij de naleving van de Europese AI Act van groot belang is.
Ook OpenEuroLLM, een samenwerkingsverband tussen universiteiten, bedrijven en verenigingen als SURF, heeft al verschillende taalmodellen gepubliceerd. OpenEuroLLM wil in de toekomst kunnen concurreren met Amerika en China. Geen van deze bedrijven heeft alleen al chatbots gebouwd met hun zelfgetrainde modellen. Daarin is Mistral AI vooralsnog de enige, als we de verzamelwebsite European Alternatives mogen geloven.

OpenGPT-X heeft zijn AI-modellen op het deelplatform Hugging Face geplaatst.

Kleine tekortkomingen

Een veelgehoorde klacht van AI-fanaten is dat Le Chat minder flexibel is dan de niet-EU-bots. Zo kan de chatbot minder context verwerken, waardoor de dienst niet geschikt is om een verslag van honderden pagina’s samen te vatten. Ook ontbreekt de mogelijkheid voor spraakgesprekken en kan de bot geen tekst lezen op afbeeldingen die je opstuurt. Je kunt Le Chat wel vragen om plaatjes te maken, maar daarvoor gebruikt de dienst het Flux Pro-model van een Duitse start-up. Dat model levert behoorlijke resultaten, al zijn de nieuwste beeldgeneratoren van ChatGPT en Google Gemini nog beter in het uitvoeren van complexe opdrachten en het leesbaar schrijven van tekst.

Ook Lumo is op dit vlak nog beperkt: de chatbot kan geen beelden genereren of analyseren en mist functies als spraakinteractie of uitgebreide contextherkenning. Proton richt zich voorlopig bewust op een veilige basisfunctionaliteit in plaats van op toeters en bellen. In vergelijking met Le Chat is Lumo dus minder veelzijdig, maar wel consistenter in zijn focus op privacy en databeveiliging.

AI-actieplan

Al met al kunnen Le Chat en Lumo op sommige punten aardig meekomen met hun Amerikaanse tegenhangers, maar op veel fronten blijven ze nog achter. De gemiddelde gebruiker kan er prima mee uit de voeten, al zullen bedrijven pas overstappen als Europese bots krachtiger worden en meer taken aankunnen. Om dat te bereiken zijn forse investeringen nodig. De Europese Unie beseft dat inmiddels ook. In april werd een actieplan gepresenteerd dat Europa moet helpen uit te groeien tot wereldleider op het gebied van kunstmatige intelligentie. Daarin belooft Brussel de bouw van vijf gigafabrieken voor de ontwikkeling van geavanceerde AI-modellen, investeringen in cloudcapaciteit en datacenters, en steun voor Europese start-ups. Na jaren van afwachten lijkt Europa zich dus eindelijk op te maken voor een inhaalslag. Met de komst van spelers als Mistral AI (Le Chat) en Proton (Lumo) krijgt het continent stap voor stap meer grip op zijn digitale toekomst. Misschien is dat bescheiden begin precies wat nodig is om ooit echt onafhankelijk te worden van Silicon Valley.