piGardent 0.5.5: driver “remote” per implementare un’architettura master/slave: controllare più piGarden remoti tramite un’installazione principale

Con la versione 0.5.5 di piGarden è stato aggiunto il nuovo driver “remote”. L’utilizzo di questo driver permette di implementare una configurazione master/slave, dove avremo una installazione piGarden master che controllerà le zone configurate su altre installazioni piGarden slave.

Per esempio potremo avere da gestire due giardini disposti a diversi metri l’uno da l’altro. In questa situazione potrebbe diventare difficile utilizzare un unico Raspberry Pi su cui collegare tutte le elettrovalvole, magari proprio per la distanza dei due giardini, oppure perché le elettrovalvole da gestire sono troppe.

Una soluzione può essere quella di utilizzare un Raspberry per ogni giardino. Su ognuno vi sarà la propria installazione di piGarden per gestisce le proprie zone. Queste saranno due installazioni slave e verranno comandate da una terza installazione considerata master.

Per controllare le elettrovalvole delle installazioni slave, in quella master sarà necessario configurare le zone utilizzando il driver “remote”.

Consideriamo di avere i due giardini disposti nel seguente modo.

Giardino Anteriore:

  • Zona Destra
  • Zona Centrale
  • Zona Sinistra

 

Giardino Posteriore:

  • Zona Orto
  • Zona Serra
  • Zona Destra
  • Zona Sinistra

 

Per il Giardino Anteriore avremo un Raspberry con indirizzo ip 192.168.1.51 con il socket server piGarden in ascolto sulla porta 8084. La configurazione delle elettrovalvole sarà come segue:

EV1_ALIAS="Zona_Destra"
EV1_GPIO=17
 
EV2_ALIAS="Zona_Centrale"
EV2_GPIO=27
 
EV3_ALIAS="Zona_Sinistra"
EV3_GPIO=22

Per il Giardino Posteriore avremo un Raspberry con indirizzo ip 192.168.1.52 con il socket server piGarden in ascolto sempre sulla porta 8084. La configurazione delle elettrovalvole sarà come segue:

EV1_ALIAS="Orto"
EV1_GPIO=17
 
EV2_ALIAS="Serra"
EV2_GPIO=27
 
EV3_ALIAS="Zona_Destra"
EV3_GPIO=22
 
EV4_ALIAS="Zona_Sinistra"
EV4_GPIO=18

L’installazione master di piGarden controllerà tutte le zone delle due installazioni slave grazie alla seguente configurazione:

EV1_ALIAS="Giardono_Anteriore_Zona_Destra"
EV1_GPIO="drv:remore:REMOTE_ANTERIORE:Zona_Destra"
 
EV2_ALIAS="Giardino_Anteriore_Zona_Centrale"
EV2_GPIO="drv:remore:REMOTE_ANTERIORE:Zona_Centrale"
 
EV3_ALIAS="Giardino_Anteriore_Zona_Sinistra"
EV3_GPIO="drv:remore:REMOTE_ANTERIORE:Zona_Sinistra"
 
EV4_ALIAS="Giardino_Posteriore_Orto"
EV4_GPIO="drv:remore:REMOTE_POSTERIORE:Orto"
 
EV5_ALIAS="Giardino_Posteriore_Serra"
EV5_GPIO="drv:remore:REMOTE_POSTERIORE:Serra"
 
EV6_ALIAS="Giardino_Posteriore_Zona_Destra"
EV6_GPIO="drv:remore:REMOTE_POSTERIORE:Zona_Destra"
 
EV7_ALIAS="Giardino_Posteriore_Zona_Sinistra"
EV7_GPIO="drv:remore:REMOTE_POSTERIORE:Zona_Sinistra"

Come visto sopra le variabili EVx_GPIO dell’installazione master non riportano l’identificativi del gpio ma bensì una stringa che identifica l’installazione slave remota e l’alias della zona da controllare di quest’ultima.

Prendiamo la seguente definizione:

EV7_GPIO=”drv:remore:REMOTE_POSTERIORE:Zona_Sinistra

questa è composta dalle seguenti parti:

  • drv: indica che non viene utilizzato un gpio per pilotare l’elettrovalvola ma bensì un driver
  • remote: identifica il tipo di driver utilizzato che in questo caso è il driver nominato “remote
  • REMOTE_POSTERIORE: identificativo dell’installazione piGarden remota (slave)
  • Zona_Sinistra: alias della zona definita nell’installazione remota di piGarden da gestire

Oltre alla definizioni delle zone, nell’installazione master, dovremo definire anche i parametri di accesso al socket server delle installazioni slave. Lo faremo impostando una serie di parametri la cui nomenclatura dovrà iniziare con l’identificativo dell’installazione  remota utilizzato nelle definizioni delle zone remote (EVx_GPIO):

REMOTE_ANTERIORE_IP="192.168.1.51"
REMOTE_ANTERIORE_PORT="8084"
REMOTE_ANTERIORE_USER=""
REMOTE_ANTERIORE_PWD=""
 
REMOTE_POSTERIORE_IP="192.168.1.52"
REMOTE_POSTERIORE_PORT="8084"
REMOTE_POSTERIORE_USER=""
REMOTE_POSTERIORE_PWD=""

Una considerazione a parte va fatta per la gestione delle condizioni meteo. Queste dovranno essere attivate soltanto sull’installazione master, mentre su quelle slave dovranno essere disabilitate. Procediamo quindi a impostare i seguenti parametri nei Raspberry slave:

# Id del gpio usato per collegare il sensore della pioggia
RAIN_GPIO=
 
# Blocca l'irrigazione se l'ultima pioggia rilevata online è avvenuta nell'ultima quantità di tempo inserita.
# Il tempo è espresso in secondi. Quindi inserendo 86400, se nelle ultime 24 ore ha piovuto viene bloccata l'irrigazione. Inserendo il valore zero non viene eseguito nessun controllo.
NOT_IRRIGATE_IF_RAIN_ONLINE=0
 
# Il parametro è simile a quello precedente, il controllo però anziché essere fatto attingendo a wunderground, viene eseguito direttamente sul sensore se installato. Inserendo il valore zero non viene eseguito nessun controllo.
NOT_IRRIGATE_IF_RAIN_SENSOR=0

In oltre in fase di configurazione dei raspberry slave non sarà necessario abilitare i cron per il controllo della pioggia che solitamente vengono inseriti nel seguente modo:

/home/pi/piGarden/piGarden.sh set_cron_check_rain_online
/home/pi/piGarden/piGarden.sh set_cron_check_rain_sensor
/home/pi/piGarden/piGarden.sh set_cron_close_all_for_rain

Bene, spero che questa nuova funzione sia utile. Per ora è tutto. Se avete dubbi non esitate a chiedere chiarimenti commentando questo post.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *