ID.nl logo
Van handmatig naar automatisch: scripts voor Gmail en Google Agenda
© Bilal Ulker - stock.adobe.com
Huis

Van handmatig naar automatisch: scripts voor Gmail en Google Agenda

Stel, je gebruikt Google-apps als Gmail, Agenda, Documenten of Spreadsheets, maar je mist een bepaalde functie in een van die apps. Met Google Apps Script voeg je die gewoon zelf toe. En dankzij slimme tools en trucs hoef je er nauwelijks voor te (kunnen) programmeren.

In dit artikel laten we zien hoe je Google Apps Script gebruikt om taken in Google te automatiseren:

  • Maak je eerste script in Google Apps Script
  • Verbind Google-apps met elkaar door middel van eenvoudige scripts
  • Stel geautomatiseerde e-mailantwoorden in
  • Maak een dagelijkse samenvatting van je Google Agenda in een Google-document

Gegrepen door coderen? Leren programmeren? Met deze tools is coderen geen geheimcode meer

Code downloaden

In dit artikel worden codevoorbeelden gegeven. Omdat het overtikken van dergelijke scripts erg foutgevoelig is, kun je ze beter downloaden en daarna bekijken of kopiëren. Via deze link vind je drie bestanden, één met de losse voorbeelden uit dit artikel en twee langere scripts die uitgelegd worden in paragraaf 6 en 7.

Stel dat je in Gmail een automatisch antwoord wilt instellen, maar alleen onder specifieke voorwaarden, bijvoorbeeld alleen wanneer een e-mail van een bepaalde afzender komt. Dan is het wel zo handig om ervoor te zorgen dat dit antwoord slechts één keer per persoon wordt verstuurd.

Met Google Apps Script, kortweg GAS, kun je zo’n voorwaardelijk antwoord instellen (vanaf paragraaf 5). GAS is een platform voor snelle applicatieontwikkeling binnen het ecosysteem Google Workspace. Hiermee maak je snel scripts die de functionaliteit van Google-apps uitbreiden of automatiseren.

GAS gebruikt JavaScript en biedt ingebouwde bibliotheken voor de meeste Google Workspace-apps, zoals Documenten, Spreadsheets, Agenda, Formulieren, Vertalen, Maps, Drive en Gmail. Deze bibliotheken zijn direct beschikbaar in de GAS-Editor, en je gebruikt ze door objecten aan te roepen, zoals SpreadsheetApp en DriveApp.

Om bijvoorbeeld een bereik in een actieve spreadsheet te openen, roep je de Google Spreadsheet-bibliotheek aan met:

var werkblad = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var gegevens = werkblad.getRange('A1:D15').getValues();

Maar nu slaan we wel een paar stappen over. En omdat dit artikel zich ook richt op lezers met wat minder script-ervaring, doen we een klein stapje terug.

GAS-quota

Google Apps Script is gratis beschikbaar, al heb je hiervoor wel een Google-account nodig. Je kunt een (extra) account aanmaken op www.google.com/account/about via de knop Account maken.

Gratis accounts hebben enkele beperkingen vergeleken met betaalde Google Workspace-accounts. Zo kun je maximaal 100 e-mails per dag versturen via MailApp, maar bijvoorbeeld wel 20.000 e-mails lezen. En je kunt tot 250 dia’s en spreadsheets maken. Voor een volledig overzicht van de quota voor zowel gratis als betaalde accounts kun je terecht op deze webpagina.

Je zult merken: zelfs met de limieten van een gratis account kun je al veel bereiken.

Met deze beperkingen in het gratis account valt eigenlijk best te leven.

1 Hallo, wereld!

Met je Google- of Workspace-account log je bijvoorbeeld in bij Google Documenten via https://docs.google.com. Daar kies je Leeg document. Of je gebruikt de verkorte url www.docs.new.

Open hier het tabblad Uitbreidingen en selecteer Apps Script. De editor opent in je browser, met een deelvenster voor je code, een werkbalk voor het uitvoeren en debuggen, en een logvenster voor uitvoer en fouten.

Laten we, zoals gebruikelijk in de programmeerwereld, de wereld begroeten met ons eerste script, dat je als volgt in het editor-venster typt:

function halloWereld() {
/boxLogger.log('Hallo, wereld!');
}

Klik op Naamloos project, geef dit een naam en bevestig met Naam wijzigen. Sla je script op in de cloud door op het diskette-icoon te klikken. Druk dan op Uitvoeren: onderaan in het Uitvoeringslogboek zie je meldingen over de start en het voltooien van het uitvoeren, en de werkelijke uitvoer: Hallo, wereld!

Wanneer je vervolgens surft naar https://script.google.com verschijnt je dashboard met onder meer een overzicht van Mijn projecten en Mijn uitvoeringen.

De wereld begroeten met je eerste script – zo hoort het.

2 Logs

Dit eenvoudige script spreekt eigenlijk voor zich, maar let op het gebruik van de .log()-methode van het ingebouwde Logger-object. Deze methode is namelijk handig om te volgen wat er in je script gebeurt of om te debuggen. Door de aanroep bijvoorbeeld vlak voor een mogelijk probleem te plaatsen, kun je de uitvoer van variabelen of berekeningen controleren terwijl het script draait.

Je plaatst het gewenste bericht of de variabele tussen haakjes, bijvoorbeeld:

function logVoorbeeld() {
var naam = 'Jeroen';
var leeftijd = 39;
Logger.log('Naam: ' + naam);
Logger.log('Leeftijd: ' + leeftijd);
}

Deze logberichten zijn trouwens alleen zichtbaar voor jou als scriptontwikkelaar.

Het is ook nuttig om weten dat je in JavaScript voor de waarde van een variabele zowel enkele als dubbele aanhalingstekens kunt gebruiken, maar je blijft best consistent binnen een project(script). Je kunt beide ook handig combineren, als volgt:

var zin = 'Toon zei: "Dit is mijn uitspraak!"';

Eventueel commentaar laat je voorafgaan door een dubbele slash (//). Merk ook op dat de editor zowel automatische voltooiing als gekleurde syntax ondersteunt, wat het scripten sneller en overzichtelijker maakt.

Je kunt het logboek ook gebruiken tijdens het proefdraaien en debuggen van je script.

3 Koppelen apps

Het is natuurlijk de bedoeling dat je je scripts daadwerkelijk gaat koppelen aan een Google-app. Hieronder volgen twee eenvoudige voorbeelden om dit te doen.

Je kunt bijvoorbeeld e-mailberichten via Gmail versturen met de .sendEmail()-methode van het MailApp-object:

function verzendEmail() {
MailApp.sendEmail('<ontvanger@domeinnaam.tld>', '<Onderwerp>', '<Berichtinhoud>');
}

Of je leest gegevens uit een Spreadsheets-werkblad en bewerkt deze:

function leesbewerkWerkblad() {
var werkblad = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var waarde = werkblad.getRange('A1').getValues();
Logger.log('Huidige waarde in A1: ' + waarde);
werkblad.getRange('A1').setValue('Nieuwe waarde!');
}

Voor dit tweede voorbeeld is er een actief Google-spreadsheet nodig. Ga hiervoor bijvoorbeeld naar www.sheets.new, vul een testwaarde in cel A1 in en selecteer Uitbreidingen / Apps script.

Vanuit de GAS-editor kun je trouwens ook op elk moment een nieuw script toevoegen door op de plusknop Een bestand toevoegen te klikken en Script te kiezen, waarna je direct een naam kunt invullen.

Meer documentatie over klassen en methoden in Google Apps Script vind je via deze link. Gevorderde gebruikers vinden hier ook informatie over het gebruik van Google-services, die met specifieke API’s via GAS toegankelijk zijn.

Bij een tweede scriptronde verschijnt in het uitvoeringslogboek ‘Nieuwe waarde!’.

4 Autorisatie

Zodra je je script opslaat en uitvoert, krijg je een melding dat je het moet autoriseren. Wil je het script alleen voor jezelf gebruiken, dan kun je dit privé houden, zodat er geen officiële verificatie nodig is. Klik in het meldingsvenster op Rechten controleren, selecteer je Google-account, klik op Geavanceerd, en kies Ga naar <scriptnaam> (onveilig), en druk op Toestaan. Je ontvangt ook een e-mailmelding van Google met de titel Security alert.

Als je het script alsnog wilt laten verifiëren voor gebruik door anderen, is dit wat complexer. Meld je aan bij de Google Cloud Console met het juiste Google-account. Klik op Select a project, selecteer je GAS-project of klik op New project (en geef het nieuwe project een naam), vul eventueel in het veld Location een locatie in en bevestig met Create. Selecteer het project, druk linksboven op het menu-icoon en ga naar APIs & Services / Credentials. Klik op Configure Consent Screen. Kies Internal om de app beschikbaar te maken voor gebruikers binnen je Workspace-domein of kies External om de app ook voor anderen beschikbaar te maken (dit laatste kan ook binnen de gratis proefperiode). Bevestig met Create en volg de verdere instructies. Bij External moet je nog aanvullende informatie verstrekken en een beoordeling door Google afwachten. Dit heeft dus wel wat voeten in de aarde.

Bij een heuse verificatie moet je kiezen of je je app intern of extern beschikbaar wilt maken.

5 Automatisch antwoord

We hebben al enkele voorbeelden van scripts gezien die aan een Google-app zijn gekoppeld, maar veel functioneel nut zat er nog niet in. Laten we daarom enkele bruikbare voorbeelden doornemen: een voor Gmail en een voor Google Agenda.

In het begin van dit artikel vermeldden we al het instellen van een voorwaardelijk automatisch antwoord in Gmail. Dit vergt enige voorbereiding.

Klik in Gmail op het schuifbalk-knopje rechts van de zoekbalk, vul bij Van het e-mailadres van de gewenste afzender(s) in en laat de overige velden leeg. Klik op Filter maken, vink de optie Het label toepassen aan, kies Nieuw label en geef het label een naam, bijvoorbeeld automatischantwoord-in. Bevestig met Maken om binnenkomende e-mails van de opgegeven afzenders automatisch aan dit label (een soort mailmap) te koppelen.

Maak vervolgens in het linkermenu met de plusknop bij Labels een tweede label aan, bijvoorbeeld automatischantwoord-uit.

Maak eerst twee labels in Gmail.

6 Antwoord-script

Nu heb je nog een script nodig dat regelmatig checkt welke e-mails het label automatischantwoord-in hebben en automatisch antwoordt naar de afzenders. Deze mails krijgen vervolgens het label automatischantwoord-uit zodat er geen tweede antwoord wordt verstuurd.

Open hiervoor je GAS-editor en maak een script. De benodigde code met commentaar vind je in het document GAP-script_Automatisch_Antwoord.txt. Geef dit script een naam, bijvoorbeeld autoAntwoord, en bewaar het. Klik in het menu op het wekkerpictogram Triggers en kies rechtsonder Trigger toevoegen. Selecteer de juiste functie (autoAntwoord), stel de optie Selecteer afspraakbron in op Op basis van tijd, kies als type bijvoorbeeld Minutentimer met als interval Elke 30 minuten. Bevestig met Save en autoriseer het script zoals uitgelegd in paragraaf 4.

Het script draait nu op de ingestelde frequentie. Test het gerust en de werking controleer via het menu Uitvoeringen.

Het script in werking: label lezen en toekennen, en automatisch antwoord versturen.

7 Agenda-synopsis

In het bestand GAP-script-Agenda-synopsis.txt, vind je een tweede script dat verbinding maakt met zowel Google Agenda als Google Documenten (Drive). Dit script maakt dagelijks een samenvatting van je agenda in een document binnen een specifieke map.

Voor de voorbereiding maak je deze map aan in Google Drive. Vervolgens heb je de ID van de map nodig: open de map in je browser en kopieer alles na /folders/ in de url.

Plak deze ID in het script bij:

var mapId = "JOUW_MAP_ID_HIER"

Om dit script automatisch op gezette tijden te laten draaien, voeg je een trigger toe. Selecteer hier de functie dagelijkseAgendaNaarDocument en stel een tijd-gebaseerde trigger in, bijvoorbeeld Dagtimer tussen 6:00 uur en 7:00 uur. Vergeet niet het script te autoriseren.

In het Uitvoeringslogboek vind je de url (https://docs.google.com/open?id=<…>) naar het document met je agendaoverzicht. Natuurlijk kun je ook naar de map in Google Drive gaan om het document te bekijken en het is ook prima mogelijk om dit document bijvoorbeeld direct naar je mailbox te sturen.

Lees de agenda in en neem een dagelijkse samenvatting op in een Google-document.

8 IFTTT: If This

Je kunt automatiseringen verder uitbreiden door een dienst als IFTTT te gebruiken. Stel dat je een nieuwe rij wilt toevoegen aan een Google Spreadsheet iedere keer wanneer er een nieuw Gmail-bericht binnenkomt met een specifiek onderwerp. Gebruik hiervoor dit GAS-script:

function voegtoeAanWerkblad(onderwerp, afzender) {
const werkblad= SpreadsheetApp.openById('JE_SPREADSHEET_ID');
werkblad.appendRow([new Date(), onderwerp, afzender]);
}

Vervang JE-SPREADSHEET_ID door de ID in de url van je spreadsheet (alles tussen /d/ en /edit). Bewaar en autoriseer het script, en implementeer het als web-app (zie het kader ‘Implementaties’). Voeg een beschrijving toe en bij Wie heeft toegang kun je Iedereen instellen. Na bevestiging met Implementeren verschijnt de url met de implementatie-ID van je web-app. Kopieer en bewaar hem.

Log vervolgens in bij IFTTT, klik op Create en daarna op If This. Selecteer Email als service en kies Send IFTTT an email tagged. Vul als label bijvoorbeeld toevoegen in om te bepalen welke e-mails als trigger zullen gelden. Bevestig met Create trigger.

Dit script wordt als web-app geïmplementeerd.

Implementaties

In de GAS-editor vind je rechtsboven de knop Implementeren. Deze optie bespreken we kort, omdat je deze vooral gebruikt om je script openbaar te maken of bruikbaar te maken buiten de editor. Wanneer je Nieuwe implementatie selecteert, heb je verschillende mogelijkheden.

Je kunt uit de keuzelijst Type selecteren kiezen voor de optie Web-app. Hiermee is het script toegankelijk via een url voor een interactieve toepassing (zie ook paragraaf 9). Je kunt de functies van je script ook toegankelijk maken met de optie Uitvoerbaar API-bestand, zodat deze via http-verzoeken vanuit andere applicaties of diensten aanroepbaar zijn.

De derde optie is Add-on, waarmee je het script kunt integreren met een Google Workspace-app zoals Gmail of Google Documenten, bijvoorbeeld voor een aangepast menu of taakbalk. Tot slot kun je het script met de optie Bibliotheek opslaan en je project delen, zodat anderen er ook gebruik van kunnen maken.

Deze implementatiemogelijkheden zijn eveneens beschikbaar voor gratis accounts, maar er zijn wel bepaalde voorwaarden en limieten aan verbonden.

Je kunt je scripts ook zo implementeren dat anderen ze kunnen gebruiken.

9 IFTTT: Then That

Klik daarna op Then That en selecteer Webhooks als service. Hiervoor heb je wel een IFTTT Pro-account nodig (gratis één week proef, daarna circa 3 euro per maand).

Kies Make a web request, klik op Connect, en vul deze gegevens in:

Url: <webapp-url-met-implementatie-Id>

Method: POST

Content_type: application/json

Body:

{
"onderwerp": "{{Subject}}",
  "afzender": "{{From}}"
}

Bevestig met Create action en druk op Continue. Je ziet hier het e-mailadres van IFTTT (trigger@applet.ifttt.com) en jouw gekoppelde Gmail-adres, samen met de eerder ingevulde tag #toevoegen. Rond af met Finish.

Ga nu naar Gmail en test deze automatisering door een bericht naar trigger@applet.ifttt.com te sturen, met #toevoegen in de onderwerpsregel.

Je kunt via Instellingen / Alle instellingen bekijken / tabblad Filters en geblokkeerde adressen eventueel ook binnenkomende mail met het label #toevoegen in de onderwerpregel automatisch laten doorsturen naar het IFTTT-adres.

De IFTTT-applet werd getriggerd en zet via de webhook ons script in werking.

10 Veel of weinig code?

Met GAS kun je dus al veel doen, al dan niet in combinatie met automatiseringstools als IFTTT of Zapier. Het Google Apps Script-platform zegt zelf een zogenoemd low-code-platform te zijn: geschikt voor mensen met minder programeerervaring. Maar als je de door ons gemaakte voorbeeldscripts bekijkt, valt die beloofde low-code-aanpak wat tegen: de scripts lijken vooral geschikt te zijn voor meer ervaren ontwikkelaars. Toch zijn er technieken en tools om ook complexe GAS-scripts te gebruiken zonder (veel) programmeerkennis.

Zo vind je op internet kant-en-klare sjablonen (zie de genoemde links onderaan), en specifiek voor Google Spreadsheets kun je de macro-opnamefunctie inschakelen via Uitbreidingen / Macro’s / Macro opnemen. Neem een macro op, sla deze op, en bekijk of bewerk de macro via de GAS-editor die automatisch opent.

Daarnaast biedt Google AppSheet een gratis no-code-platform met visuele interface en sjablonen voor het bouwen van scripts en apps voor Google Spreadsheets en Drive.

De kers op de taart is AI in de vorm van een chatbot. OpenAI ChatGPT-4o is een van de beste taalmodellen op dit moment en is tegen de tijd dat je dit leest wellicht ook voor gratis accounts beschikbaar met canvas-functionaliteit.

Meld je aan bij ChatGPT en kies (indien beschikbaar) ChatGPT 4o with canvas. Geef uitgebreide instructies voor het beoogde Google Apps-script en vraag om verhelderende Nederlandstalige uitleg. De kans is bestaat dat de gegenereerde code in je GAS-editor meteen werkt. Zo niet, leg uit wat er misgaat, omschrijf eventuele (fout)meldingen en stap voor stap kom je dan meestal toch een werkend eindresultaat.

ChatGPT 4o met canvas: snel gegenereerde code die vaak meteen werkt.

▼ Volgende artikel
Luxaflex vies? Zo krijg je ze moeiteloos schoon
© eliosdnepr
Huis

Luxaflex vies? Zo krijg je ze moeiteloos schoon

Als er één plek in huis is waar stof zich graag verzamelt, dan is het wel op de luxaflex. En hangen ze in de keuken, dan worden ze niet alleen stoffig, maar ook nog eens vettig. Gelukkig hoef je niet uren te schrobben om ze weer schoon te krijgen: met de tips uit dit artikel zijn ze zo weer blinkend schoon.

Dit artikel in het kort: • Regelmatig doen: even afstoffen • Grondig schoonmaken: aluminium en kunststof • Grondig schoonmaken: houten luxaflex • Bedieningskoorden schoonmaken • Nicotine-aanslag verwijderen • Luxaflex langer mooi houden

Luxaflex schoon? Lees dan: De 5 beste tips om snel en simpel je ramen te lappen

Regelmatig doen: even afstoffen

Regelmatig afstoffen voorkomt dat vuil zich ophoopt. Een plumeau of microvezeldoek werkt prima. Draai de lamellen open zodat je overal bij kunt en werk van boven naar beneden. Een oude sok over je hand schuiven is een handige manier om elke lamel afzonderlijk schoon te vegen.

Wil je tijd besparen?* Gebruik dan een speciale lamellenborstel. Hiermee kun je in één beweging meerdere lamellen tegelijk afnemen. Druk niet te hard, om beschadigingen te voorkomen. Stofzuigen kan ook, maar gebruik dan een meubelmondstuk op de laagste stand en ondersteun de luxaflex met je andere hand.

* Wie niet eigenlijk...?

©africaimages.com (Olga Yastremsk

Als stoffen alleen niet meer genoeg is, moet je een stapje verder gaan. Hoe je dat doet, hangt af van het materiaal waarvan de luxaflex gemaakt zijn.

Grondig schoonmaken: aluminium en kunststof

Gebruik het bad…

Haal de luxaflex voorzichtig uit het kozijn en leg in een bad met lauwwarm water en een scheutje allesreiniger. Laat kort weken en veeg de lamellen schoon met een zachte spons. Spoel goed af en laat de luxaflex hangend drogen. Zorg ervoor dat metalen onderdelen niet te lang nat blijven om roestvorming te voorkomen en droog aluminium luxaflex direct af om oxidatie te vermijden.

…of de douche

Als de luxaflex te groot is voor een bad, kan afspoelen in de douche een alternatief zijn. Gebruik een plantenspuit met een sopje voor hardnekkige vlekken en spoel daarna grondig af. Let op dat kunststof koorden niet te nat worden (want dan kunnen ze hun stevigheid verliezen of verkleuren). Laat goed drogen en ventileer de ruimte goed om schimmelvorming te voorkomen.

Met stoom

Soms is weken in bad of afspoelen in de douche geen optie. Een stoomreiniger kan dan uitkomst bieden, vooral bij aluminium en kunststof luxaflex. Gebruik de stoom op lage stand en houd voldoende afstand om schade te voorkomen. Een andere methode is een sopje met een plantenspuit op de luxaflex vernevelen en daarna droogwrijven met een microvezeldoek.

Grondig schoonmaken: houten luxaflex

Hout is gevoelig voor vocht, dus in bad leggen of onder de douche afspoelen is geen goed idee. Gebruik een licht vochtige doek met een mild schoonmaakmiddel en test nieuwe middelen altijd eerst op een onopvallende plek. Je kunt ook speciale houtzeep gebruiken. Doe dat wel met mate en kies bij voorkeur een variant die geen vettig laagje achterlaat, omdat sommige houtzepen een dun laagje vormen dat stof kan aantrekken.

Je kunt ook een doek met een klein beetje afwasmiddel gebruiken, maar zorg dat deze nauwelijks vochtig is. Droog de lamellen direct na met een schone doek om watervlekken te voorkomen. Behandel ze eventueel met een verzorgende houtolie of was, maar alleen als het materiaal daar geschikt voor is. Laat ze na behandeling open drogen en voorkom direct zonlicht om kromtrekken en verkleuring te vermijden.

Nicotine-aanslag verwijderen In ruimtes waar wordt gerookt, kan een gelige laag op de luxaflex ontstaan. Dit is lastig te verwijderen met alleen water en zeep. Meng gelijke delen water en azijn en gebruik een zachte doek om de lamellen af te nemen. Spoel daarna na met een schone, licht vochtige doek en droog direct af.

©Rafael Ben-Ari

Bedieningskoorden schoonmaken

De koorden van luxaflex worden vaak vergeten bij het schoonmaken, maar kunnen door stof en vet behoorlijk groezelig worden. Wikkel een vochtige doek met mild schoonmaakmiddel om het koord en trek het koord er voorzichtig doorheen. Herhaal indien nodig en laat goed drogen.

Luxaflex langer mooi houden

Regelmatig afstoffen voorkomt dat vuil zich ophoopt. Maak ze in keukens vaker schoon. Vermijd overmatig watergebruik, vooral bij houten luxaflex. Laat ze open drogen na een schoonmaakbeurt en houd ze, als je ze niet gebruikt, opgetrokken om stofophoping te verminderen. Zo blijven je luxaflex langer mooi en schoon.

🪶 Op zoek naar een plumeau?

(ook handig voor spinrag in hoekjes en aan het plafond)

▼ Volgende artikel
Vermijd pottenkijkers: zo beveilig je je camera of deurbel optimaal
Huis

Vermijd pottenkijkers: zo beveilig je je camera of deurbel optimaal

Misschien heb je er wel een: een beveiligingscamera of videodeurbel waarmee je je woning via een online-verbinding in de gaten kunt houden. Dat kan handig zijn, maar er zijn ook privacyrisico's. Als je niet voorzichtig bent, kunnen onbevoegden namelijk toegang krijgen tot jouw camerabeelden. In dit artikel geven we wat tips om dat te voorkomen.

In dit artikel bespreken we manieren waarop je kunt voorkomen dat mensen je zomaar in je tuin of huiskamer kunnen begluren via je videodeurbel of IP-camera. We gaan daarbij in op de volgende aspecten:

  • De keuze van de camera 
  • Het instellen van een (uniek) wachtwoord
  • Het (zo veel mogelijk) voorkomen van hacks

Ook lezen: 5 fouten met je beveiligingscamera die je hierna nooit meer maakt

Kies een betrouwbaar merk

Er zijn natuurlijk heel veel soorten beveiligingscamera's voor consumenten, maar de privacyrisico's die wij bespreken spelen zich vooral af bij videodeurbellen en zogenoemde IP-camera's. Deze hebben als overeenkomst dat ze de opgenomen beelden online opslaan, zodat je via een website of app altijd toegang hebt tot de camerafeeds.

Mocht je op zoek zijn naar zo'n apparaat, zorg er dan voor dat het merk betrouwbaar en privacyvriendelijk is. Zo adviseren experts om op te passen met Chinese merken als Dahua en Hikvision, en Chinese smarthomeplatformen als Tuya (waar onder meer de camera's van Action, Woox en Marmitex gebruik van maken). Hoewel het niet is bewezen, is het goed mogelijk dat de software een achterdeurtje bevat waardoor de fabrikant met de beelden kan meekijken. De lokale wetgeving dwingt fabrikanten namelijk om data te verzamelen en af te staan aan de overheid.

Ook andere bekende merken hebben in het verleden te maken gehad met beveiligingsproblemen. Zo belandden in 2019 duizenden inloggegevens van Ring-klanten op het darkweb en hadden Amazon-medewerkers jarenlang toegang tot de camerafeeds. Verder kwam Wyze vorig jaar in opspraak doordat sommige klanten ineens de camerabeelden van anderen in hun app te zien kregen.

De LSC Smart Connect-beveiligingscamera van de Action maakt gebruik van Chinese software.

Stel een eigen wachtwoord in

Het klinkt misschien als een open deur, maar het niet instellen van een eigen wachtwoord is de meest voorkomende oorzaak waardoor onbevoegden kunnen meekijken met camerabeelden. Veel fabrikanten leveren hun camera’s met een standaardgebruikersnaam en -wachtwoord, zoals 'admin' of '1234'. Er bestaan zelfs complete websites waarop lijsten circuleren met de standaardinloggegevens van tientallen cameramerken.

Hoewel het niet legaal is, kunnen pottenkijkers zo met wat trial-and-error relatief makkelijk toegang krijgen tot camerabeelden. Er zijn zelfs websites die deze onbeveiligde feeds verzamelen en openbaar op hun website plaatsen. Een bekend voorbeeld hiervan is Insecam, die hier in 2014 wereldwijd het nieuws mee haalde.

Na alle ophef heeft die website alle privacy-schendende streams van bijvoorbeeld deurbelcamera's of webcams in woningen verwijderd, maar er zijn nog andere plekken online waarop zulke beelden wél te zien zijn. Toegegeven, deze websites zijn niet makkelijk te vinden (het delen van deze beelden is immers illegaal), maar als je een beetje weet waar je moet zoeken, kom je ze zeker tegen.

Er zijn gelukkig steeds meer camerafabrikanten die klanten verplichten een uniek wachtwoord te gebruiken, waaronder Panasonic, maar als dat niet het geval is, is het dus ten zeerste aan te raden om meteen een nieuw wachtwoord te verzinnen en (mits die mogelijkheid er is) tweestapsverificatie te activeren.

Insecam stond tien jaar geleden vol met links naar onbeveiligde webcams.

Voorkom hacks

Hoewel het veel minder vaak voorkomt, is het mogelijk om beveiligingscamera's te 'hacken' en op die manier bij de beelden te komen. Voor sommige IP-camera's moet je namelijk bepaalde TCP-poorten op je router/modem openzetten, zoals 80 of 443, om van buitenaf met deze camera's te kunnen verbinden.

Als je dat handmatig (en zorgvuldig) doet, hoeft dat geen probleem te zijn. Het wordt pas echt gevaarlijk als je de camera deze poorten zelfstandig laat openzetten via uPnP (Universal Plug and Play). Deze functie vereist geen enkele vorm van authenticatie. Onbevoegden kunnen met malware daardoor eenvoudig allerlei poorten openen. Je kunt dus beter ver uit de buurt van uPNP blijven.

Zorg er tot slot ook voor dat je de firmware van de camera regelmatig bijwerkt, voor het geval er een kritieke kwetsbaarheid is gedicht. Malware als Mirai heeft in het verleden veel schade aangericht door kwetsbaarheden van slecht beveiligde camera's te misbruiken. Het is daarom ook een risico om je camera's en deurbellen met het internet te (laten) verbinden als de fabrikant geen updates meer uitbrengt.

Beelden lokaal opslaan

Als je het risico op pottenkijkers helemaal wilt voorkomen, kun je er in sommige gevallen (zoals bij de camera's van UniFi) ook voor kiezen om de camerabeelden uitsluitend lokaal op te slaan. In plaats van in de cloud, worden de beelden dan bijvoorbeeld op een SD-kaartje of basisstation opgeslagen. Dat gaat ten koste van het gemak, omdat je dan zelf ook niet meer eenvoudig op een website of app kunt inloggen om je beelden te bekijken, maar het is natuurlijk wel privacyvriendelijker.