NOTE: c’è un aggiornamento a questa guida -> qui

Possiamo automatizzare l’irrigazione del giardino con Home Assistant, per fare questo abbiamo bisogno di un controller ESP8285 (anche un NodeMCU va bene) ed un modulo relè a 4 canali da 5Volt che abbia i fotoaccoppiatori e l’alimentazione dei relè separabile.

il controller ESP e la scheda 4 relè puo essere alimentata da un carica batterie per cellulari direttamente dalla porta USB presente sul modulo.

Colleghiamo le due schede.

Bisogna fare attenzione all’alimentazione, in quanto il controller con i GPIO lavorano 3,3V mentre i relè lavorano a 5V, questo è molto importante per non danneggiare il chip ESP.
Separiamo l’alimentazione dei relè dai foto-accoppiatori aprendo il jumper JD-VCC.

Collegamenti:

dal pin Vin del controller ESP escono 5V prelevati direttamente dalla USB che utilizzeremo per alimentare i relè, mentre dal pin 3,3V prenderemo l’alimentazione per i fotoaccoppiatori cosi avremo separato i 5V con i 3,3V.

Di seguito i collegamenti delle schede:

E qui i collegamenti tra elettrovalvole e alimentazione a 24V AC (corrente alternata)

Per prima cosa se non li abbiamo, scarichiamo ed installiamo i driver del chip USB to Serial presente sul controller utilizzando il seguente link https://sparks.gogo.co.nz/ch340.html
Carichiamo il firmware Tasmota sull’ESP con ATOM più PlatfomIO utilizzando la porta USB, nessuna scheda programmatore serve in questo caso perchè l’ESP ha gia il chip ch340 che fa da usb a seriale.

Una volta partito, configuriamo il Tasmota come al solito (Wi-Fi, nome, friendly name, IP statico e quant’altro) di seguito alcuni screenshot di configurazione tipo.

ora andiamo a configurare i GPIO come da immagine sotto e testiamo se i relè si attivano e disattivano con i tasti toggle

Integrazione in Home-Assistant:

Per l’integrazione in Home Assistant dovremmo aver prima configurato MQTT vedi questo articolo

Poi dovremmo creare alcuni componenti, automazioni e script nel file configuration.yaml

 

Creiamo degli inputboolean per i giorni della settimana.

Ora servono degli input number slider per definire i tempi delle zone:

Creaiamo due input time per 2 partenze giornaliere che se messi allo stesso valore avremo una perteza giornaliera soltanto:

A questo punto mancano le automazioni per i giorni della settimana ed uno script per i tempi delle zone e per la partenza manuale.
di seguito le automations, una per ogni giorno della settimana queste non fanno altro che far partire la zona 1 se le condizioni di orario e giorno della settimana sono valide.
L’ultima automazione intercetta se la zona 1 è accesa e fa partire lo script che per i tempi delle zone, vedi script sotto:

Qui lo script che resetta se stesso alla partenza per azzerare eventuali conteggi e poi in sequenza spenge e accende in successione le varie zone secondo i tempi impostati sugli input number slider:

Il seguente script serve per interrompere, a bisogno, l’irrigazione in corso, magari per una partenza fatta partire manualmente per errore, in ogni caso una volta attivato, va ad interrompere l’esecuzione dello script “timer_off” che gestisce la sequenza delle zone descritto precedentemente.

Ora che abbiamo tutto possiamo creare un pannello Lovelace dedicato, di seguito un esempio: