Ciao a tutti,
dopo il fallimento nell'uso di uno Shelly EM come base del mio sistema di monitoraggio dell'impianto fotovoltaico (qui
Monitoraggio impianto fotovoltaico con Shelly EM
la relativa discussione), ho deciso di cambiare strada utilizzando degli Eastron SDM230 e un Raspberry.
Il setup di base è stato raccontato in lungo e in largo in questo thread
Raspberry + MeterN - Monitoraggio energetico valido ed economico - GUIDA
Fin da subito però ho pensato di cambiare il software di gestione (al posto quindi di MeterN), affidandomi ad un tool che ho sempre "sfiorato" dal punto di vista lavorativo, con un grande potenziale su questo specifico caso d'uso, ma col quale non ho mai avuto occasione di lavorarci.
Parlo di
InfluxDB e Grafana.
InfluxDB è un raccoglitore di dati, un database, nello specifico di time-series, ed è ottimizzato per fare query sui dati alla velocità della luce.
Grafana è un software specializzato nel fare grafici di ogni tipo (axis, bar, guage, progess...) accoppiato quasi in modo nativo con InfluxDb.
Questa coppia mi darà la libertà di "graficare" i dati che voglio, ma soprattutto la garanzia di una persistenza "solida" dei dati.
E soprattutto una architettura software moderna e visualizzazione dei dati "responsive", quindi perfetta sia su computer, table, smartphone.
Nei prossimi giorni dettaglierò meglio come sto gestendo il sistema e le loro interazioni.
Manca però ancora un componente: quello che legge dalla seriale e quindi dagli SDM (ne ho 2, uno per il consumo e uno per la produzione).
Gironzolando per la rete ho trovato questo software
mbmd/mbmd_run.md at master * volkszaehler/mbmd * GitHub
un sofware scritto in linguaggio GO che ha molte caratteristiche interessanti:
1) nativo per raspberry
2) legge da SDM senza bisogno di librerie aggiuntive
3) gira come demone e:
3a) espone una applicazione web di monitoraggio
3b) invia i dati su un server InfluxDB
3c) invia i dati via MQTT
3d) espone una API specifica per ogni dispositivo che legge
3e) volendo si interfaccia a inverter SolarEdge (SE3000, SE9000) and SMA (Sunny Boy and Sunny Tripower)
E che dire. Funziona perfettamente!
La sua interfaccia web si aggancia via websocket e riceve i dati in tempo reale (fino ad 1s di ciclo), degli altri canali per ora ho provato solo l'InfluxDB e funziona perfettamente.
Legge e trasmette i seguenti dati (qui visualizzati come Serie su Influx):
Il risultato su Influx + Grafana è il seguente:

Ho creato 2 grafici, uno per dispositivo (per ora il secondo, non avendo ancora il fotovoltaico allacciato è posizionato su una linea secondaria della casa).
I due gauge mostrano l'ultimo valore rilevato (ogni 5s).
Il campionamento avviene ogni 5s.
Che dire ... sono molto soddisfatto, anche se la parte grafica è TUTTA da fare , i grafici di sopra sono giusto una prova ... non sono un mago dei dati (lavoro più sulla parte software) e quindi al momento devo ancora capire come gestire tutta la mole di dati (un campionamento ogni 5 secondi !) e come visualizzare correttamente:
1) produzione
2) autoconsumo
3) immissione
4) prelievo
Inoltre devo ottimizzare l'uso del raspberry ...al momento la configurazione è simile a questa

ma messa nel quadro del contatore devo gestire i salti di corrente (con un powerbank) e usare un harddisk per il salvataggio dei dati per non sollecitare la SD.
Maggiori dettagli in un prossimo post.
Se qualcuno volesse partecipare per aiutarmi e migliorare i grafici di Grafana ... non aspetto altro :-)
Grazie a tutti !
dopo il fallimento nell'uso di uno Shelly EM come base del mio sistema di monitoraggio dell'impianto fotovoltaico (qui
Monitoraggio impianto fotovoltaico con Shelly EM
la relativa discussione), ho deciso di cambiare strada utilizzando degli Eastron SDM230 e un Raspberry.
Il setup di base è stato raccontato in lungo e in largo in questo thread
Raspberry + MeterN - Monitoraggio energetico valido ed economico - GUIDA
Fin da subito però ho pensato di cambiare il software di gestione (al posto quindi di MeterN), affidandomi ad un tool che ho sempre "sfiorato" dal punto di vista lavorativo, con un grande potenziale su questo specifico caso d'uso, ma col quale non ho mai avuto occasione di lavorarci.
Parlo di
InfluxDB e Grafana.
InfluxDB è un raccoglitore di dati, un database, nello specifico di time-series, ed è ottimizzato per fare query sui dati alla velocità della luce.
Grafana è un software specializzato nel fare grafici di ogni tipo (axis, bar, guage, progess...) accoppiato quasi in modo nativo con InfluxDb.
Questa coppia mi darà la libertà di "graficare" i dati che voglio, ma soprattutto la garanzia di una persistenza "solida" dei dati.
E soprattutto una architettura software moderna e visualizzazione dei dati "responsive", quindi perfetta sia su computer, table, smartphone.
Nei prossimi giorni dettaglierò meglio come sto gestendo il sistema e le loro interazioni.
Manca però ancora un componente: quello che legge dalla seriale e quindi dagli SDM (ne ho 2, uno per il consumo e uno per la produzione).
Gironzolando per la rete ho trovato questo software
mbmd/mbmd_run.md at master * volkszaehler/mbmd * GitHub
un sofware scritto in linguaggio GO che ha molte caratteristiche interessanti:
1) nativo per raspberry
2) legge da SDM senza bisogno di librerie aggiuntive
3) gira come demone e:
3a) espone una applicazione web di monitoraggio
3b) invia i dati su un server InfluxDB
3c) invia i dati via MQTT
3d) espone una API specifica per ogni dispositivo che legge
3e) volendo si interfaccia a inverter SolarEdge (SE3000, SE9000) and SMA (Sunny Boy and Sunny Tripower)
E che dire. Funziona perfettamente!
La sua interfaccia web si aggancia via websocket e riceve i dati in tempo reale (fino ad 1s di ciclo), degli altri canali per ora ho provato solo l'InfluxDB e funziona perfettamente.
Legge e trasmette i seguenti dati (qui visualizzati come Serie su Influx):
codice:
[FONT=Calibri]data,device=SDM1.1,type=ApparentPower[/FONT] [FONT=Calibri]data,device=SDM1.1,type=Cosphi[/FONT] [FONT=Calibri]data,device=SDM1.1,type=CosphiL1[/FONT] [FONT=Calibri]data,device=SDM1.1,type=CosphiL2[/FONT] [FONT=Calibri]data,device=SDM1.1,type=CosphiL3[/FONT] [FONT=Calibri]data,device=SDM1.1,type=CurrentL1[/FONT] [FONT=Calibri]data,device=SDM1.1,type=CurrentL2[/FONT] [FONT=Calibri]data,device=SDM1.1,type=CurrentL3[/FONT] [FONT=Calibri]data,device=SDM1.1,type=Export[/FONT] [FONT=Calibri]data,device=SDM1.1,type=ExportL1[/FONT] [FONT=Calibri]data,device=SDM1.1,type=ExportL2[/FONT] [FONT=Calibri]data,device=SDM1.1,type=ExportL3[/FONT] [FONT=Calibri]data,device=SDM1.1,type=Frequency[/FONT] [FONT=Calibri]data,device=SDM1.1,type=Import[/FONT] [FONT=Calibri]data,device=SDM1.1,type=ImportL1[/FONT] [FONT=Calibri]data,device=SDM1.1,type=ImportL2[/FONT] [FONT=Calibri]data,device=SDM1.1,type=ImportL3[/FONT] [FONT=Calibri]data,device=SDM1.1,type=ImportPower[/FONT] [FONT=Calibri]data,device=SDM1.1,type=Power[/FONT] [FONT=Calibri]data,device=SDM1.1,type=PowerL1[/FONT] [FONT=Calibri]data,device=SDM1.1,type=PowerL2[/FONT] [FONT=Calibri]data,device=SDM1.1,type=PowerL3[/FONT] [FONT=Calibri]data,device=SDM1.1,type=ReactivePower[/FONT] [FONT=Calibri]data,device=SDM1.1,type=Sum[/FONT] [FONT=Calibri]data,device=SDM1.1,type=SumL1[/FONT] [FONT=Calibri]data,device=SDM1.1,type=SumL2[/FONT] [FONT=Calibri]data,device=SDM1.1,type=SumL3[/FONT] [FONT=Calibri]data,device=SDM1.1,type=THD[/FONT] [FONT=Calibri]data,device=SDM1.1,type=THDL1[/FONT] [FONT=Calibri]data,device=SDM1.1,type=THDL2[/FONT] [FONT=Calibri]data,device=SDM1.1,type=THDL3[/FONT] [FONT=Calibri]data,device=SDM1.1,type=VoltageL1[/FONT] [FONT=Calibri]data,device=SDM1.1,type=VoltageL2[/FONT] [FONT=Calibri]data,device=SDM1.1,type=VoltageL3[/FONT]
Ho creato 2 grafici, uno per dispositivo (per ora il secondo, non avendo ancora il fotovoltaico allacciato è posizionato su una linea secondaria della casa).
I due gauge mostrano l'ultimo valore rilevato (ogni 5s).
Il campionamento avviene ogni 5s.
Che dire ... sono molto soddisfatto, anche se la parte grafica è TUTTA da fare , i grafici di sopra sono giusto una prova ... non sono un mago dei dati (lavoro più sulla parte software) e quindi al momento devo ancora capire come gestire tutta la mole di dati (un campionamento ogni 5 secondi !) e come visualizzare correttamente:
1) produzione
2) autoconsumo
3) immissione
4) prelievo
Inoltre devo ottimizzare l'uso del raspberry ...al momento la configurazione è simile a questa
ma messa nel quadro del contatore devo gestire i salti di corrente (con un powerbank) e usare un harddisk per il salvataggio dei dati per non sollecitare la SD.
Maggiori dettagli in un prossimo post.
Se qualcuno volesse partecipare per aiutarmi e migliorare i grafici di Grafana ... non aspetto altro :-)
Grazie a tutti !
Commenta