Hoe maak je een automatische PDF-maandrapportage van je weerdata?

Portret van Jan van Rijswijk, meteoroloog en weerstationdeskundige
Jan van Rijswijk
Meteoroloog & Weerstationdeskundige
Software, Data & Smart Home · 2026-02-15 · 6 min leestijd

Stel je voor: elke eerste van de maand krijg je automatisch een prachtig PDF-rapport in je mailbox. Geen gedoe met grafieken kopiëren of data samenvatten.

Gewoon een overzichtelijke samenvatting van hoe het weer zich die maand gedroeg.

Of je nu een moestuin hebt, zonnepanelen beheert of gewoon een weerfanaat bent, zo'n rapport is goud waard. En het beste? Je kunt het in een middagje opzetten. Ik leg je precies uit hoe.

Wat heb je nodig om te beginnen?

Voordat je begint, verzamel je even de spullen. Het is als een recept: als je alle ingrediënten in huis hebt, verloopt het koken soepel.

Je hebt een paar dingen nodig, maar schrik niet – het meeste is gratis of heb je al. Een weerstation of slimme sensoren is stap één. Denk aan een Netatmo Weerstation (€150-€300) of losse sensoren zoals de Airthings Wave Plus voor luchtkwaliteit. Deze praten met je thuisnetwerk.

Vervolgens een server of mini-pc die altijd aanstaat. Een Raspberry Pi 4 (€45-€75) is perfect hiervoor, maar een oude laptop werkt ook.

Die zet je ergens in een hoekje, verbonden met je wifi. Daarnaast installeer je Home Assistant op die server.

Dit is het brein dat al je slimme apparaten verbindt en data verzamelt. Het is gratis en opensource. Tot slot heb je Python en wat basis-scriptjes nodig.

Geen paniek, je hoeft geen programmeur te zijn. Ik geef je de kant-en-klare codes.

Stap 1: Je data op één plek verzamelen

Je weerstation meet van alles: temperatuur, luchtvochtigheid, luchtdruk, misschien zelfs regenval. Die data moet eerst netjes opgeslagen worden.

  1. Home Assistant installeren op je Raspberry Pi. Volg de officiële installatiegids – dit duurt ongeveer 30 minuten.
  2. Je weerstation koppelen. Ga naar 'Instellingen' > 'Apparaten & diensten' > '+ Integratie toevoegen'. Zoek naar jouw merk (bijvoorbeeld 'Netatmo' of 'WeatherFlow') en log in met je account. Dit duurt 5-10 minuten.
  3. Een database instellen om de data langdurig te bewaren. Standaard bewaart Home Assistant data maar 10 dagen. Voor maandrapportages wil je langer. Voeg dit toe aan je configuration.yaml bestand:
recorder: db_url: sqlite:////config/home-assistant_v2.db purge_keep_days: 90

Home Assistant doet dit automatisch, maar je moet het even goed instellen. Veelgemaakte fout: Mensen vergeten de purge_keep_days aan te passen. Standaard wordt oude data gewist.

Zet dit op minimaal 35 dagen, anders mis je data voor je maandrapport. Controleer na een dag of de grafieken in Home Assistant historische data tonen.

Stap 2: Een mooi rapport-template maken

Nu wordt het leuk. Je gaat een template maken, maar eerst is het slim om Python te gebruiken voor het analyseren van je weerstation logs, zodat je precies weet welke data in je PDF moet komen.

Dit is je sjabloon. Je kunt kiezen: maak je een simpel tekstbestand of een visueel aantrekkelijke lay-out? Net zoals bij het bouwen van een weerstation dashboard, begin je met een HTML-template.

Dit klinkt technisch, maar het is gewoon een tekstbestand met opmaakcodes. Maak een bestand aan met de naam rapport_template.html.

<html> <head><style>body { font-family: Arial; } .header { color: #2c3e50; }</style></head> <body> <h1 class="header">Weermaandrapport {{ maand }} {{ jaar }}</h1> <p>Gemiddelde temperatuur: {{ gem_temp }}°C</p> <p>Hoogste temperatuur: {{ max_temp }}°C op {{ max_temp_datum }}</p> <p>Totaal aantal zonuren: {{ zonuren }} uur</p> </body> </html>

Gebruik dit als basis: De {{ }} stukken zijn plekholders.

Die worden later automatisch gevuld met jouw echte data. Je kunt dit template zo uitgebreid maken als je wilt. Voeg tabellen toe, je logo, of grafieken. Tijdsindicatie: Een basis-template maken kost je 45 minuten. Wil je een echt mooi design, reken dan op 2 uur.

Stap 3: Het Python-script schrijven

Dit is het kloppende hart. Een klein scriptje dat elke maand draait, de data ophaalt, in het template stopt en een PDF maakt.

  1. Installeer de benodigde tools op je Raspberry Pi. Open de terminal en typ:
    pip install weasyprint requests jinja2
    Dit duurt 5-10 minuten.
  2. Maak een bestand aan genaamd maak_rapport.py. Plak hierin de volgende basiscode:
import requests from jinja2 import Template from weasyprint import HTML from datetime import datetime # 1. Data ophalen uit Home Assistant url = "http://homeassistant.local:8123/api/history/period" headers = {"Authorization": "Bearer JOUW_LANGE_TOKEN"} params = {"filter_entity_id": "sensor.buitentemperatuur"} response = requests.get(url, headers=headers, params=params) data = response.json() # 2. Gemiddelde berekenen (vereenvoudigd voorbeeld) temps = [float(entry[0]['state']) for entry in data for entry in entry] gemiddelde = sum(temps) / len(temps) # 3. Template vullen en PDF maken with open("rapport_template.html") as f: template = Template(f.read()) html_content = template.render(gem_temp=round(gemiddelde, 1), maand="Maart", jaar="2026") HTML(string=html_content).write_pdf("weerrapport_maart.pdf")
  1. Vervang 'JOUW_LANGE_TOKEN' door een echte toegangstoken. Die maak je aan in Home Assistant onder je profiel > 'Lange leven tokens'. Veelgemaakte fout: Vergeet niet de IP-adressen (homeassistant.local) aan te passen naar het echte adres van jouw Home Assistant.

Ik geef je de kern, jij past de namen aan. Test dit script eerst handmatig. Typ in de terminal: python3 maak_rapport.py.

Kijk of er een PDF-bestand verschijnt. Dit debuggen kan een uurtje duren, maar dan heb je ook wat.

Stap 4: Automatiseren met een maandelijkse taak

Nu zorgen we dat dit script elke eerste van de maand vanzelf draait.

  1. Open de cron-tabel door in de terminal te typen:
    crontab -e
  2. Voeg onderaan deze regel toe:
    0 8 1 * * /usr/bin/python3 /home/pi/maak_rapport.py
    Dit betekent: draai het script op de 1e dag van elke maand om 08:00 uur.
  3. Wil je het rapport ook mailen? Voeg dan een extra commando toe. Installeer eerst mailutils en configureer het. Een simpele manier is het script aan te passen om een e-mail te versturen via een service als Gmail (met een 'app-wachtwoord').

Op je Raspberry Pi gebruik je hiervoor cron, een ingebouwd takenplannertje. Belangrijk: Test de cron-taak door de tijd even aan te passen naar over 5 minuten, zeker als je de Ecowitt API wilt automatiseren.

Zo zie je direct of het werkt. Veelgemaakte fout: Vergeet het pad naar Python (/usr/bin/python3) te checken. Typ which python3 om het juiste pad te vinden.

Stap 5: Testen en finetunen

Je eerste automatische rapport zal waarschijnlijk niet perfect zijn. Dat is normaal.

  • Komt de data goed door? Zijn de getallen logisch? Een gemiddelde van 25°C in januari is verdacht.
  • Ziet de PDF er goed uit? Open het bestand op je telefoon en laptop. Soms verspringt de opmaak.
  • Werkt de automatische planning? Zet een herinnering om op de 2e van de maand te checken of het rapport is aangekomen.

Ga er rustig voor zitten met een kop koffie en check deze punten: Begin simpel. Voeg pas later extra data toe zoals luchtvochtigheid of windsnelheid. Eerst een werkende basis, dan versieren. Verwachte tijdsinvestering: Het hele project, van installatie tot werkend script, kost je een middag (4-5 uur). Maar dan heb je ook een volledig geautomatiseerd systeem.

Verificatie-checklist

Voor je achterover leunt, vink je deze lijst af. Zo weet je zeker dat alles klopt.

  • ☐ Home Assistant verzamelt data van mijn weerstation en bewaart deze langer dan 35 dagen.
  • ☐ Ik heb een HTML-template gemaakt met plekholders voor de belangrijkste weerdata.
  • ☐ Het Python-script draait zonder fouten en genereert een correcte PDF met de juiste data.
  • ☐ De cron-taak is ingesteld en getest – het script start automatisch op de 1e van de maand.
  • ☐ Ik heb een testrapport bekeken op zowel mijn computer als telefoon.
  • ☐ De PDF bevat minimaal: gemiddelde temperatuur, hoogste/laagste waarde en de maand/jaar.

Alles afgevinkt? Gefeliciteerd. Je hebt nu een persoonlijke weer-dienst die de meeste professionele bedrijven niet eens hebben. Elke maand weer een cadeautje in je inbox. En als je eenmaal de smaak te pakken hebt, kun je dit principe toepassen op ál je slimme thuisdata – energieverbruik, waterverbruik, noem maar op. De mogelijkheden zijn eindeloos.

Portret van Jan van Rijswijk, meteoroloog en weerstationdeskundige
Over Jan van Rijswijk

Jan is al meer dan tien jaar actief in de professionele meteorologie en specialiseert zich in de kalibratie en data-integriteit van weerstations. Zijn passie voor nauwkeurige weersvoorspellingen deelt hij graag via praktische artikelen over meetapparatuur en analyse.

Volgende stap
Bekijk alle artikelen over Software, Data & Smart Home
Ga naar overzicht →