====== 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 \\