ID.nl logo
Programmeren in Python met ChatGPT - Deel 5
© Limitless Visions - stock.adobe.com
Huis

Programmeren in Python met ChatGPT - Deel 5

In de vorige delen van de workshopreeks over de OpenAI-API hebben we teksten samengevat, vertaald en er informatie uit gehaald. Dat bleef telkens beperkt tot één vraag en één antwoord. In dit laatste deel gaan we een stap verder: je gaat in je eigen Python-programma’s volwaardige conversaties voeren met het taalmodel van ChatGPT.

In dit laatste deel laten we zien dat je in Python een conversatie met ChatGPT kunt voeren.

  • We breiden de basiscode uit met 'messages'
  • We creëren een spelpersonage

Lees ook: Babbelen met bijdehante bots: er is meer dan ChatGPT

Code downloaden In dit deel worden wat voorbeelden van stukken code gegeven. Omdat overtikken van code erg foutgevoelig is, kun je die code beter downloaden en daarna bekijken of kopiëren. Het bestand, gptcode-dl5.txt is beschikbaar via deze webpagina.

Je weet ondertussen hoe je in je Python-programma’s een vraag aan ChatGPT stelt via de OpenAI-API. We hebben dit in de vorige vier delen van deze workshopreeks geïllustreerd met talloze toepassingen. Maar onze programma’s hadden daarbij telkens dezelfde structuur: je stelt een vraag (de prompt), je krijgt een antwoord (de completion) en dan stopt de interactie.

Als je al eens van ChatGPT gebruikgemaakt hebt op de OpenAI-website, weet je dat je er ook volledige conversaties mee kunt voeren. Die mogelijkheid gaan we nu ook in onze eigen Python-programma’s inbouwen. In plaats van een klassieke, beperkte interface met invoer in een vast patroon, creëer je zo een conversationele interface. 

Basiscode

In de vorige delen van deze reeks maakten we altijd gebruik van een basisfunctie get_completion waaraan we een gebruikersprompt en eventueel een systeemprompt gaven, met optioneel ook een model. Die functie stuurde de prompt(s) door aan de OpenAI-API en gaf het antwoord terug.

Om een conversatie te voeren, moet het taalmodel toegang tot de hele context hebben, met de vorige boodschappen die het taalmodel en jij hebben uitgewisseld. Daarom maken we in dit deel een nieuwe hulpfunctie: get_completion_from_messages. Daaraan geef je de hele geschiedenis van boodschappen door. Onze basiscode ziet er dan als volgt uit:

De code kun je bekijken in het bestand gptcode-dl5.txt, te downloaden via deze pagina.

Klik daarom in Visual Studio Code op File / New File en kies Python File. Plaats daarin de voorgaande Python-code. De API-sleutel moet je zelf aanmaken in je account bij OpenAI, net zoals in de vorige delen van deze workshopreeks.

Google Nest Mini

Een apparaat dat ook luistert naar wat jij te zeggen hebt

Rollen

Waaruit bestaan die boodschappen nu? Het argument messages dat we aan de functie get_completion_from_messages moeten doorgeven, is een lijst van Python-dictionary’s, een datastructuur die sleutels en waardes heeft. Elke dictionary in de lijst messages heeft twee sleutels: "role" en "content". De eerste beschrijft de rol van de boodschap in de conversatie en de tweede de inhoud (de tekst).

De OpenAI-API kent drie rollen: system, user en assistant. Een boodschap met de rol system beschrijft een systeemprompt. Zoals we in de vorige delen uitlegden, geeft een systeemprompt algemene instructies aan het taalmodel. Een boodschap met de rol user beschrijft een vraag van de gebruiker. En een boodschap met de rol assistant beschrijft een antwoord van het taalmodel.

Een conversatie met de OpenAI-API kan er dan in Python als volgt uitzien in de vorm van boodschappen met een rol en inhoud:

De code kun je bekijken in het bestand gptcode-dl5.txt, te downloaden via deze pagina.

Voeg deze lijst aan je code toe. Daarna kun je aan de OpenAI-API vragen om de conversatie in deze boodschappen voort te zetten:

De code kun je bekijken in het bestand gptcode-dl5.txt, te downloaden via deze pagina.

Sla dit bestand in Visual Studio Code op met Ctrl+S en geef het een naam. Klik dan op Terminal / New Terminal, waarna er onder je code een nieuw deelvenster opent met een opdrachtprompt. Klik rechts bovenaan op het afspeelknopje (het driehoekje met de tooltip Run Python File als je erboven blijft hangen). Als alles goed gaat, krijg je nu in de terminal een antwoord als “Voor het geval dat de cloud gaat regenen!”.

Met deze kennis over de rollen weet je nu ook waarom er in de laatste regel van de functie get_completion_from_messages (en de functie get_completion die we in de eerdere workshops gebruikten) response.choices[0].message["content"] staat. Het stukje message["content"] geeft de tekst van het antwoord van het taalmodel terug. Als je message["role"] in die functie zou tonen, zou je "assistant" te zien krijgen.

Aan ChatGPT is geen originele komiek verloren gegaan.

Wat onthoudt de chatbot?

Je hebt gezien dat elke conversatie die je met het taalmodel voert, bestaat uit een lijst van boodschappen. Het taalmodel houdt rekening met alle informatie die in deze boodschappen te vinden is. Vertel je bijvoorbeeld in één boodschap je naam, dan kun je daar in een van de boodschappen erna naar vragen en kan het taalmodel daar perfect op antwoorden. Vervang de lijst messages uit het vorige voorbeeld maar eens door deze lijst en voer het programma uit:

De code kun je bekijken in het bestand gptcode-dl5.txt, te downloaden via deze pagina.

De conversatie is eenvoudig. Het taalmodel krijgt de instructie dat het een vriendelijke chatbot is. Daarna stelt de gebruiker zich voor en vraagt het taalmodel wat het kan doen. De gebruiker vraagt dan wat zijn naam is.

Als je dit programma uitvoert, zul je zien dat het taalmodel de naam heeft onthouden. Je krijgt dan immers een antwoord als: “Je naam is Koen. Dat heb je net verteld! Is er nog iets specifieks waar je meer over wilt weten?”

In een andere conversatie waarin je je naam niet vertelt, zal de chatmodel niet op de vraag kunnen antwoorden wat je naam is. Deze conversatie bijvoorbeeld:

De code kun je bekijken in het bestand gptcode-dl5.txt, te downloaden via deze pagina.

Dan krijg je als antwoord iets als: “Sorry, maar ik ben een chatbot en heb geen toegang tot persoonlijke informatie. Ik ken je naam niet.”

Het is belangrijk om te weten dat elke conversatie die je met het taalmodel voert volledig losstaat van de andere. Dat je eerder je naam verteld hebt in de andere conversatie, is geen informatie die in de nieuwe conversatie beschikbaar is. Het taalmodel kent alleen de algemene informatie waarop het is getraind en de lijst met boodschappen die je eraan doorgeeft. 

Conversaties voeren

Hierboven hebben we de boodschappen in de programmacode gezet. Maar we willen de gebruiker zelf invoer laten geven. Hoe doen we dat? Met nog een extra hulpfunctie, die de lijst met boodschappen opbouwt en telkens nieuwe invoer vraagt en de uitvoer toont. Dat doen we door de basiscode uit te breiden met:

De code kun je bekijken in het bestand gptcode-dl5.txt, te downloaden via deze pagina.

Als je dit programma uitvoert, kun je een vraag intypen en met een druk op Enter doorsturen. De functie converse voegt je vraag als prompt toe aan de lijst met boodschappen in de variabele context. Ook het antwoord van het taalmodel voegt de functie aan de lijst toe en dat antwoord wordt getoond. We blijven in een oneindige lus (met while True) de functie oproepen, waarbij de context telkens wordt uitgebreid met je vraag en het antwoord. Daardoor onthoudt het taalmodel de voorgaande boodschappen en kunnen we een echte conversatie voeren.

Het taalmodel onthoudt zaken die je in eerdere boodschappen hebt verteld.

Conversationele interface

We hebben nu in wezen een eenvoudige interface voor ChatGPT gebouwd in een terminalvenster. Maar we willen hier een conversationele interface van maken om op een gebruiksvriendelijke manier invoer voor een groter programma te verkrijgen. Als voorbeeld nemen we een computerspel, waarbij je in het begin je spelpersonage moet ontwerpen.

Pak een momentje van ontspanning

Met je favoriete spelpersonage

Een spelpersonage bestaat uit enkele eigenschappen, zoals naam, vaardigheid, uitrusting en ras. Het spel zou je dat allemaal in een formulier kunnen laten invullen, maar waarom niet in een conversatie? Dat gaan we in de rest van dit artikel programmeren. Als eerste stap moeten we dus een uitgebreide systeemprompt creëren die de conversatie kadert:

De code kun je bekijken in het bestand gptcode-dl5.txt, te downloaden via deze pagina.

Ja, de systeemprompt moet echt zo lang zijn. Als we niet expliciet zeggen wat de chatbot wel en niet mag doen, krijgen we uiteindelijk niet wat we willen: een JSON-string met de eigenschappen van het personage. 

Doet je programma niet wat het moet doen? Zodra je een taalmodel in je programma integreert, ben je afhankelijk van de grillen van het taalmodel. Het is een zwarte doos, waarvan je niet weet hoe het exact werkt en wat het doet. Dat contrasteert heel sterk met de ijzeren logica van een programmeertaal als Python. Het is dus goed mogelijk dat het programma van dit artikel niet doet wat je wilt, omdat je een net iets andere invoer geeft dan verwacht of omdat OpenAI ondertussen zijn taalmodel een update heeft gegeven die zich anders gedraagt. Je zult dus waarschijnlijk continu je programma moeten testen en de systeemprompt moeten finetunen, zodat het gewenste gedrag behouden blijft. Dat is het nadeel van de flexibiliteit van een taalmodel in je programma’s te integreren.

JSON

Een groot deel van onze systeemprompt bestaat uit instructies om de uiteindelijke keuzes van de gebruiker in de vorm van JSON (JavaScript Object Notation) te geven. Waarom is dat zo belangrijk? Omdat we de rest van ons programma alleen met gestructureerde gegevens kunnen laten omgaan, niet met tekst.

Dus als de gebruiker in een conversatie met onze assistent een speler met de naam Born heeft gekozen, die een orkenschurk is met een boog, dan moet ons programma dit uiteindelijk in de volgende vorm kunnen inlezen:

Converseren naar een doel

Het doel van onze conversatie is dus dat we uiteindelijk een JSON-string als hierboven krijgen, zodat het programma verder kan en we het spel kunnen spelen. We kunnen onze conversatie dus laten stoppen wanneer de uitvoer van de assistent een geldige JSON-string is.

Om JSON in Python te gebruiken, importeer je eerst de gelijknamige bibliotheek helemaal in het begin van het programma:

import json

Daarna komt onze basiscode en de systeemprompt met de uitgebreide instructies van hierboven, en daarna creëren we de volgende functie converse:

De code kun je bekijken in het bestand gptcode-dl5.txt, te downloaden via deze pagina.

Deze functie vraagt dus invoer van de gebruiker, voegt die aan de context toe en stelt de vraag aan de OpenAI-API. Het antwoord van de assistent voegen we aan de context toe.

Daarna probeert de functie om het antwoord van de assistent als een JSON-object in te laden. Lukt dat, dan geeft de functie dit JSON-object terug. Lukt dat niet, dan geeft Python de foutmelding json.decoder.JSONDecodeError terug en reageren we daarop door gewoon het antwoord van de assistent te tonen. Het is dan immers niet het laatste antwoord met de gestructureerde data in JSON-vorm, maar een vraag. In dat geval geeft de functie None terug, omdat de data nog niet volledig zijn.

Gestructureerde data

Hoe maken we nu van die functie converse gebruik? Dat doen we met de volgende code:

De code kun je bekijken in het bestand gptcode-dl5.txt, te downloaden via deze pagina.

We initialiseren eerst de variabele properties door ze de waarde None te geven. Dan tonen we de eerste boodschap van de assistent, waarin we de gebruiker naar de naam van het spelpersonage vragen.

Daarna roepen we de hele tijd de functie converse met de context aan, zolang de waarde die deze functie teruggeeft None is. Zoals we in die functie gezien hebben, geeft ze een JSON-string terug als de assistent JSON-data teruggeeft en anders None. Als de assistent de instructies correct volgt (zie het kader “Doet je programma niet wat het moet doen?”), stopt de conversatie dus wanneer de data volledig zijn.

Op dat moment wordt de code na het while-blok uitgevoerd. We kunnen nu de eigenschappen van het spelpersonage op een gestructureerde manier uit het JSON-object properties halen. We tonen ze hier één voor één. Uiteraard zou je nog wat controles moeten uitvoeren, zodat er geen ongeldige waardes in staan wanneer het taalmodel niet goed werkt. Maar dat is een oefening voor de lezer!

Onze spelassistent weet dat we met ‘human’ een mens bedoelen en met ‘staf’ een toverstaf, maar negeert in dit geval ons verbod om begeleidende tekst bij de JSON-string te geven.

Lees ook:

▼ Volgende artikel
Zelf je elektrische kookplaat aansluiten? Zo doe je dat slim en veilig!
© andrey
Huis

Zelf je elektrische kookplaat aansluiten? Zo doe je dat slim en veilig!

Hoewel koken op gas voorlopig nog mag, is duidelijk dat de toekomst elektrisch is. Veel mensen stappen nu al over op elektrisch koken – vaak in combinatie met inductie. Ben jij toe aan een nieuwe kookplaat of wil je van het gas af? Dan is het goed om te weten hoe je zo’n elektrische kookplaat aansluit, waar je op moet letten en wanneer je beter een professional kunt inschakelen.

Na het lezen van dit artikel weet je:
  • Dat er 1-, 2- en 3-fase-aansluitingen en -kookplaten zijn
  • Hoe je met de multimeter bepaalt wat voor aansluiting jij hebt
  • Hoe je de elektrische kookplaat aansluit

Dit vind je vast ook interessant: Wat voor soort kookplaten zijn er?

Eén, twee of drie fasen: wat betekent dat?

In tegenstelling tot een gaskookplaat, die je simpelweg aan een gasaansluiting koppelt, is een elektrische kookplaat net iets technischer. Zo'n kookplaat kan worden aangesloten op één, twee of drie elektrische fasen. Welke van de drie je nodig hebt, hangt af van het vermogen van je kookplaat én van de aansluiting in je keuken.

Een 1-fase kookplaat is het eenvoudigst. Die werkt op een gewone stekker met twee pinnen, precies zoals je gewend bent van andere apparaten in huis. Deze modellen hebben een beperkt vermogen – maximaal 3680 watt – maar zijn vaak krachtig genoeg voor wie niet al te fanatiek kookt. Aansluiten is simpel: stekker erin en je kunt aan de slag.

Voor een 2-fase kookplaat heb je een zogenoemde perilex-stekker nodig, met vijf pinnen. Die zie je vooral bij iets krachtigere inductiekookplaten. Meestal worden dit soort kookplaten zonder stekker geleverd, en is het slim om een elektricien in te schakelen voor de installatie. Het benodigde vermogen ligt tussen de 3681 en 7360 watt.

Een 3-fase kookplaat vraagt nog meer stroom en werkt op krachtstroom. Ook hier gebruik je een perilex-stekker met vijf pinnen, maar je moet wel eerst controleren of je meterkast daar op is voorbereid. De aansluitwaarde ligt boven de 7360 watt en het is belangrijk dat de aansluiting klopt – anders werkt de kookplaat niet of loop je zelfs risico op overbelasting. Laat dit daarom bij voorkeur aan een vakman over.

©vectorizer88 - stock.adobe.com

Een kookplaat voor 1- en 2-fase

Je kunt ook kiezen voor een kookplaat met powermanagement. Dat is een kookplaat die je op een normaal stopcontact of op een perilex-stopcontact aansluit. Deze kookplaat kun je in de toekomst uitbreiden, als je dat wilt, maar hiervoor hoef je nu nog niet meteen de aanpassingen in de meterkast en aansluiting door te voeren. Als je wel de aanpassingen in de meterkast laat doen, heb je profijt van de kracht van een 2-fase kookplaat.

Hoe weet je welke kookplaat bij je keuken past?

Wat je kunt aansluiten, hangt af van het type stopcontact in je keuken. Heb je een standaard wandcontactdoos met twee gaten? Dan past daar alleen een 1-fase kookplaat op. Die worden meestal geleverd met stekker en snoer, zodat je hem meteen kunt gebruiken.

Zie je een perilex-stopcontact (met vijf gaten)? Dan is je keuken in principe geschikt voor een 2- of 3-fase kookplaat. Alleen weet je dan nog niet of je meterkast daadwerkelijk drie fasen aankan. Dat kun je op twee manieren controleren: met een multimeter of door in je meterkast te kijken.

Zo check je de aansluiting met een multimeter

Heb je een multimeter in huis? Dan kun je precies meten hoeveel fasen je aansluiting ondersteunt. Teken op een papier het patroon van het perilex-stopcontact en noteer per gat wat je meet. Prik met één pin in het middelste gat (de aarde) en meet met de andere pin de overige vier. Krijg je twee keer 230 volt en twee keer 0? Dan heb je een 2-fase aansluiting. Meet je drie keer 230 volt en één keer 0? Dan is het een 3-fase aansluiting. Label de gaten met ‘L’ voor stroom en ‘N’ voor nul, zodat je straks precies weet wat waar hoort.

©Dmitriy

Voordat je een kookplaat aanschaft, check je eerst de nismaat van je aanrechtblad. Meet met een rolmaat eerst de nis op in het aanrechtblad. Doe dit voor de breedte, de diepte en de hoogte. Komen de afmetingen niet overeen met de kookplaat die je graag wilt? Kijk dan of je het aanrechtblad kunt aanpassen.

Geen multimeter? Kijk in de meterkast

Heb je geen meetapparatuur? Dan kun je in de meterkast zien hoeveel fasen er beschikbaar zijn. Bij een 2-fase aansluiting zie je twee gekoppelde groepen met een hendel ertussen. Zie je vier gekoppelde groepen? Dan is er krachtstroom aanwezig en kun je dus ook een 3-fase kookplaat aansluiten – mits het stopcontact daar geschikt voor is.

©auremar

Zelf een kookplaat aansluiten

Ga je zelf aan de slag? Dan is het belangrijk dat je weet wat je doet. Elektriciteit is geen speelgoed, dus bij twijfel: bel een vakman. Heb je een 1-fase kookplaat met powermanagement die je op een normaal stopcontact wilt aansluiten? Dan moet je deze eerst correct instellen.

Leg om te beginnen een stuk piepschuim onder de kookplaat, zodat je hem veilig kunt omdraaien zonder krassen of barsten. Plak daarna de afdichtband rondom het apparaat, bij voorkeur zo dicht mogelijk bij de glasrand. Begin aan de achterkant, zodat de naad niet in het zicht valt.

Open het aansluitcompartiment onder de kookplaat en controleer het aansluitschema dat daar staat. Gebruik de bijgeleverde bruggetjes om de juiste verbindingen te maken. Sluit het snoer aan: bruin op L, blauw op N en geelgroen op aarde. Zet het snoer vast met trekontlasting en sluit het klepje.

Draai nu de kookplaat weer om en steek de stekker in het stopcontact. Leg de kookplaat op z’n plek in het aanrechtblad. Houd de pauzeknop vijf seconden ingedrukt om het menu te openen. Zoek via de plusknop naar het onderdeel ‘PO’ (power) en stel het vermogen in op 3.7 in plaats van 7.4. Bevestig dit door de pauzeknop nog eens vijf seconden ingedrukt te houden. Je kookplaat is nu geschikt voor een standaard aansluiting.

Houd de stekker op de juiste positie tijdens het meten met de multimeter. Kijk hoe je de stekker in het getekende stopcontact zou steken, zodat je de juiste kleuren van de draden noteert op je tekening.

Een 2-fase kookplaat aansluiten: zo werkt het

Heb je een 2-fase kookplaat? Dan moet je eerst bepalen welke kleur draad bij welk contact hoort. Meet het snoer door met een multimeter, op de piepstand of op de Ohm-stand. Noteer welke draad bij welke stekkerpin hoort en gebruik die info bij het aansluiten.

Open vervolgens het aansluitvak onder de kookplaat en kijk welk aansluitschema je moet gebruiken. L1 en L2 koppel je aan de juiste stroomdraden, 01 en 02 aan de juiste nuldraad. Maak de trekontlasting los, sluit de draden aan zoals je eerder hebt gemeten, en zet alles weer stevig vast.

Steek daarna de stekker in het stopcontact en plaats de kookplaat netjes in het blad. Dankzij de afdichtband blijft alles goed op z'n plek. Zet vervolgens de kookplaat aan en test of alle kookzones werken. Krijg je een foutmelding? Dan is er waarschijnlijk iets misgegaan bij het aansluiten. Geen foutmelding? Dan is je kookplaat klaar voor gebruik.

©S.Engels

Het is gebruikelijk dat de pannen een licht tikkend of zoemend geluid maken tijdens het koken. Dit heeft te maken met het magnetisch veld van de kookplaat. Ruik je een vreemde geur na het installeren van de kookplaat? Dit is ook gebruikelijk en de geur trekt uiteindelijk weg.

▼ Volgende artikel
⛈️ Wat te doen bij onweer: thuis, buiten en op de camping
© Olga Yastremska, New Africa, Africa Studio
Huis

⛈️ Wat te doen bij onweer: thuis, buiten en op de camping

Vooral in de zomer is het vaak raak: code geel of code oranje wegens onweer. Weet jij wat je wél en juist níet moet doen als er een onweersbui nadert? Thuis kun je veel risico's beperken, maar juist buitenshuis – en zeker op de camping – is het opletten geblazen. In dit artikel lees je hoe je jezelf en anderen beschermt, of je nu binnen, buiten of aan het kamperen bent.


In het kort:

⚡ Onweer & thuis ⚡ Onweer & buiten ⚡ Onweer en kamperen: 🏕️ Tent 🚐 Caravan

Lees ook: Regen, regen en nog eens regen … zo voorkom je wateroverlast

Thuis tijdens onweer: veilig, maar niet zonder risico's

In huis ben je relatief goed beschermd tegen blikseminslag, zeker als het gebouw voorzien is van een goede bliksemafleider. Toch zijn er een paar voorzorgsmaatregelen die je serieus moet nemen. Gebruik bij onweer liever geen apparaten die verbonden zijn met het stroomnet of met leidingen. Denk aan de wasmachine, een vaste telefoon of een bedrade computer. Bliksem kiest daarbij meestal de makkelijkste route naar de grond, en dat zijn vaak metalen onderdelen in huis zoals koperdraden of waterleidingen.

Trek bij voorkeur de stekkers uit het stopcontact van kwetsbare apparatuur zoals computers, tv's of de router. Een stekkerdoos met overspanningsbeveiliging biedt wel wat bescherming, maar niet bij een directe inslag. Ga liever ook niet douchen of in bad, want waterleidingen kunnen de elektrische spanning van een blikseminslag geleiden.

Ramen kun je gewoon dicht houden, en als je wilt kijken naar het natuurgeweld, doe dat dan vanaf een veilige plek binnenshuis. Zorg dat huisdieren binnen zijn en zet het alarmsysteem even uit als dat storingsgevoelig is bij blikseminslag.

Buiten bij onweer: voorkom dat je zelf bliksemafleider bent

Ben je onderweg of buiten als het begint te donderen, dan is het zaak om snel te handelen.

Onthoud: als je de bliksem ziet en binnen 10 seconden de donder hoort, zit je binnen de gevarenzone. Zoek dan zo snel mogelijk een veilige schuilplek.

De veiligste plek is een gebouw met muren en een dak – bijvoorbeeld een winkel, huis of station. Een auto met metalen carrosserie is ook een prima optie. Die werkt als een kooi van Faraday en geleidt de stroom om je heen in plaats van door je heen.

Vermijd tijdens onweer open velden zoals weilanden of sportterreinen, want daar ben je letterlijk het hoogste punt. Ook hooggelegen plekken zoals duinen of heuveltoppen vormen een risico. Zoek geen beschutting onder een boom die in z'n eentje op een veld staat – dat is juist een bliksemmagneet. Blijf verder uit de buurt van metalen objecten zoals hekken, masten of fietsen, en houd afstand van water – of dat nu een meer, sloot of zwembad is.

Kun je nergens heen? Maak jezelf dan zo klein mogelijk: hurk neer op je voetzolen, houd je voeten tegen elkaar en wikkel je armen om je knieën. Ga niet liggen; zo vergroot je je contactoppervlak met de grond, wat het risico op aardstroom vergroot.

©ID.nl

Kamperen met onweer: extra opletten in tent of caravan

Kamperen geeft een gevoel van vrijheid, maar bij onweer ben je juist extra kwetsbaar. Een tent biedt geen enkele bescherming tegen bliksem, hoe stevig het doek ook is. Het metalen frame vergroot het risico juist, vooral als je op een open veld kampeert of vlak bij een losse boom staat.

Als er onweer op komst is, zoek dan zo snel mogelijk een veilig onderkomen. Een stenen sanitairgebouw, de receptie of je auto bieden veel meer bescherming dan een tent. Zit je in een camper of caravan met een metalen buitenkant? Dan ben je redelijk veilig, mits je ramen en deuren gesloten houdt en geen contact maakt met metalen delen. Stacaravans met een houten of kunststof omhulsel bieden die bescherming niet: het klopt dat ze geen stroom geleiden, maar ze voeren die ook niet af. Daardoor kan een blikseminslag via leidingen of metalen onderdelen binnen alsnog gevaarlijk uitpakken. Tijdens onweer blijf je dus beter uit de buurt van dat soort constructies.

Laat ook je elektronische spullen niet in de tent of aan opladers zitten. Berg ze los op, zonder kabels of contact met de grond.

Staan er bomen op de camping? Zorg dat je tent daar niet direct onder staat. Bij inslag kunnen takken afbreken of kan de bliksem via de wortels naar de grond doorslaan. Ook op campings in de bergen of aan open water is het risico op blikseminslag extra hoog – check bij aankomst wat de aanbevolen schuilplaatsen zijn.

En hoe zit het met de tentstokken?

Metalen tentstokken zijn niet per definitie gevaarlijk, maar ze kunnen wel extra risico opleveren bij onweer. Omdat tenten vrijwel altijd met metalen haringen in de grond staan, is er al snel sprake van een geleidende verbinding met de bodem. Bij een blikseminslag kan de stroom zich dan via het frame en de haringen verspreiden, met risico voor wie zich in de tent bevindt. Daarom blijft het advies: verlaat bij onweer de tent en zoek een écht veilige plek op.

Tot slot: een goede voorbereiding helpt

Kijk altijd naar de weersvoorspelling voordat je op pad gaat. Veel weerapps geven een melding bij onweerskansen, vaak met een tijdsindicatie en locatie. Op de camping is het handig om bij aankomst al te weten waar je naartoe kunt bij slecht weer.

Zorg ook dat je zaklamp, powerbank en radio of noodaccu paraat hebt als je kampeert, voor het geval de stroom uitvalt. En vooral: blijf rustig. Onweer is gevaarlijk, maar met de juiste kennis en voorzorgsmaatregelen voorkom je ongelukken.

🔦 Voor als de stroom uitvalt

Licht in de duisternis!