
[immagine presa dal sito ufficiale]
Il nostro sistema di Home Automation sta crescendo...
...abbiamo imparato ad integrare i diversi dispositivi fisici utilizzando un unico software come unica centralina di controllo...
...abbiamo conosciuto ed utilizzato il protocollo MQTT, tanto usato in progetti IoT, e abbiamo capito quanto ci possa semplificare l'integrazione e la comunicazione dei vari dispositivi totalmente eterogenei tra loro...
...abbiamo finalmente acceso una luce facendo un click su un applicativo web o su un'app...
...cosa vogliamo di più????
Beh, se proprio volessimo essere pignoli...qualcosina (magari solo qualcosina...😇) ci manca...tutti i dati che stiamo acquisendo e che acquisiremo successivamente non possiamo vederli ed analizzarli, valutando il loro andamento nel tempo???
Grafana e InfluxDB

[immagine presa dal sito ufficiale]

[immagine presa dal sito ufficiale]
Ecco che ci viene in aiuto un'ottima piattaforma open source, chiamata GRAFANA, che si integra perfettamente con OpenHAB e il suo principale motore di persistenza per la memorizzazione dei dati, chiamato InfluxDB. Se vi ricordate, nel post introduttivo di OpenHAB avevamo parlato in generale della persistenza del dato...ecco, utilizzando il motore InfluxDB, oltre a memorizzare i nostri dati su uno strumento ottimizzato per serie temporali di dati (come lo sono i nostri...), riusciamo, con pochi click, ad avere un ulteriore strumento di visualizzazione dei dati sottoforma di grafici e tabelle inseriti in dashboard altamente e facilmente personalizzabili. Tutto questo è GRAFANA.
Questo è il sito ufficiale di Grafana: https://grafana.com; se siete impazienti e volete vederla subito all'opera potete visitare il sito http://play.grafana.org dove troverete una demo live.
Per InfluxDB invece, seguite questo link: https://www.influxdata.com/
Installazione e Configurazione di InfluxDB
Per prima cosa dobbiamo installare InfluxDB sul nostro solito Raspberry, seguendo la guida ufficiale:
https://docs.influxdata.com/influxdb/v1.3/introduction/installation/
Successivamente, dobbiamo dire ad OpenHAB che una parte dei dati che riceve dovrà andare a memorizzarli su un database InfluxDB. Quindi, andiamo ad attivare il modulo relativo tramite interfaccia PAPERUI, sezione Add-ons, tab Persistence

Andiamo quindi a configurare OpenHAB con le informazioni utili a connettersi al database InfluxDB appena creato, modificando il file services/influxdb.cfg presente nella solita cartella di configurazione di OpenHAB.
Avendo lasciato tutte le opzioni di default durante l'installazione di InfluxDB, ho dovuto solo inserire la password dell'utente, il resto è rimasto ai valori standard.
Manca un ultimo passo: configurare le strategie di persistenza che OpenHAB utilizzerà per memorizzare i dati su InfluxDB; in sostanza si deve decidere, item per item, quando memorizzare il dato sul database. Le opzioni sono diverse: possiamo persistere il dato ogni volta che esso cambia o ogni volta che viene aggiornato (anche se non cambia...) oppure ad intervalli regolari di tempo, utilizzando la modalità di schedulazione di Quartz (libreria opensource di Java per gestire le schedulazioni).
Creiamo quindi un file di configurazione della persistenza, nella cartella /etc/openhab2/persistence, chiamato influxdb.persist. In questo file andiamo a definire le modalità di persistenza che vogliamo usare (sezione Strategies...) per assegnarle ai vari items (sezione Items...).
Non approfondisco oltre, altrimenti diventa troppo noioso...chi fosse interessato, oltre che a scrivermi, può consultare la documentazione ufficiale: http://docs.openhab.org/configuration/persistence.html#configuration
Installazione e Configurazione di Grafana
Per installare Grafana (sempre sul Raspberry), si può utilizzare lo strumento di configurazione di OpenHAB
(openhabian-config), selezionando l'opzione "optional components" e poi Grafana

Terminata la procedura di setup, la piattaforma è subito raggiungibile tramite browser sulla porta 3000, via http.
Tramite interfaccia web, andiamo a creare il nostro primo Data Source, cioè la sorgente dati da cui attingeremo per creare le nostre dashboard. Indovinate quale sarà???? Esaaaattttooooooo!!!! InfluxDB

Adesso siamo pronti a divertirci creando le dashboard...tutte operazioni effettuabili tramite interfaccia web...nessun file di configurazione da modificare o creare...
Dashboard di Grafana
Ogni dashboard è composta da righe e oggetti; gli oggetti inseribili sono di diverse tipologie e quella che userò io maggiormente sarà il grafico...una volta inserito l'oggetto vuoto in una posizione della nostra dashboard, andiamo a selezionare la/e grandezza/e che interessa e via...magicamente appaiono i dati nel grafico, in base all'intervallo temporale selezionato...tutto con qualche click...
Per fare un esempio, proviamo a creare una dashboard in cui visualizziamo l'andamento del nostro speedtest...(vi ricordate che abbiamo configurato OpenHAB per effettuare lo speedtest ogni due ore??)
- il grafico in alto visualizza due grandezze: download (su asse sinistro) e upload (se asse destro)
- il grafico in basso visualizza i tempi di ping

In pochi click siamo riusciti a creare una visualizzazione storica dei dati acquisiti dal nostro sistema di Home Automation...e tutto a costo zero...solo un pò di tempo investito a studiare e configurare il tutto...
Grafana e InfluxDB insieme ci aprono le porte per una rappresentazione dei nostri dati efficace con ottime possibilità di analisi...Man mano che andremo avanti a costruire il nostro sistema, oltre a gestire l'interattività con i nostri device (tramite interfaccia BasicUI di OpenHAB) andremo a creare anche le dashboard di visualizzazione.
Credo che ormai gli strumenti di cui siamo dotati ci permetteranno di progettare e costruire un sistema veramente completo!!!
Alla prossima puntata...
[immagini dell'autore dove non specificato diversamente]