I've been building Sprinqua — a self-hosted irrigation controller that runs on Raspberry Pi and integrates with Home Assistant via MQTT auto-discovery.
What it does
Zone control — manual on/off, 5-min pulse, or fully scheduled. Safety auto-off per zone
Weekly schedules — per-zone day/time/duration with a visual weekly overview chart
Smart Watering — integrates with Open-Meteo (free, no API key) to skip irrigation when rain is forecast above your threshold
Activation history — full log of every run (manual, scheduled, MQTT, or skipped), 7-day stats and 24h timeline
MQTT + HA auto-discovery — all zones appear automatically as switch entities, no manual entity configuration needed
Two control modes — Standalone (Sprinqua manages its own schedules) or HA-Managed (HA takes full control via MQTT)
Works out of the box with 8+ relay HATs for Raspberry Pi
Waveshare 3/6/8-ch
Keyestudio 4-ch
Seengreat 3/4/8-ch
BC Robotics 4-ch.
A setup wizard handles GPIO mapping and lets you pulse-test each relay before committing.
MQTT topics
# State published by Sprinqua
sprinqua/zone/1/state → ON | OFF
sprinqua/mode/state → Standalone | HA-Managed
# Commands accepted
sprinqua/zone/1/set ← ON | OFF
sprinqua/mode/set ← Standalone | Home Assistant Managed
Auto-discovery registers all zones as switch entities and a select entity for the control mode — you can switch between Standalone and HA-Managed directly from the HA dashboard.
Stack
Sprinqua runs on Orbit OS — an embedded Linux platform for Raspberry Pi. Install takes about 5 minutes: install Orbit OS, sign into the app store, install Sprinqua with one click, run the hardware wizard, done.
Happy to answer questions, add board support requests, or hear feature ideas. If your relay board isn't on the list, open an issue on GitHub and I'll add it.
Hello,
very interesting project, It may render useful a now useless RPIzero, just a question, does the weather integration support ETo (Evapotranspiration) algorithm to adjust watering times to local meteo conditions? If it isn't supported, is ita planned feature?
Many thanks
To answer your question: Smart Watering currently only skips scheduled runs when rain is forecast above a configurable threshold — it doesn't adjust durations based on ETo or other meteo conditions.
ETo-based adjustment is genuinely interesting and would make the system much smarter for people in hot/dry climates. It's not on the roadmap yet, but it's exactly the kind of feature I'd love to see in the project.
If you have experience with ETo algorithms and want to contribute, I'd welcome it — the project is GPL-3.0 and open to contributions.
Hi,
I am a little more than a power user, I'm not really good at writing code so I won't be able to help there, ATM at my primary home I'm using (a fork of) Opensprinkler, it have ETo algoritm embedded, it is explained here
TL:DR
It calculate a percentage between 0% and 200% with witch it corrects the usual timing for watering progams, 100% means I set 10mins per zone the relay will be open 10mins per zone, 200% doubles the time, 50% halves it 0% skip watering.
It is simple but effective, at least in my case.
Another interesting feature of OS has (that I think Sprinqua still miss iinw) is a master zone to use one of the relay to power a pump and so use ground/reservoir/tank water instead of tap water, That relay stays on as long as there is a zone active.
Looking forward to the future releases, in the meantime I'll start scouting for hardware...