Monitoraggio con InfluxDB e Grafana

  • Autore discussione Autore discussione glfp
  • Data d'inizio Data d'inizio

glfp

Active member
Ciao a tutti,

a fronte dei problemi di accesso alla discussione su InfluxDb e Grafana, ma soprattutto al fatto che la soluzione InfluxDB + Grafana permette di coprire diverse esigenze e diversi device per il monitoraggio (SDM, Shelly EM, nodemcu), apro questa nuova discussione.

InfluxDb e Grafana sono due strumenti molto potenti e spesso non è sempre chiara la loro logica di funzionamento che si capisce solo dopo vari tentativi e confronti.

Molte cose sono quindi già state dette nei due thread padri:

https://www.energeticambiente.it/te...a-sdm-modbus-mbmd-opzionale-il-raspberry.html

e

https://www.energeticambiente.it/te...toraggio-impianto-fotovoltaico-shelly-em.html

che, a questo punto, potrebbero anche essere chiusi concentrando tutti gli sforzi su questo.
In ogni caso potrebbe essere utile riportare qui un sunto di quanto già detto al fine di creare una base di conoscenza comune.

Nei prossimi post riporterò, ad esempio, il mio scenario/caso d'uso e come l'ho implementato.
 
Questa la mia attuale architettura del sistema (parte hardware e software)

schema.png

  • due SDM230 Modbus RTU, uno per la lettura del contatore di scambio e uno in linea sul contatore di produzione del fotovoltaico
  • entrambi attestati sul differenziale magnetotermico (il salvavita)
  • in cascata, sono collegati ad un lettore USB/RS483 collegato ad un Raspberry PI4 B+ su /dev/ttyUSB0
  • i dati vengono letti dal software mbmd (GitHub - volkszaehler/mbmd: ModBus Measurement Daemon - simple reading of data from ModBus meters and grid inverters) che legge e interpreta gli SDM e qualche altro device, oltre a inverter con specifica SunSpec su protocollo ModBus TCP
  • mbmd scrive i dati direttamente su un database InfluxDB (attualmente in versione 1.7.9 ma a breve dovrebbe uscire la versione 2).
  • mbmd inoltre fornisce una interfaccia grafica web sulla porta 8080 che mostra in tempo reale i dati letti dagli SDM e inoltre può essere predisposto per inviare i dati via MQTT
  • i dati presenti su InfluxDB vengono poi letti e visualizzati da Grafana, dopo opportuna configurazione dei pannelli con i grafici
  • l'interfaccia di Grafana è completamente "responsive" (ovvero l'interfaccia si adatta ai dispositivi), per cui il contenuto può essere visualizzato anche su smartphone o tablet/iPad.
  • InfluxDB eGrafana sono stati installati sul Raspberry come "docker". Avremo modo di approfondire questo aspetto più avanti quando si inizierà ad abbozzare una guida.


Questa la mia attuale dashboard vista da PC:

Cattura2.PNG

Questa la vista da tablet iPad

Cattura4.PNG



Questa infine la vista da smartphone (con scrolling)

Cattura3.PNGCattura3.2.PNG
 
Ottimo glfp!

Comunque con il tuo suggerimento ho risolto il problema del reset a mezzanotte dei grafici a barre! Grandissimo!!!
 
Ottimo glfp!

Comunque con il tuo suggerimento ho risolto il problema del reset a mezzanotte dei grafici a barre! Grandissimo!!!

E' decisamente un lavoro di squadra !

... avevo già individuato quel problema ma non gli avevo dato peso ... tu mi hai spronato a capirne di più ...

Come Solarbyte a suo tempo col problema del Gauge, anche li ci avevo rinunciato ma capito che era una esigenza importante insieme c'abbiamo dato dentro :-)
 
Eccoci qui.
@glfp
Ottimo, direi che abbiamo fatto un bel pò di strada..:)

Ottima anche la furbata della timezone..:clapping:



Tanto per documentazione ecco la mia attuale dashboard, è in progress..
Schermata 2020-03-26 alle 16.48.38.png
Come vedi ho splittato il gauge unico prel/immiss in due separati: uno IMMISSIONI ed uno PRELIEVI e sto per eliminare il gauge della seconda riga a sinistra (Prel/Immiss). In questo modo a colpo d'occhio vedo in che regime sono.
Poi mi son divertito a mettere le varie percentuali..
Ognuno farà come gli piace..

Ti allego invece la seconda parte della dash e lì mi devi dare dritta:
come hai fatto a compattare a sx i valori della tabella del diagramma giornaliero? Non ho trovato opzione..
Schermata 2020-03-26 alle 16.53.37.png

A me mette i valori tutti a dx.. mi fa inc..
Ciaoo
 
La tabella a destra la mette il pannello Graph ... mentre MultiBarGraph lo mette di default a sinistra ... il che non mi quadra visto che hai le barre multiple e quindi per forza il multigraph.

Versioni ?

Grafana ora ho la 6.7.1, il MultiBarGraph è la 0.2.5.

Con i docker è facile aggiornare i prodotti ... per Grafana basta lanciare un nuovo "docker run" con la nuova versione.

Non farlo con Influx se non hai portato fuori la cartella coi dati (come ti avevo consigliato in altro post), altrimenti perdi tutto.
 
Come vedi ho splittato il gauge unico prel/immiss in due separati: uno IMMISSIONI ed uno PRELIEVI e sto per eliminare il gauge della seconda riga a sinistra (Prel/Immiss). In questo modo a colpo d'occhio vedo in che regime sono.
Poi mi son divertito a mettere le varie percentuali..
Ognuno farà come gli piace..

Carine le percentuali ... ci penserò anch'io !

Non mi piacciono i valori intorno ai gauge ... rovinano un pò l'estetica e tanto hai già i segmenti colorati e il numero in grande al centro del semicerchio ...
...oh, sempre de gustibus :-)
 
Ho fatto una scoperta ...

Nel grafico a linee, la tabella con i max, min, avg ... questi valori vanno presi un pò con le molle perchè sono ... variabili !

in particolare cambiano al cambiare della dimensione della finestra ... con una finestra piccola vedo dei valori, se allargo ne vedo altri ...

Riporto qui 3 casi:

Cattura5.PNG


Provato sia su Graph che MultiBar Graph.

Non fate caso al valore current che quello è corretto che cambi poichè cambiano ogni 5'' e gli snapshot sono in tempi diversi.

Sembra, così ad occhio, che in base alla dimensione della finestra il grafico lo disegni con più o meno punti rispetto ai veri dati che ha dalla query e che quindi quelli siano visualizzati e calcolati sulla base di quello che mostra a video ...

Provate anche voi. Non è un grosso problema, quei dati si possono recuperare con dei pannelli SingleStat, è giusto per sapere ...
 
Queste le mie prime bozze di dashboard

DashboardFTV.jpgDashboardPDC.jpg

E' normale che i valori min max e mean cambino se riduci la visualizzazione temporale perchè te li modifica in base a quel range temporale che visualizzi sul grafico. Quindi non è un problema anzi a me fa molto comodo vederli in questo modo perchè in un attimo posso capire cosa è successo in quel range di tempo alla variabile scelta
 
E' normale che i valori min max e mean cambino se riduci la visualizzazione temporale ...

Eh no, non riduco la visualizzazione temporale, riduco solo la dimensione della finestra del browser :spettacolo:
Chiaramente il grafico risulta più allargato man mano che allarghi la finestra ...
 
Queste le mie prime bozze di dashboard

Molto belle, molti simili alle mie e anche molto ben organizzate ... al momento (vedi 2° post) dedico molto spazio ai 3 gauge, ma solo perchè li voglio vedere fissi in uno spicchio del monitor con dimensioni ridotte ... rimpicciolendo quella finestra mi vedo bene ma se aggiungo altri elementi o gauge diventano troppo piccoli.

Devo duplicare tutto e farmi una dashboard ad hoc per quella visualizzazione ...
 
Leonik,

come monitori la temperatura esterna ?

E' una cosa che volevo fare da tempo ma non ho mai trovato un valido sistema ...

Puoi spiegarci parte hardware e software per recuperare i dati ?
 
Per ora la monitoro tramite un SHT10 (mi da sia temperatura che umidità) collegato ad un nodemcu che mi invia i dati su mqtt poi entrano in hassio poi influx ed infine Grafana. Ovviamente il sensore è inserito in uno schermo solare in modo da avere dati precisi anche con il sole. Ora con raffaelem stiamo cercando di inserire i dati della mia stazione meteo, più che altro lui già mi ha detto come fare e mi ha dato tutto bello pronto, il problema è che io sono una capra con il raspberry e non so fare nulla.......
 
Ora con raffaelem stiamo cercando di inserire i dati della mia stazione meteo, più che altro lui già mi ha detto come fare e mi ha dato tutto bello pronto, il problema è che io sono una capra con il raspberry e non so fare nulla.......

Che stazione meteo hai ? È un mondo che sto iniziando a studiare da poco, ho visto ci sono modelli con presa ethernet ... costano però sui 400 euro e non ho ancora capito bene come eventualmente caricare i dati su Influx

@solarbyte: abito in un zona particolare, in collina sui 400m, con temperature molto diverse rispetto a soli 100m di dislivello .. in inverno anche 6 gradi di differenza ...
 
Come faccio a fare un backup del database di influx?
Per le dashboard di grafana basta creare il json ed abbiamo le nostre dashboard riutilizzabili in un secondo
 
Leonik deve schedulare uno script che gli prenda i dati della Davis solo che ha questo Hassio installato su sd quindi non ha un ambiente linux su cui replicare quel che uso io (5 righe di bash e 1 di scheduler)

Io e winzozz siamo felicemente felicemente separati dal 2005 :D :D quindi non saprei approcciare il "problema", certamente ha uno scheduler ma come linguaggio di scripting non saprei proprio... sicuramente voi ne sapete di più
 
Come faccio a fare un backup del database di influx?
Per le dashboard di grafana basta creare il json ed abbiamo le nostre dashboard riutilizzabili in un secondo

Il backup è una cosa che sto studiando anch'io ...

In se per se è facile, è un comando di influx molto semplice.
Io devo solo capire come gestirlo in ambiente Docker, visto che il comando per il backup è dentro il container ma i dati sono vuoti ... è una cosa comunque semplice, devo solo mettermi e dedicarci un attimo ...

Per quanto riguarda la stazione meteo, hai due strade:

@raffaele, se ci passi le 5 righe di shell, si convertono in shell dos e si lanciano con lo schedulatore di Windows.

@leonik, se proprio serve usare linux, basta che installi una distribuzione dentro windows. Ad esempio io lavoro tutti i giorni con un Ubuntu sul mio PC. Attenzione ! Non è una classica macchina virtuale che gira in windows, è qualcosa di molto più integrato .... ti sembrerà di aprire una finestra DOS ma è linux ! Vedi qui

Installare Sottosistema Windows per Linux in Windows 10 | Microsoft Docs
 
Indietro
Top