DOMANI.md: dove siamo arrivati, comandi per ripartire e i sei passi da fare nell'ordine — inserire il giardino vero, misurare la portata dei settori, collegare l'app all'agente, verificare in simulazione col dito nel terreno, posare le sonde Watermark e solo alla fine accendere l'automazione. Include i trabocchetti che fanno perdere lavoro (il localStorage separato per porta, la data delle piante perenni, i backup) e le cose rimaste fuori. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GFnqupGt8T5HNNhPPHCjKs
175 lines
7.3 KiB
Markdown
175 lines
7.3 KiB
Markdown
# Guida per domani
|
|
|
|
Dove siamo arrivati e cosa conviene fare, nell'ordine giusto.
|
|
|
|
---
|
|
|
|
## Come si riparte
|
|
|
|
Dalla cartella del progetto:
|
|
|
|
```bash
|
|
npm run dev # solo l'app, con ricarica automatica → http://localhost:5173
|
|
npm run agente # app + centralina insieme → http://localhost:8088
|
|
```
|
|
|
|
Usa `npm run agente` se vuoi lavorare sull'irrigazione automatica, `npm run dev`
|
|
se stai solo mettendo mano al codice.
|
|
|
|
L'indirizzo da aprire dal telefono (stessa Wi-Fi) è quello di rete della macchina
|
|
su cui gira l'agente, sulla porta 8088. Per trovarlo: `ipconfig getifaddr en0`.
|
|
|
|
Tutto è su **https://github.com/luzadev/polliceverde**, un solo commit, niente in
|
|
sospeso.
|
|
|
|
---
|
|
|
|
## Cosa c'è già
|
|
|
|
**L'app** — sei sezioni: Oggi (meteo, allerte, cosa bagnare adesso), Orto (aiuole
|
|
e colture), Acqua (bilancio idrico per coltura), Turni (programma per la
|
|
centralina), Guida (58 schede di ortaggi, frutta e aromatiche), Diario.
|
|
|
|
**Il motore idrico** — metodo FAO-56: il terreno come serbatoio, consumo
|
|
giornaliero pari a evapotraspirazione per coefficiente colturale, ricarica da
|
|
pioggia e irrigazioni. Ricostruito su 21 giorni reali e proiettato su 10 di
|
|
previsione.
|
|
|
|
**L'automazione** — un agente Node che apre le valvole all'orario stabilito, un
|
|
settore alla volta, e registra nel diario quello che ha erogato. Driver per
|
|
ESP32, Shelly e Tasmota. Parte sempre in simulazione.
|
|
|
|
**Le sonde Watermark** — veto sui turni, riancoraggio del bilancio, confronto fra
|
|
misura e calcolo. Firmware ESP32 pronto in `firmware/`.
|
|
|
|
---
|
|
|
|
## Da fare domani, in ordine
|
|
|
|
### 1. Metti dentro il giardino vero
|
|
|
|
È il passo da cui dipende tutto il resto, ed è anche l'unico che non posso fare
|
|
io. In *Orto* → **+ Aiuola**, una per ogni gruppo di piante che condivide terreno
|
|
e impianto.
|
|
|
|
Per ogni aiuola servono: **superficie** in m² (la proiezione della chioma per gli
|
|
alberi, non tutto il giardino), **tipo di terreno**, **metodo di irrigazione**,
|
|
ed eventualmente pacciamatura e serra.
|
|
|
|
Per il tipo di terreno, se non lo sai: inumidisci una manciata di terra e prova a
|
|
farne un salsicciotto. Si sbriciola subito → sabbioso. Si modella ma si spezza
|
|
piegandolo → franco. Fai un anello senza crepe → argilloso.
|
|
|
|
Poi **+ Pianta qui** per ogni coltura. Per le piante perenni che c'erano già,
|
|
scegli la scorciatoia **"C'era già"**: se lasci la data di oggi, l'app crede che
|
|
il terreno sia stato appena bagnato all'impianto e per qualche giorno ti dirà che
|
|
va tutto bene anche se è secco.
|
|
|
|
### 2. Misura la portata di ogni settore
|
|
|
|
Serve a trasformare i millimetri in minuti di valvola aperta, e misurarla è molto
|
|
più affidabile che calcolarla dalle schede tecniche: la pressione di casa tua non
|
|
è quella nominale.
|
|
|
|
Apri **una sola** valvola, raccogli per un minuto esatto l'acqua di un
|
|
gocciolatore, moltiplica per il numero di gocciolatori del settore e per 60.
|
|
Il risultato va in *Orto → modifica aiuola → **Portata del settore (litri/ora)***.
|
|
|
|
Nella stessa schermata metti il **canale** (l'uscita a relè, si conta da 0) e il
|
|
nome del **settore** sulla centralina.
|
|
|
|
### 3. Collega l'app all'agente
|
|
|
|
Avvia `npm run agente` e apri l'app **dall'indirizzo dell'agente** (porta 8088),
|
|
non dalla 5173. In *Impostazioni → Centralina* scrivi quell'indirizzo nel campo
|
|
**Indirizzo dell'agente**.
|
|
|
|
> ⚠️ Attenzione a un dettaglio che fa perdere lavoro: i dati stanno nel
|
|
> `localStorage` del browser, che è **separato per ogni indirizzo**. Se hai già
|
|
> inserito il giardino sulla 5173 e poi apri la 8088, trovi tutto vuoto. Prima di
|
|
> cambiare porta fai *Impostazioni → **Esporta backup*** e importalo dall'altra
|
|
> parte. Poi lavora sempre e solo sulla 8088.
|
|
|
|
### 4. Lascia tutto in simulazione e verifica col dito
|
|
|
|
Per **una o due settimane** tieni il driver su *Simulato*. L'agente calcola,
|
|
scrive nel registro cosa farebbe, e non tocca niente.
|
|
|
|
Nel frattempo fai la prova che conta: quando l'app dice di irrigare, prima infila
|
|
il dito nel terreno a 15-20 cm. Se le due cose concordano, del calcolo ti puoi
|
|
fidare. Se l'app anticipa o ritarda sistematicamente, le manopole sono in
|
|
*Impostazioni → Taratura del calcolo* (efficienza dei metodi e risparmio della
|
|
pacciamatura).
|
|
|
|
Registra le irrigazioni che fai, anche quelle a mano: è quello che aggancia il
|
|
bilancio alla realtà. Finché non c'è nessuna irrigazione registrata per una
|
|
coltura, l'app scrive **"stima provvisoria"** in giallo, e ha ragione.
|
|
|
|
### 5. Quando arrivano le sonde Watermark
|
|
|
|
Prima di interrarle, **provale in un bicchiere d'acqua**: dopo dieci minuti
|
|
`/sensori` deve leggere 0-5 kPa. Lasciale asciugare all'aria un giorno e devono
|
|
salire oltre 100 kPa. Se restano inchiodate, il problema è nel cablaggio.
|
|
|
|
Per la posa: a **metà della profondità delle radici** (15-20 cm per l'orto, 30-40
|
|
per un albero) e a 15-20 cm **di lato** dal gocciolatore, mai sotto — sotto
|
|
misureresti il bulbo bagnato, non il terreno che la pianta esplora. Fai il foro
|
|
con una punta di legno, bagna la sonda prima di inserirla, e versa un po' di
|
|
terra stemperata nel foro: una sonda con aria attorno legge sempre secco.
|
|
|
|
Poi assegnale alle aiuole in *Orto → modifica aiuola → **Sonda Watermark***.
|
|
|
|
Schema di collegamento completo in `firmware/README.md`.
|
|
|
|
### 6. Solo alla fine, accendi l'automazione
|
|
|
|
Nell'ordine, prima di attivarla: prova **ogni canale a mano** dal pannello in
|
|
*Turni* e verifica che apra la valvola giusta; controlla che le sicurezze
|
|
(minuti e litri massimi) siano tarate sul tuo impianto; fai una **prova a secco**
|
|
e guarda se i risultati hanno senso.
|
|
|
|
Poi *Impostazioni → Centralina → **Automazione attiva***. Ti chiede conferma.
|
|
|
|
Il pulsante rosso **Chiudi tutto** in *Turni* è sempre lì.
|
|
|
|
---
|
|
|
|
## Cose che è utile sapere
|
|
|
|
**I turni non sono a intervallo fisso.** In *Turni* trovi due cose diverse: il
|
|
*programma fisso* è il ritmo di regime, simulato a terreno in equilibrio e tempo
|
|
asciutto — il caso peggiore, quello da lasciare impostato sulla centralina. I
|
|
*giorni esatti* partono invece dall'acqua che c'è adesso e scontano le piogge
|
|
previste. Ricontrollali una volta a settimana.
|
|
|
|
**Fai un backup ogni tanto.** *Impostazioni → Esporta backup*. Se svuoti i dati
|
|
del browser, il giardino sparisce. Con l'agente collegato il rischio è minore,
|
|
perché lo stato vive anche in `agente/dati/stato.json`, ma quel file non è nel
|
|
repo (giustamente: sono dati tuoi, e il repo è pubblico).
|
|
|
|
**L'app funziona offline**, ma il meteo no: senza rete usa l'ultima previsione
|
|
scaricata. In giardino va benissimo; dopo qualche giorno senza connessione, meno.
|
|
|
|
**In caso di dubbio il sistema si ferma.** Sonda guasta, dispositivo che non
|
|
risponde, dati meteo mancanti, canale non assegnato: in tutti questi casi il
|
|
settore non viene irrigato invece di essere irrigato alla cieca.
|
|
|
|
---
|
|
|
|
## Cosa è rimasto fuori
|
|
|
|
Cose di cui abbiamo parlato ma che non abbiamo fatto, se un giorno servissero:
|
|
|
|
- **Notifiche a app chiusa** — servirebbe un servizio push o un bot di
|
|
messaggistica sull'agente. Un bot Telegram è la via più semplice e gratuita.
|
|
- **Integrazione con Home Assistant** — esporre il calcolo come sensore e
|
|
lasciare le automazioni là.
|
|
- **App pubblica su hosting** (Netlify, Vercel) per consultarla ovunque. Nota che
|
|
una pagina in HTTPS non può comandare dispositivi locali in HTTP: resterebbe
|
|
per consultazione, mentre l'irrigazione si comanda dall'indirizzo di casa.
|
|
- **Più sonde per settore**, per mediare invece di fidarsi di un punto solo.
|
|
|
|
---
|
|
|
|
*Ultimo aggiornamento: 7 settembre 2026.*
|