__** MANUALE DI INSTALLAZIONE SOLARLOGGER ** __ \\ ====== 1. Procedura per la configurazione del RaspberryPi® Jessie ====== {{ :img_123s:123s-powerone.png?direct&600 |}} **La presente guida riguarda l'installazione e la configurazione di 123Solar su sistema operativo Raspbian Jessie con lettura diretta dei dati tramite bus RS485 da Inverter tipo ABB (PowerOne)**\\ \\ **E' quindi necessario che abbiate installato sul vostro Raspberry il sistema operativo Raspbian Jessie come descritto nella [[raspberry_so_webserver_jessie|apposita guida sul wiki]]** ===== 1.1. Installare Aurora 1.9.3 ===== Acquisire i diritti di amministratore sudo -s Portarsi sulla home cd /home/pi scaricare il programma Aurora 1.9.3 (verificare che sia l'[[http://www.curtronics.com/Solar/AuroraData.html|ultima versione]]) wget http://www.curtronics.com/Solar/ftp/aurora-1.9.3.tar.gz Scompattiamo l'archivio tar -xzvf aurora-1.9.3.tar.gz rm -v aurora-1.9.3.tar.gz Installiamo portandoci sulla dir aurora- 1.9.3 cd aurora-1.9.3 make make install cd /.. ===== 1.2. Installazione e configurazione di 123Solar ===== ==== 1.2.1. Installazione di 123Solar ==== Portarsi sulla directory www del web server sudo -s cd /var/www Scaricare il programma 123solar 1.6.9.3 e il file per avviare il servizio (per entrambi verificare che sia l'ultima versione e modificare se necessario) wget http://www.123solar.org/downloads/123solar/123solar1.6.9.3.tar.gz Scompattiamo l'archivio tar -xzvf 123solar*.tar.gz eliminiamo il file tar rm -v 123solar*.tar.gz installiamo il servizio per l'avvio automatico di 123solar cd /etc/systemd/system wget http://www.123solar.org/downloads/123solar/123solar.service nano 123solar.service [Unit]\\ Description=123Solar\\ Requires=network.target\\ After=network.target apache2.service php-fpm.service [Service]\\ Type=oneshot\\ ExecStart=/bin/sleep 10\\ ExecStart=/usr/bin/curl http://localhost/123solar/scripts/boot123s.php [Install]\\ WantedBy=default.target Abilitiamo il servizio systemctl enable 123solar.service abilitare la USB per l'user www-data cd /.. ​usermod -a -G uucp www-data verificare che sia stato impostato correttamente digitando “groups www-data” che deve restituire come minimo “www-data:www-data uucp” Impostare i permessi per Aurora, per prima cosa verificare il percorso del programma: find / -name aurora restituisce il percorso in cui si trova aurora che dovrebbe essere /usr/local/bin/aurora se non lo fosse adeguare di conseguenza il percorso sul comando seguente chmod a+x /usr/local/bin/aurora ==== 1.2.2. Configurazione di 123Solar ==== Aprite un browser su un pc della stessa rete e digitate [[http://192.168.x.xx/123solar/admin/|http://192.168.x.xx/123solar/admin/]] verrà chiesto il login a cui risponderete con admin e password che potete scegliere a piacimento e si aprirà il menù di configurazione di 123solar. {{http://emon62.altervista.org/dokuwiki/lib/images/smileys/fixme.gif?nolink&80x15}} A questo punto per risolvere un problema di autenticazione al secondo accesso abbandoniamo la procedura di configurazione cliccando sul pulsante "Back" e chiudere il browser. Torniamo sul raspberry e proseguiamo come segue: ==== Impostazione dei permessi di accesso ==== Configuriamo ora le directory di 123solae e MetrN sul webserver sudo -s cd /etc/apache2/sites-enabled cp -v 000-default.conf 000-default.bak nano 000-default.conf Il file deve essere come il seguente (correggere dove serve) \\ # The ServerName directive sets the request scheme, hostname and port that\\ # the server uses to identify itself. This is used when creating\\ # redirection URLs. In the context of virtual hosts, the ServerName\\ # specifies what hostname must appear in the request's Host: header to\\ # match this virtual host. For the default virtual host (this file) this\\ # value is not decisive as it is used as a last resort host regardless.\\ # However, you must set it for any further virtual host explicitly.\\ ServerName 127.0.0.1 ServerAdmin webmaster@localhost\\ DocumentRoot /var/www\\ \\ Options Indexes FollowSymLinks MultiViews\\ AllowOverride All\\ Require all granted\\ \\ \\ AllowOverride None\\ AuthType basic\\ AuthName "123solar Password Protected Area"\\ AuthBasicProvider file\\ AuthUserFile /var/www/123solar/config/.htpasswd\\ require valid-user\\ \\ \\ AllowOverride None\\ AuthType basic\\ AuthName "meterN Password Protected Area"\\ AuthBasicProvider file\\ AuthUserFile /var/www/metern/config/.htpasswd\\ require valid-user\\ # Available loglevels: trace8, …, trace1, debug, info, notic$\\ # error, crit, alert, emerg.\\ # It is also possible to configure the loglevel for particular\\ # modules, e.g.\\ #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log\\ CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are\\ # enabled or disabled at a global level, it is possible to\\ # include a line for only one particular virtual host. For exa$\\ # following line enables the CGI configuration for this host o$\\ # after it has been globally disabled with "a2disconf".\\ #Include conf-available/serve-cgi-bin.conf\\ riavviamo apache service apache2 restart {{http://emon62.altervista.org/dokuwiki/lib/images/smileys/fixme.gif?nolink&80x15}} **Riprendiamo la configurazione** Aprite un browser su un pc della stessa rete e digitate [[http://192.168.x.xx/123solar/admin/|http://192.168.x.xx/123solar/admin/]] si aprirà il menù di configurazione di 123solar. {{ :img_123s:admin_1.6.7.3.png?nolink&700x483 }}Selezionare “Main configuration” {{ :img_123s:main_1.6.7.3.png?nolink& }}compilati i campi salvare”Save main cfg.” e quindi cliccare su “Back” per tornare al menu. Selezionare ora “Configure your inverter(s)” {{ :img_123s:inv1_1.6.7.3.png?nolink&700x858 }} PS.: fra le opzioni notate una voce = Y3 e l3 modificatela in Y5 e l5 se avete problemi di instabilita ̀ del monitoraggio, altrimenti lasciatela pure i valori standard. Compilati i campi salvare cliccando ”Save inverter cfg.” e quindi cliccare su “Back”tornare al menu. Se si vuole inviare i dati si Pvoutput selezionare ora “Pvoutput configuration” compilati i campi salvare”Save inverter cfg.” e quindi cliccare su “Back”tornare al menu {{ :img_123s:start_123solar.png?nolink&700x336 }} concluse le impostazioni cliccare sul pulsante evidenziato che che passa da “OFF” ad “ON” avviando 123solar. Chiudere il browser ===== 1.3. Settaggio del sistema ===== A causa delle caratteristiche dell'hardware, per avviare e fermare automaticamente 123solar e ovviare ad una non perfetta compatibilità della modalità Hi-speed della porta USB con il mio convertitore RS485-USB è necessario modificare manualmente alcune parti del sistema. Le seguenti modifiche sono quelle che mi hanno dato maggior stabilità. I passaggi sono: * Settare la modalità di comunicazione per la porta USB * Settare la velocità della porta USB * Impostare l'avvio e lo stop per 123solar ==== 1.3.1. Modifica della modalità di comunicazione della porta USB ==== \\ nelle ultime versioni di Raspbian questa parte non è più necessaria, la lascio in caso di necessità \\ NB: Attenzione questa procedura è necessaria solo se ci sono problemi di blocco del Raspberry durante il monitoraggio con il convertitore USB-seriale \\ ​ Digitare: sudo -s cd /boot nano cmdline.txt Si apre il file in modifica, modificare in modo che risulti esattamente come di seguito: Codice: \\ dwc_otg.lpm_enable=0 dwc_otg.speed=1 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait \\ ​ Mi raccomando va scritto tutto in una sola riga senza andare a capo, non ci devono essere spazi a inizio e fine riga. ==== 1.3.2. Impostare la velocità della porta USB ==== Per far questo ci appoggiamo ad un servizio di sistema, “rc.local” che ad ogni avvio esegue il codice presente al suo interno, rispetto all'utilizzo di crontab, rc.local fa ripartire il monitoraggio a qualsiasi ora a seguito di un riavvio improvviso del sistema. (ricordarsi di attivare l' auto-pooling in 123solar admin) sudo -s cd /.. cd etc ​nano rc.local A questo punto modificare il contenuto del file in modo che sia come segue: \\ #!/bin/sh -e \\ # \\ # rc.local \\ # \\ # This script is executed at the end of each multiuser runlevel. \\ # Make sure that the script will "exit 0" on success or any other \\ # value on error. \\ # \\ # In order to enable or disable this script just change the execution \\ # bits. \\ # \\ # By default this script does nothing. \\ # Print the IP address \\ _IP=$(hostname -I) || true \\ if [ "$_IP" ]; then \\ printf "My IP address is %s\n" "$_IP" \\ fi \\ stty -F /dev/ttyUSB0 19200 # imposta la velocità della seriale a 19200 \\ exit 0 \\ Attenzione a non inserire spazi (barra spaziatrice) a fine riga o su righe vuote ===== 1.4. Installazione di SMAspot ===== Attenzione questa procedura non è aggiornata da oltre un anno ===== 1.5. Procedure di supporto ===== Le procedure descritte nel presente paragrafo non sono strettamente necessarie al funzionamento del sistema ma risultano utili in particolari situazioni ==== 1.5.1. Installazione servizio di invio mail da 123solar ==== (Procedura scritta con il supporto di “Borghese” che ringrazio) Iniziamo con installare i programmi necessari: sudo -s cd /.. apt-get update apt-get upgrade apt-get install msmtp msmtp-mta ca-certificates editare il file di configurazione cd /etc ​nano msmtprc all'interno scrivere quanto segue, modificare la parte in blu: \\ # Impostazioni account defaults \\ tls on \\ tls_starttls on \\ tls_trust_file /etc/ssl/certs/ca-certificates.crt account default \\ host smtp.gmail.com \\ port 587 \\ auth on \\ user youraccount@gmail.com \\ password password \\ from youraccount@gmail.com \\ #logfile /var/log/msmtp.log \\ ​ //L'ultima riga serve a verificare eventuali errori di comunicazione, se l'invio di mail non funziona regolarmente togliete il “#” e inviate una mail sul file msmtp.log troverete i messaggi di sistema con gli eventuali errori.// Verificare e modificare i permessi e il proprietario di /etc/msmtprc devono essere esattamente settati a -rw——- 1 www-data root sudo -s cd /etc ls -l msmtprc Se serve modificarli, editarequanto segue: chmod -v 0600 msmtprc chown -v www-data:root msmtprc ls -l msmtprc verificare se ora è esattamente uguale a -rw——- 1 www-data root Modificare ora i files php.ini cd /etc/php5/apache2 ​nano php.ini Cercare la riga sendmail_path option in php.ini e modificarla come segue: sendmail_path = "/usr/bin/msmtp -C /etc/msmtprc -t" se necessario togliere il “;” davanti alla riga e salvare cd /etc/php5/cli nano php.ini Cercare la riga sendmail_path option in php.ini e modificarla come segue: sendmail_path = "/usr/bin/msmtp -C /etc/msmtprc -t" se necessario togliere il “;” davanti alla riga e salvare Attenzione si presume che il raspberry sia connesso al router via rete lan e non wi-fi Riavviare il raspberry shutdown -r now impostare 123solar admin e testare la mail **FAQ ** __//Come testare la mail da riga di comando:// __ Se volete testare la mail da riga di comando digitare quanto segue: cd /.. echo -e "Subject: Test Mail\r\n\r\nThis is a test mail" | msmtp --from=default -t username@gmail.com //(il secondo comando deve essere scritto tutto su una riga)// __//Dove verificare eventuali errori di trasmissione delle mail:// __ I file di log si trovano in “/var/log/” vedere il contenuto dei seguenti file: ''mail.err – mail.info – mail.log – mail.warn – msmtp.log'' __//La mail continua a non arrivare:// __ Gmail considera alcuni indirizzi come spam, verificate la cartella spam e se il messaggio è li apritelo e mettete l'indirizzo mail tra i vostri contatti, questo istruirà Gmail che non si tratta di spam. ==== 1.5.2. Installazione EZL70 su Raspberry ==== Procedura scritta con il supporto di “Miki8989” che ringrazio Per chi avesse la necessità di utilizzare la EZL70 o simili per leggere i dati dall'inverter al posto del convertitore RS485-USB descrivo di seguito la procedura di installazione: per prima cosa bisogna settare i parametri di configurazione della EZL, a questo scopo vi viene in aiuto la guida di **MizioB** “EZL70”. * Connettere la EZL alla rete di casa * Aprite la pagina di configurazione del router e impostate, come fisso, l'IP su cui si è aggangiata la EZL * Sempre per l'IP assegnato alla EZL aprite la porta 1470 (la procedura per questa operazione dipende dal vs. router) troverete degli esempi da pag. 9 a pag.10 della guida “EZL70” * A questo punto dovete settare i parametri comiunicazione sulla EZL70, seguite la guida “EZL70” a pag. 6 e 7 * Terminata la configurazione passiamo a settare il Raspberry. installare socat sudo -s cd /.. apt-get install socat preparare lo script di comunicazione cd /var/www mkdir MyScripts (se avete già questa directory saltate la riga) cd MyScripts nano EZL.sh si apre l'editor di testo, sul nuovo file inserire il seguente codice #!/bin/bash \\ # avvio servizio socat su convertitori EZL, CSW, ecc \\ while true; do socat pty,link=/dev/ttyEZL0,raw,echo=0,waitslave tcp:192.168.x.x:1470; done & \\ exit sotituire 192.168.x.x con l'IP della EZL70 diamo ora i permessi necessari al file EZL.sh chmod +x EZL.sh modifichiamo il file rc.local per avviare in automatico la comunicazione con la EZL70 sudo -s cd /etc nano rc.local si apre il file rc-local e deve essere modificato in modo che sia come il seguente #!/bin/sh -e \\ # \\ # rc.local \\ # \\ # This script is executed at the end of each multiuser runlevel. \\ # Make sure that the script will "exit 0" on success or any other \\ # value on error. \\ # \\ # In order to enable or disable this script just change the execution \\ # bits. \\ # \\ # By default this script does nothing. \\ # Print the IP address \\ _IP=$(hostname -I) || true \\ if [ "$_IP" ]; then \\ printf "My IP address is %s\n" "$_IP" \\ fi \\ sudo /var/www/MyScripts/EZL.sh # avvia il device EZL \\ \\ exit 0 \\ riavviare il sistema shutdown -r now al riavvio del sistema verifichiamo che il servizio funzioni sudo -s cd /dev ls se tutto funziona dovrebbe apparire un device ttyEZL0 impostare la porta di comunicazione su 123solar Aprite un browser su un pc della stessa rete e digitate http://192.168.x.xx/123solar/admin/ verrà chiesto il login a cui risponderete con admin e password (la stessa scelta in precedenza) e si aprirà il menù di configurazione di 123solar, selezionare “Configure your inverter(s)” . Sulla sezione protocol, come porta di comunicazione modificare da "/dev/ttyUSB0" a "/dev/ttyEZL0" ==== 1.5.3 Impostare un IP fisso sul raspberry ==== Per chi non avesse la possibilità di far fare al router questo servizio o per altre necessità, per impostare un IP fisso si deve modificare il file “interfaces” sudo -s cd /etc/network nano interfaces editare il file modificando e/o aggiungendo le righe nel seguente modo: iface eth0 inet static \\ address 192.168.xx.xx #(mettere i dati della propria rete) \\ netmask 255.255.255.0 #(mettere i dati della propria rete) \\ gateway 192.168.xx.xx #(mettere i dati della propria rete) ==== 1.5.4. Clonazione della SD card ==== Una cosa molto utile, una volta che il sistema è stabile, è fare una copia della SD per poi poterla ricaricare in caso di malfunzionamento o danneggiamento di quella in uso. Si utilizza sempre Win32diskimager (ver. 0.4) che si è utilizzato per caricare l'immagine iniziale procedendo come segue: - Utilizzare solamente un'altra SD "uguale" o piu' capiente di quella da clonare. - Inserire la scheda SD da clonare nel lettore di schede e avviare il programma - Nella finestra principale nella prima riga “Image File” scegliere l'icona con la cartella per selezionare il percorso dove salvare l'immagine (non la lettera sotto a “Device” ma quella subito prima) - Si apre una nuova finestra, quì si seleziona la posizione dove salvare il file e in basso sul label “Nome file” si inserisce nome file che identifichi il backup (esempio bak_RPi_15-15-12) - Cliccare su “Salva” e si ritorna sulla finestra principale - Spuntare il check box “MD5 Hash” serve per la verifica che il file sia letto e/o scritto correttamente - Premere il tasto con la scritta "Read", verrà creata l'immagine della SD da clonare con il nome .img che si e' scelto. Al termine della copia un messaggio avvertirà della avvenuta creazione. - Inserire la SD vuota nel lettore e premere solamente il tasto "Write". La barra di progressione darà la percentuale del lavoro di scrittura e al termine, un altro messaggio ci avvertirà dell'avvenuta scrittura. (NB: questo punto può essere fatto in un qualsiasi momento) Per le versioni Ver. 0.7 e Ver. 0.8 la procedura è leggermente diversa (a mio parere è un baco) - Utilizzare solamente un'altra SD "uguale" o piu' capiente di quella da clonare. - Inserire la scheda SD da clonare nel lettore di schede e avviare il programma - Nella finestra principale nella prima riga “Image File” digitare il nomefile con percorso completo ed estensione (tipo: C:\archivio\2013-07-12-wheezy-raspbian.img) Continuare dal precedente punto 6. ==== 1.5.5. Esecuzione di un backup giornaliero su uno spazio web ftp ==== Nelle guide precedenti veniva eseguito un backup giornaliero e memorizzato in sequenza sul server ftp, questo sistema spreca spazio sul server, è sufficente tenere il backup di qualche giorno. Ho pensato quindi fare un procedura che salvi x giorni e poi scarta il più vecchio con il principio “FIFO” Installate, per prima cosa, il pacchetto lftp. sudo -s cd /.. apt-get install lftp Create una directory dove posizionare gli script personali e creare uno script nome “ftpbackup” sudo -s cd /var/www mkdir MyScripts chmod -v 777 MyScripts cd MyScripts nano ftpbackup.sh editare il seguente file: ftpbackup.sh #! /bin/sh ### BEGIN INIT INFO # Short-Description: backup giornaliero # Description: Questo file è usato per eseguire una copia giornaliera # dei dati del datalogger 123solar di x giorni con metodo fifo # # posizionare il file in /var/www/MyScripts # # Author: Walter Borin # ## END INIT INFO # Do NOT "set -e" TODAY=$(date +"%d-%b-%Y") # Today's date like DD-MMM-YYYY RMDATE=$(date +"%d-%b-%Y" -d '6 days ago') # TODAY minus X days ago - too old files FTPUSER= # User (inserire il vostro UserId) FTPPW= # Password (inserire la password per l'ftp) FTPSERVER= # IP server ftp (indirizzo IP del server) LFTP=/usr/bin/lftp # Path to binary DATADIR=/var/www/123solar/data # Your data archives are here TMPDIR=/var/www/MyScripts # Your temp backup file are here FTPDIR=/ # Your backup dir in ftp dir tar -cpzf backupsolar_$TODAY.tar.gz $DATADIR $LFTP < modificare la parte , e con user, password e indirizzo IP del vostro sito ftp ATTENZIONE: sul sito ftp dovete creare la directory sulla radice principale a vostro piacimento (es. “backupsolar”) abilitare l'esecuzione dello script come programma sudo -s cd /var/www/MyScripts chmod -v 755 ftpbackup.sh a questo punto creiamo un crontab personalizzato per root e inseriamo l'esecuzione automatica all'ora desiderata sudo -s cd /.. crontab -u root -e e modificare come segue: SHELL=/bin/bash \\ PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin \\ \\ # Edit this file to introduce tasks to be run by cron. \\ # \\ # Each task to run has to be defined through a single line \\ # indicating with different fields when the task will be run \\ # and what command to run for the task \\ # \\ # To define the time you can provide concrete values for \\ # minute (m), hour (h), day of month (dom), month (mon), \\ # and day of week (dow) or use '*' in these fields (for 'any'). \\ # Notice that tasks will be started based on the cron's system \\ # daemon's notion of time and timezones. \\ # \\ # Output of the crontab jobs (including errors) is sent through \\ # email to the user the crontab file belongs to (unless redirected). \\ # \\ # For example, you can run a backup of all your user accounts \\ # at 5 a.m every week with: \\ # 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/ \\ # # For more information see the manual pages of crontab(5) and cron(8) \\ # \\ # m h dom mon dow command 15 21 * * * /var/www/MyScripts/ftpbackup.sh \\