Home Assistant · HACS Integration · Deutsche Version →

Waters what your garden actually needs. Nothing more.

Fixed schedules water in the rain, starve your lawn in a heatwave, and say nothing when a valve sticks open. This doesn’t: it weighs soil moisture, the forecast and how long each zone has waited — then tells you its decision in one plain sentence. And it never, ever leaves a valve open.

no cloud no subscription works with your valves open source · MIT
Lawnscore 72 → 16 min
Tomatoes (pot)score 77 → 3 min
Berriesrain veto → 0 min
“Score 72 → 16 min (soil 42 %, Tmax 29 °C, never watered)”
“☔ Rain veto: 4.2 mm measured in 24 h (threshold 3 mm)”
60 seconds

See it in action.

German voice-over — everything else speaks for itself.

How it works

Sense. Decide. Act — safely.

Set a watering time once. Everything else runs on its own, and you can read along at every step.

1

Sense

Soil-moisture sensors (optional), your weather integration’s forecast, and measured rain from the last 24 hours. Whatever is missing, the system works around — it just says so.

2

Decide

Every 30 minutes each zone gets a score from 0–100: dry soil, hot forecast and long-unwatered zones push it up; rain — fallen or expected — vetoes it. The score becomes tonight’s minutes, and the reasoning becomes one plain sentence on your dashboard.

3

Act

At your chosen time the zones run in order (or in parallel where the plumbing allows). Potted plants get small top-up doses during the day instead. Five safety layers watch every single valve.

Try it

See how it decides.

This is the actual formula the integration runs — not a mock-up. Drag the sliders and watch the decision change.

72 score → 16 min
soil dryness ×0.6
temperature ×0.2
thirst days ×0.2
What you get

Everything a garden needs. Nothing you have to babysit.

💬

You always know why

Each zone has a status sensor with the decision in plain words — “Score 72 → 16 min” or “rain veto”. No black box, no guessing why the lawn stayed dry. A hub sensor adds the whole day in one line: forecast, rain, every zone’s soil, computed-at time.

💧

Water when it matters

Rain that fell — or is about to — skips the run. Heatwaves and long-unwatered zones raise it. Moist soil above your threshold stops it outright. Optionally, thirst is rated by real evapotranspiration (ET₀, Hargreaves) from sun angle + forecast — no extra sensors.

🪴

Pots are different — treated differently

Potted plants dry out in hours, not days. Pot zones get small daytime doses that hold soil in a target band, with a midday-sun lock and a daily dose limit.

♾️

As many zones as you have

Add, edit and remove zones in the UI — each with its own valves, sensors, limits and thresholds. Two valves can share one zone and run back to back.

📊

Know what it costs

With a flow sensor per zone you get liters per session, day and month — and a monthly cost figure from your water tariff.

🎛️

Your rules, adjustable

Skip today, vacation mode, boost mode, per-zone pause. Every threshold and weight is a dial in the UI — sensible defaults, no YAML required.

Compatibility

Works with the hardware you already have.

No proprietary controller, no hub to buy. If Home Assistant can switch it, this can water with it.

You haveWhat’s needed
Irrigation valvesAny valve that appears as a switch — Zigbee, Wi-Fi, Z-Wave, relay boards. (valve./light. entities: one-line wrapper recipe in the FAQ.)
WeatherAny weather integration with a forecast — Met.no (built-in), AccuWeather, DWD, … That’s the only hard requirement.
Soil-moisture sensorsOptional. Any %-sensor, any brand, several per zone. Without them the score uses weather and thirst-days alone.
Rain gauge, solar radiation, flow meterOptional. A rain sensor sharpens the rain veto, radiation enables the midday-sun lock for pots, a flow meter unlocks liters & costs.
A day in the life

From morning report to evening run.

A dryness report with your coffee, a plan notification before the run, the run itself at your chosen time — and pot top-ups in between.

0h6h 12h18h24h 00:01 daily reset 08:00 dryness report pot top-up doses 20:30 plan notification 21:00 run: zone by zone, parallel where allowed ▲ plan recalculated every half hour — your dashboard always shows what tonight will do, and why
Safety first

Five layers between you and a flooded garden.

Wireless valves fail in creative ways. Every layer below exists because of a real incident in the garden this was built in.

Closing is a loop, not a command

Every close is retried until the valve actually reports “off” — a radio hiccup at the wrong moment can’t leave water running.

Sweep after every run

When a run ends — normally, cancelled or crashed — one final close goes to all valves. If one still reports open, your phone knows.

Backstop for hand-opened valves

Opened a valve from the dashboard and got distracted? It closes itself after your standard duration. A hard watchdog force-closes anything open longer than the emergency limit — no matter who opened it.

Restart recovery

Home Assistant restarted mid-watering? Orphaned valves are found as soon as the radio network is back — and closed immediately.

Emergency stop

One button cancels everything and closes every valve with retries. A valve that can’t confirm counts as open — you get told, not reassured.

Where it comes from

Built in a real garden, not a whiteboard.

This started as one household’s automation: two lawn zones, a berry drip line and a tomato pot, running through full seasons. The defaults are the values that ended up working there — and the safety layers exist because valves really did hang, radios really did drop out, and Home Assistant really did restart mid-watering. It was then rebuilt for anyone’s hardware, in the open, under MIT.