Bouwen van een N8N workflow voor het maandelijkse weeroverzicht

tokens enlighten vernieuwen kort

Automatisering met een knipoog: een kijkje in de n8n workflows

Afgelopen week heb ik gewerkt aan het automatiseren van het schrijven van het maandelijkse weeroverzicht. Elke maand moet ik een python script draaien waarna ik de informatie (tabellen, grafieken) verwerk in een blogbericht. Vier dingen wil ik automatiseren:

  • het opvragen en opslaan van de maanddata bij weather.com en enlighten.enphaseenergy.com;
  • het bewerken in python naar tabellen en grafieken;
  • het opstellen van het begeleidende maandbericht;
  • het uploaden en publiceren in WordPress.

In dit bericht beschrijf ik de workflows en hoe deze in n8n zijn opgebouwd. Deze workflows zijn niet alleen handig, maar ze werken samen als een goed geolied team, waarbij de ene workflow de andere een duwtje in de rug geeft. Laten we eens kijken dat werkt.

Workflow 1: Tokens Vernieuwen

De Webhook Trigger

Onze workflow begint met een webhook die wordt getriggerd door een maandelijkse cronjob op mijn NAS DS923. De webhook ontvangt een signaal en start de workflow. Eerst moet gecontroleerd worden of de toegangstokens (access tokens) voor het benaderen van de API’s nog geldig zijn.

Er zijn twee API’s die de gewenste data aanleveren. Eén API betreft weather.com die de weerdata heeft van mijn weerstation P41_Ermelo met de code IERMEL90. Deze API ‘doet niet zo moeilijk’ en vertrouwt de ophaler van data wanneer deze zich identificeert met de API-sleutel. Lastiger ligt het bij de Enlighten API die de zonne-energie data levert van mijn Enphase zonnepanelen. Daarvoor is een ingewikkeld proces van autorisatie en authenticatie benodigd. De webhook trigger start het proces op om de geldigheid van de access token van Enlighten te controleren zodat er later in de workflow geen problemen zijn bij het opvragen van de data.

Het verkrijgen van een access token

Ik laat een verzoek sturen naar de API van Enlighten met behulp van een access token die uit een PostgreSQL-database wordt opgehaald. Het is te vergelijken met een geheime handdruk die toegang geeft tot de informatie. Als de access token niet meer geldig blijkt te zijn, wordt met behulp van de refresh token een nieuwe access token opgevraagd bij de API.

Het opslaan van de tokens

Deze nieuwe access token wordt samen met het tegelijkertijd ook ontvangen nieuwe refresh token opgeslagen in de database. De geheime sleutels worden veilig opgeborgen in de kluis, voor later gebruik wanneer opnieuw moet worden gecontroleerd. Mocht blijken dat de access token verlopen is, dan verstuurt de n8n workflow een email naar mij met het verzoek ‘Please visit the Enlighten website to retrieve the authorization code’. Dit is een handmatig proces dat door Enlighten afgedwongen wordt. De via de browser verkregen autorisatiecode worden ingevoerd in een invoerveld van de email en deze worden geretourneerd naar de n8n workflow. Daar staat een Email Trigger node ’te wachten’ op een antwoord en met de autorisatiecode uit het antwoord wordt een nieuwe access en refresh token opgehaald. Deze worden opgeslagen in de PostgresQL database voor later gebruik in de workflow Maandoverzicht.

Workflow 2: Maandoverzicht van het Weer

Het ophalen van weergegevens

Vervolgens worden de weergegevens opgehaald met behulp van een SSH-node (execute command modus). Deze node voert een shell-script uit op de NAS die een python-script initieert voor het opvragen van de gegevens bij de API’s. De data worden verwerkt naar tabellen, figuren en andere informatie voor het te publiceren maandbericht.

Het verwerken van de data

Zodra de gegevens binnen zijn, is het tijd om ze te verwerken. De weergegevens worden verwerkt tot een verhaal en dit wordt vervolgens samengevoegd met de afbeeldingen en tabellen tot een mooi weerrapport met grafieken en afbeeldingen. Voor het opstellen van het bericht wordt het LLM-taalmodel Mistrall-small ingezet: dit model heeft voldoende gewichten (24 miljard) om een foutloze en heldere tekst voor het weerbericht te maken. Dat is goed te verhapstukken door mijn NAS DS923 met 64GB RAM.

Het uploaden naar WordPress

Ten slotte wordt het rapport geüpload naar WordPress. Dit gebeurt via een http request-node (patch-modus) waarmee de WordPress-node het bericht kan publiceren.

Hoe de Workflows Samenwerken

De eerste workflow, “Tokens Vernieuwen”, zorgt ervoor dat ik altijd een geldig access token heb. Dit token wordt gebruikt door de tweede workflow, “Maandoverzicht van het Weer”, om toegang te krijgen tot de benodigde gegevens. Dus wanneer de webhook in de tweede workflow wordt getriggerd, wordt het vernieuwde en geldige toegangstoken gebruikt om de weergegevens op te halen. Het is alsof de eerste workflow een sleutel aanreikt aan de tweede workflow, zodat deze de deur naar de gegevens kan openen.

tokens enlightend vernieuwen
n8n Workflow Tokens Enlighten Vernieuwen

 

maandoverzicht weer adagia
n8n Workflow Maandoverzicht Weer Adagia

Conclusie

Automatisering hoeft niet saai te zijn. Met n8n kan ik workflows maken die niet alleen handig zijn, maar ook samenwerken als een goed team. Of je nu access tokens vernieuwt of weergegevens verwerkt, n8n maakt het mogelijk om snel te automatiseren. De configuratie en de python-script om de weer- en zonenergie-gegevens op te halen, is op verzoek beschikbaar.

 

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *