Du skulle “bara vattna trädgården”, och plötsligt handlar det om att kolla tre väderappar, gissa jordfukt och hoppas att du inte dränker allt precis innan ett oväder. Det är repetitivt. Det är lätt att glömma. Och det är precis den typen av uppgift som i tysthet äter tid hela säsongen.
Anläggningsteam känner av det när de hanterar flera fastigheter. Fastighetsförvaltare märker det när hyresgäster klagar på bruna fläckar eller genomblöta rabatter. Och om du driver en mindre gård eller ett växthus kan automatiserad bevattningsplanering vara skillnaden mellan “helt okej” och konsekvent friska plantor.
Det här n8n-flödet använder OpenWeatherMap-prognoser plus enkel evapotranspirationsmatematik för att avgöra när du ska vattna, vilka zoner som behöver åtgärd och vad som ska hoppas över. Du får se hur det fungerar, vad du behöver och hur mycket tid (och vatten) det vanligtvis sparar.
så fungerar automatiseringen
Hela n8n-flödet, från trigger till slutresultat:
n8n Workflow Template: OpenWeatherMap till Google Sheets: smartare bevattning
flowchart LR
subgraph sg0["Daily Morning Check Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Daily Morning Check", pos: "b", h: 48 }
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/webhook.dark.svg' width='40' height='40' /></div><br/>Manual Override Trigger"]
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merge Triggers"]
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Define Irrigation Zones", pos: "b", h: 48 }
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Zones", pos: "b", h: 48 }
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/openWeatherMap.svg' width='40' height='40' /></div><br/>Get Current Weather"]
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/openWeatherMap.svg' width='40' height='40' /></div><br/>Get 5-Day Forecast"]
n7["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merge Weather Data"]
n8["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Analyze Irrigation Need"]
n9@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Filter Zones Needing Water", pos: "b", h: 48 }
n10@{ icon: "mdi:cog", form: "rounded", label: "Aggregate All Results", pos: "b", h: 48 }
n11["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Generate Irrigation Schedule"]
n12@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Has Irrigation Tasks?", pos: "b", h: 48 }
n13@{ icon: "mdi:database", form: "rounded", label: "Log to Google Sheets", pos: "b", h: 48 }
n14["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Send IoT Commands"]
n15["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/slack.svg' width='40' height='40' /></div><br/>Send Slack Report"]
n16@{ icon: "mdi:swap-vertical", form: "rounded", label: "Log No Action", pos: "b", h: 48 }
n17["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/webhook.dark.svg' width='40' height='40' /></div><br/>Respond to Webhook"]
n4 --> n5
n4 --> n6
n16 --> n17
n2 --> n3
n14 --> n17
n6 --> n7
n7 --> n8
n0 --> n2
n5 --> n7
n10 --> n11
n12 --> n13
n12 --> n14
n12 --> n15
n12 --> n16
n8 --> n9
n8 --> n10
n3 --> n4
n1 --> n2
n9 --> n11
n11 --> n12
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n9,n12 decision
class n13 database
class n1,n14,n17 api
class n8,n11 code
classDef customIcon fill:none,stroke:none
class n1,n2,n5,n6,n7,n8,n11,n14,n15,n17 customIcon
problemet: bevattningsbeslut blir gissningar i större skala
Vattning låter enkelt tills du ansvarar för mer än en zon, rabatt eller fastighet. En grönsaksbädd torkar snabbare än buskarna. Gräsmattan kräver jämnhet. Och vädret ändrar planen varje dag. Gör du detta manuellt hoppar du mellan prognoser, anteckningar, senaste vattningsdatum och “magkänsla”, och ändå tvivlar du eftersom regn kan komma i kväll. Kostnaden är inte bara vatten. Det är tiden du lägger på att bestämma, missade bevattningsfönster och den långsamma skadan från övervattning som är svår att felsöka.
Friktionen ökar, särskilt när du försöker hålla en jämn linje mellan zoner.
- Att kontrollera aktuella förhållanden och en 5‑dygnsprognos för varje zon tar längre tid än någon budgeterar för, så det blir stressat.
- Folk glömmer detaljen “dagar sedan senaste vattning”, vilket är så du hamnar i att vattna två gånger på tre dagar.
- Regn är utlovat, du hoppar över vattning, och sedan kommer inget, så växterna tappar en dag och stress byggs upp.
- Även när du gör rätt val finns det ingen strukturerad logg, så du kan inte förbättra planen vecka för vecka.
lösningen: väderstyrda bevattningsplaner loggas och delas automatiskt
Det här flödet gör bevattning till en repeterbar daglig kontroll som körs på schema eller via manuell override. Det börjar med att ladda dina bevattningszoner (var och en med växttyp, jordtyp och enkla tröskelvärden). För varje zon hämtar det OpenWeatherMap live-data och en 5‑dygnsprognos och slår ihop dessa till en “väderbild per zon”. Därefter uppskattar ett Code-steg vattenförlust med en förenklad Penman-ansats för evapotranspiration och väger in dagar sedan senaste vattning. Sedan avgör flödet vilka zoner som faktiskt behöver vatten, hur brådskande behovet är och när det är bäst att köra bevattning utifrån temperatur och vind. Till sist loggar det beslutet i Google Sheets, postar en tydlig sammanfattning i Slack och kan skicka IoT-kommandon till smarta styrningar så att ventiler körs utan att någon behöver passa det.
Flödet startar med en morgontrigger i schemat (eller en webhook för manuell override). Det utvärderar zoner i en loop, filtrerar ner till endast zoner som är “bevattningsklara”, och bygger sedan en gemensam bevattningsplan. Finns det åtgärder loggar det, notifierar och triggar valfritt din styrning; finns det inte, registrerar det en post utan åtgärd och svarar snyggt.
det du får: automatisering vs. resultat
| vad det här flödet automatiserar | resultat du får |
|---|---|
|
|
exempel: så här ser det ut
Säg att du hanterar 8 bevattningszoner på en fastighet. Manuellt kanske du lägger cirka 5 minuter per zon på att kolla väder, titta i anteckningar och bestämma timing, vilket är ungefär 40 minuter varje morgon. Med det här flödet lägger du cirka 3 minuter om du vill trigga en manuell override, och sedan väntar du medan n8n hämtar prognosen, utvärderar zoner och postar planen i Slack. Beslutet och loggen hamnar automatiskt i Google Sheets, och om du använder en IoT-styrning kan ventilerna köras utan extra klick.
det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- OpenWeatherMap för aktuellt väder och prognoser.
- Google Sheets för att logga scheman och beslut.
- Slack för att dela den dagliga bevattningssammanfattningen.
- OpenWeatherMap API-nyckel (hämta den från kontrollpanelen i ditt OpenWeatherMap-konto).
- Slack Bot Token (skapa den i inställningarna för din Slack-app).
Svårighetsgrad: Mellan. Du klistrar mest in inloggningsuppgifter och justerar zoninställningar, men du bör vara bekväm med att testköra och finjustera ett par Code-noder.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
så fungerar det
En daglig trigger (plus manuell override) startar körningen. Flödet drar igång varje morgon via ett schema, men du kan också trigga det via en webhook när du vill göra en extra kontroll utanför schemat.
Dina zoner definieras en gång och bearbetas sedan i en loop. n8n laddar dina bevattningsytor (jordtyp, växttyp, tröskelvärden, koordinater) och delar upp dem så att varje zon utvärderas på samma sätt, varje gång.
OpenWeatherMap-data samlas in och slås ihop per zon. Det hämtar liveförhållanden och en 5‑dygnsprognos och sammanfogar resultaten så att beslutslogiken kan ta hänsyn till både “just nu” och “det som kommer”.
Beslutslogiken bygger en plan och routar sedan utfall. Code beräknar evapotranspiration och uppskattar fukt, Filter behåller bara zoner som behöver vattnas och en If-kontroll väljer mellan “åtgärder finns” och “ingen åtgärd”. Om åtgärder finns körs loggning i Google Sheets, postning i Slack och valfria IoT-kommandon. Om inte sätts en post utan åtgärd och webhook-svaret returneras.
Du kan enkelt ändra zontrösklar så att de matchar dina växter, eller byta ut Slack mot Telegram om det är där teamet faktiskt läser aviseringar. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-implementeringsguide
Steg 1: Konfigurera schematriggern
Ställ in den dagliga triggern och valfri manuell åsidosättning som startar flödet för bevattningsplanering.
- Öppna Morning Schedule Trigger och ställ in schemaregeln så att den triggar kl.
06:00(noden använder redantriggerAtHour: 6). - Öppna Manual Override Webhook och bekräfta att HTTP Method är
POST, Path ärirrigation-checkoch Response Mode ärresponseNode. - Säkerställ att Combine Start Signals är inställd på Mode
chooseBranchså att någon av triggrarna kan starta arbetsflödet.
Steg 2: Anslut väderdatakällor
Konfigurera väderuppslag per bevattningszon och bekräfta det parallella flödet för att hämta väder.
- I Set Watering Areas, behåll Mode som
rawoch JSON Output inställd på den angivna zonlistan. Uppdatera zonnamn, koordinater, växttyper ochlastWatered-värden vid behov. - I Expand Zone List, ställ in Field to Split Out till
=för att dela upp den råa arrayen i items. - I Fetch Live Weather, ställ in Latitude till
={{ $json.lat }}och Longitude till={{ $json.lon }}, med Location Selection inställd påcoordinates. - I Retrieve 5-Day Outlook, ställ in Operation till
5DayForecastoch ställ in Latitude till={{ $json.lat }}och Longitude till={{ $json.lon }}med Location Selectioncoordinates. - Expand Zone List skickar output till både Fetch Live Weather och Retrieve 5-Day Outlook parallellt, och båda slås ihop i Join Weather Streams med Mode
combineoch Combine BycombineByPosition.
Steg 3: Sätt upp bearbetning och beslutlogik
Bearbeta väderindata för att beräkna vattenbehov, filtrera resultaten och bygga bevattningsplanen.
- I Assess Watering Demand, behåll JavaScript-logiken som den är för att beräkna jordfuktighet, förväntad nederbörd och bevattningsbeslut med zonmetadata från Expand Zone List.
- I Filter Water-Ready Zones, bekräfta att villkoret kontrollerar att
={{ $json.decision.shouldWater }}är lika medtrue. - Assess Watering Demand skickar output till både Filter Water-Ready Zones och Aggregate Zone Reports parallellt; säkerställ att båda anslutningarna finns.
- I Aggregate Zone Reports, ställ in Aggregate till
aggregateAllItemDataför att fånga full zonstatus. - I Build Irrigation Plan, behåll JavaScript-logiken för att skapa schema, sammanfattning och rapport baserat på de filtrerade zonerna och den aggregerade rapporten.
plantType, lastWatered).Steg 4: Konfigurera utdata och notifieringar
Routa bevattningsplanen till loggar, IoT-hårdvara och Slack, och returnera ett webhook-svar.
- I Check Irrigation Tasks, bekräfta att villkoret kontrollerar att
={{ $json.hasIrrigation }}är lika medtrueför att förgrena mellan åtgärd och ingen-åtgärd. - Check Irrigation Tasks skickar output till Append Sheet Log, Dispatch IoT Commands och Post Slack Summary parallellt när bevattning krävs.
- I Append Sheet Log, ställ in Operation till
appendoch välj mål-Document och Sheet där loggar ska lagras. - I Dispatch IoT Commands, ställ in URL till
https://your-iot-hub.com/api/irrigation, Method tillPOSToch JSON Body till={{ JSON.stringify($json.schedule) }}. - I Post Slack Summary, ställ in Text till
={{ $json.report }}och välj Slack-kanalen. - I grenen utan åtgärd, bekräfta att Set No-Action Record tilldelar status
No irrigation neededoch timestamp={{ $now.toISO() }}, och att flödet därefter går till Return Webhook Response. - I Return Webhook Response, behåll Respond With
jsonoch Response Body inställd på={{ {success: true, schedule: $json.schedule, summary: $json.summary} }}.
Steg 5: Testa och aktivera ert arbetsflöde
Validera hela flödet med en manuell körning och aktivera därefter schemalagd exekvering.
- Klicka på Execute Workflow för att köra ett manuellt test och kontrollera att Build Irrigation Plan returnerar en ifylld
schedule,summaryochreport. - Trigga Manual Override Webhook med en
POST-begäran till/webhook/irrigation-checkoch bekräfta att Return Webhook Response returnerar JSON medsuccess: true. - Bekräfta att lyckade körningar lägger till rader i Append Sheet Log, skickar IoT-payloads i Dispatch IoT Commands och postar sammanfattningar via Post Slack Summary.
- Aktivera arbetsflödet för att aktivera det dagliga schemat i Morning Schedule Trigger.
vanliga fallgropar
- OpenWeatherMap-inloggningar kan gå ut eller vara kopplade till fel abonnemangsnivå. Om anrop misslyckas, kontrollera först status för din OpenWeatherMap API-nyckel i kontrollpanelen för kontot.
- Om du använder Wait-noder eller extern körning via styrsystem varierar processningstiderna. Öka väntetiden om nedströms noder fallerar på tomma svar.
- Slack Bot Tokens ser ofta “anslutna” ut men saknar ändå kanalåtkomst. Om inget postas, kontrollera Slack-appens OAuth-scopes och bekräfta att boten är inbjuden till kanalen du konfigurerat.
vanliga frågor
Cirka en timme om du redan har din zonlista och konton redo.
Nej. Du kopplar konton och redigerar zoninställningar. Code-noderna är redan byggda; du justerar främst tröskelvärden och testar.
Ja. n8n har ett gratis alternativ för egen drift och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volym. Du behöver även räkna med kostnader för OpenWeatherMap-abonnemang (ofta gratis eller låg kostnad, beroende på användning) och eventuella avgifter för valfri IoT-plattform.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärt och hanterar n8n bra. Egen drift ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det bör du. Uppdatera zondefinitionerna i “Set Watering Areas” (växttyp, jordtyp, waterThreshold, last-watered-input), och justera sedan beslutslogiken i “Assess Watering Demand” och “Build Irrigation Plan” om du vill ha andra regler för brådska. Vanliga anpassningar är att ändra tröskeln för att hoppa över vid regn (standard är att hoppa över när regn på ett meningsfullt sätt förväntas), lägga till zon-specifika bevattningsfönster och posta sammanfattningen till en annan Slack-kanal per fastighet.
Oftast är det ett problem med API-nyckeln eller att anropet slår i en planbegränsning. Skapa en ny OpenWeatherMap-nyckel, bekräfta att den är aktiv och uppdatera den i OpenWeatherMap-noderna i n8n. Kontrollera också att dina zonkoordinater är giltiga; en enda felaktig plats kan se ut som att “integrationen ligger nere”. Om du kör många zoner samtidigt kan du även få rate limiting, så det hjälper att glesa ut anropen lite (eller batcha dem).
Dussintals zoner fungerar bra för de flesta upplägg.
Ofta, ja, eftersom det här flödet bygger på förgreningar, loopar över zoner, sammanslagning av flera väderhämtningar och beräkningar i Code, vilket brukar bli både krångligt (och dyrt) i verktyg som är byggda för enkla tvåstegs-zaps. n8n låter dig också köra egen drift, vilket spelar roll när du vill att det ska “köras varje morgon för alltid” utan att bevaka task counts. En annan praktisk fördel: du kan ha en webhook för manuell override och en schemalagd trigger i samma flöde och sedan slå ihop dem snyggt. Zapier eller Make kan fortfarande vara toppen om du bara vill “skicka mig en prognos”, men för beslut över flera zoner är n8n oftast det lugnare valet. Om du är osäker, prata med en automationsexpert så mappar vi det mot din miljö.
När det här väl rullar försvinner den dagliga “ska vi vattna?”-diskussionen till stor del. Du får en plan, en logg och ett meddelande som teamet kan agera på.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.