From 5b45e5f4853ff955107fc06f661beab0667c2572 Mon Sep 17 00:00:00 2001 From: luciano Date: Mon, 7 Sep 2026 14:43:42 +0200 Subject: [PATCH] Guida di ripresa per la prossima sessione MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) Claude-Session: https://claude.ai/code/session_01GFnqupGt8T5HNNhPPHCjKs --- DOMANI.md | 174 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 3 + 2 files changed, 177 insertions(+) create mode 100644 DOMANI.md diff --git a/DOMANI.md b/DOMANI.md new file mode 100644 index 0000000..dd7b72c --- /dev/null +++ b/DOMANI.md @@ -0,0 +1,174 @@ +# 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.* diff --git a/README.md b/README.md index a370df6..8642a8c 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,9 @@ calcolandolo sul meteo reale della tua zona invece che su un calendario fisso. Funziona nel browser, si installa sulla schermata home del telefono e resta consultabile anche senza rete in giardino. Nessun account, nessun server: i dati vivono nel browser del tuo dispositivo. +> **Riprendi da qui:** [DOMANI.md](DOMANI.md) — dove siamo, come si riparte e cosa +> fare nell'ordine giusto. + ## Avvio ```bash