Automatisch weerberichten genereren met n8n en Gemma 3 op een Synology NAS
Steeds meer hobbyisten en professionals ontdekken de kracht van automatisering in combinatie met kunstmatige intelligentie. Als weerliefhebber én tech-enthousiast heb ik beide passies samengebracht in een workflow die automatisch actuele weerberichten genereert en publiceert op mijn website — volledig draaiend op een self-hosted stack: n8n op een Synology NAS in combinatie met het lichtgewicht taalmodel Gemma 3 (1b) van Ollama. De weerberichten zijn te volgen op de webpagina actuele waarnemingen van deze site.
In dit artikel laat ik zien hoe deze workflow werkt, hoe de verschillende onderdelen (nodes) zijn geconfigureerd, en wat je nodig hebt om dit zelf op te zetten.
De use case: actuele weerdata automatisch publiceren
Het doel: vier keer per dag een geautomatiseerd weerbericht publiceren op adagia.eu, gebaseerd op de real-time data van mijn persoonlijke weerstation P41_Ermelo. De gegevens worden opgehaald via een JSON-feed, geanalyseerd, en vervolgens omgezet in een kort weerbericht — geschreven door het taalmodel Gemma 3, dat lokaal draait via Ollama.
De architectuur: lokaal, schaalbaar en veilig
De volledige workflow draait lokaal op mijn Synology NAS met Docker-containers voor:
- n8n (workflow automation)
- Ollama (AI-taalmodel)
- postgres (geheugen)
De WordPress-site host ik eveneens op de NAS maar zonder gebruik van een Docker-container.
Deze setup voorkomt afhankelijkheid van externe AI-API’s zoals OpenAI, wat kosten bespaart én maximale controle over data garandeert.
De workflow in n8n – stap voor stap

1. Webhook Trigger node: Schema voor het verversen van de berichten
De workflow start met een Webhook Trigger node die is ingesteld op vier vaste tijdstippen per dag. In de taakplanner (cron) van de NAS is een taak opgevoerd die de N8N workflow triggert met behulp van een webhook. Webhooks zijn door de gebruiker gedefinieerde HTTP-callbacks die real-time communicatie tussen verschillende webapplicaties mogelijk maken. Ze stellen toepassingen in staat zich te abonneren op bepaalde gebeurtenissen en meldingen te ontvangen wanneer deze gebeurtenissen zich voordoen. Dit zorgt voor een regelmatig ritme in de weerberichten, passend bij de dagelijkse cyclus van temperatuur en luchtvochtigheid.
2. HTTP Request node: Weerdata ophalen
Een HTTP GET-verzoek haalt actuele meetwaarden op uit de JSON-feed op https://adagia.eu/actuele_weerdata/
.
De output bevat meetparameters zoals temperatuur, windrichting, luchtdruk, luchtvochtigheid en regenhoeveelheid.
Belangrijke parameters die we uit het antwoord filteren zijn:
temperatuur
windsnelheid
windvlaag
windrichting
luchtvochtigheid
dauwtemperatuur
luchtdruk
uursom
etmaalsom
3. Function node: Data formatteren
Met een Function node wordt de ruwe JSON-data via regex-regels omgezet naar een gestructureerde JSON met alleen die weer-data die voor de volgende node (het taalmodel) nodig zijn om een weerbericht te schrijven.
4. LLM node (Ollama/Gemma): Tekstgeneratie
Deze stap stuurt de geformatteerde waarnemingen als prompt naar het lokaal draaiende Gemma 3 taalmodel via een Ollama-node.
Promptvoorbeeld:
Schrijf een kort weerbericht in een informele en toegankelijke stijl voor het weerstation P41_Ermelo. Gebruik deze waarnemingen van 07:55 uur: …
De output is een volledig geformuleerd weerbericht in tekstvorm, dat stijlistisch past bij eerdere berichten op de site.
5. Merge en Set nodes: Combineer het weerbericht met de actuele waarnemingen
De (short)code waarmee de weerdata van het weerstation (actuele_weerdata) worden opgehaald, moet nog worden samengevoegd met het gegenereerde weerbericht. Dit gebeurt in een Merge node gevolgd door een Function node die de verzamelde teksten als één geheel onder elkaar zet. De tekst is nu klaar om met een PATCH opdracht op de website te worden gepubliceerd. Dat gebeurt in de volgende stap.
6. HTTP Request node: Publicatie op WordPress
Tot slot wordt het gegenereerde weerbericht via een POST-verzoek geüpload naar de WordPress-site. Dit gebeurt via de REST API met Basic Authentication. De content wordt automatisch gepubliceerd als een nieuw bericht met een vaste categorie en shortcode voor de actuele meetwaarden.
7. Postgres node: Berichten opslaan in database
Elke keer dat ik via N8N een nieuwe tekst upload naar je website, wil ik dat de tekst óók wordt opgeslagen in een PostgreSQL-database. Deze draait reeds in een Docker-container in mijn ‘docker-landschap’. Zo kan ik de historie van de weerberichten vasthouden.
Waarom Gemma 3?
De keuze voor Gemma 3 (1b) is bewust: het model is klein genoeg om lokaal te draaien (zonder GPU), maar levert voldoende kwaliteit voor eenvoudige taalproductie zoals weerberichten. Bovendien vereist het geen externe API-sleutels of dure tokens. In combinatie met Ollama en n8n ontstaat zo een volledig lokale AI-pijplijn.
Samenvatting: slim automatiseren met lokale AI
Deze configuratie laat zien hoe je met eenvoudige middelen een krachtige en nuttige toepassing kunt bouwen op je eigen NAS:
- n8n zorgt voor betrouwbare orkestratie,
- Gemma 3 schrijft leesbare teksten,
- en WordPress zorgt voor publicatie en presentatie.
Voor iedereen die een weerstation heeft, of gewoon wil experimenteren met AI en automatisering, is dit een mooie hands-on toepassing. En het mooiste: alles draait lokaal, veilig en kostenneutraal.
Vragen of inspiratie?
Zonder de hulp van een taalmodel had ik deze workflow niet snel kunnen opzetten. Door mijn vraag goed uit te leggen in een prompt aan een taalmodel, heb ik vlot de benodigde code snippets verkregen om de nodes op te zetten en de workflow in te richten.
Wil je deze workflow ook gebruiken of aanpassen voor je eigen situatie? Laat het me weten. Ik deel graag mijn ervaringen — of help je op weg met je eigen AI/NAS-experimenten.
PS: De volledige workflowconfiguratie (in JSON) is beschikbaar op verzoek.