Monitoraggio energetico con Raspberry – 123Solar e MeterN
Avendo installato il mio impianto fotovoltaico, ed avendo la necessità di monitorare la produzione dell’impianto fotovoltaico, ma anche i consumi di casa ho fatto un pò di ricerche in rete, ed ho trovato due interessanti software free che permettono di loggare il tutto con un ottima interfaccia web ed output grafico, utilizzando come hardware il noto Raspberry, il versatile mini pc a basso costo.
Si tratta dei software 123Solar e MeterN.
I due software sono sviluppati da Jean-Marc Louviaux, sono scritti in PHP/JS e quindi anche facilmente personalizzabili (per chi ha un minimo di dimestichezza con questi linguaggi …. ).
Sono dotati di un’ottima interfaccia web multilingua (attualmente sono supportate: inglese, tedesco, italiano e francese)
Vediamo brevemente di seguito le caratteristiche di questi software.
123Solar
123solar legge i dati di produzione direttamente dall’inverter (gli inverter compatibili sono Aurora Power One e SMA e altri) tramite interfaccia seriale RS485.
Per l’installazione e la configurazione vi consiglio questa ottima guida in italiano di Walter62:
MeterN è il fratello del software 123solar, ma per la parte consumi energetici. Può infatti monitorare qualsiasi consumo energetico (energia elettrica, gas , acqua ed altro)
Il software comprende solo la parte di visualizzazione ed archiviazione, mentre le eventuali interfaccie e software per l’acquisizione dei dati viene demandata ad applicazioni esterne.
Sul sito vi sono comunque alcune indicazioni su come operare l’interfacciamento hardware ed in rete si trova poi del materiale a riguardo.
Sul blog potete trovare anche i seguenti articoli con delle guide passo passo per realizzare il vostro sistema di monitoraggio utilizzando dei:
Buon lavoro e buon divertimento a tutti
Ciao Flavio,
come hai collegato il contatore ad impulsi alla raspberry?
Grazie.
Carlo
In modo semplicissimo.
Due fili ed una resistenza da 200 Ohm.
Stò predisponendo una guida che poi pubblicherò.
Segui il blog.
CIAO
@Flavio
Ciao Flavio non per farti fretta anche io sono molto interessato alla tua guida.
Grazie e complimenti per i progetti pubblicati
Ciao Roberto
Ciao Flavio potresti spiegarmi come fa il raspberry a comunicare con meterN?
Ho completato una guida dettagliata …. a brevissimo la pubblicazione … segui il blog ..
Guida pubblicata:
Monitoraggio energetico con Raspberry – Guida all’installazione e configurazione
Buon divertimento
Ciao Flavio, complimenti per l’ ottima guida, molto ben descritta e comprensibile.
Premetto che sono a digiuno di Java per cui una mia carenza di programmazione in questo linguaggio potrebbe essere una passeggiata per te.
Ho già implementato 123Solar sul Raspberry seguendo la giuda di Walter62 e funziona correttamente da un anno circa, implementando tutti i vari aggiornamenti.
Stavo cercando di implementare anche MeterN ma sto trovando grosse difficoltà nell’ avvio del server Java; ho installato e configurato i vari sw sul RB e all’ avvio del server Java (sia che venga lanciato come utente pi o sudo) mi fornisce l’ errore
pi@raspi-metern ~ $ java -cp /opt/pi4j/lib/pi4j-core.jar:/var/www/metern/comapps/bin/:. pv.PoolServer -g 8 -pv 0.3125
Exception in thread “main” java.lang.NoClassDefFoundError: com/pi4j/io/gpio/GpioFactory
at pv.PoolServer.(PoolServer.java:24)
at pv.PoolServer.main(PoolServer.java:146)
Caused by: java.lang.ClassNotFoundException: com.pi4j.io.gpio.GpioFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
… 2 more
Installato su una nuova SD (ripartendo da Wheezy, installando 123Solar, installando MeterN), mi si presenta il medesimo problema.
Ripercorso tutti i passi della guida e rifatto la sola installazione di MeterN, mi ritorna sempre il problema del mancato avvio del server Java.
Reinstallato la macchina Java (anche se presente su RB), il risultato nono cambia.
Hai la possibilità di fornirmi qualche indicazione per risolvere il problema?
Ho anche notato che dai tuoi screenshot tu hai un’ indicazione di monitoraggio relativa alla produzione e immissione (strumento a zero centrale), al lancio del mio applicativo, riscontro sempre un indicatore identico a quello di 123Solar. Dove sto sbagliando ?!?!?
(P.s.: nella guida ho riscontrato alcuni “bug” di stesura:
a fine di pag. 14 , al momento di creare il link per il pooler, manca il “sudo” all’ inizio della riga
ln -s /var/www/metern/comapps/pooler.php /usr/bin/pooler
andrebbe corretto in
sudo ln -s /var/www/metern/comapps/pooler.php /usr/bin/pooler
a pag. 16 (si evince dal prompt #) per la modifica del file rc.nano andrebbe inserito il comando
sudo -s
prima di
..# cd /etc
../etc# nano rc.local
per il resto…. 10 e lode per il lavoro
AIUTOOOOOOO
Ciao e grazie per le correzzioni che provvederò ad inserire nella prossima versione (io eseguo sempre da utente root per cui i sudo mi sfuggono… ).
Per java, hai verificato che sia installato correttamente con il comando java -version e che la versione sia la stessa indicata nella guida?
Sei sicuro di aver seguito passo passo quanto indicato nella guida relativamente alla parte java?
La versione di java installata è corretta (come da procedura)
pi@fv-aurora ~ $ java -version
java version “1.8.0_06″
Java(TM) SE Runtime Environment (build 1.8.0_06-b23)
Java HotSpot(TM) Client VM (build 25.6-b23, mixed mode)
Per scrupolo, visto che avevo installato anche la distro nuova di wheezy (2014-12-24-wheezy-raspbian.img), ho effettuato anche il downgrade di java portandola da build 1.8.0_06-b123 a quella indicata nella procedura, ma senza effetti positivi.
Ora. dopo aver effettuato una ennesima nuova installazione e lanciano il client java mi compare il seguente messaggio di errore
pi@fv-aurora ~ $ java -cp /var/www/metern/comapps/bin/ pv.PoolClient -c live -um W -cn 2
Exception in thread “main” java.net.ConnectException: Connessione rifiutata
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at java.net.Socket.(Socket.java:434)
at java.net.Socket.(Socket.java:211)
at pv.PoolClient.main(PoolClient.java:46)
Per quanto riguarda il layout dell’ interfaccia web, sono riuscito a risolvere i problemi ricontrollando i dati immessi nei vari campi confrontando con la procedura scritta (errara digitazione dei campi da parte mia).
Il problema è che non viene caricato il server java.
Puoi fare la prova ad eseguire manualmente da terminale il comando del server (attento alla corretta sintassi, SPAZI COMPRESI), e se non ti dà errori lascia tutto fermo ed esegui in un secondo terminale il client e verifica si ti risponde correttamente.
@Flavio
Il server java non viene caricato, per cui il client non può rispondere.
Ho tolto l’ autostart dal rc.local e dopo il reboot ho lancianto il server manualmente; compare l’ errore:
pi@fv-aurora ~ $ sudo java -cp /opt/pi4j/lib/pi4j-core.jar:/var/www/metern/comapps/bin/:. pv.PoolServer –g 8 -pv 0.3125
wiringPiSetup: mmap failed: File o directory non esistente
ed il prompt su putty non ricompare più….. se non premendo CTRL+C
Il tuo problema sembra derivare da PI4J.
Ho visto sul loro sito che hanno cambiato le modalità di installazione, non vorrei che fosse quello a creare problemi.
Prova a disinstallarlo con il comando:
sudo apt-get remove pi4j or pi4j –uninstall
(non sò se funziona avendolo installato in altro modo – se non funziona cancella la cartella di pi4j in /opt/)
Poi reinstallalo con il comando indicato sul sito:
curl -s get.pi4j.com | sudo bash
Fammi sapere com’è andata …
@Flavio
A quanto pare abbiamo lavorato in telecinesi, ma tu sei arrivato alla conclusione precedendomi di 30 minuti
La procedura che ho adottato io è identica a quella che suggerisci: disinstallare la versione precedente di pi4j e reinstallare nuovamente utilizzando il comando
curl -s get.pi4j.com | sudo bash.
Successivamente all’ installazione delle nuove librerie PI4J l’ applicazione è operativa immediatamente, senza effettuare il reboot.
L’ anomalia risiedeva nel fatto che le librerie PI4J non venivano installate della dir /opt, risolta con la nuova procedura.
Grazie di tutto !
evidentemente non hai fatto il comando cd /opt prima di installare pi4J.
Comunque cambio la guida con la nuova procedura, così evitiamo problemi futuri
@Flavio
Ora provo anche ad effettuare l’ upgrade alla versione 0.7.1 di MeterN e poi ti faccio sapere se ho incontrato difficoltà.
@Flavio
Il comando /opt era stato fornito anche perchè dopo l’ ennesimo fallimento, controllavo anche gli spazi bianchi per evitare di aver digitato errori; evidentemente quella distro non installava i files dove doveva.
Ora ho installato gli applicativi sul Raspberry operativo e sembra funzionare tutto, se non fosse che oggi la produzione media, causa pioggia, si attesta a 20W medi; mi toccherà aspettare un po’ di sole per la verifica globale….
Per quanto riguarda la versione java installata, attualmente ho la 1.8.0-b132
pi@fv-aurora ~ $ java -version
java version “1.8.0″
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) Client VM (build 25.0-b70, mixed mode)
e tutto funziona regolarmente, per cui penso che sia importante avere una versione java uguale o superiore a quella da te indicata.
Altri due piccole sviste riscontrate nella procedura sono relative alle due immagini verso la fine (pag. 30 e 31) indicanti la corretta esecuzione del test dove al posto dell’ indicazione
“1(0xWh) is a valid entry”
Dovrebbe comparire la dicitura
“2(0xWh) is a valid entry”
dove la prima cifra indica il sensore monitorato.
L’ ultima indicazione riguarda la numerazione finale delle pagine da correggere.
E dopo tutto questo rompimento di scatole, sperando di non essere stato troppo pedante, penso che tu offrirò una birra !!!
Saluti.
Ciao Flavio, complimenti per l’ottimo lavoro svolto.
In merito avrei una domanda da porti.
Dal momento che mi trovo impossibilitato per ragioni logistiche, ad installare 123solar e meterN sullo stesso raspberry, è possibile modificare il file pool123solar.php che risiede in /var/www/metern/comapps, in modo che punti al raspberry di 123solar?
Rispettivamente nella riga del file pool123solar relativa al percorso ( $pathto123s = ‘/var/www/123solar ) come dovrebbe essere?
Ho cercato in tutti i modi, ma ancora non ci sono riuscito.
Grazie per l’aiuto che potrai darmi.
Tutto è possibile fare, si tratta solo di modificare il programma.
Solo che io non ti sò aiutare. Prova a scrivere sul forum di MeterN
ciao Flavio ho seguito la tua guida per l’istallazione di metern , premetto cho ho istallato 123solar versione 1.6.5.8 , funzionante perfettamente
metren versione 0.7.3 , quando faccio i test di funzionamento con il comando
curl http://localhost/metern/comapps/pool123s.php?cmd=2 da errore
Direct access not permitted is not valid, the correct format is 1(1234.5*Wh)
anche con curl http://localhost/metern/comapps/pool123s.php?cmd=1 restituisce
Direct access not permitted is not valid, the correct format is 1(1234.5*W)
invece con il comando pooler elect restituisce
is not valid, the correct format is 2(1234.5*Wh
mentre gli altri test funzionano correttamente …
ho già rifatto listallazione 2 volta ma nulla da fare , mi sono accorto che nella guida si cita , come file di configurazione 123solar.php , mentre con la nuova istallazione il file è chiamato 123s.php , io ho modificato quest ultimo .
se non è chiedere troppo non è possibile avere la versione di metern 0.7 quella della guida per intenderci , visto che io con la 0.7.3 non riesco a farla funzionare ..
grazie per l’aiuto che potrai darmi
Nella versione 0.7.3 sono state cambiate alcune cose fra cui proprio il pooler di 123solar. Appena ho tempo devo aggiornare al guida, perchè ci sono un sacco di novità, sia per il software che per la parte hardware con il contatore SDM120C modbus, e non più ad impulsi.
Se vuoi, intanto ti ho condiviso la versione di metern 0.7.2, che è compatibile con la mia guida.
grazie , io seguendo la guida ho acquistato un contatore a impulsi .
questasera riprovo l’istallazione , ma continuerò a seguire il tuo fantastico lavoro .
grazie ancora
Il contatore ad impulsi funziona benissimo (l’ho usato personalmente per diversi mesi). L’unico neo è che il sistema di lettura degli impulsi carica parecchio la CPU del raspberry ed è per questo che si possono monitorare al massimo 2 contatori con il sistema ad impulsi. Invece con il contatore seriale RS485 non c’è più questo problema, potendo così monitorare fino a 32 contatori sullo stesso doppino seriale.
Questo permette così di poter installare il siustema di monitoraggio anche nel caso in cui non si ha un inverter compatibile con 123solar.
Basta usare 2 contatori SDM120C : uno per i consumi ed uno per la produzione fotovoltaica.
Si ha così un doppio vantaggio:
1) il raspberry viaggia leggero e tranquillo
2) il sistema di monitoraggio diventa universale e si possono monitorare fino a 2 diversi carichi.
Come ho già detto stò cercando di aggiornare la guida, ma richiede tempo ……
PS: se il mio lavoro vi è stato utile, valutate di usare ANCHE questa pagina: DONAZIONE
@Stefano
E’ possibile leggere la produzione dal pooler anche se su un sitema diverso, basta condividere la cartella dove è installato 123solar con nfs o sshfs (usando la connessione con chiave pubblica)
Ciao Flavio,
avrei due domande di tipo elettronico e cioè:
1°) il contatore può essere collegato su correnti continue, ad esempio all’uscita del regolatore di carica verso il pacco batteria di un impianto fotovoltaico con massimali di 80A tramite shunt?
2°) esiste il medesimo contatore con porta WiFi invece della porta RS485?
Grazie e buona giornata.
Inoltre volevo farti i miei complimenti sul manuale che ho prontamente scaricato
1) Il contatore è fatto per correnti alternato, non può essere usato in continua
2) non saprei, ma non credo
aiuto il server di metern mi da’ questo errore
Exception in thread “main” java.net.BindException: Indirizzo gia’ in uso
at java.netPlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:382)
at java.net.ServerSocket.bind(ServerSocket.java:375)
at java.net.ServerSocket.(ServerSocket.java:237)
at java.net.ServerSocket.(ServerSocket.java:128)
at pv.PoolServer.main(PoolServer.java:145)
Scusa ma ho bisogno di qualche indicazione in più.
Stai usando un contatore ad impulsi con il programma Java per la lettura?
Se è così credo che il server Java non sia avviato.
Vedi nei commenti sopra c’è lo stesso errore dovuto al fatto che hanno cambiato la procedura di installazione di Pi4J, con la relativa soluzione.
@Flavio
ciao
il server non si avvia ma se faccio il test script java mi restituisce 2(0*w) quindi la lettura la fa’
ho installato anche 123solar e funziona perfettamente
@Flavio
ho provato a reinstallare pi4j come sopra descritto ma mi da’ lo stesso errore.
se apro localhost/meter/admin mi chiede la password la inserisco do ok
password salvata utente admin non dimenticare do ok
mi riporta a localhost/meter/admin
Immagino tu sia partito dall’ultima versione di Raspbian Jessie.
Prova ad usare Raspbian Wheezy come indicato nella guida, perchè nella nuova versione Jessie ci sono alcune cose diverse sul web server ed altro.
Il problema è comunque che non si avvia il server java, ed il problema dovrebbe essere solo nell’installazione di Pi4J.
Prova eventualmente a rifare l’installazione con Raspbian Wheezy, ma per Pi4J segui le istruzioni sopra e non quelle della guida e poi esegui i test di avvio del server Java indicato nella guida.
Fammi sapere
@Flavio
ho installato anche
server di stampa cups
server scanner sane
potrebbero essere loro a dare problemi ?2
ho disattivato tutti i server ma niente da fare
aiutoooooooooooooooooooooooo
@Flavio
Buongiorno a tutti,
ho quasi installato metern n sul mio raspy, ho solo un problema, quando accedo e mi chied user e pw inserendo quelle di default, non mi fa entrare e mi rimanda sempre alla stessa schermata, come mai? cosa ho sbagliato?
grazie
Hai utilizzato le mie immagini ?
Se si sei sicuro di utilizzare le credenziali corrette?
Ciao a tutti..
maaa se io avessi un impianto da 65Kw con 5 inverter, è fattibile tener monitorato il tutto? oppure questa soluzione va bene per gli impianti monoinverter?
perchè il datalogger attuale che avevo in uso è morto ora dovrei sostituirlo (700€) + pagare il canone annuale (180€) per collegarmi al loro server per vedere i dati, in tempo reale e storici, del mio impianto…..
grazie…
Il software 123solar riesce a monitorare anche impianti multinverter.
Se i tuoi inverter non sono Power ONE / ABB, puoi utilizzare 5 contatori SDM230modbus per rilevare la produzione di ogni inverter e monitorare il tutto con 123solar.
Il costo dell’investimento di raspberry e contatori è decisamente inferiore, inoltre non c’è nessun canone annuale.
I dati sono loggati sul tuo raspberry in locale, è possibile consultarli anche da remoto tramite internet (aprendo la porta 80 sul router) ed eventualmente fare dei backup su server ftp locale o remoto.
il sistema raspberry è collegabile a qualunque inverter?
io sarei indeciso tra Fronius o Huawei SUN2000L ma considero indispensabile il monitoraggio, per cui sarebbe utile sapere quale sia interfacciabile.grazie
Il monitoraggio con Raspberry è compatibile con qualsiasi inverter se si utilizza uno specifico contatore per la lettura della produzione (solo per alcuni inverter tipo POwer ONE / ABB è stato sviluppato uno specifico protocollo per leggere la produzione direttamente dall’inverter).
In wiki trovi la guida a riguardo.
Ciao Flavio,ti faccio i complimenti per il modo “semplice” con cui rendi concetti a molti,me compreso,ostici. Grazie di nuovo.
Ora,la “dashboard” gira in locale e la controlli sempre in locale ? Mi spiego meglio,io sto cercando di far raggiungere la mia dashbord in locale via rete esterna, ma ho problemi di sicurezza,allora volevo sapere come avevi risolto , vpn o proxy reverse ecc …
Grazie in ogni caso dell’attenzione
Stefano
Per questi chiarimenti usa il forum
I tuoi dubbi potrebbero interessare anche altri ed il forum è uno strumento migliore per condividere queste informazioni.
buongioro
ho letto mole vostre guide ma devo scrivervi perche mi sento incasinato.
ho un inverte abb uno
ho un raspberry pi 3 b
volevo monitorare produzione e consumi tramie 123solar e metern
NON VOGLIO METTERE MANO ALL IMPIANTO ELETTRICO
pensavo.. usare sensori tipo pinze amperometriche (collegate al raspberry) sui cavi dell inverter…. inviare i dati in wifi al sito ( in modo da poterli vedere dal cell/table/pc remoto) .
dic he sensori ho bisogno ? che guida seguo ? coa devo comprare ancora?( le sonde )
inoltre avrei bisogno che se le sonde di watt prodotti superano una certa soglia.. (400 watt)… mi parta in automatico un file bat / bach sul pc windows/ubuntu. (programma di mining) e sotto quella soglia (o circa) mi chiuda il fila bat/bach.
e’ fattibile o chiedo la luna ?
perfavore chiedo aiuto e spero che la mia richiesta sia utile anche ad altre persone
In wiki trovi indicato l’hardware ed il software per fare il monitoraggio, compreso l’uso di contatori con pinza amperometrica.