Totul a pornit de la un programator Hunter cu 2 zone care functiona de ani buni. Simplu, not smart, fiabil — dar limitat. Cand am avut nevoie de inca doua zone (picuratoare) si de control pe WiFi, l-am inlocuit cu un switch Tuya de 4 canale cumparat cu sub 100 RON de pe aliexpress. A mers excelent.
Intre timp a aparut nevoia de o a cincea zona — inca un un picurator pe gradina — rezolvata cu un Sonoff SWV-BSP, o electrovalva inteligenta pentru apa cu Zigbee 3.0 integrata in HA prin Zigbee. Tocmai cand credeam ca e gata, s-a stricat un Iritrol Life DC de la aspersoarele din fata casei: consuma bateria in 1-2 saptamani, indiferent ce faceam. Solutia: am tras fir, am schimbat solenoidul si l-am conectat la o priza smart. Zona 6 e pregatita in cod, asteptand switch-ul fizic definitiv.
Trei lumi diferite — Tuya WiFi, Zigbee 3.0 si o priza smart — fara nicio legatura intre ele la nivel de protocol. Exact genul de situatie in care Home Assistant straluceste: le unesti pe toate intr-un singur sistem, cu logica comuna.
Dar automatizarea de baza — porneste zona X la ora Y — e banala. Ceea ce m-a interesat a fost sa adaug valoare reala: stiam din masuratori ca apersoarele mele dau 0.4 L/m²/minut. De acolo a venit ideea: daca stiu debitul si stiu temperatura prognozata, pot calcula exact cat trebuie sa ud si pot ajusta duratele automat la inceputul fiecarei saptamani sau luni.

Hardware folosit
Setup-ul fizic e deliberat ieftin si simplu:
- Tuya TYWB 4ch-RF — controleaza zonele 1–4: Gazon Paul, Gazon Anca, Lateral Gradina, Copacii. Input AC/DC 7-32V/USB 5V, 10A per canal, 16A total, WiFi 2.4GHz + Bluetooth + 433MHz RF. Integrat in HA prin integrarea Tuya nativa.
- Sonoff SWV-BSP — Electrovalva inteligenta pentru apa, Zigbee 3.0 — zona 5, picuratorul din gradinita. Controleaza direct fluxul de apa, integrata in HA prin Zigbee.
- Priza smart (zona 6, placeholder) — pentru Iritrol-ul stricat: solenoid nou pe 24vAC, fir tras, priza smart pana la o solutie mai eleganta.


Total hardware pentru 5 zone active: sub 200 RON. Programatorul Hunter original costa mai mult si nu putea face jumatate din ce face sistemul actual. Cel iritrol life dc… 2 zone… doar 900 lei.
Arhitectura in Home Assistant
Sistemul foloseste Irrigation Unlimited (HACS) ca motor de control al zonelor — nu pentru schedule-urile lui native, ci pentru comenzile manual_run si cancel pe care le apeleaza automatizarile HA.
De ce aceasta abordare si nu schedule-urile native IU? Pentru ca avem nevoie de durate dinamice — calculate in functie de temperatura si debit — care se schimba saptamanal. Schedule-urile IU sunt statice prin natura. Automatizarile HA cu manual_run permit transmiterea duratei calculate la momentul rularii.
ha-irigatii/
├── packages/
│ └── irigatie.yaml # Entitati, automatizari, senzori
└── lovelace/
└── irigatie_dashboard.yaml # Dashboard cu 3 pagini
Zonele de irigatii
| Nr | Zona | Hardware | Status |
|---|---|---|---|
| 1 | Gazon Paul | TYWB 4ch-RF canal 1 | Activ |
| 2 | Gazon Anca | TYWB 4ch-RF canal 2 | Activ |
| 3 | Lateral Gradina | TYWB 4ch-RF canal 3 | Activ |
| 4 | Copacii | TYWB 4ch-RF canal 4 | Activ |
| 5 | Picurator Gradina | Sonoff SWV-BSP Zigbee 3.0 | Activ |
| 6 | Irigatii Fata Casa | Priza smart (Iritrol reparat) | Pregatit, dezactivat |
Zona 1 are doua durate configurabile: normala si canicula — mai lunga, activata automat cand prognoza indica ≥3 zile cu maxime de peste 30°C in saptamana urmatoare.
Planificarea automata
Fiecare zona are o automatizare de schedule zilnic cu mai multe moduri selectabile din interfata:
- Zile fixe — Lun+Joi, Mar+Joi+Sam, Lun+Mie+Vin sau zilnic
- Interval — o data la X zile, bazat pe data ultimei irigari stocate in
input_datetime - Dezactivat — oprire completa a schedule-ului pentru zona respectiva
Modul Interval e util pentru zone ca picuratorul sau copacii — nu au nevoie de ritmicitate fixa, ci de un interval minim intre udari.
Bilantul hidric — de unde vine valoarea reala
Acesta e miezul sistemului. Stiind ca gazonul consuma 0.4 L/m²/minut (masurat cu testul casoletei — pui o cutie pe gazon in timpul irigarii si masori cati mm s-au acumulat in X minute), poti calcula exact cat uda sistemul per saptamana si cat ar trebui sa ude in functie de temperatura.

Formula necesarului e deliberat simpla:
necesar_saptamanal [L/m²] = temperatura_medie_maxime_7_zile [°C]
Calibrare: la 30°C medii → 30 L/m²/saptamana. E o aproximare, dar una care functioneaza in practica — temperatura maxima e cel mai bun proxy simplu pentru evapotranspiratie fara senzori de umiditate sol.
Zilnic la 07:00, o automatizare apeleaza weather.get_forecasts (Met.no, integrat nativ in HA) si calculeaza media maximelor zilnice pe 7 zile. Duminica seara la 21:00, verifica daca saptamana viitoare are canicula (≥3 zile cu maxime ≥30°C).
Procentul acoperit — cate procente din necesarul calculat e acoperit de programul curent — e afisat in dashboard cu un gauge 0–150% per zona de gazon.
Auto-ajustarea duratelor
Pasul urmator fata de simpla afisare a bilantului: sistemul recalculeaza automat duratele de irigare la frecventa configurata (saptamanal, la 2 saptamani sau lunar) pentru a mentine bilantul la ~100%.
durata [min/sesiune] = temperatura_medie_maxime / sesiuni_pe_sapt / debit_L_mp_min
Exemplu — Gazon Paul la 28°C, Lun+Joi, debit 0.4:
→ 28 / 2 / 0.4 = 35 min/sesiune
La 20°C:
→ 20 / 2 / 0.4 = 25 min/sesiune
Duratele au clamping per zona (gazonul intre 1–59 min, copacii intre 5–120 min, picuratorul intre 5–180 min) si pot fi activate/dezactivate individual per zona. Zona 1 calculeaza si durata de canicula cu un factor ×1.3.
Rezultat practic: vara, cand temperaturile cresc, duratele cresc automat luni dimineata fara nicio interventie manuala. Toamna, scad.
Dashboard-ul — 3 pagini responsive
Construit cu custom:layout-card si custom:button-card (HACS), responsive pe desktop, tableta si telefon:
- Pagina 1 — Control: butoane Start/Stop per zona, timp total azi, toggle canicula, grafic activitate ultimele 48h
- Pagina 2 — Bilant Hidric: gauge per zona de gazon, deficit sau exces fata de necesar
- Pagina 3 — Configurare: ore start, durate, program, interval, debit masurat, toggle auto-ajustare per zona
O nota tehnica: today_duration din Irrigation Unlimited trackeaza doar sesiunile din schedule-urile native IU. Deoarece sistemul foloseste manual_run din automatizari HA, today_duration ramane 0. Solutia: senzori history_stats care citesc direct din istoricul HA, indiferent de modul de pornire al zonei.

Instalare rapida
- Instaleaza din HACS: Irrigation Unlimited, button-card, layout-card
- Copiaza
packages/irigatie.yamlin<config>/packages/ - Activeaza packages in
configuration.yaml:homeassistant: packages: !include_dir_named packages - Inlocuieste entity ID-urile switch-urilor cu ale tale in sectiunea
irrigation_unlimited: - Restart complet HA (nu doar reload —
input_numbercumode: boxnecesita restart) - Calibreaza debitul cu testul casoletei si seteaza
input_number.zona_N_litri_mp_minut
Ce urmeaza
Compensare precipitatii — datele sunt disponibile din acelasi weather.get_forecasts (atributul precipitation per zi). Formula ar deveni necesar_ajustat = max(0, necesar - precipitatii_prognozate_mm). Daca ploua marti, sistemul scade automat durata de joi.
Notificari push — cand bilantul hidric scade sub 70%, cand canicula se activeaza automat sau cand auto-ajustarea modifica o durata cu mai mult de 10 minute.
Zona 6 (Gazon Fata Casa) e deja pregatita in cod — entitati, automatizari, bilant hidric — dar dezactivata (enabled: false) pana cand switch-ul fizic e instalat.
Asta e primul meu proiect / repo pe Github aici: ha-irigatii