ID.nl logo
Detecteer personen in je huis met Frigate
© Reshift Digital
Huis

Detecteer personen in je huis met Frigate

Aanwezigheidsdetectie in een domoticasysteem als Home Assistant gebeurt vaak met bewegingssensoren of met hulpmiddelen zoals bluetooth-beacons, maar dat werkt niet altijd even nauwkeurig. Er is ook een andere oplossing: met machine learning automatisch camerabeelden analyseren op de aanwezigheid van personen. In dit artikel implementeren we dat met de software Frigate en de Google Coral USB Accelerator op een Raspberry Pi 4, zodat we Home Assistant automatisch kunnen laten reageren op onze aanwezigheid of die van andere personen.

Realtime detectie van personen in camerabeelden is mogelijk dankzij machine learning. We gebruiken daarvoor een neuraal netwerk dat getraind is op beelden van personen. Als je dit netwerk daarna nieuwe beelden toont, kan het met de kennis die het tijdens de training opgedaan heeft personen detecteren. Dat werkt vrij goed: de technologie is de laatste jaren met rasse schreden vooruitgegaan.

01 Raspberry Pi 4 met Coral USB Accelerator

Er is één nadeel: deze detectie vereist heel wat rekenwerk. Gelukkig bestaat er speciale hardware die geoptimaliseerd is voor de berekeningen in neurale netwerken. Een van die hardwareversnellers is de Google Coral USB Accelerator, die voor rond de 70 euro te koop is. Het is een klein kastje ter grootte van een wat brede usb-stick, en wordt via een meegeleverde usb-c-kabel op een usb3-poort aangesloten voor de communicatie met de computer.

Als computer waarop we de herkenningssoftware draaien, kiezen we voor de energiezuinige Raspberry Pi (maar het kan ook op een Ubuntu-server, bijvoorbeeld met Ansible-NAS (zie Computer!Totaal 9). Hoewel de eerdere modellen in principe ook kunnen, raden we de nieuwe Raspberry Pi 4 aan omdat die twee usb3-poorten heeft; anders wordt de snelheid van de Coral USB Accelerator afgeknepen door de usb2-poort. Een ander voordeel van de Pi 4 is dat die naast de basisversie met 1 GB RAM ook versies met 2 en 4 GB RAM heeft. Wij hebben deze masterclass met succes uitgevoerd op een Pi 4 met 2 GB RAM.

We gaan ervan uit dat je Raspbian Buster Lite op je Raspberry Pi 4 geïnstalleerd hebt. Dat doe je door het image met balenaEtcher op een micro-sd-kaart te schrijven, er een leeg bestand ssh in op te slaan en eventueel (als je wifi gebruikt in plaats van ethernet) een bestand wpa_supplicant.conf met de wifi-configuratie. Steek de micro-sd-kaart daarna in je Pi, sluit de Coral USB Accelerator op een usb3-poort van de Pi aan, sluit eventueel de ethernetkabel aan en tot slot de voedingsadapter om je Pi op te starten.

©PXimport

02 Domoticacontroller en mqtt-broker

Als domoticacontroller maken we gebruik van Home Assistant. Dat kun je op een Raspberry Pi installeren (eventueel zelfs dezelfde die de beeldherkenning doet), of op je nas of een Linux-server via Docker. Een eenvoudige manier om Home Assistant te installeren is via Hass.io. In de masterclass in Computer!Totaal 7/8 vind je uitgebreide instructies.

Ook met een ander domoticasysteem kun je deze masterclass uitvoeren, zolang je het systeem maar met een mqtt-broker kunt laten communiceren. Die mqtt-broker dien je zelf nog te installeren: Eclipse Mosquitto is een populaire keuze. Gebruik je Hass.io, dan installeer je Mosquitto eenvoudig via de add-on Mosquitto MQTT broker.

Een mqtt-broker is een centrale server die verbonden clients toelaat om boodschappen uit te wisselen zonder dat ze van elkaars bestaan hoeven te weten. Wanneer onze Pi 4 een persoon detecteert in het camerabeeld, stuurt die via mqtt een boodschap naar de broker en wanneer de persoon weer uit beeld is een andere boodschap. Home Assistant heeft zich ondertussen geabonneerd op de boodschappen, zodat het domoticasysteem onmiddellijk door de mqtt-broker op de hoogte gehouden wordt bij het verschijnen of verdwijnen van een persoon.

03 Camera’s

Dan ontbreekt nog maar één component in onze opstelling: de camera’s. De software Frigate kan personen in streams van meerdere camera’s tegelijk detecteren. Dat werkt in principe met elke ip-camera die rtsp (Real Time Streaming Protocol) ondersteunt, dus die camera’s kunnen overal in je huis staan.

De detectie van personen verloopt dan als volgt. De Pi 4 leest continu één of meer streams van ip-camera’s in via het netwerk, laat er zijn neuraal netwerk op los, dat via de aangesloten Coral USB Accelerator versneld wordt uitgevoerd, en stuurt dan de boodschap dat er een persoon verschijnt of verdwijnt via mqtt-boodschappen over het netwerk. Home Assistant pikt die boodschappen op en reageert erop, bijvoorbeeld door verlichting aan of uit te doen of je een notificatie te sturen.

04 Configuratiebestand

De volgende stap is om een configuratiedirectory op je Pi 4 aan te maken en daarin een configuratiebestand in te vullen:

mkdir frigate_confignano frigate_config/config.yml

De inhoud daarvan hangt van je situatie af. Gebruik als inspiratie het voorbeeldconfiguratiebestandvan de GitHub-pagina van Frigate. Het resultaat zal er ongeveer zo uitzien:

web_port: 5000
mqtt:
host: 192.168.0.63
topic_prefix: frigate
cameras:
voordeur:
rtsp:
user: frigate
host: 192.168.0.118
port: 5540
password: geheim
path: /ch0
take_frame: 5
regions:
- size: 200
x_offset: 140
y_offset: 340
min_person_area: 5000
threshold: 0.5

Sla dit op met Ctrl+O en sluit nano dan af met Ctrl+X.

De variabele web_port stelt de poort voor waarop Frigate de mjpeg-stream en jpg-snapshots van de gedetecteerde personen ter beschikking stelt. Onder mqtt definieer je de hostname of het ip-adres van de machine waarop je mqtt-broker draait en het prefix waaronder Frigate al zijn mqtt-boodschappen publiceert.

Onder cameras definieer je één of meerdere camera’s, in dit geval slechts één (voordeur). Onder rtsp vul je de gegevens in over de hostnaam, poort, gebruikersnaam en wachtwoord en het pad waaronder het beeld van de camera beschikbaar is. Als je camera geen authenticatie vereist, vul je een willekeurige gebruikersnaam en wachtwoord in. Met take_frame: 5 zeggen we dat Frigate maar elke vijf frames moet verwerken. Dat is handig voor camera’s waarvan je de framerate niet kunt instellen.

05 Naar personen zoeken

Onder regions tot slot definieer je in welke regio’s Frigate naar personen zoekt. We hebben hier één regio gedefinieerd, maar om rekentijd uit te sparen definieer je er beter enkele kleinere. De juiste waardes hangen van de resolutie van je camera af en waar je personen verwacht.

De variabele min_person_area stelt het product van lengte en breedte in pixels voor dat iemand minimum van oppervlakte moet hebben om als persoon gedetecteerd te worden. En met de drempelwaarde in de laatste regel stellen we in dat we van het detectie-algoritme minstens 50% kans dat het om een persoon gaat verwachten voor we op mqtt publiceren dat we een persoon hebben gevonden. Met al deze waardes zul je wat moeten experimenteren zodra je het beeld ziet.

06 Docker installeren

Frigate wordt verspreid in de vorm van een Docker-container. Installeer dus eerst Docker. Helaas bevatte de versie van Docker in Raspbian Buster tijdens de redactiesluiting een fout, waardoor je die niet met een eenvoudig sudo apt install docker.io kon installeren. Download daarom in de plaats het installatiescript van de website van Docker en voer het uit:

curl -sSL https://get.docker.com | sh

Geef dan je gebruiker toestemming om Docker te gebruiken:

sudo usermod pi -aG docker

Log uit met exit en log dan weer in, zodat de gebruikersrechten van toepassing zijn.

07 Frigate installeren

Download nu de broncode van Frigate:

git clone https://github.com/blakeblackshear/frigate.git

Tijdens de redactiesluiting werkte Frigate nog niet out-of-the-box op een Raspberry Pi, maar met één wijziging werkt het wel. Open het bestand Dockerfile:

cd frigatenano Dockerfile

En zoek dan naar de volgende regels:

# VAAPI drivers for Intel hardware accellibva-drm2 libva2 i965-va-driver vainfo \

Plaats een hekje (#) voor de tweede regel, want deze pakketten bestaan niet voor de Raspberry Pi. Sla je wijzigingen op met Ctrl+O en sluit nano af met Ctrl+X.

Daarna creëren we de Docker-container van Frigate met:

docker build -t frigate .

Dat duurt een tijdje, je kunt de stappen van het bouwproces (van 1 tot 24) volgen terwijl ze worden uitgevoerd. Daarna kunnen we de Docker-container van Frigate installeren:

docker run --privileged -v /dev/bus/usb:/dev/bus/usb -v /home/pi/frigate_config:/config:ro -p 5000:5000 frigate:latest

Op deze lange opdrachtregel zie je onder andere dat we verwijzen naar het eerder aangemaakte configuratiebestand en dat we poort 5000 in de Docker-container laten forwarden naar poort 5000 op de Raspberry Pi.

©PXimport

Houd je Pi koel!

De configuratie die we hier voorstellen, is gevoelig voor oververhitting. De Raspberry Pi 4 wordt snel heet, wat je al wel gemerkt zult hebben als je per ongeluk wat te dicht met je hand bij het bordje bent geweest. Maar ook de Coral USB Accelerator verstookt stevig wat warmte. Als je de Pi 4 in een behuizing steekt, heeft die voldoende ventilatie nodig om de warmte te kunnen afvoeren. Een heatsink of ventilator is dan ook geen luxe met dit nieuwe model van de Pi. Zonder behuizing is ook prima, maar zorg altijd dat er voldoende warmteafvoer is voor de Pi en het versnellerbordje van Google.

08 Persoon gevonden

Als je nu een foutmelding te zien krijgt, moet je misschien in het configuratiebestand van Frigate enkele zaken aanpassen. Probeer de framerate bijvoorbeeld te verlagen en de regio’s te verkleinen. Zo mag een regio niet deels buiten het gezichtsveld van de camera vallen. Als alles goed gaat, kun je nu in je webbrowser een stream van het beeld van elke camera opvragen via http://IP:5000/voordeur.

De regio’s voor de detectie worden als witte vierkanten getoond. Als deze verkeerd staan, pas de regio’s dan in het configuratiebestand aan, sluit de Docker-container af met Ctrl+C en start hem opnieuw op met de laatste opdracht uit de vorige stap.

Als er nu een persoon in het beeld gedetecteerd wordt, krijg je er in het rood ‘person’ en een percentage bij te zien. Dat is de kans dat het volgens het neurale netwerk om een persoon gaat. Misschien zie je ergens in beeld ook een ander object herkend worden, zoals een ‘refrigerator’ of ‘cat’. Naast ‘person’ kent het gebruikte neurale netwerk immers ook andere objecten. Op de url http://IP:5000/voordeur/best_person.jpg vind je het recentste beeld van de persoon met het beste herkenningspercentage.

©PXimport

09 Camerabeeld in Home Assistant

Dit statische jpg-beeld kun je eenvoudig in Home Assistant (of een ander domoticasysteem) integreren door de url als een camera te definiëren. Zet daarvoor de volgende code in je configuration.yaml:

camera:- name: Laatste persoonplatform: genericstill_image_url: http://IP:5000/voordeur/best_person.jpg

Deze ‘virtuele camera’ kun je nu in het dashboard van je Home Assistant tonen om altijd een beeld van de laatst herkende persoon te zien. Dat kan bijvoorbeeld met de volgende Lovelace-configuratie:

- type: picture-glancetitle: Voordeurentities: []camera_image: camera.laatste_persoon

©PXimport

10 Mqtt-boodschappen

Je hebt nu altijd een beeld van de laatste persoon die in het camerabeeld kwam, maar als we van de mqtt-boodschappen die Frigate uitstuurt gebruikmaken, kunnen we Home Assistant ook op de aanwezigheid van personen in beeld laten reageren.

Dat gaat als volgt: als Frigate een persoon in de camera voordeur vindt, publiceert het programma een boodschap {"person": "ON"} op het mqtt-onderwerp frigate/voordeur/objects. Gaat de persoon daarna uit beeld, dan stuurt Frigate de boodschap {"person": "OFF"} naar hetzelfde onderwerp. Heb je nu ook een camera achterdeur gedefinieerd waarvan je door Frigate het beeld laat analyseren, dan verschijnen dezelfde boodschappen op het onderwerp frigate/achterdeur/objects. De boodschappen zelf hebben de vorm van een json-dictionary.

11 Persoonssensor in Home Assistant

Daarmee weten we nu genoeg om Home Assistant te laten reageren op de aanwezigheid van personen. Creëer een nieuwe binaire sensor in je configuration.yaml van Home Assistant:

binary_sensor:- name: Camera persoonplatform: mqttstate_topic: "frigate/voordeur/objects"value_template: '{{ value_json.person }}'device_class: motionavailability_topic: "frigate/available"

Als je Home Assistant daarna herstart, krijg je een extra binaire sensor te zien die aan of uit is naargelang er een persoon in het camerabeeld gedetecteerd wordt. En omdat Frigate op het mqtt-onderwerp frigate/available met de boodschap online respectievelijk offline aangeeft wanneer het programma start en stopt, kun je ook van in Home Assistant zien of Frigate wel draait. Als Frigate om een of andere reden gecrasht is, zie je dan in Home Assistant ‘Niet beschikbaar’ als status bij je sensor.

©PXimport

12 Op personen reageren in Home Assistant

Nu kun je Home Assistant in een automatisering laten reageren op de persoonssensor. Open in de webinterface van Home Assistant links Instellingen / Automatisering en klik dan rechtsonder op het plusteken om een nieuwe automatisering aan te maken. Geef je automatisering een naam.

Bij de triggers laat je het type op Staat staan en kies je als entiteit je binaire sensor, bijvoorbeeld binary_sensor.camera_persoon. Zorg dat bij de van-waarde off staat en bij de naar-waarde on. Zo laat je deze automatisering reageren op het verschijnen van een persoon. Wil je daarentegen bij het verdwijnen van een persoon een actie uitvoeren, draai dan beide waardes om.

Vul eventueel bij Voor een duur in, bijvoorbeeld als je de automatisering alleen wilt uitvoeren als een persoon minstens een bepaalde tijd aanwezig of afwezig is. Dat helpt ook om niet op elke snelle schakeling tussen on en off te reageren, want in sommige configuraties doet Frigate dat wel eens, terwijl er gewoon de hele tijd een persoon in beeld is.

©PXimport

13 Voorwaarden

Het volgende onderdeel zijn de voorwaarden. Je wilt immers waarschijnlijk niet elke keer dat Frigate een persoon detecteert iets doen. Misschien wil je bijvoorbeeld alleen als je afwezig bent alarm slaan terwijl er een persoon op het camerabeeld van je voordeur te zien is. Klik dan op Voorwaarde toevoegen en vul hier als voorwaarde toe dat je afwezig bent, bijvoorbeeld op basis van het bluetooth-signaal van je smartphone of fitnesstracker. In Computer!Totaal 7/8 vind je hoe je dat doet.

Kies je als type voorwaarde voor Tijd, dan kun je ook instellen dat de gedefinieerde actie alleen uitgevoerd wordt als de persoon ná of vóór een tijdstip of tussen twee tijdstippen gedetecteerd wordt. Je kunt zoveel voorwaarden toevoegen als je wilt.

14 En … actie!

Als laatste onderdeel van de automatisering komen de acties. Wat je hier doet, hangt natuurlijk af van wat je in Home Assistant allemaal gedefinieerd hebt. In de meeste gevallen zul je als type actie Service aanroepen gebruiken, in het uitklapmenu eronder een service kiezen en dan eronder service data toevoegen. De details hiervan hangen van de service af, en daarvoor verwijzen we naar de documentatie van Home Assistant.

Om je wat inspiratie te geven enkele ideeën die je hier kunt uitvoeren wanneer Frigate een persoon detecteert: stuur een notificatie naar je smartphone inclusief een foto van de persoon op de camera, activeer een willekeurig script, laat je verwelkomen met een gesproken boodschap, of stuur je Philips Hue-verlichting aan. Mogelijkheden genoeg!

Onder de motorkap van Frigate

Frigate maakt voor zijn objectdetectie gebruik van OpenCV, een opensource-bibliotheek voor computervisie, en TensorFlow, een opensource-bibliotheek van Google die vaak gebruikt wordt voor machine learning. Het machinaal leren zelf gebeurt met behulp van de Google Coral USB Accelerator, die TensorFlow Lite ondersteunt, een uitgeklede versie van TensorFlow die geoptimaliseerd is voor mobiele apparaten. In TensorFlow (Lite) kun je een neuraal netwerk uitvoeren dat op voorhand getraind is, en dat netwerk komt in de vorm van een model. Frigate maakt gebruik van het model MobileNet SSD v2 COCO, dat 90 types objecten herkent in afbeeldingen van 300 bij 300 pixels. Frigate verwerkt dus de frames van je camera’s, zet de aangeduide regio’s om naar afbeeldingen van 300 bij 300 pixels, laat die door TensorFlow Lite op de Coral USB Accelerator verwerken en stuurt het resultaat over mqtt. Als je wat wilt experimenteren, kun je ook je eigen TensorFlow Lite-model in Frigate gebruiken om andere types objecten te ontdekken.

©PXimport

▼ Volgende artikel
Zwarte aanslag in je waterkoker: is dat gevaarlijk en hoe krijg je het weg?
© ID.nl
Huis

Zwarte aanslag in je waterkoker: is dat gevaarlijk en hoe krijg je het weg?

Zie je aan de binnenkant van je waterkoker een donkere of zwartbruine aanslag, vooral ter hoogte van het waterniveau? Dat is een veelvoorkomend verschijnsel bij roestvrijstalen waterkokers die vaak worden gebruikt. Het oogt onfris, maar het is meestal geen vuil of schimmel — en zeker niet gevaarlijk.

Dit artikel in het kort

In dit artikel lees je waarom de binnenkant van je waterkoker zwart kan verkleuren,en hoe je de aanslag veilig verwijdert met azijn of citroenzuur.
Lees ook: Zo kies je een veilige waterkoker

Waarom de binnenkant zwart verkleurt

De zwarte aanslag ontstaat niet doordat het metaal zelf oxideert, maar door mineralen uit het water die zich afzetten en bij herhaald verhitten donker kleuren. Kalk, ijzer en vooral mangaan zijn daarbij de belangrijkste veroorzakers.

In Nederland komt dit vaker voor in regio's met hard water, waarin meer mineralen zitten. In sommige delen van het land (zoals Friesland, Gelderland, Overijssel en Drenthe) bevat het leidingwater van nature iets meer mangaan of ijzer. Tijdens de waterzuivering wordt dat grotendeels verwijderd, maar een kleine resthoeveelheid kan bij verhitting reageren tot donkere mangaanoxide. Dat hecht zich aan de wand van de waterkoker, precies op de plek waar het waterpeil meestal eindigt.

Ook aangebrande kalkaanslag kan bijdragen aan de verkleuring. Wanneer kalk zich ophoopt op de bodem of wanden en daarna opnieuw wordt verhit, verkleurt die witte laag naar bruin of zwart.

Is zwarte aanslag in je waterkoker gevaarlijk?

Nee. De zwarte aanslag is niet giftig en heeft geen invloed op de veiligheid van het gekookte water. Het gaat om afgezette mineralen, geen roest of corrosie van het metaal zelf. Wel kan een dikke laag de kooktijd verlengen en een lichte bijsmaak veroorzaken.

Hoe verwijder je aanslag?

De aanslag is meestal goed te verwijderen met natuurlijke middelen:

1: Vul de waterkoker met een mengsel van half water en half natuurazijn, of gebruik een eetlepel citroenzuur per halve liter water.

2: Laat dit 30 minuten inwerken en breng het mengsel daarna kort aan de kook.

3: Laat het afkoelen, giet het weg en veeg de binnenkant schoon met een zachte doek of sponsje.

4: Spoel grondig na met schoon water.

Blijft er na het schoonmaken een donkere waas zichtbaar, dan gaat het meestal om een hardnekkige mineraallaag die zich stevig heeft vastgezet. Bij goed roestvrij staal hoort het metaal zelf niet te verkleuren; blijvende vlekken wijzen eerder op hardnekkige aanslag of op een mindere kwaliteit staal.

Zo voorkom je nieuwe aanslag

Laat de waterkoker na gebruik altijd leeglopen en openstaan, zodat hij goed kan drogen. Kook alleen de hoeveelheid water die je nodig hebt, en ontkalk hem eens per maand met azijn of citroenzuur. Zo krijgen mineralen minder kans om zich te hechten en blijft de binnenkant langer schoon.

Liever niet met 🍋 aan de slag?

Er zijn ook kant-en-klare waterkokerontkalkers
▼ Volgende artikel
Zo haal je alles uit het vernieuwde Kladblok in Windows 11
© Diy13
Huis

Zo haal je alles uit het vernieuwde Kladblok in Windows 11

Na 40 jaar heeft Kladblok eindelijk een opfrisbeurt gekregen. De eenvoudige, oerdegelijke tekstverwerker is ideaal voor het bewerken van platte tekst zonder toeters en bellen. In Windows 11 is het bescheiden onderdeel flink gegroeid. Wat ooit een sobere tool was voor snelle notities, heeft nu een interessante set nieuwe functies.

Terwijl we hier bekijken wat nieuw is, gaat ondertussen de make-over van Kladblok door. In de testversies binnen het Windows 11 Insider-kanaal duiken nu zelfs opties op voor tekstopmaak zoals vet, cursief, onderstrepen en lijsten. Die nieuwigheden worden later dit jaar uitgerold naar alle gebruikers van Windows 11. Liever een vogel in de hand dan tien in de lucht? Absoluut, want intussen kunnen we al profiteren van deze verbeteringen.

Tabbladen toevoegen en losmaken

Met Windows 11 heeft deze basis-app een frisse look & feel gekregen en een aantal kenmerken waar veel gebruikers al jaren om vragen. De opvallendste vernieuwing is de ondersteuning van de tabs (afbeelding 1). Je kunt nu verschillende pagina’s van Kladblok openen, elk in een eigen tabblad. Geen wirwar meer van losse pictogrammen in de taakbalk voor elk geopend tekstbestand. Een nieuw bestand starten is simpel: klik bovenaan op het plusteken. Wil je een tabblad loskoppelen en als apart venster gebruiken? Geen probleem: sleep het tabblad naar het bureaublad en het verschijnt automatisch als een nieuw .txt-bestand. Andersom werkt het ook. Sleep een bestaand .txt-bestand naar de tabbalk van Kladblok en het wordt netjes toegevoegd aan de open tabbladen.

Ieder tabblad krijgt de naam van de eerste regel.

Tabbladen configureren

Zolang er minstens één tabblad is opgeslagen, kun je de volledige Kladblok-sessie sluiten, inclusief andere niet-opgeslagen bestanden, zonder gegevens te verliezen. Wanneer je Kladblok weer opent, worden alle tabbladen hersteld, zelfs na een herstart van de pc. Je bepaalt zelf wat er gebeurt wanneer je Kladblok opent. Klik daarvoor op het tandwieltje in de rechterbovenhoek van het programma. Vervolgens ga je naar de instellingen voor Kladblok openen. In de optie Wanneer Kladblok wordt gestart heb je de keuze tussen Doorgaan met vorige sessie of Nieuwe sessie starten en niet-opgeslagen wijzigingen negeren (afbeelding 2). De eerste optie is de standaardinstelling.

Wil je dat Kladblok telkens de inhoud van de tabbladen onthoudt?

Meervoudig herstel

Een belangrijke interne verbetering is de mogelijkheid om meerdere bewerkingen ongedaan te maken. In Windows 10 kon je in Kladblok met Ctrl+Z slechts de laatste bewerking terugdraaien (afbeelding 3). In Windows 11 kun je stapsgewijs wijzigingen ongedaan maken met Ctrl+Z. Ben je te ver teruggegaan, dan kun je je acties opnieuw uitvoeren met Ctrl+Y — net als in de meeste andere applicaties.

Eindelijk ondersteunt Kladblok meervoudig herstel. 

Uiterlijk

Onder het tandwieltje van de instellingen kies je het Uiterlijk van dit programma. Je hebt de keuze tussen de lichte en de donkere modus of je kiest voor de weergave om gewoon de systeeminstelling te volgen. Hier bepaal je ook het lettertype, de lettergrootte en de stijl (Regular, Italic, Bold, Bold italic) die je gebruikt voor de tekstbestanden. Onder het onderdeel Tekstopmaak zie je telkens een voorvertoning van de gekozen stijl (afbeelding 4). In de instellingen kun je tekstterugloop in- of uitschakelen. Dit zorgt ervoor dat tekst automatisch naar de volgende regel springt wanneer het einde van de regel is bereikt, in plaats van dat de tekst horizontaal verder loopt. Dat is onhandig, want dat betekent dat een tekstbestand soms als één hele lange regel wordt getoond.

Onderaan bij Tekstopmaak krijg je een voorvertoning van de gekozen stijl. 

Notepad++

Microsoft heeft Kladblok jarenlang stiefmoederlijk behandeld. Door de beperkte functionaliteit gingen veel gebruikers op zoek naar een alternatief – en vonden dat in de open-sourcetoepassing Notepad++. Een van de grootste troeven van Notepad++ is de ondersteuning voor een brede waaier aan programmeertalen, waaronder JSON, Python, C++, C#, Cobol, html, css en SQL … Daarnaast biedt het programma handige functies zoals regelmarkeringen, macro’s en de mogelijkheid om bestanden met elkaar te vergelijken. Notepad++ is gratis, werkt in een gesplitst scherm en ondersteunt tabbladen, zoeken en vervangen, én het automatisch hervatten van je werk – zelfs bij niet-opgeslagen bestanden. Wat deze variant (nog) niet kan: tabbladen naar een ander venster slepen.

Notepad++ is blijven hangen in zijn oude interface.

Interessante Kladblok-sneltoetsen

Om het maximale uit de tabbladen van Kladblok te halen, kun je het best de volgende sneltoetsen onthouden:

Ctrl+Tab, hiermee schakel je tussen de tabbladen
Ctrl+Shift+Tab,
hiermee schakel je tussen de tabbladen in omgekeerde volgorde
Ctrl+N,
maak een nieuw tabblad
Ctrl+W,
sluit het actieve tabblad
Ctrl+Shift+N,
open een nieuw venster in Kladblok in plaats van een nieuw tabblad.

Wil je alle tabbladen sluiten behalve het huidige tabblad, dan klik je met de rechtermuisknop op het actieve tabblad en selecteer je de opdracht Andere tabbladen sluiten (afbeelding 5).

Het is mogelijk om alle tabbladen behalve het actieve tabblad te sluiten.

Spellingcontrole en autocorrectie

Kladblok kan voortaan spelfouten markeren terwijl je typt, en typfouten desgewenst automatisch corrigeren. Om de spellingcontrole in- of uit te schakelen, klik je op het tandwieltje in de rechterbovenhoek. In het vak Spelling kun je de opties Spellingcontrole en Automatische correctie activeren (afbeelding 6). Vanaf dat moment verschijnt er een rood golflijntje onder fout gespelde woorden. Klik je met de linkermuisknop op zo’n woord, dan krijg je suggesties te zien waaruit je een correcte versie kunt kiezen. Let wel: deze functies werken alleen bij gewone tekstbestanden, niet wanneer je in Kladblok code schrijft, zoals html of css.

Schakel de spellingcontrole en de automatische correctie in. 

Zoeken en vervangen

Een van de minst bekende, maar erg handige functies van Kladblok is de mogelijkheid om snel naar specifieke tekst te zoeken en die eventueel meteen te vervangen. Gebruik hiervoor het menu Bewerken / Zoeken of de sneltoets Ctrl+F. Met Ctrl+H open je direct de functie Zoeken en vervangen, die je ook via het menu Zoeken kunt oproepen. Voer in het zoekvak de tekst in die je wilt vinden. Je kunt op de vergrootglasknop klikken of gewoon op Enter drukken. Klik op het kleine pijltje links van het zoekvak om het vak Vervangen te openen. Zodra de gezochte tekst is gevonden, gebruik je de pijltjes rechts van het zoekvak om omhoog of omlaag door het document te navigeren. Met de knop Vervangen wijzig je telkens één match; met Alles vervangen worden alle overeenkomsten in één keer aangepast (afbeelding 7). Deze functie ondersteunt ook enkele basisjokertekens: het sterretje * staat voor een willekeurig aantal tekens, het vraagteken ? voor precies één teken. Klik je op de knop met de schuifregelaars, dan kun je instellen dat de zoekopdracht hoofdlettergevoelig is. De optie Inwikkelen is een ongelukkige vertaling van Wrap. Als je die aanvinkt, doorzoekt Kladblok het hele document – ongeacht waar de cursor zich bevindt.

Het is mogelijk om bepaalde tekst in één keer te zoeken en te veranderen.

Herschrijven, Samenvatten en Schrijven

Kladblok heeft nu een set AI-functies om tekst te verbeteren. Het gaat om Herschrijven, Samenvatten en Schrijven. Met behulp van GPT kun je de inhoud verfijnen. Klik met de rechtermuisknop op de tekst en kies de optie Schrijven. In een nieuw venster lees je een herwerkte tekst die je op basis van drie criteria verder aanpast. Met de knop Lengte kies je voor een vergelijkbare tekstlengte, een kortere of een langere versie. Bij Toon kies je tussen Standaard, Formeel, Informeel, Inspirerend, Humor en Overtuigend. En dan is er nog de knop Formatteren waarmee je bijvoorbeeld een stijl selecteert zoals Zakelijk, Academisch, Marketing, Poëzie en meer. Onderaan deze herwerkte tekst zie je een numerieke aanduiding zoals 1 van 3. Dit betekent dat Kladblok meteen al drie versies klaarhoudt. Door op het pijltje te klikken schakel je door de versies. Dezelfde mogelijkheden krijg je als je via de rechtermuisknop de optie Aangepast herschrijven en Samenvatten kiest (afbeelding 8). Als je deze AI-functies liever niet hebt, dan kun je die uitschakelen in de instellingen van Kladblok.

Hier heeft AI drie verschillende samenvattingen gemaakt waaruit we kunnen kiezen.

Voet- en kopteksten

In Kladblok kun je bovendien voet- en kopteksten toevoegen die je pas te zien krijgt als de pagina uit de printer komt. In deze ruimte is het mogelijk om aan de boven- en/of onderkant de bestandsnaam, het paginanummer of de huidige datum op te nemen. Daarvoor gebruik je het menu Bestand / Pagina-instelling. Daarna moet je wel de juiste variabele gebruiken om aan te duiden wat je in de koptekst of voettekst wilt zien. Dit zijn de belangrijkste variabelen:

&d: De huidige datum afdrukken
&t:
De huidige tijd afdrukken
&f:
De naam van het document afdrukken
&p:
Druk het paginanummer af
&l:
De tekens die volgen, worden links uitgelijnd
&c:
Centreer de karakters die volgen
&r:
De tekens die volgen, worden rechts uitgelijnd

De printer zal de acties uitvoeren die je in de voet- en koptekst hebt ingegeven. Houd er rekening mee dat Kladblok deze instellingen niet opslaat, je moet ze dus bij iedere afdruk opnieuw opgeven.

Nu wordt de datum van het document in de koptekst afgedrukt.