Progetto home Automation: creiamo un Web Solar Logger dell’inverter Aurora PVI-6000 con Raspberry pi e 123solar


Fino a poco tempo fa utilizzavo il Raspberry come Media Center, tuttavia mi son deciso ad avviare questo progetto di Home Automation, soprattutto per ottimizzare i consumi e l’uso dei pannelli fotovoltaici che ho sopra la casa.
Siccome l’inverter Aurora PVI-6000 mi consente di leggere i dati, ho deciso di utilizzare il mio Raspberry Pi per creare un piccolo web data logger tramite Arch e 123Solar;
l’idea è di avere in un futuro la possibilità di estendere le funzionalità monitorando i consumi e in seguito avviando questo o quell’elettrodomestico se la produzione-consumi è abbastanza elevata.
Ma facciamo un passo alla volta, innanzitutto vediamo come monitorare.

Per prima cosa bisognerà acquistare un convertitore da Rs_485 a USB per interfacciarci con l’inverter, io l’ho preso da amazon.

Nota: quando collegherete l’inverter io ho usato un cavo di rete (quello con 8 fili, penso sia cat5) e ne ho usati 6 a coppie di due per collegare la porta Rs_485 al convertitore; per quanto riguarda i collegamenti basta che colleghiate GRN con GRN, + con + e – con -… semplice no?!

Riguardo alla parte software dopo aver installato Arch Linux dobbiamo inserire la sd card nel Raspberry, collegarlo via ethernet al nostro router di casa, trovare l’indirizzo ip assegnato e collegarci via ssh con nomeutente alarm e password alarm
$ ssh alarm@192.168.1.105
Da questo momento tutti i comandi verranno eseguiti all’interno del Raspberry, consiglio al primo login da root di cambiare la password col comando # passwd
Nota: il login da root via ssh è disabilitato di default.

Configuriamo il collegamento wireless automatico

Installiamo i pacchetti necessari e creiamo il profilo di netctl relativo alla nostra rete grazie a wifi-menu
# pacman -S wpa_supplicant dialog
# wifi-menu

Ora abilitiamo il profilo creato con wifi-menu (è memorizzato in /etc/netctl se non vi ricordate il nome) per il login automatico all’avvio
# netctl enable wlan0-nome-rete
Al prossimo riavvio dovrebbe collegarsi alla rete wireless senza bisogno del cavo ethernet.
Nota: Probabilmente quando vi collegherete al vostro router tramite wifi il Raspberry avrà un indirizzo diverso da quello che aveva col cavo di rete.

Configurazione utenti

Questa parte è del tutto facoltativa ma a me l’utente alarm non piaceva (e neanche l’hostname, ma per quello basta modificare il file /etc/hostname), quindi ho provveduto a crearne uno nuovo (nel mio caso sarà raspi)


# useradd -m -g users -G wheel,video,audio,sys,lp,storage,scanner,games,disk,network,power -s /bin/bash raspi
# passwd raspi

Adesso usciamo dalla connessione ssh, rilogghiamoci come raspi e eliminiamo l’utente alarm

# userdel alarm

Nota: se volete mantenere alarm vi consiglio di cambiare password.

Miglioriamo le performance delle SDCard

Il mio file /etc/fstab aveva solamente la riga relativa alla partizione di boot quindi editiamolo e aggiungiamo:

/dev/mmcblk0p2 / ext4 defaults,relatime 0 0

con al posto di /dev/mmcblk0p2 il nome della vostra partizione root.

Installiamo e configuriamo sudo (questa parte è facoltativa)

# pacman -S sudo

E decommentiamo la seguente riga tramite il comando visudo
%wheel ALL=(ALL) ALL

Configuriamo il sistema per 123Solar

# timedatectl set-timezone Europe/Rome
# localectl set-keymap it
# hostnamectl set-hostname aurorapi

Installiamo i pachhetti necessari:
# pacman -Syu wget nginx php php-cgi php-fpm make gcc

E scarichiamo i file di configurazione di 123Solar e spostiamoli nella cartella /etc/nginx/:
$ wget http://123solar.org/downloads/nginx.conf
$ wget http://123solar.org/downloads/fastcgi_params
$ wget http://123solar.org/downloads/fastcgi.conf
# mv nginx.conf /etc/nginx/
# mv fastcgi* /etc/nginx/

Ora abilitiamo e avviamo il Web server

# systemctl enable php-fpm
# systemctl start php-fpm
# systemctl enable nginx
# systemctl start nginx

Installiamo il software di comunicazione

Scarichiamo il software Aurora da qui (al momento in cui scrivo la versione è la 1.9.3) col comando:

$ wget http://www.curtronics.com/Solar/ftp/aurora-1.9.3.tar.gz

e installiamolo:

$ tar -xzvf aurora*.tar.gz
$ cd aurora*
$ make
$ make install

Una volta collegato l’inverter alla porta USB del raspberry verifichiamo che funzioni con:

$ aurora -a2 -T -d0 -e /dev/ttyUSB0

Nota: Provate ad avviare il comando più volte, in quanto a me la prima volta dava qualche errore (probabilmente non avevo collegato bene i cavi).

Diamo i giusti permessi all’utente www
# chmod a+x /usr/local/bin/aurora
# usermod -a -G uucp http

Installiamo 123Solar

$ wget http://123solar.org/downloads/123solar/123solar1.6.9.tar.gz
# mv 123solar1.6.9.tar.gz /srv/http/
# cd /srv/http/
# tar xvzf 123solar1.6.9.tar.gz
$ wget http://www.123solar.org/downloads/123solar/123solar.service
# mv 123solar.service /etc/systemd/system
# systemctl enable 123solar

Ora accediamo da un browser all’indirizzo http://yourIP/123solar/ e settiamo Nome Utente e Password.

Successivamente editiamo il file /etc/nginx/nginx.conf e decommentiamo le righe dove c’è scritto “Uncomment those lines”.

Infine riavviamo nginx
# systemctl restart nginx
e ora dovremmo avere il nostro Web Solar Logger Locale funzionante! 😉

Per rendere accessibile il webserver anche da fuori casa vi rimando a quest’altra guida.

Troubleshotting

Mi è capitato che 123Solar non scrivesse più il log delle misure ma misurasse solo quella istantanea.
Il problema sta nei permessi e per risolvere:
# chown -R root /srv/http/123solar/
# chmod -R 777 /srv/http/123solar/

Questa voce è stata pubblicata in Arch Linux, Home automation, raspberry pi e contrassegnata con , , , , , , , , , , , , , , , . Contrassegna il permalink.

4 risposte a Progetto home Automation: creiamo un Web Solar Logger dell’inverter Aurora PVI-6000 con Raspberry pi e 123solar

  1. Kevin Piccati ha detto:

    Sto riscontrando un problema che non so come risolvere… quando arrivo al punto:

    # systemctl enable php-fpm
    # systemctl start php-fpm
    # systemctl enable nginx
    # systemctl start nginx

    quando cerco di dare il comando start mi da un errore…
    nel primo caso, in “# systemctl start php-fpm” mi esce “job for php-fpm.service failed because the control process exited with error code. utilizzando il systemctl status, esso mi segnala:
    “failed to start the PHP fastCGI process manager”, con “code=exited, status 127″

    nel secondo caso,” # systemctl start nginx” mi esce sempre “job for nginx.service failed because the control process exited with error code. utilizzando il systemctl status, esso mi segnala:
    “failed to start A high performance web server and a reverse proxy server” con con “code=exited, status 127”.
    Come posso risolvere?

    "Mi piace"

  2. danse94 ha detto:

    Ciao Kevin,
    purtroppo l’uso di 123solar è stato abbandonato da me in favore di OpenHab come puoi vedere seguendo questo progetto. La mia paura è che rispetto a 2 anni fa quando ho scritto l’articolo ci siano stati degli aggiornamenti al software che creino questi problemi, e quindi questa guida avrebbe bisogno di piccoli ritocchi.
    Quello che posso consigliarti è fare una bella ricerca su google diglitanto “systemctl start nginx fail 127 error” e “systemctl start php-fpm fail 127 error” e vedi cosa viene fuori.
    Dando un’occhiata veloce ho trovato: https://www.digitalocean.com/community/questions/can-t-start-nginx-job-for-nginx-service-failed, dove dice che potrebbe dipendere da un file di configurazione con qualche errore.
    Prova a dare ‘journalctl -xn’ dopo aver avviato i servizi, così magari hai un po’ più di informazioni per capire cosa è andato storto. Spero di esser riuscito ad avviarti verso la risoluzione.
    Nel caso avessi ancora bisogno, oppure vuoi condividere la soluzione sono a disposizione, così posso anche aggiornare la guida per utenti futuri.

    "Mi piace"

  3. Stefano Paterlini ha detto:

    Ciao Danse, vorrei capire due cose prima di provare a procedere per leggere i miei inverter aurora…
    1. E’ proprio necessario Arch linux? cosa offre in più rispetto a raspbian?
    2. E’ possibile con 123solar leggere più inverter già messi in serie con il cavo ethernet?
    Considera che posso fare le prove con uno solo, ma l’esperimento per me riuscirebbe meglio nel caso si potessero leggere più inverter alla volta così da controllare anche quelli relativi ad un secondo e terzo contatore… (un logger per 3 impianti in breve), mi interessa solo la produzione, ed eventualmente un allarme in caso di spegnimento…

    "Mi piace"

    • danse94 ha detto:

      Scusami se ti rispondo con un po’ di ritardo.. allora:
      1. No, niente Arch a me piace di più ma perchè la uso anche su altri pc.. ma essendo due distribuzioni Linux sono facilmente intercambiabili (cambierà qualche nome di qualche pacchetto); inoltre Raspbian è costruita ad-hoc per il Raspberry.
      2. Putroppo non so risponderti con precisione. Io ho solo un inverter quindi non ho avuto questo problema (e inoltre se guardi tutte le guide del progetto Home Automation noterai che non uso più 123solar). Tuttavia mi par di ricordare che 123solar è facilmente configurabile per avere più inverter collegati tra loro, ma credo che il buon Google possa fornirti informazioni più accurate. In ogni caso fammi sapere se trovi sostanziali modifiche alla guida oppure se riesci a far funzionare tutti e 3 gli inverter che eventualmente aggiorno la guida.

      "Mi piace"

Scrivi una risposta a Kevin Piccati Cancella risposta