piGardenWeb 0.6.0 – Visualizzazione Log e Gestione permessi utente

Con questa nuova versione di piGardenWeb sono state introdotte due nuove funzionalità che erano attese da un po’ di tempo, la gestione dei log e la gestione dei permessi utenti.

Aggiornamento

Innanzitutto accorre avere installato la nuova versione 0.6.0 di piGardeWeb. Potete aggiornarlo procedendo come segue:

  • aggiornate piGardenWeb da github
cd /home/pi/piGardenWeb
git pull origin master
  • aggiornate la struttura del database impartendo i seguenti comandi da shell
cd /home/pi/piGardenWeb
php artisan migrate
php artisan db:seed
  • modificate il file .env impostando con il valore “true” il parametro “ALLOW_MANAGE_USER”
ALLOW_MANAGE_USER=true
  • Entrate in piGardenWeb, e assegnate il ruolo amministratore al vostro utente andando nel menu “Users, Roles, Perm / Users”
  • adesso tornate ad editare il file .env e reimpostate “ALLOW_MANAGE_USER” con il valore “false”
ALLOW_MANAGE_USER=false

Gestione dei log

In questa nuova versione di piGardenWeb è stata aggiunta la possibiltà di mostrare i log prodotti da piGarden direttamente dall’interfaccia web.

Come è noto piGarden e piGadenWeb sono due elementi separati che possono girare sullo stesso hardware ma anche su due host distinti. La comunicazione tra loro avviene grazie al socket server che piGarden mette a disposizione (per maggiori informazioni vedete l’articolo “piGarden: l’architettura“). Data questa natura, piGardenWeb non può avere accesso diretto ai log prodotti da piGarden. Sono state quindi implementate delle api su piGardeWeb per far si che tramita chiamata http, ad ogni log prodotto da piGarden questo possa essere inviato a piGardenWeb. Quest’ultimo, ricevuto il log, lo memorizzera nel proprio database mettendolo a disposizione per essere consultato successivamente.

Vediamo ora come abilitare questa funzione. Innanzitutto occorre generare un api token su un utente di piGardenWeb, che utilizzaremo per inviare i log da piGarden a piGardenWeb. Il token può essere creato direttamente sul vostro utente oppure su un utente creato appositamente per questa funzione.

  • Andate nella gestione utenti dal menu “Users, Roles, Perm / Users”
  • Aprite il vostro utente o createne uno nuovo
  • Impostate il campo “Action api token” con il valore “Genera nuovo token”
  • Assicuratevi che il permesso “api log” sia abilitato
  • Salvate l’utente

A questo punto richiamando nuovamente l’utente vedrete nel campo “Api token” il nuovo token appena generato. Copiatelo da una parte perchè ci servirà tra poco.

Ora che abbiamo in nostro token dobbiamo abilitare piGarden per far si che invii i log a piGardenWeb.

Innanzitutto ci serve l’ultima versione di piGarden, la 0.6.1. Se non l’avete, aggiornate piGarden con i seguenti comandi da shell:

cd /home/pi/piGarden
git pull origin master

Ora modificate il file di configurazione e inserite (o modificate se già presenti) i seguenti parametri:

#
# Enable send log to piGardenWeb
#
 
LOG_URL="http://url_of_your_pigardenweb/api/log"
LOG_API_TOKEN="token_of_pigardenweb_user"
LOG_CURL_PARAM="--data-urlencode -k"

Sostituite url_of_your_pigardenweb del parametro LOG_URL con il nome host con cui raggiungete da browser la vostra installazione di piGardenWeb e assegnate il token precedentemente generato al parametro LOG_API_TOKEN.

A questo punto fermate e riavviate il soket server di piGarden:

./piGarden.sh stop_socket_server
./piGarden.sh start_socket_server force

Bene, adesso se tutto è andato per il meglio dovreste potere visualizzare i log generati, direttamente da piGarden:

Gestione dei permessi

La seconda funzione implementata è la possibilità di assegnare dei permessi personalizzati per i singoli utenti. Sarà così possibile creare degli utenti che possono solo vedere lo stato di irrigazione, piuttosto che attivare le elettrovalvole o impostare la loro schedulazione.

Per ogni singolo utenti sarà quindi posibile gestire i seguenti permessi:

  • manage users, permette di accedere alla gestione degli utenti
  • start stop zones, permette di attivare o disattivare manualmente l’irrigazione
  • manage cron zones, permette di gestire la schedulazione dell’irrigazione
  • manage setup, permette di accedere al Setup iniziale e alla funzione di personalizzazione delle icone
  • shutdown restart, permette di spegnere e riavviare l’host su cui gira piGarden
  • api log, abilita l’utente a potere utilizzare le api per la ricezione dei log da parte di piGarden

12 pensieri su “piGardenWeb 0.6.0 – Visualizzazione Log e Gestione permessi utente

  1. come sempre GRAZIEEEEE e GRANDEEE.
    Sei fortissimo.

    Aspetta a gloria il progetto piGuardian, poichè come te ho avuto lo stesso problema di un megapreventivo altissimo, e della sostituzione di tutti i compontenti.
    Io ho i sensori a filo, e visto che li ho già, mi piacerebbe poterli riutilizzare.

    Avrei anche in mente cosette carine:

    – Collegare un Lettore D’impronte Digitali per attivare/disattivare l’allarme, e perchè no, avendo 2 piani, sarebbe pure possibile configurare che ne so l’indice SX per attivare/disattivare tutto l’allarme, mentre con l’indice destro attivi/disattivi solo il 2° Piano. Insomma la possibilità di mappare il dito con l’area.
    – Un altra cosa carina, sarebbe l’integrazione nell’allarme con qualche telecamera, in modo tale, che se il sensore rilevi movimenti il sistema attivi la registrazione su SD della telecamera, o in cloud, oppure che invii la diretta sul cell, non so.

    grazie ancora, aspetto con ansia

  2. ciao Lejubila, e grazie per questo aggiornamento!
    Ti segnalo quello che, secondo me, è un refuso.
    Leggo:
    “Innanzitutto ci serve l’ultima versione di piGarden, la 0.6.1”
    ma in realtà – fino a questo momento – la rel. corrente dovrebbe essere la 0.6.0

    Inoltre ho avuto questo problema:
    piGardenWeb $ php artisan db:seed

    UnexpectedValueException : The stream or file “/home/pi/piGardenWeb/storage/logs/laravel.log” could not be opened in append mode: failed to open stream: Permission denied

    at /home/pi/piGardenWeb/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:110
    106| restore_error_handler();
    107| if (!is_resource($this->stream)) {
    108| $this->stream = null;
    109|
    > 110| throw new \UnexpectedValueException(sprintf(‘The stream or file “%s” could not be opened in append mode: ‘.$this->errorMessage, $this->url));
    111| }
    112| }
    113|
    114| if ($this->useLocking) {

    Exception trace:

    1 Monolog\Handler\StreamHandler::write()
    /home/pi/piGardenWeb/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php:39

    2 Monolog\Handler\AbstractProcessingHandler::handle()
    /home/pi/piGardenWeb/vendor/monolog/monolog/src/Monolog/Logger.php:344

    Please use the argument -v to see more details.

    Ho risolto solo con anteponendo sudo.

    Infatti forse non avevo i permessi di scrittura:
    ll /home/pi/piGardenWeb/storage/logs/laravel.log
    -rw-r–r– 1 www-data www-data 1365294 lug 26 12:36 /home/pi/piGardenWeb/storage/logs/laravel.log

    Mi chiedo se i permessi sono corretti oppure no (nel qual caso forse ho dato un qualche comando di troppo).
    ciao e grazie! Mario

  3. Ciao Lejubila,
    ho provveduto per dei miei motivi ad aver formattato le mie due Raspberry (1 Master e Una Slave) e con la versione 0.6.0 funziona tutto a meraviglia.

    Mi chiedevo se fosse possibile però mandare i log della SLAVE alla MASTER così da vedere tutti i LOG su una sola centralina dato che ho notato la possibilità di filtrare i messaggi in base all’IP.

  4. Ciao @Mario,

    1) Quando dico che server la versione 0.6.1 di piGarden mi riferisco allo script bash piGarden.sh e non a piGardenWeb. Serve effettivamente la 0.6.1 perché quella precedente non aveva la funzione di invio log a piGardenWeb.

    2) Come avevi intuito, il problema dell’errore era relativo ai permessi dei file di log. Avresti potuto risolcere impartendo i seguenti comandi:
    sudo chown -R pi:www-data /home/pi/piGardenWeb/
    sudo chmod -R +w /home/pi/piGardenWeb/storage/logs
    sudo chmod -R g+w /home/pi/piGardenWeb/storage/logs

    3) Effettivamente su buster sembra non funzionare bene ssmtp ma non ho ancora affrontato il problema. Se riesci a trovare un’alternativa fammelo sapere così aggiorno lo script per l’invio mail

  5. Ciao @Cosimo,
    puoi configurare anche sulla slave l’invio dei log verso piGardenWeb, in questo modo potra poi filtrarli per indirizzo ip

  6. Come si fa? Non riesco a farlo. C’è qualche guida che già lo spiega e che non mi sono accorto?

  7. @Cosimo,
    devi aggiornare piGarden alla versione 0.6.1 su entrambe le installazioni:

    cd /home/pi/piGardeb
    git pull origin master

    genera il token di autenticazione su piGardenWeb e imposta i seguanti parametri nel file di configurazione dei due piGarden:

    LOG_URL="http://url_of_your_pigardenweb/api/log"
    LOG_API_TOKEN="token_of_pigardenweb_user"
    LOG_CURL_PARAM="--data-urlencode -k"

    Comunque è tutto spiegato nell’articolo.

  8. @lejubila Ottimo, mi funziona… in pratica sono io che ho due installazioni di piGardenWEB (1 sulla Master e 1 sulla Slave). Quando ho formattato le due centraline in pratica ho installato su entrambe anche il WEB per avere l’interfaccia grafica qualora non mi si dovesse collegare a internet la Master (Ho problemi di connessione wifi debole sulla master e sto cercando un modo per potenziare il segnale di ricezione del raspberry perchè con i cellulari il segnale è fortissimo). Comunque ho risolto e funziona tutto benissimo… bastava generare solo un token per account Admin sulla Master e impostare l’ip della Master su entrambe le centraline.

    Ora mi interesserebbe sapere se c’è un modo per cancellare in automatico i log più vecchi di una settimana sennò tra un anno mi ritroverò con un registro pieno che mi occupa spazio sulla SD.

  9. Innanzitutto complimenti per il progetto.
    Funziona tutto come previsto su PI 4 B, salvo il fatto che ogni tanto si blocca e non risulta più accessibile né via web con piGardenWeb né tramite SSH.
    Devo spegnere e riaccendere il raspberry.
    Che problema potrebbe esserci?

  10. @Ferdinando,
    puoi provare a verificare i log di sistema evedere se al momento del blocco succede qualcosa di anomalo.
    Hai provato a cambiare ssd e la temperatura del raspberry?

  11. Ciao.
    Ho provato l’aggiornamento ma adesso quando accedoal sistema con login e password
    appare lapagian admin/dashboard completamente bianca.
    Come posso fare per sistemare ?
    Grazie mille !!

    Ciao!!!

Lascia un commento

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

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.