ID.nl logo
Windows én Linux: zo zet je twee besturingssystemen op één pc
© Andreas Prott - stock.adobe.com
Huis

Windows én Linux: zo zet je twee besturingssystemen op één pc

Je vaste besturingssysteem is Windows 11, maar je wilt evengoed ook geregeld met Linux aan de slag. Er zijn verschillende mogelijkheden, zoals virtualisatie of containers, maar in dit artikel focussen we ons op een heuse fysieke installatie via een dualboot-configuratie, op een UEFI-systeem met Secure Boot.

In dit artikel leren we je een dualboot-systeem op te zetten met Windows 11 en Ubuntu.

  • Eerst: maak een herstelpunt
  • Maak ruimte vrij op je harde schijf voor de Linux-installatie
  • Maak een opstartbare usb-stick
  • Installeer Ubuntu
  • Tot slot: zo maak je de dualboot-configuratie weer ongedaan

Fan van Linux? Lees dan dit artikel: Weg met Windows! Probeer deze Linux-alternatieven: EndeavourOS of Manjaro

Toegegeven, een dualboot-configuratie heeft een paar nadelen. Allereerst is de opzet technisch een stuk lastiger, zeker bij bepaalde Linux-distributies die je op een Windows-pc met UEFI en ingeschakelde Secure Boot-functie wilt installeren. Een dualboot-configuratie vereist tevens een aparte partitie of schijf, wat kan leiden tot minder efficiënt gebruik van de opslagruimte, waarbij je eigenlijk ook moet opletten dat je niet ongewild de data van het andere besturingssysteem beschadigt. Daarnaast moet je het systeem telkens opnieuw opstarten om naar het andere besturingssysteem over te schakelen, omdat het niet mogelijk is systeembronnen simultaan tussen beide systemen te delen.

Voordelen zijn er uiteraard ook. Beide systemen kunnen namelijk hun volledige hardware-capaciteiten benutten zonder overhead, wat optimale prestaties mogelijk maakt. Bovendien heb je niet te maken met eventuele beperkingen van virtualisatie (zoals met een hypervisor zoals VirtualBox of het ingebouwde WSL2 of het gebruik van containers (zoals met Docker Desktop for Windows, dat onderhuids ook WSL2 gebruikt).

Lees ook: Instapcursus Docker Desktop: geen gedoe met losse applicatiebestanden

1 Scenario

In dit artikel gaan we uit van een UEFI-computer waarop al Windows 11 is geïnstalleerd (Home of Pro maakt weinig uit) en waar je later ook een Linux-distributie op wilt installeren. Hoe lastig zo’n dualboot-configuratie is, hangt in de praktijk vooral af van de Secure Boot-functie in combinatie met de gekozen Linux-distributie. We focussen ons op de installatie van Ubuntu, maar besteden uiteraard ook aandacht aan de nodige voorbereidingen en hoe je de Linux-installatie kunt verwijderen als je deze niet langer nodig hebt.

Dualboot met Windows: de ene Linux-distributie is de andere niet.

2 Windows-instellingen

Welke Linux-distributie je ook in een dualboot-configuratie installeert, het is verstandig om eerst enkele Windows-instellingen te controleren en eventueel aan te passen. Schakel bijvoorbeeld de functie Snel opstarten uit. Deze functie zorgt ervoor dat Windows niet volledig wordt afgesloten, maar een hybride slaapstand gebruikt. Dit kan leiden tot gegevensverlies wanneer je vanuit Linux de Windows-partitie benadert.

Om deze functie uit te schakelen, klik je met rechts op de Windows-startknop en open je Energiebeheer. Kies vervolgens Het gedrag van de aan/uit-knoppen bepalen en klik op Instellingen wijzigen die momenteel niet beschikbaar zijn. Verwijder het vinkje bij Snel opstarten inschakelen (aanbevolen) en bevestig de aanpassing met Wijzigingen opslaan. Start daarna Windows op.

Als je BitLocker-schijfversleuteling gebruikt, is het ook verstandig om deze uit te schakelen voordat je de partities aanpast (zie ook stap 6 'Partitioneren’). Start de module BitLocker beheren (Windows Pro) of ga naar Instellingen / Privacy en Beveiliging / Apparaatversleuteling (Windows Home, indien beschikbaar), schakel de functie uit en volg de instructies.

Je schakelt de functie Snel opstarten veiligheidshalve uit.

3 Secure Boot

Vaak wordt ook aanbevolen om de functie Secure Boot in je UEFI/BIOS uit te schakelen. Hoewel Windows normaal gesproken goed blijft functioneren als je dit doet, verwijder je hiermee wel een beveiligingslaag die je systeem tijdens de opstartfase tegen rootkits en andere malware beschermt. We raden je daarom aan om het eerst te proberen met ingeschakelde Secure Boot.

Doorgaans is er een speciale sneltoets waarmee je bij het opstarten van je computer in het setupvenster van het UEFI/BIOS komt. Raadpleeg desnoods je systeemhandleiding. Vanuit Windows 11 kom je er als volgt: ga naar Instellingen / Systeem / Systeemherstel. Klik bij Geavanceerde opstartopties op Nu opnieuw opstarten (2x). Na de herstart selecteer je Problemen oplossen / Geavanceerde opties / Instellingen voor UEFI-hardware.

Vanuit de instellingen van Windows kun je Windows zo herstarten dat je gelijk in het UEFI/BIOS terechtkomt.

4 Dezelfde systeemtijd

Het kan gebeuren dat de systeemtijd in je Linux- en Windows-installaties niet gelijk loopt. Dit komt doordat Windows verwacht dat de hardwareklok is ingesteld op lokale tijd en geen tijdzonecorrecties toepast om de actuele tijd te berekenen. De meeste Linux-distributies daarentegen gaan er standaard van uit dat de hardwareklok op UTC (Universal Time Coordinated) is ingesteld en passen daarom een tijdzonecorrectie toe. Er zijn twee methoden om dit probleem aan te pakken, vanuit Linux of vanuit Windows.

In Linux voer je eerst het commando timedatectl uit in de terminal. Verschijnt hier RTC in local TZ: no, dan pas je dit aan met deze opdracht:

timedatectl set-local-rtc 1

Linux waarschuwt dat hierdoor mogelijk aanpassingen aan tijdzones en de zomertijd niet langer correct worden toegepast en dat de RTC-tijd niet langer up-to-date wordt gehouden. Daarom is het wellicht toch beter om Windows aan te passen. Om dit te doen, start je de Registor-editor en navigeer je naar HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation. Maak hier een nieuwe DWORD (32bits)-waarde aan met de naam RealTimeIsUniversal en stel deze in op 1.

Aangepaste systeemtijd: links Ubuntu en rechts Windows.

Hoe laat het is?

Met deze klokken ben je altijd bij de tijd

5 Systeemback-up

Zodra je alle benodigde instellingen hebt aangepast, ben je bijna klaar om je dualboot-configuratie te starten. Bijna, want het is verstandig om eerst een systeemherstelpunt en -back-up te maken. Start in Windows de module Een herstelpunt maken en zorg je ervoor dat de functie voor je station(s) is ingeschakeld (via Configureren). Klik vervolgens op Maken en geef het herstelpunt een naam.

Voor het maken van een systeemback-up zijn er verschillende externe tools beschikbaar, waaronder EaseUS Todo Backup Free. Download en installeer dit programma, en start deze op. Klik op Create Backup en selecteer Disk. Plaats een vinkje bij de juiste harde schijf, zodat alle partities worden geselecteerd. Bevestig met OK, selecteer een geschikte bestemming en klik op Backup Now.

Om zo’n gemaakte back-up in te zien of daadwerkelijk te herstellen zelfs als je systeem niet meer zou opstarten, maak je een herstelmedium op een usb-stick. Hiervoor druk je rechtsboven in EaseUS Todo Backup op de optie Tools en kies je Create Emergency Disk. Overigens is de optie Enable PreOS in principe ook een optie, maar bij een dualboot-configuratie raden we dit af. Stop een (lege) usb-stick in je pc en klik op het stickicoontje bij Boot Disk Location. Bevestig met Create. Voor alle zekerheid start je na afloop je systeem van deze usb-stick op om te controleren of de gemaakte back-up echt bereikbaar is. Mocht er naderhand iets misgaan, dan kun je de situatie wellicht nog herstellen via systeemherstel of desnoods met je herstelmedium.

Maak eerst een complete schijfback-up en een usb-herstelmedium.

6 Partitioneren

Je moet ervoor zorgen dat er voldoende vrije ruimte is op je harde schijf om ook Linux te installeren. Hoeveel ruimte je nodig hebt, hangt ook af van de Linux-distributie, maar 30 GB lijkt ons een praktisch minimum.

Controleer de beschikbare ruimte eerst via het Schijfbeheer van Windows. Druk op Windows-toets+R en voer diskmgmt.msc uit. Mogelijk zie je in het grafische overzicht een blok Niet-toegewezen ruimte dat groot genoeg is. Als dit niet zo is, dan zit er weinig anders op dan een partitie zonder gegevensverlies te verkleinen.

Klik met rechts op de gekozen partitie in Schijfbeheer en kies Volume verkleinen. Geef in MB aan hoeveel ruimte je wilt vrijmaken (bijvoorbeeld 40000). Zorg dat er op de Windows-partitie minstens 20 GB overblijft om Windows goed te laten functioneren. Als dit niet genoeg ruimte oplevert, probeer het dan opnieuw nadat je alle overtollige databestanden en/of geïnstalleerde programma’s hebt verwijderd. We gaan ervan uit dat je weet hoe dit moet. Een handige tool om snel inzicht te krijgen in je schijfruimtegebruik is het gratis WizTree.

Als het partitioneren niet lukt vanuit Schijfbeheer, bijvoorbeeld omdat je hiervoor eerst een bestaande partitie moet verplaatsen, gebruik dan een krachtigere partitioneringstool, zoals MiniTool Partition Wizard Free. Let erop dat je in dit programma de operaties pas kunt uitvoeren na je bevestiging met Apply.

Ruimte vrijmaken door een partitie te verkleinen: links Windows, rechts MiniTool.

BIOS-modus We gaan ervan uit dat je een moderne pc met UEFI hebt, maar als je nog met Windows 10 werkt, betekent dit niet automatisch dat Windows in UEFI-modus opstart. Om dit snel te controleren, typ je systeeminformatie in de Windows-zoekbalk en open je het gelijknamige onderdeel. Als in het linkerdeelvenster Systeemoverzicht geselecteerd is, dan zie je in het rechterdeelvenster bij BIOS-modus de optie UEFI. Staat hier Verouderd of Legacy, dan start Windows toch op in de klassieke BIOS- of CSM-modus (Compatibility Support Module).

Deze laatste is een modus waarmee een UEFI/BIOS het systeem doet denken dat er een klassiek BIOS aanwezig is. Je kunt in dit geval ook wel Linux in dualboot installeren, maar houd er rekening mee dat je dan beperkt bent tot vier partities en tot bootschijven van 2 TB. In UEFI-modus kun je ook via een specifieke sneltoets omschakelen tussen beide besturingssystemen vanuit het UEFI-bootmenu. Hiervoor is geen bootmanager zoals GRUB nodig, hoewel deze iets meer controle en flexibiliteit biedt. Onthoud wel dat je Windows opnieuw moet installeren als je alsnog wilt overschakelen naar UEFI-modus in het UEFI/BIOS. Met Windows 11 werk je sowieso in UEFI-modus.

Vanuit Linux ga je met het terminal-commando efibootmgr na in welke modus het systeem is opgestart. Verschijnt een foutmelding in plaats van de UEFI-bootvariabelen, dan werkt Linux in legacy/CSM-modus.

Via Systeeminformatie kom je snel te weten of je systeem in UEFI-modus werkt.

7 Live stick

Voordat we Linux daadwerkelijk gaan installeren, moeten we een installatiestick maken. Hiervoor gebruiken we een iso-schijfkopiebestand van de gewenste Linux-distributie, die je kunt vinden op de website van de makers. Wij downloaden het gebruiksvriendelijke Ubuntu Desktop.

Er zijn verschillende betrouwbare en gratis tools beschikbaar om zo’n iso-bestand om te zetten naar een opstartbaar medium, zoals Ventoy en Rufus. We nemen Rufus als voorbeeld: download de (draagbare versie van) de tool en start deze op. Selecteer een (lege) usb-stick als Apparaat, kies in het keuzemenu Opstartselectie de optie Schijf of ISO-image (selecteren), klik op Selecteren en wijs het gedownloade iso-bestand aan. Je kunt hier verder alle opties ongewijzigd laten. Klik op Starten, kies Schrijven in ISO-image-modus (aanbevolen) en antwoord met Ja op de eventuele vraag voor extra Linux-systeembestanden. Zodra je op OK klikt, begint de operatie en wanneer de groene balk Klaar verschijnt, kun je op Sluiten klikken.

Rufus zet het schijfkopiebestand netjes om naar een live-installatiemedium.

8 Opstart

Sluit nu Windows af, bij voorkeur terwijl je de Shift-toets ingedrukt houdt, zodat je zeker de functie Snel opstarten vermijdt. Je kunt nu je systeem opstarten vanaf de live-installatiestick. Mogelijk moet je bij het opstarten meteen op een toets(combinatie) drukken om het UEFI-bootmenu te openen, waar je vervolgens de usb-stick als opstartmedium selecteert.

We beginnen met Ubuntu, omdat je over het algemeen hierbij weinig problemen zult ondervinden met je UEFI-systeem. Als alles goed gaat, verschijnt even later het menu van de GRUB-opstartlader, waar je Try or Install Ubuntu selecteert. In het volgende menu kies je de taal waarin Ubuntu gestart moet worden en klik je daarna op de knop Ubuntu installeren. Of je kiest eerst de knop Ubuntu uitproberen om te controleren of de distributie goed werkt op je systeem. Daarna kun je de distributie alsnog daadwerkelijk installeren.

Het is een prima idee de distributie eerst uit te proberen voor je haar daadwerkelijk gaat installeren.

9 Installatie

Vervolgens selecteer je de gewenste toetsenbordindeling, bijvoorbeeld Dutch of Belgian. In het volgende venster is het raadzaam om de opties Normale installatie en Haal bijgewerkte pakketten binnen tijdens het installeren van Ubuntu geselecteerd te laten. Hier kun je ook aangeven of je third-party-drivers wilt gebruiken, zoals voor multimedia- of wifi-hardware. In dit geval schakel je de optie Configure secure boot in en voer je (2x) een wachtwoord in. Dit wachtwoord voer je na de installatie en herstart van Ubuntu opnieuw in, zodat de betreffende drivers of modules kunnen worden ondertekend en de functie Secure Boot ze toelaat (zie ook stap 10 en het kader ‘SHIM en MOK’).

In het volgende venster is het raadzaam om de optie Installeer Ubuntu naast Windows Boot Manager geselecteerd te laten, tenzij je liever zelf de locatie voor de opstartlader bepaalt en de benodigde partities als Root, Swap en Home maakt (in dat geval selecteer je Iets anders). Vermijd in elk geval de optie Wis schijf en installeer Ubuntu.

Vervolgens selecteer je de schijf waarop Ubuntu moet worden geïnstalleerd en kun je indien nodig de partitiegrootte voor Ubuntu aanpassen met de muisaanwijzer. Bevestig met Installeer nu en klik op Verder. Selecteer je tijdzone op de kaart, vul je naam, gebruikersnaam en computernaam in en klik nogmaals op Verder.

Als je dit absoluut wilt, kun je tijdens de installatie zelf de nodige Linux-partities aanmaken.

10 MOK-beheer

Na afloop klik je op Nu herstarten. Verwijder de usb-stick en druk op Enter. Als je Configure secure boot hebt gekozen, verschijnt nu het blauwe venster van de MOK-manager. In dit geval kies je achtereenvolgens Enroll MOK / Continue / Yes. Typ je wachtwoord en kies Reboot.

Als het goed is, verschijnt nu de GRUB-opstartlader en kun je hier kiezen tussen Windows (Boot Manager) en Ubuntu, of je gebruikt hiervoor het UEFI-bootmenu. Je dualboot-configuratie is nu compleet.

Via de MOK-manager een module ondertekenen voor secure boot.

SHIM en MOK Gebruik je geen third-party-componenten in Ubuntu, dan doet Ubuntu zelf het nodige om met een ingeschakelde Secure Boot-functie overweg te kunnen. Ubuntu installeert dan een zogeheten SHIM (Signed Hardware Initialization Manager). Dit is een tussenlaag, een pre-bootloader, die met een door Microsoft erkende sleutel is ondertekend zodat de Linux-bootloader (bijvoorbeeld GRUB) op een systeem met ingeschakelde Secure Boot kan worden geladen.

Deze door Microsoft vertrouwde SHIM werkt helaas niet voor drivers of modules van derden. Hiervoor is het nodig om een zogeheten MOK (Machine Owner Key) toe te voegen aan de MOK-manager van Secure Boot, door middel van een wachtwoord. In dit geval werken dus SHIM en MOK complementair om volledige compatibiliteit met Secure Boot te bieden.

11 Partities verwijderen

Als je op een gegeven moment toch liever je dualboot-configuratie met Linux wilt verwijderen op je UEFI-systeem, zorg er dan wel voor dat Windows na de verwijdering nog steeds correct opstart. Je doet dit als volgt: maak eerst een (systeem)back-up voor het geval er iets fout gaat. Hoewel dit niet strikt nodig is, stel je in het UEFI/BIOS de bootvolgorde zo in dat Windows (Boot Manager) als eerste opstart. Doorgaans vind je dit bij een onderdeel als Boot Configuration / Boot Sequence.

Start Windows vervolgens en open Schijfbeheer (bijvoorbeeld via Windows-toets+R / diskmgmt.msc). Klik met rechts op de Linux-partitie in het grafische overzicht, kies Volume verwijderen en bevestig je keuze. Herhaal dit voor eventueel andere Linux-partities. Dit zijn doorgaans partities zonder stationsletter. Bij twijfel kun je ook Opdrachtprompt als administrator openen en daar het commando diskpart uitvoeren. Achter de DISKPART-prompt voer je deze opdrachten uit:

list disk

select disk <n>

Vervang <n> door het schijfnummer met je Linux-partities, bijvoorbeeld:

select disk 0

Typ daarna de volgende opdrachten:

list partition

select partition <n>

Vervang weer <n> door het nummer van de gewenste partitie. Extra informatie over een geselecteerde partitie vraag je op met:

detail partition

Je krijgt dan onder meer het bijbehorende Type-GUID te zien waarmee je een (Linux-)partitie kunt identificeren. Hiervan vind je een nagenoeg compleet overzicht op deze Wikipedia-pagina.

Nu je precies weet welke partitie(s) je moet verwijderen in Schijfbeheer, kun je de extra niet-toegewezen ruimte terugwinnen. Dit doe je bijvoorbeeld door deze aan een bestaande partitie te koppelen (kies Volume uitbreiden in het contextmenu) of door er een extra datapartitie van te maken.

Haal de niet langer gebruikte Linux-partitie(s) weg via Schijfbeheer.

12 Bootingang verwijderen

Tot slot dien je nog de Linux-ingang uit de bootmanager te verwijderen. Start de Opdrachtprompt opnieuw als administrator en voer deze opdracht uit:

bcdedit /enum firmware

Hier zie je onder meer de Linux-ingang, met een identifier (bijvoorbeeld {e3a9eb6a-db0S-11ee-adc3-806e6f6e6963}. Voer vervolgens deze opdracht uit:

bcdedit /delete <{identifier}>

Vervang <{identifier}> door de echte identifier, bijvoorbeeld:

bcdedit /delete {e3a9eb6a-db0S-11ee-adc3-806e6f6e6963}

Als het goed is, staat Windows nu weer alleen op je systeem.

Je moet ook de Linux-ingang uit de bootmanager weghalen.

Arch Linux

Bij een meer uitdagende distributie zoals Arch Linux zul je veel meer handmatig moeten doen. Niet alleen de installatie, maar ook de samenwerking met Secure Boot. Je installeert Arch Linux eerst met (tijdelijk) uitgeschakelde Secure Boot. Meteen na de installatie configureer je dan Secure Boot vanuit Arch Linux. Dit werkt het makkelijkst met de tool sbctl (Secure Boot Control), die je kunt installeren met deze commando’s:

sudo pacman -Syu

sudo pacman -S sbctl

Met sbctl kun je dan de nodige operaties uitvoeren, zoals het creëren van een nieuwe set secure boot-sleutels met:

sudo sbctl create-keys

Die sleutels voeg je vervolgens aan het UEFI/BIOS toe met:

sudo sbctl enroll-keys -m

Verder dien je nog de bootloaders en de Linux-kernel te ondertekenen. Welke dit zijn, ontdek je met deze opdracht:

sbctl verify

De eigenlijke ondertekening gebeurt dan met commando’s als:

sudo sbctl sign -s /boot/EFI/BOOT/BOOTX64.EFI

sudo sbctl sign -s /boot/EFI/systemd/systemd-bootx64.efi

sudo sbctl sign -s /EFI/Linux/archlinux-linux.efi

sudo sbctl sign -s /boot/vmlinuz-linux

Met deze opdracht check je of de nodige bestanden nu wel correct zijn ondertekend:

sudo sbctl verify

En hiermee krijg je een overzicht van de huidige secure boot-configuratie en sleutelstatus:

sudo sbctl status

Hierna kun je Secure Boot in het UEFI/BIOS weer inschakelen. Meer informatie hierover vind je in de wiki van Arch Linux, specifiek in sectie 3.1.3.

De Secure Boot-configuratie in Arch Linux verloopt veel handmatiger dan bij een distributie als Ubuntu.

Watch on YouTube
▼ Volgende artikel
Bedien je slimme apparaten met een zelfgebouwd touchscreen
© InfiniteFlow - stock.adobe.com
Huis

Bedien je slimme apparaten met een zelfgebouwd touchscreen

Houd je van knutselen én automatiseer je alles in en om je huis met Home Assistant? Kijk dan zeker eens naar ESPHome. Je kunt eindeloos variëren met componenten. Dankzij de koppeling met Home Assistant bouw je gemakkelijk en voor weinig geld een lichtschakelaar of sensor, om maar wat te noemen. De LVGL-bibliotheek zorgt ervoor dat je nu ook eenvoudig met een touchscreen en zelfbedachte gebruikersinterface kunt werken. We laten zien hoe dat werkt met tips voor passende projecten.

In dit artikel laten we zien hoe je een touchscreen-interface bouwt voor Home Assistant met ESPHome en LVGL:

  • Installeer ESPHome en configureer een ESP32-microcontroller voor je project
  • Sluit een touchscreen aan en stel de juiste GPIO-pinnen en drivers in
  • Gebruik LVGL-widgets voor een interactieve interface
  • Integreer je touchscreen met Home Assistant voor directe bediening van je slimme apparaten

Lees ook: 5 fouten die je niet moet maken in je smarthome

Code downloaden

In dit artikel staat een voorbeeld van wat YAML-code. Omdat YAML erg gevoelig is voor foute spaties, kun je die code beter downloaden en daarna bekijken of kopiëren. In het bestand espcode.txt staan alle regels voorbeeldcode zoals ze in dit artikel aan bod komen. Maar je vindt ook een uitgewerkt voorbeeld in het bestand cyd-demo.yaml. Beide bestanden zijn hier te downloaden.

Uitgewerkt voorbeeld

Het meest uitgewerkte voorbeeld voor de demo met LVGL vind je op deze GitHub-pagina van auteur Gertjan Groen. In de code die je kunt downloaden (ook in het losse bestand cyd-demo.yaml) hebben we ook de RGB-led op de achterzijde toegevoegd, die je bijvoorbeeld als statusmelding kunt gebruiken. Verder is een timer toegevoegd om de backlight te regelen, zodat deze bij inactiviteit wordt uitgeschakeld. Tot slot laten we zien hoe je de GPIO-pinnen kunt gebruiken via de I2C-bus. Op de GitHub-pagina vind je nog meer handige informatie.

ESPHome maakt het heel makkelijk om apparaten te maken voor een slim huis, zoals je eigen sensors. Zo bouwden we eerder al eens een luchtkwaliteitsmonitor, een infraroodzender/ontvanger en een controller met drukknoppen en leds, waarmee je apparaten kunt bedienen en de status aflezen. Hoe je dat doet, lees je in dit artikel: Zo maak je met ESPHome apparaten geschikt voor je smarthome.

De basis voor ESPHome is een kleine, voordelige en zuinige microcontroller, meestal de ESP32. ESPHome ondersteunt enorm veel componenten en biedt daardoor haast onbegrensde mogelijkheden. We helpen je kort op weg met ESPHome, maar gaan ook meteen een stapje verder met de toevoeging van een touchscreen en de LVGL-bibliotheek. Daar kun je sinds augustus 2024 officieel gebruik van maken binnen ESPHome.

Met LVGL kun je aan de hand van widgets een grafische gebruikersinterface opbouwen en weergeven (zie kader ‘Grafische interfaces met widgets’). Soms kom je de term HMI (Human Machine Interface) tegen, waarmee een grafische gebruikersinterface voor het bedienen van apparatuur wordt bedoeld.

De kracht van ESPHome is dat je niet alleen lokaal aangesloten apparaten bedienbaar kunt maken, bijvoorbeeld via een relais, maar ook alle apparaten die je binnen Home Assistant gebruikt.

Grafische interfaces met widgets

LVGL staat voor Light and Versatile Graphics Library. Het is een opensource-bibliotheek die sinds 2016 bestaat. Je kunt ermee werken binnen ESPHome, Arduino, Tasmota en openHASP. Het laatste project is zelfs specifiek bedoeld voor microcontrollerfirmware met LVG.

De bibliotheek is heel licht, waardoor het soepel en snel kan werken op apparaten met beperkte capaciteit, bijvoorbeeld met een microcontroller. Bovendien kan LVGL flexibel met verschillende lay-outs, schermformaten en invoermethodes werken. Naast touchscreens kun je ook bijvoorbeeld muis, toetsenbord, losse knoppen en draaiknoppen toevoegen.

Via meer dan dertig widgets kun je een grafische gebruikersinterface opbouwen. Het uiterlijk is via thema’s en stijlen eenvoudig aan te passen. Bovendien kun je met animaties werken.

LVGL wordt gebruikt in slimme apparaten zoals thermostaten, smartwatches en keukenapparatuur, en zelfs in touchscreens voor industriële omgevingen. Op de website vind je enkele interactieve demo’s voor bekende toepassingen, waarbij de gebruikersinterface in de browser wordt getoond.

Met LVGL kun je via widgets een gebruikersinterface bouwen.

1 Wat gaan we doen?

Met ESPHome kun je relatief eenvoudig apparaatjes voor je slimme huis maken. Een voordeel ten opzichte van bijvoorbeeld Arduino en MicroPython is dat je niet hoeft te programmeren. Je hoeft alleen een configuratiebestand te maken waarin je de gebruikte microcontroller, verbindingsgegevens voor je wifi-netwerk en alle aangesloten componenten aanduidt. Hierna wordt firmware gemaakt en weggeschreven op je microcontroller. Alleen die eerste keer is dit soms wat lastig. Heb je het eenmaal werkend? Alle keren erna kun je heel eenvoudig de configuratie aanpassen en over-the-air (OTA) naar de microcontroller sturen.

In dit artikel gaan we met LVGL werken. Hiermee kun je binnen ESPHome grafische interfaces maken via widgets. Voor veel projecten zul je daarom niet eens componenten hoeven aan te sluiten, maar heb je genoeg aan een touchscreen. Denk bijvoorbeeld aan een lichtknop en helderheidsregeling voor een slimme lamp in Home Assistant, zoals we in dit artikel demonstreren. Je kunt natuurlijk ook geavanceerdere gebruikersinterfaces maken voor vrijwel elk apparaat in Home Assistant.

©pozitivo - stock.adobe.com

Je kunt bijvoorbeeld zelf een gebruikersinterface voor je slimme lampen bouwen, zodat je ze eenvoudig kunt bedienen.

2 Wat heb je nodig?

Wat hardware betreft, is het vrij eenvoudig. De ESP32-chip heeft snel de voorkeur boven de verouderde ESP8266-versie, zeker als je met een touchscreen gaat werken. De Raspberry Pi Pico W (zie gelijknamig kader) is ook een optie, maar die wordt nog niet volledig ondersteund binnen ESPHome.

Makkelijk om mee te starten is een eenvoudig ontwikkelbordje rondom de ESP32 dat je voor ongeveer 5 euro kunt aanschaffen. Het is wel fijn als je hier goede documentatie bij hebt, zodat je op zijn minst weet waar alle aansluitingen zitten.

Er zijn diverse varianten van de ESP32-module. Bekende opties zijn de ESP-WROOM-32E, ESP32-C3 en ESP32-S3. De ESP32-C3 wordt vaak in extra compacte bordjes gebruikt, die je onder de naam ‘super mini’ tegenkomt – handig als je niet veel aansluitingen nodig hebt of niet veel ruimte hebt.

De ESP32-S3 is een fijne optie vanwege de beschikbaarheid van PSRAM (Pseudo Static RAM), een voordelig type werkgeheugen dat onder meer nuttig is bij grafische toepassingen. Staat een touchscreen centraal in jouw project en wil je snel van start, overweeg dan een model met ingebouwde ESP32-chip (zie volgende paragraaf).

De ESP32-module is in verschillende uitvoeringen verkrijgbaar.

Raspberry Pi Pico W

De Raspberry Pi Pico is een voordelige en flexibele serie ontwikkelbordjes rondom de RP2040-microcontroller. De eerste versie verscheen in januari 2021. De Pico W is vanwege de wifi-connectiviteit een interessante optie voor ESPHome. Recent werd de Pico 2 W aangekondigd die op meerdere fronten is verbeterd. Dat model is op het moment van schrijven echter nog niet geschikt voor ESPHome.

De Raspberry Pi Pico W is ook bruikbaar in Home Assistant.

3 Touchscreen

Als je een touchscreen gaat gebruiken in je ESPHome-project, dan kun je eventueel een los exemplaar op de microcontroller aansluiten en configureren. Maar je kunt ook een touchscreen met ingebouwde ESP32 kiezen. Dat is vaak veel handiger en goedkoper. Je hoeft niet te solderen en kunt direct een gebruikersinterface bouwen in YAML-code. Het scheelt ook wat tijd. Bovendien zijn er zelfs modellen compleet met behuizing.

Kies een scherm dat door ESPHome wordt ondersteund. De website van ESPHome geeft goede suggesties. Je kunt ook afgaan op ervaringen van anderen. Het kan dan een iets grotere uitdaging zijn om de juiste configuratie voor je display in ESPHome te vinden. Je zult daarbij waarschijnlijk wel even moeten experimenteren, niet alleen bij het instellen van je display, maar ook bijvoorbeeld voor het touchgedeelte. Zelfs bij het vrij gangbare touchscreen dat we in dit artikel gebruiken, was dat een beetje prutsen.

Kies een touchscreen dat door ESPHome wordt ondersteund.

4 Scherm met ESP32

Voor dit artikel hebben we een eenvoudige ESP32-2432S028 gebruikt, met een resistief touchscreen van 2,8 inch met 240 × 320 pixels. Dit model wordt ook wel de ‘Cheap Yellow Display’ genoemd, wat vooral met de gele printplaat te maken heeft.

Er zijn meerdere varianten. Zo wordt in de schermpjes vaak de ILI9341-chip als aansturing gebruikt, maar soms ook de ILI9342, zoals in ons exemplaar. Dat vergt dan een heel kleine, maar noodzakelijke aanpassing in je configuratie.

Je kunt het scherm flexibel inzetten voor je IoT-projecten. Zoek je een wat groter touchscreen, dan kun je bijvoorbeeld de CrowPanel van Elecrow overwegen. Die is er in een versie van 5 inch (ca. 32 euro) en 7 inch (ca. 42 euro), inclusief acrylbehuizing en verzending via de fabrikant. Beide versies hebben een touchscreen met hoge resolutie van 800 × 480 pixels en zijn voorzien van de modernere ESP32-S3-chip. Het touchscreen is capacitief, wat zeker voor kleinere bedieningselementen fijner werkt dan het resistieve touchscreen in ons goedkope alternatief.

Tegenwoordig bestaan er ook ronde touchscreens. Een leuke optie (zij het met beperkte schermruimte) is de ESP32-2424S012 met een ESP32-C3-microcontroller, een rond kleuren-touchscreen van 1,28 inch en in een witte of zwarte behuizing. Makerfabs heeft een vergelijk schermpje zonder behuizing. De LilyGo T-RGB heeft een wat groter 2,1inch-scherm (zonder behuizing), maar is ruim twee keer zo duur.

De ESP32-2432S028 is een voordelig scherm (onder), een wat duurder alternatief is het capacitieve 5inch-aanraakscherm met ESP32 van Elecrow (boven).

5 Add-ons voor ESPHome

Hoewel je bijvoorbeeld een pc met Python kunt gebruiken voor het bewerken van je configuratiebestanden en het flashen van de microcontroller met de software voor ESPHome, is het meestal veel makkelijker om de add-on voor ESPHome binnen Home Assistant te gebruiken. Dat geeft ook een ander groot voordeel: je kunt de configuratie voor alle apparaten met ESPHome binnen Home Assistant beheren. Je zult zeker in de testfase veel wijzigingen aan de configuratie moeten maken.

Via de add-on voor ESPHome voeg je eenvoudig microcontrollers toe.

6 Microcontroller toevoegen

We gaan nu een verse microcontroller toevoegen. Je kunt eventueel ESPHome Web gebruiken om de microcontroller voor te bereiden voor gebruik met ESPHome, maar wij geven zoals gezegd de voorkeur aan de ESPHome-add-on, die je binnen Home Assistant kunt openen.

Je kunt voor deze methode de microcontroller gewoon via usb aansluiten op je eigen pc, maar dit vereist wel dat je Home Assistant opent via een beveiligde https-verbinding. Lukt dat niet? Als alternatief kun je de microcontroller ook via usb aansluiten op het systeem met Home Assistant zelf, voordat je verder gaat in ESPHome.

Het dashboard van ESPHome toont alle toegevoegde apparaten.

Ook leuk: Werk met wat je hebt: creëer je eigen alarmsysteem met Home Assistant

7 Configuratie

Klik binnen ESPHome op New device om een nieuwe microcontroller te initialiseren. Vul bij Name een naam in voor het apparaat. Bij Network name vul je de naam (SSID) in van het wifi-netwerk waarmee de microcontroller moet verbinden en bij Password het bijbehorende wachtwoord. Klik dan op Next.

In de volgende stap zal ESPHome een configuratiebestand maken, firmware bouwen en de microcontroller flashen. Klik daarvoor dus eerst op Connect. Als het goed is, kun je nu de com-poort selecteren waarmee de microcontroller is verbonden. Zie je geen com-poort, dan zul je eerst drivers moeten installeren. De instructies krijg je als je het venster sluit zonder een com-poort te selecteren. Als de verbinding is gelukt, zal de installatie verdergaan. Lukt het niet? Dan kun je kiezen voor Skip this step gevolgd door een handmatige configuratie.

Vul een naam in en de details voor het wifi-netwerk.

Toepassingen voor een touchscreen

Er zijn veel leuke toepassingen voor een touchscreen. Zo kun je bijvoorbeeld een soort weerstation maken, dat je voorziet van actuele informatie van Home Assistant. Ook kun je live de opbrengst van je zonnepanelen laten zien of het verbruik in huis. Je zou een schermpje voor Music Assistant kunnen maken met bijvoorbeeld de weergave van het nummer en volumeregeling (zie ook: Met Music Assistant ben jij de baas over jouw muziekcollectie). Tot slot kun je een scherm gebruiken voor statusmeldingen of loggegevens.

8 Touchscreen met ESP32

We gebruiken in dit artikel zoals gezegd de ESP32-2432S028 als voorbeeld. Dit is een touchscreen met ingebouwde ESP32-chip. Dit apparaatje kun je direct toevoegen aan ESPHome: precies zoals in paragraaf 7 staat omschreven, al moesten we in dit geval na het aanwijzen van de com-poort wel de boot-knop even indrukken.

Overigens bevat het apparaat meestal een voorgeprogrammeerde demo met een gebruikersinterface op basis van LVGL. Die zie je als je hem zo uit de doos op een voeding aansluit. Je kunt daarmee meteen de werking controleren. Je zult bij een model met resistief aanraakscherm overigens iets harder moeten drukken dan je misschien gewend bent.

We gebruiken dit voordelige 2,8inch-aanraakscherm, dat ook wel ‘Cheap Yellow Display’ wordt genoemd.

9 Schermconfiguratie

Na het toevoegen van je touchscreen heb je direct een basisconfiguratie voor ESPHome. Via Edit kun je deze configuratie aanpassen. Zowel voor het aansturen van het display als de registratie van het aanraken wordt SPI (Serial Peripheral Interface) gebruikt. Voor onze ESP32-2432S028 is dit de configuratie, rekening houdend met de gebruikte interne GPIO-pinnen:

We voegen nu eerst de configuratie van het display toe en in paragraaf 11 het touchgedeelte. Voor het display is de configuratie als volgt:

Merk op dat er ook een (oudere) variant van dit touchscreen is met de ILI9341. In dat geval gebruik je model: ILI9341 en invert_colors: false. Na het maken van de aanpassingen kies je Install. Je kunt nu kiezen hoe je de firmware wilt overbrengen. Meestal kies je Wirelessly voor over-the-air-updates. Het apparaat hoeft daarbij niet meer met jouw pc te zijn verbonden.

Binnen ESPHome kun je eenvoudig de configuratie bewerken.

10 LVGL-bibliotheek

Binnen ESPHome kon je voorheen met displays werken door binnen de component display met lambda bijvoorbeeld teksten met een bepaald lettertype naar je scherm te sturen. Als je LVGL gaat gebruiken, gebruik je geen lambda meer, maar alleen LVGL en widgets. Als eerste voegen we de LVGL-bibliotheek toe aan de YAML-code:

lvgl:
  buffer_size: 25%

De optie buffer_size is ons geval noodzakelijk, vanwege de afwezigheid van PSRAM. In paragraaf 13 voegen we ook nog widgets toe. Omdat we dat hier nog niet hebben gedaan, zie je na het flashen als het goed is een demo met een knop, checkbox, cirkel met tekst en schuifbalk.

11 Configuratie touchscreen

Bediening via het scherm is nog niet mogelijk. Daarvoor moeten we het touchscreen toevoegen aan de configuratie van ESPHome:

Bewaar de aanpassingen en installeer de nieuwe firmware. Controleer of je de demo goed kunt bedienen. De regels onder on_touch zorgen dat in de logs de geregistreerde coördinaten worden getoond. Er kunnen aanpassingen nodig zijn in de regels onder calibration en transform.

12 Backlight

Het display is voorzien van een achtergrondverlichting (backlight) via pin 21. We definiëren deze output als volgt:

Daarna configureren we de achtergrondverlichting, waarbij we verwijzen naar de hierboven gedefinieerde output.

Na het flashen zal de backlight standaard aanstaan. Eventueel kun je deze vanuit Home Assistant aan- en uitzetten en de helderheid ervan regelen, bijvoorbeeld op basis van afwezigheid. Je kunt ook een script maken om de helderheid bij inactiviteit terug te brengen. Daarvoor verwijzen we je naar het uitgewerkte voorbeeld op GitHub (zie kader ‘Code downloaden’).

Binnen Home Assistant kun je eventueel ook de backlight aan- en uitzetten.

13 Widgets toevoegen

Onder de regel lvgl kun je nu de gewenste LVGL-componenten toevoegen aan je YAML-configuratie. Denk aan bijvoorbeeld knoppen, schuifregelaars, grafieken of labels. In dit voorbeeld voegen we aan de bovenkant alleen twee widgets toe voor een dimbare led, te weten een schakelaar (button) en schuifregelaar (slider).

De meeste opties dienen voor het positioneren van de widget. We geven bijvoorbeeld de breedte (width) en hoogte (height) aan, halen de widgets iets van de rand of met x en y, en regelen de uitlijning met align. Het gedeelte bij on_click zorgt dat de bewuste lamp in Home Assistant wordt omgeschakeld bij het klikken op de button. Voor de slider doen we hetzelfde onder on_release. Die acties zijn overigens om veiligheidsredenen niet direct mogelijk. In paragraaf 16 leggen we uit hoe je dit kunt toestaan.

We voegen in dit voorbeeld alleen twee eenvoudige widgets toe.

Cookbook voor ESPHome en LVGL

We houden het hier redelijk eenvoudig, maar je kunt natuurlijk veel geavanceerdere gebruikersinterfaces maken. Zo is bijvoorbeeld een geneste structuur mogelijk, kun je op verschillende manieren een grid maken, en met pagina’s individuele schermen of secties in je gebruikersinterface maken. Daarbij kan elke pagina zijn eigen widgets hebben. ESPHome geeft op zijn website in een ‘cookbook’ nog wat praktische voorbeelden voor het werken met LVGL, ook in combinatie met Home Assistant.

De website van ESPHome heeft veel voorbeelden voor het werken met LVGL.

14 Interactie met Home Assistant

De entiteit voor de dimbare lamp heeft in Home Assistant de naam light.wledkantoor. De waardes zijn nodig om de widgets de juiste status te kunnen geven. Daarom voegen we hieronder een binary_sensor toe voor de status (aan of uit) en een sensor voor het helderheidsniveau. We werken vervolgens bij on_state en on_value de widgets bij als de status verandert in Home Assistant. Bij id vul je uiteraard de id van de betreffende widget in.

Gebruik de logfunctie om te zien of bijvoorbeeld een status verandert.

15 Toevoegen aan Home Assistant

De add-on voor ESPHome hebben we gebruikt om de microcontroller van firmware te voorzien. Maar je zult het apparaat hierna nog wel moeten toevoegen aan Home Assistant. Dat is heel eenvoudig: het wordt automatisch gevonden. In Home Assistant zie je via Instellingen / Apparaten en diensten het bewuste apparaat direct terug op het tabblad Integraties. Klik op de knop Toevoegen om het aan Home Assistant toe te voegen.

Het apparaat met ESPHome moet je nog toevoegen aan Home Assistant.

16 Acties toestaan

Als je het touchscreen bedient, zal Home Assistant een melding geven dat het ESPHome-apparaat heeft geprobeerd een actie in Home Assistant uit te voeren. Standaard is dit om veiligheidsredenen niet toegestaan, maar dit is eenvoudig op te lossen.

Ga naar Instellingen / Apparaten en klik dan onder het kopje Geconfigureerd op ESPhome. Achter het bewuste apparaat klik je vervolgens op Configureren. Zet een vinkje bij Toestaan dat het apparaat Home Assistant-acties uitvoert. Klik op Verzenden. Hierna zijn alle acties zoals het omschakelen van de lamp en regelen van de helderheid wel toegestaan.

Zorg dat het apparaat acties in Home Assistant mag uitvoeren.

▼ Volgende artikel
Slimme stekkers: welke modellen zijn echt zuinig?
© Proxima Studio - stock.adobe.com
Huis

Slimme stekkers: welke modellen zijn echt zuinig?

Met slimme stekkers verander je je huis eenvoudig in een smart home: steek ze in een gewoon stopcontact, sluit er lampen of je televisietoestel op aan en regel via een app of met je stem bijvoorbeeld dat ze automatisch worden uitgeschakeld. Zo voorkom je onnodig stroomverbruik doordat apparaten niet meer op stand-by blijven staan. Maar slimme stekkers gebruiken zélf ook stroom. Welke zijn zuinig genoeg om écht geld te besparen?

Energie besparen en slimme apparaten gaan uitstekend samen. In dit artikel lees je hoe je geld bespaart door gebruik te maken van de zuinigste slimme stekkers. • Slimme stekkers en stroomverbruik • De zuinigste slimme stekkers op een rij • Waar je op moet letten bij het kopen van slimme stekkers

Ook lezen: Stroomvreters: deze apparaten in huis verbruiken meer energie dan je denkt


Slimme stekker of slim stopcontact?

De termen slimme stekker en slim stopcontact worden door elkaar gebruikt. Dat is een beetje verwarrend, maar wel begrijpelijk: het is een apparaat met aan de ene kant een stekker (voor je 'domme' stopcontact) en aan de andere kant een slim stopcontact. In dit artikel hanteren we de benaming slimme stekker.


Zo bespaart een slimme stekker stroom

Een slimme stekker helpt je stroom besparen door apparaten automatisch uit te schakelen, bijvoorbeeld 's nachts. Zo verbruikt je televisie geen stroom meer in de stand-bymodus. Je kunt instellen dat alle apparatuur op vaste tijden uitschakelt, bijvoorbeeld zodra je gaat slapen. Je kunt ook met één druk op de knop alle lampen en andere apparaten uitschakelen, zodat je niets vergeet. Slimme stekkers uit een hogere prijsklasse bieden bovendien inzicht in je stroomverbruik. Daardoor kun je gerichter energie besparen.

©Proxima Studio - stock.adobe.com

Verbruik van een slimme stekker

Tegenover de besparing staat het eigen stroomverbruik van slimme stekkers. Dat begint bij zo'n 0,3 watt en loopt op tot 2 watt. Niet veel, maar ze staan wel 24 uur per dag en 365 dagen per jaar aan. De zuinigste modellen verbruiken daardoor op jaarbasis 2,6 kWh (0,3 watt × 24 uur × 365 dagen ÷ 1000). Bij een stroomprijs van 0,30 euro per kWh komt dat neer op 0,79 euro per jaar. Een slimme stekker die 2 watt verbruikt kost op jaarbasis 5,26 euro. In een slim huis gebruik je al snel 10 slimme stekkers, waardoor je op jaarbasis aardig wat geld kunt besparen door de zuinigste modellen uit te kiezen.

Kies niet alleen op prijs, maar ook op verbruik Vergelijk je het jaarlijkse stroomverbruik met de aanschafprijs van een slimme stekker (meestal tussen de 5 en 35 euro), dan blijkt al snel dat vooral het stroomverbruik bepalend is voor de totale kosten op de lange termijn. Toch vermelden veel verkopers niets over het energieverbruik.

Denk aan de compatibiliteit

Alleen letten op het stroomverbruik van een slimme stekker is niet genoeg. Het is minstens zo belangrijk dat de stekker goed samenwerkt met jouw slimme netwerk. De meeste modellen werken met Google Home en Amazon Alexa, terwijl Apple HomeKit selectiever is. Check daarom altijd de productbeschrijving om zeker te weten dat de slimme stekker bij jou thuis werkt.

Slimme stekkers die samenwerken met

Google Assistant en met Alexa

Stroomverbruik en verbindingstype

Waar komt het grote verschil in stroomverbruik tussen slimme stekkers vandaan? Dat heeft alles te maken met de verbinding met je thuisnetwerk. De meeste stekkers gebruiken wifi om bereikbaar te blijven, zodat jij ze op afstand kunt bedienen. Maar wifi verbruikt relatief veel energie – het signaal is eigenlijk krachtiger dan nodig is voor dit soort toepassingen.

Een zuiniger alternatief is een hub die het wifisignaal omzet naar een lichter protocol, zoals Zigbee of Z-Wave. Die vormen een soort schakel tussen je netwerk en de slimme stekkers. Het grote voordeel: dit soort verbindingen verbruiken vaak minder dan 0,5 watt.

©Proxima Studio - stock.adobe.com

Zigbee en Z-Wave

De zuinige protocollen die gebruikt worden zijn Zigbee en Z-Wave en die werken allebei prima. Maar ze zijn niet verenigbaar met elkaar. Je zult dus één systeem moeten kiezen. Daarnaast heb je een centrale hub nodig om alles aan elkaar te koppelen. Dat is een kleine investering die zich, door de lagere stroomkosten, snel terugverdient.

Slimme stekkerVerbruik (watt)Protocol
TP-Link Tapo P1151 – 1,5Wifi
TP-Link Tapo P1000,5 – 1Wifi
Shelly Plug S0,9 – 1,5Wifi
Iqore Smart Plug1 – 2Wifi
Aqara Smart Plug0,3 – 0,5Zigbee
Philips Hue Smart Plug0,3 – 0,5Zigbee
IKEA TRETAKTSmart Plug0,3 – 0,5Zigbee
Samsung SmartThings Outlet0,5 – 1,5 WZigbee
Fibaro Wall Plug V20,5 – 1Z-Wave
Qubino Smart Plug0,5 – 1Z-Wave

Verbruik van hubs voor Zigbee en Z-Wave

Voor een compleet beeld moeten we ook kijken naar het stroomverbruik van een Zigbee- of Z-Wave-hub. Zigbee-hubs verbruiken doorgaans tussen de 0,5 en 3 watt. Sluit je meerdere slimme stekkers of andere apparaten aan, dan verdien je dat al snel terug ten opzichte van wifi. Z-Wave-hubs verbruiken wat meer, meestal tussen de 2 en 10 watt.

Ook qua veelzijdigheid zijn er verschillen. De Philips Hue Bridge (Zigbee) is bijvoorbeeld erg zuinig, met een verbruik tussen de 0,5 en 1 watt. Maar deze werkt uitsluitend met Philips Hue-apparaten.

Een slimme start is het halve werk

Zoals je ziet, zijn er heel wat factoren om rekening mee te houden. Breng daarom vooraf in kaart wat je nu nodig hebt én wat je in de toekomst verwacht te gebruiken. Zo voorkom je onnodige kosten en bespaar je op de lange termijn, vooral als je ook let op het energieverbruik per apparaat.


Nog meer energie besparen? ⤵️

Vraag een offerte aan voor verduurzaming: