Recentemente , grazie al suggerimento di @debugasm su github, è stato implementato il nuovo driver per piGarden, “sonoff_tasmota_http”. Con questo sarà possibile utilizzare i famosi moduli Sonoff per controllare le elettrovalvole del nostro impianto di irrigazione.
Prerequisito fondamentale per il funzionamento del driver è che il modulo Sonoff sia dotato del firmware Tasmota. Per maggiori informazioni sul firmware potete consultare il repository ufficiale su github: https://github.com/arendst/Sonoff-Tasmota.
Di seguito riporto un esempio di configurazione (tratto del file piGarde/conf/piGarden.conf.sonoff_tasmota_http.example) con il quale definiamo quattro zone: le prime tre saranno collegate al modulo Sonoff nominato SONOFF1, mentre la quarta sarà collegata ad un secondo modulo Sonoff nominato SONOFF2.
# Definizione delle elettrovalvole EV1_ALIAS="Giardino_Posteriore_DX" EV1_GPIO="drv:sonoff_tasmota_http:SONOFF1:Power1" EV1_MONOSTABLE=1 EV2_ALIAS="Giardino_Posteriore_CN" EV2_GPIO="drv:sonoff_tasmota_http:SONOFF1:Power2" EV2_MONOSTABLE=1 EV3_ALIAS="Giardino_Posteriore_SX" EV3_GPIO="drv:sonoff_tasmota_http:SONOFF1:Power3" EV3_MONOSTABLE=1 EV4_ALIAS="Giardino_Anteriore" EV4_GPIO="drv:sonoff_tasmota_http:SONOFF2:Power1" # # Configurazione moduli sonoff # SONOFF1_IP="192.168.1.1" SONOFF1_USER="user" SONOFF1_PWD="pwd" SONOFF2_IP="192.168.1.21" SONOFF2_USER="" SONOFF2_PWD=""
Prendiamo ad esempio la zona Giardino_Posteriore_DX definita nella variabile EV1_GPIO con il seguente valore:
drv:sonoff_tasmota_http:SONOFF1:Power1
questa è composta dalle seguenti parti:
- drv: indica che non viene utilizzato un gpio per pilotare l’elettrovalvola ma bensì un driver
- sonoff_tasmota_http: identifica il tipo di driver utilizzato che in questo caso è il driver nominato “sonoff_tasmota_http“
- SONOFF1: identificativo del modulo Sonoff da utilizzare e che dovrà essere definito successivamente
- Power1: identificativo del relè del modulo Sonoff su cui è collegata l’elettrovalvola da gestire
Nella definizione precedente viene fatto riferimento al modulo Sonoff con il valore SONOFF1. Perché tutto funzioni sarà quindi necessario definire i parametri di accesso al nostro modulo utilizzando le seguenti definizioni e che dovranno iniziare tutte con il suffisso SONOFF1 (identificativo scelto nella definizione delle zone):
SONOFF1_IP="192.168.1.1" # Indirizzo ip o nome host del modulo Sonoff SONOFF1_USER="user" # Eventuale nome utente di accesso per il modulo SONOFF1_PWD="pwd"# Eventuale password di accesso per il modulo
Con questo è tutto. Spero di essere stato abbastanza chiaro.
Per qualsiasi dubbio potete usare il modulo dei commenti.
Quindi con i moduli sonoff non c’è più bisogno di raspberry e altri moduli corretto?
E per quanto riguarda l’uscita dal sonoff? bisogna passare per un trasformatore con tensione adatta all’elettrovalvola da comandare?
Ciao @Davide
utilizzando i moduli sonoff puoi fare a meno del modulo relè da collegare al raspberry tramite i gpio. In pratica per comandare l’elettrovalvole non verranno utilizzati i gpio collegati ad un modulo relè ma bensì verranno utilizzate le api del firmware tasmota per fare aprire o chiudere via wifi i relè integrati nel modulo sonoff.
Per quanto riguarda il trasformatore hai detto bene, ne occorre uno adatto per l’elettrovalvola da comandare.
ciao e complimenti per il progetto.
Volevo chiederti se è possibile poter gestire questa centralina con un impianto fotovoltaico e una batteria.
Inoltre non mi è ben chiara la questione di questi moduli sonoff, cosa servono a sostituire i relay del progetto? Ho valvole bistabili.
Io ho la zona delle elettrovalvole lontana dalla 220v e volevo realizzare il tuo progetto alimentandolo con pannello solare…é fattibile? Inoltre con raspberry wifi potrei gestire il tutto anche da smartphone?
grazie, Max
Ciao Max
Ho ormai da un mese montato pigarden su raspberry alimentato da batteria con pannello da 30 watt. Per easere sincero non ho fatto un vero e proprio calcolo ma sono andato a istinto con i consumi e carichi. Però sta funzionando. Se riesco a gg passo un po di info
Grazie grimo, ho preso un pannello da 10w e batteria da 7Ah. Sto aspettando l’arrivo del sonoff 4ch pro e poi assemblo il tutto.
Spero che regga con 10w
Ciao, complimenti per il lavoro, io sto utilizzando piGarden per irrigare l’orto e devo dire che fa il suo lavoro alla grande, l’ unica cosa che mi dispiace è che weather underground non fornisca più il servizio API gratuito, per cui sto cercando una soluzione alternativa, ma diciamo che è un pò fuori dalla mia portata, se mai avessi tempo magari potresti dare un occhio tu, io stavo guardando openweathermap.org ma penso ce ne siano altri , come dicevo mi trovo un pò in difficoltà nell’adattamento degli script, detto questo ti ringrazio ancora per l’ottimo programma, ciao
Ciao Stefano,
sto già lavorando per introdurre il supporto ad openweathermap e con la prossima versione sarà integrato.
Ciao @lejubila,
utilizzo pigarden da ormai molti mesi, funziona molto bene, per cui rinnovo i complimenti.
Confermo però che, a mio avviso, l’interfaccia di programmazione delle diverse zone potrebbe essere resa più semplice. Forse ricorderai che avevo proposto di verificare la possibilità di poter indicare la durata di apertura, invece di dover indicare necessariamente ora di inizio e ora di fine, e di poter indicare anche una frequenza fissa, p.e. ogni due giorni, oltre alle altre modalità già previste.
In realtà avevo proposto la verifica anche di altre modifiche, in particolare la possibilità di gestire tramite parametro di configurazione il tempo di refresh della pagina http.
Ciao
Ciao @Ivano,
mi ricordo delle tue richieste.
Attualmente ho veramente poco tempo da dedicare allo sviluppo quindi sto dando priorità a problemi bloccanti.
Riguardo la variazione delle schedulazioni è un po’ complicato, dovrei modificare prima piGarden e poi piGardenWeb e attualmente non ho proprio tempo. In oltre avrei in programma di sostituire piGardenWeb con un nuovo progetto più modulare dove integrare oltre che piGarden anche alti moduli dedicati alla domotica. Il progetto però è in fase embrionale ed è fermo da diversi mesi proprio per la mancanza di tempo.
Detto questo, tutte le modifiche proposte o in programma dovrebbero essere implementate in questo nuovo progetto.
Per eventuali richieste di modifiche ti chiederei di inserire delle issue nei repositi di github in modo che non vadano perse nel dimenticatoio.
Nel frattempo ho rilasciato una nuova versione di piGardenWeb con corregge un problema e in più contiene la parametrizzazione del tempo di refresh della pagina come avevi richiesto.
Ciao @Stefano
con la versione 0.5.8 di piGarden appena rilasciata ho aggiunto il supporto per OpenWeatherMap.
@grimo75.
Ciao piacere, io ho dei grossi problemi con sono 4ch e fotovoltaico, in pratica le elettrovalvole bistabili che ho partono a muzzu e non riesco a venirne fuori.
Se per caso qualcuno potesse darmi una mano ne sarei grato.
su skype : maxhrc_mobile
Ciao @max,
hai utilizzato elettrovalvole bistabili con un sonoff 4ch ?
Per questo tipo di elettrovalvole devi simulare un doppio deviatore con due relè per gestire l’inversione di polarità.
Non credo che riesca a fare quanto sopra con solo il sonoff. Magari però mi sbaglio.
Eventualmente ti consiglio di dare un’occhiata qui https://www.lejubila.net/2015/10/impianto-di-irrigazione-con-raspberry-pi-l-elettrovalvola-seconda-parte/
Innazitutto i miei complementi per l’idea e soprattutto per l’ottima interfaccia utente! sto pensando di adottare il progetto per l’impianto di irrigazione di casa ma ho solo un duubbio; è possibile controllare 12 zone utilizzando solo il GPIO del Raspberry, eventualmente con una espanzione tipo questa https://www.ebay.it/itm/283093593583 ? o è necessario utilizzare la scheda spb16ch ? Grazie mille
Ciao Patrizio,
personalmente non ho mai usato così tante zone. Comunque le ultime versioni del Raspberry dovrebbero permetterti di usare 12 gpio.
Nel caso non bastassero puoi utilizzare un secondo raspberry come installazione slave.
L’espansione che hai linkato non la conosco.
Aggiornami sugli eventuali sviluppi.
Ciao Max,
Davvero complimenti per il lavoro che hai fatto.
Ti chiedo se possibile una funzione aggiuntiva,
Ho necessità di avere una elettrovalvola diciamo “master” per azionare la pompa dell’autoclave.
Deve attivarsi sempre ad ogni ON di tutte le altre a disattivarsi al OFF.
Avresti una soluzione semplice per implementare questa funzione?
Ti ringrazio infinitamente se vorrai rispondermi.
Buona giornata.
Ciao,
ho fatto errore sul nome, scusami….
Grazie David.
Ciao @Giovanni,
in piGarden non è presente una funzione simile a quella che vuoi tu, però grazie alla gestione degli eventi è possibile creare due script che vadano ad aprire e chiudere l’autoclave prima dell’apertura e chiusura di un’elettrovalvola.
Puoi procedere in questo modo:
crea il seguente script in /home/pi/piGarden/events/scripts/apri_autoclave.sh
#!/bin/bash
#
EVENT="$1"
ALIAS="$2"
FORCE="$3"
TIME=$4
ALIAS_AUTOCLAVE="Giardino_Posteriore_DX"
if [ "$ALIAS" != "$ALIAS_AUTOCLAVE" ]; then
/home/pi/piGarden/piGarden.sh open $ALIAS_AUTOCLAVE
fi
exit 0
Poi crea lo script /home/pi/piGarden/events/scripts/apri_autoclave.sh
#!/bin/bash
#
EVENT="$1"
ALIAS="$2"
FORCE="$3"
TIME=$4
ALIAS_AUTOCLAVE="Giardino_Posteriore_DX"
if [ "$ALIAS" != "$ALIAS_AUTOCLAVE" ]; then
/home/pi/piGarden/piGarden.sh close $ALIAS_AUTOCLAVE
fi
exit 0
Nei due script cambia il contenuto della variabile ALIAS_AUTOCLAVE con il nome dell’elettrovalvola definita in piGarden che gestisce l’autoclave.
Fatto questo crea il link simbolico dei due script nelle directory relative agli eventi di apertura e chiusura in questo modo:
ln -s /home/pi/piGarden/events/scripts/apri_autoclave.sh /home/pi/piGarden/events/ev_open_before/
ln -s /home/pi/piGarden/events/scripts/apri_autoclave.sh /home/pi/piGarden/events/ev_open_in_before/
ln -s /home/pi/piGarden/events/scripts/chiudi_autoclave.sh /home/pi/piGarden/events/ev_close_before/
Ecco fatto.
Adesso quando aprirai un’elettrovalvola si aprirà l’autoclave e quando la chiuderai anche l’autoclave si chiuderà.
Ciao David,
Ti ringrazio della dritta, sono alle prime armi con il Rasp, ho nozioni di programmazione in php e lisp….
Notavo nei link simbolici due comandi (apertura)… è voluto o in teoria ne basta uno solo?
Poi nel secondo comando (chiusura) magari meglio chiudere dopo l’autoclave rispetto alla ev…. credo
Usando ev_close_after
Ora ci lavoro su poi eventualmente durante l’inverno mi farò vivo perché trovo il progetto molto interessante (l’irrugazione ora è ferma).
Vorrei definire nelle configurazioni ev se usare la valvola autoclave o no perché ho diciamo due tipi di “acqua” una del serbatoio piovana (autoclave) e quella della rete (no autoclave)
Per cui alcune ev sono collegate idraulicamente ad una tubazione e le altre ev all’altra…
(Perché mi complico la vita?)
Ma ormai l’impianto è così e la vecchia centralina hunter mi ha dato forfait.
Ero già deciso a sostituirla con un nuovo prodotto sempre hunter che si aggira intorno alle 300 Euro…..
Hydrawise hc a 12 stazioni (6 non mi bastano), poi ho visto il tuo progetto e mi ha preso bene, ho già il RP3 e già sta in test….
Mi manca solo quel tassello della valvola X azionare la pompa acqua piovana…
Ti ringrazio infinitamente, a presto
Ciao
Ciao @Giovanni,
il secondo link sull’evento di apertura (ev_open_in_before) effettivamente non dovrebbe servire.
La chiusura dell’autoclave sarebbe più corretto legarlo all’evento ev_close_after, il problema però è che così non funzionerebbe, perché c’è un sistema di lock dell’elettrovalvola che in quel momento è ancora attivo e ne impedirebbe la chiusura. Per aggirare il problema l’ho quindi legata all’evento ev_close_before.
La tipologia delle elettrovalvole (autoclave / no autoclave) la puoi fare direttamente da dentro lo script controllando i nomi delle ev che che fanno scaturire l’evento.
C’è inoltre da fare una modifica sullo script di chiusura, andrebbe verificato se ci sono altre elettrovalvole aperte oltre a quella che si sta per chiudere, e se così non chiudere l’autoclave. Questo lo puoi fare eseguendo piGarden.sh ev_status_all e valutarne l’output. Non è una cosa semplicissima ma si può fare.
Spero di esserti stato di aiuto.
Ciao lejubila
mi sono accorto che il mio sonoff r4 pro al riavvio ha sempre la elettrovalvola n3 accesa. So che dovrei resettare dei topic mqtt ma ammetto che non riesco a capire come fare.
Hai qualche idea?
Ciao lejubila
ho installato l’ultima versione sia di pigarden che di pigardenweb. Funziona tutto.
Ma quando ho fatto funzionare il sonoff con Tasmota mi da questo errore:
pigarden.Invalid json socket client response at line 126 of file /home/pi/piGardenWeb/app/PiGardenSocketClient.php
Se invio i comandi direttamente da browser funziona (http://192.168.1.21/cm?cmnd=Power1%20On), si accende e si spegne.
Volevo anche chiederti come togliere il sensore in basso
Sensore: {{ sensor_name.replace(‘_’, ‘ ‘) }}
perchè io non ce l’ho nell’impianto.
Grazie
@Giovanni
hai attivato il socketserver di piGarden?
Per togliere il sensore, modifica il file di configurazione /etc/piGarde.conf
e cambia
SENSOR_TOTAL=1
con
SENSOR_TOTAL=0
@lejubila
Ho provato a mettere nel file piGarden.conf
SENSOR_TOTAL=0
ma niente… ho riavviato tutto e sotto resta il sensore che non trova!!
per quanto riguarda il sonoff con tasmota! niente, da sempre lo stesso errore:
pigarden.Invalid json socket client response at line 126 of file /home/pi/piGardenWeb/app/PiGardenSocketClient.php
@lejubila
ho notato che la scritta in basso del sensore
Sensore: {{ sensor_name.replace(‘_’, ‘ ‘) }}
esce solo se vado sulla dashboard dal pc, mentre dal cellulare non si vede!
Come mai???
Ciao @giovanni,
ser hai aggiornato piGardenWeb da una versione precedente, può darsi che che il tuo browser abbia ancora in cache i javascript della versione precedente.
Prova ad azzerare la cache del browser e ricaricare la pagina.
@lejubila
Ho cancellato la cache del browser e come avevi detto tu l’errore è scomparso!!! Grazie.
Ora resta solo il controllo del sonoff con firmware tasmota, me da sempre lo stesso errore. Ad accenderlo lo fa, ma dal browser riporta l’errore:
pigarden.Invalid json socket client response at line 126 of file /home/pi/piGardenWeb/app/PiGardenSocketClient.php
e poi non indica che è in funzione, e non cambia l’icona.
Sto andando al manicomio!!!! come risolvo???
Ciao Giovanni,
l’errore che ti da sembra dipenda da una malformazione del json che viene inviato da piGarden a piGardenWeb.
Per cercade di capire la causa, dovreti impartire il seguente comando e inviarmi l’output che viene restuito:
/home/pi/piGarden/piGarden.sh json_status
Ho scritto il comando come mi avevi chiesto, e questo è quanto ha dato:
pi@RaspGarden:~/piGarden $ /home/pi/piGarden/piGarden.sh json_status
{“version”:{“ver”:0,”sub”:6,”rel”:4},”timestamp”: 1641752263,”event”: {“event”: “”, “alias”: “”},”zones”:{“Corrente_Valvole”:{“name”:”Corrente_Valvole”,”state”:0},”Orto”:{“name”:”Orto”,”state”:0},”Prato”:{“name”:”Prato”,”state”:0},”Alberi”:{“name”:”Alberi”,”state”:0},”Prato2″:{“name”:”Prato2″,”state”:0},”Caldaia”:{“name”:”Caldaia”,”state”:0},”Luce_Portico”:{“name”:”Luce_Portico”,”state”:0}},”ev”:{“EV1_ALIAS”:{“alias”:”Corrente_Valvole”},”EV2_ALIAS”:{“alias”:”Orto”},”EV3_ALIAS”:{“alias”:”Prato”},”EV4_ALIAS”:{“alias”:”Alberi”},”EV5_ALIAS”:{“alias”:”Prato2″},”EV6_ALIAS”:{“alias”:”Caldaia”},”EV7_ALIAS”:{“alias”:”Luce_Portico”}},”sensor”: {},”last_weather_online”:{
“display_location”: {
“city”: “Zagarolo”
},
“observation_epoch”: “1641751745”,
“local_epoch”: “1641751745”,
“local_tz_long”: “Europe/Rome”,
“weather”: “Scattered Clouds”,
“temp_c”: “3.37”,
“relative_humidity”: “96%”,
“wind_dir”: “SSE”,
“wind_degrees”: “157”,
“wind_kph”: “1.79”,
“wind_gust_kph”: “–“,
“pressure_mb”: “994”,
“dewpoint_c”: “–“,
“feelslike_c”: “–“,
“icon_url”: “http://icons.wxug.com/i/c/k/nt_cloudy.gif”
},”error”:{“code”:0,”description”:””},”info”:””,”warning”:””,”success”:””,”last_rain_online”:”1641747423″,”last_rain_sensor”:””,”cron”:{},”cron_open_in”:{} }
Mi dà sempre lo stesso errore!! (però il sonoff con tasmota si accende, ma resta off sulla dashboard)
Avendo delle elettrovalvole bistabili e sonoff 4chpro r3 come le gestisco? In quanto al momento riesco ad aprirle ma ovviamente per chiudere devo invertire i fili . avete suggerimenti?
Ciao, avrei la necessità di comandare delle zone del prato direttamente dalle GPIO del raspberry e altre zone dal Sonoff. per fa funzionare questa cosa ibrida basta che implemento il file attuale di configurazione (adesso utilizzo solo le gpio) con questi comandi:
# Definizione delle elettrovalvole
EV1_ALIAS=”Giardino_Posteriore_DX”
EV1_GPIO=”drv:sonoff_tasmota_http:SONOFF1:Power1″
EV1_MONOSTABLE=1
# Definizione delle elettrovalvole
EV1_ALIAS=”Giardino_Posteriore_DX”
EV1_GPIO=”drv:sonoff_tasmota_http:SONOFF1:Power1″
EV1_MONOSTABLE=1
Grazie
Anche a me da lo stesso errore di Giovanni…
Allego screenshot del comando:
pi@piGardenOrtimino:~$ /home/pi/piGarden/piGarden.sh json_status
cat: /home/pi/piGarden/state/ev3: No such file or directory
{“version”:{“ver”:0,”sub”:6,”rel”:5},”timestamp”: 1663002141,”event”: {“event”: “”, “alias”: “”},”zones”:{“PRATO”:{“name”:”PRATO”,”state”:0},”BOUGANVILLE”:{“name”:”BOUGANVILLE”,”state”:0},”PIANTE_VERANDA”:{“name”:”PIANTE_VERANDA”,”state”:1}},”ev”:{“EV1_ALIAS”:{“alias”:”PRATO”},”EV2_ALIAS”:{“alias”:”BOUGANVILLE”},”EV3_ALIAS”:{“alias”:”PIANTE_VERANDA”}},”sensor”: {},”last_weather_online”:{
“display_location”: {
“city”: “Ortimino”
},
“observation_epoch”: “1663002007”,
“local_epoch”: “1663002007”,
“local_tz_long”: “Europe/Rome”,
“weather”: “Clear”,
“temp_c”: “27.01”,
“relative_humidity”: “64%”,
“wind_dir”: “West”,
“wind_degrees”: “262”,
“wind_kph”: “4.21”,
“wind_gust_kph”: “–“,
“pressure_mb”: “1013”,
“dewpoint_c”: “–“,
“feelslike_c”: “–“,
“icon_url”: “http://www.wunderground.com/static/i/c/k/clear.gif”
},”error”:{“code”:0,”description”:””},”info”:””,”warning”:””,”success”:””,”last_rain_online”:”1662776643″,”last_rain_sensor”:””,”cron”:{},”cron_open_in”:{} }
@leonardo
se noti bene ti viene restituito l’errore
cat: /home/pi/piGarden/state/ev3: No such file or directory
sembra che non venga trovato il file contenente lo stato dell’elettrovalvola numero 3
Prova e impartire il seguente comando
/home/pi/piGarden/piGarden.sh init
in questo modo dovrebbe avere ricreare tutti i file degli stati