FEATURES · THE WHOLE OF IT
Everything it can do. In your hands.
Ten abilities, each one live on this page. Drag the heat up. Tighten the drought stage. Break something on purpose. This is how it behaves when it’s yours.
It reads tomorrow before it waters today.
Every evening it fetches the forecast and asks one question per bed: will you make it through tomorrow? The answer is minutes, or silence.
Water follows the weather, so the mild days cost nothing and the brutal ones are covered. The receipt on the front page is this ability, replayed over a real heat wave.
Sand forgets. Clay remembers. It waters yours.
Tell it once what each bed is made of. The soil sets the size of the bucket, and the bucket sets the rhythm: short and often for sand, long and rare for clay.
Deep-and-rare watering sends roots downward after the water. A rhythm sized to the wrong soil trains them to wait at the surface, where August finds them first.
Watering days change. Your plan keeps up.
Set your district’s drought stage once. The calendar narrows itself, and nothing waters out of turn. Nobody has to remember.
The water planned for a lost morning is never asked for. The plan shrinks to fit the rules, instead of breaking against them.
No matter what, the water stops.
A watering computer can make exactly one unforgivable mess: water that will not stop. Five layers stand between a fault and that mess. Pick a way for it to die, and watch which one catches.
One layer would be a promise; five are a habit. The bottom one was pulled for real on the bench, mid-run, and the contact opened on schedule.
Pick a failure. Each one lands on a different layer, and the water stops every time.
No account. No cloud. No subscription.
It answers to the person holding the hose. Unplug your internet and it goes right on watering. It only loses tomorrow’s forecast, and falls back to the season’s average until the wire returns.
A garden is a decades-long project. Its caretaker should not be a monthly invoice, and its off switch should not live in someone else’s data center.
It conducts the whole pump house.
Master valve, pressure pump, fertilizer line, flow meter, rain sensor. One machine, opened and closed in the right order, every time.
Order is safety here: a pump never runs against a closed line, and fertilizer only rides water that is already moving.
Press it. The order is the point.
On your dashboard like it was born there.
Run Home Assistant? Maali announces itself over MQTT and simply appears: every bed a switch, every soil a sensor, every program a control. No bridge, no cloud hop, no add-on to write.
The switch is on because the device said so, not because the app hopes so, and OFF stops the water from the same tile.
Tomorrow’s watering, on tonight’s calendar.
Subscribe once, with a secret address made of garden words. Every planned run appears as an event. One per bed, with the minutes it intends and the reason it has.
The feed is read-only and the words are the whole key: your plan on your phone, and no way back into the controller through it.
maali.local/api/calendar.ics?key=…
Every part clips on. Every part has a number.
A DIN rail, five off-the-shelf modules, not one soldered joint. When something fails in year eight, you buy the same part and snap it in.
Self-contained is half the promise. Replaceable by whoever owns the house is the other half. No appointment, no proprietary anything.
Tap a module.Each one is a catalog part, held by two clips.
New brains over Wi-Fi. Never behind your back.
It checks for releases and offers them. You press install. The new firmware is written beside the old one, and the old one stays.
An update that fails simply boots the previous copy. An update that never installs itself can never surprise a sprinkler at two in the morning.
Rebooted into 0.2.2. 0.2.1 is kept one slot behind it, ready if this one misbehaves.
SEEN ENOUGH?
Now watch it think with real weather.
The front page replays a genuine Sacramento heat wave through the same code that opens the valve.