====== Procedura per l'installazione di 123Solar su Raspbian Stretch ====== {{ :img_123s:123s-powerone.png?direct&600 |}} **La presente guida riguarda l'installazione e la configurazione di 123Solar su sistema operativo Raspbian Stretch 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 Stretch come descritto nella [[raspberry_so_webserver_stretch|apposita guida sul wiki]]** ===== 1.5. Installare Aurora 1.9.3 ===== Nel caso vogliate utilizzare anche dei contatori Modbus, collegati sullo **stesso bus dell'inverter** ABB/Power-ONE, è necessario applicare al software Aurora una **patch** per gestire le code sul bus in modo compatibile con il software sdm120c. L'ultima versione rilasciata per tale patch è relativa alla versione 1.9.0 di Aurora. In tal caso sarà necessario installare questa precedente versione e non l'ultima release come indicato in questa [[123solar_aurora_1.9.0_patch|GUIDA]] 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.6. Installazione e configurazione di 123Solar ===== ==== 1.6.1. Installazione di 123Solar ==== Portarsi sulla directory www del web server sudo -s cd /var/www Scaricare il programma 123solar 1.7.0 e il file per avviare il servizio (per entrambi [[http://www.123solar.org/downloads/123solar|verificare]] che sia l'ultima versione e modificare se necessario) wget http://www.123solar.org/downloads/123solar/123solar1.7.0.tar.gz Scompattiamo l'archivio tar -xzvf 123solar*.tar.gz eliminiamo il file tar rm -v 123solar*.tar.gz Assegniamo il corretto gruppo e proprietario: chown -R www-data:www-data 123solar 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.6.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) Attenzione a digitare manualmente il testo da aggiungere. Per una diversa formattazione del testo con il wiki, le virgolette " non vengono copiate correttamente. \\ # 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.7. Procedure di supporto ===== Le procedure descritte nel presente paragrafo non sono strettamente necessarie al funzionamento del sistema ma risultano utili in particolari situazioni ==== 1.7.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 0644 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.7.2. 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 \\