Installation WebServer, PHP und sonstiges
(siehe Einrichten RASPBIAN Einrichten PVLogger)
Installation 123solar
Download 123solarXXX.tar.gz und Rest von 123solar.org -> jetzt auf github
Lt. Jeanmarc:
Clone Github but the main branch is considered as work in progress.
Example to clone Github on Apache :git clone https://github.com/jeanmarc77/123solar.git
sudo mv 123solar /var/www/html/123solar
cd /var/www/html/
sudo chown -R www-data:www-data 123solar
sudo usermod -a -G uucp www-data
sudo nano /etc/apache2/sites-available/000-default.conf
add this to section <VirtualHost *:80><Directory /var/www/html>
# no authentificication here required
</Directory>
<Directory /var/www/html/123solar/admin/>
# authentificication here required for admin
AuthType Basic
AuthName "Secure area - Authentication required"
AuthUserFile /var/www/html/123solar/config/.htpasswd
Require valid-user
</Directory>
browse to //raspbian/123solar and set admin-Account-PW
maybe also neccessary:sudo htpasswd -c /var/www/html/123solar/config/.htpasswd admin
Selber gemacht:
123Solar im Verzeichnis /var/www/html entpacken
cd /home/pi
wget -c wget https://github.com/jeanmarc77/123solar/releases/tag/1.8.4.4/123solar1.8.4.4.tar.gz
cd /var/www/html
sudo tar -xzf /home/pi/123solar1.8.4.4.tar.gz
ganzen Verzeichnisbaum umgruppieren
sudo chown -R www-data:www-data 123solar
User www-data in die Gruppe uucp aufnehmen:
sudo usermod -a -G uucp www-data
Conf-Datei für Webserver anlegen
cd /etc/apache2/sites-available
sudo nano 123solar.conf
folgende Zeilen einfügen und speichern (Directory-Tag lässt http-Authentifikation zu)
<VirtualHost *:80>
DocumentRoot /var/www/html/123solar
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/html/123solar/admin>
AuthType Basic
AuthName "admin"
AuthUserFile /var/www/html/123solar/config/.htpasswd
Require valid-user
</Directory>
</VirtualHost>
Seite einlesen und Apache durchstarten
sudo a2ensite 123solar
sudo systemctl reload apache2
Seite //.../123solar aufrufen und admin-Account-PW eintragen
ggf. neues erzeugen:
sudo htpasswd -c /var/www/html/123solar/config/.htpasswd admin
Sollten PHP-Fehler auftreten, müssen ggf. noch die JSON, CURL und CALENDER-Module freigegeben werden:
sudo nano /etc/php/7.3/Apache2/php.ini
und dort unter "Dynamic Extensions" hinzufügen
extension=calendar
extension=json
extension=curl
Aktuell habe ich bei mir sowohl die o.a. Einträge in der 000-default.conf als auch 123solar.conf eingetragen - funzt damit !
Apache2-StatusFehler beseitigen
AH00558: Could not reliably determine the server's fully qualified domain name
-> in /etc/apache2/apache2.conf am Ende ServerName 127.0.0.1 einfügen und Apache reloaden
Konfigurationsdateien befüllen
Main (config_main.php)
Inverter (config_invt1.php)
ACHTUNG: als Port den vom Bluetooth-Adapter verwendeten USB-Port eintragen (-> lsusb!):USB1 -> /dev/ttyUSB0USB2 -> /dev/ttyUSB1
USB3 -> /dev/ttyUSB2
USB4 -> /dev/ttyUSB3 BT-Adapter in der Folge IMMER an diesem USB-Port anstecken !
Nach dem Speichern der config-Datei (UND VOR DEM TEST DER CONNECTION !) die SBFspot-Konfiguration der Inverter-Config anpassen (hier: SBFspot_0.cfg)
sudo cp /usr/local/bin/sbfspot.3/SBFspot.cfg /usr/local/bin/sbfspot.3/SBFspot_0.cfg
Kommunikation testen (-> Test Communication)
PVOutput (config_pvoutput.php)
EINSCHALTEN !
123solar automatisch starten
Start-service herunterladen und starten
cd /etc/systemd/system/
sudo wget -c https://github.com/jeanmarc77/123solar/tree/main/misc/examples/123solar.service
sudo systemctl enable 123solar
und überprüfen
systemctl status 123solar.service
Bei mir musste ich noch den Start-Aufruf in der service-Datei verzögern:
sudo nano /etc/systemd/system/123solar.service
[Service]
Type=oneshot
-> ExecStart=sleep 10
ExecStart=/usr/bin/curl http://localhost/123solar/scripts/boot123s.php
(THX TO ELETTRON!!! - Hey Marc - couldn't you implement this in your service-file or Help-Section ?)
etza funktionierts !!!
OLD STUFF:
wenn keine Anmeldung möglich, muss ggf. noch folgendes in die /etc/apache2/sites-enabled/000-default eingetragen werden:
<Directory /var/www/123solar/admin/>
AuthType Basic
AuthName 'Restricted'
AuthUserFile '/var/www/123solar/config/.htpasswd'
Require valid-user
</Directory>
Nach einem Restart des Apache-Servers sollte dann eine Anmeldung möglich sein.
Grundkonfigurationen (Main und Inverter) vorgenommen
hier unbeding die CommunicationOption -nosql eingefügen !
Pfad für SBFspot hinzufügen:
vi /etc/profile
-> dort /usr/local/bin/sbfspot.3/ in die PATH="..."-Variablen einfügen
Einarbeiten der korrekten Pfade in die drei SBFspot-Dateien in /var/www/123solar/scripts/protocols:
Ersetze darin jeweils /usr/bin/ durch /usr/local/bin/sbfspot.3/.
Ersetzen der SMAspot-Aufrufe durch SBFspot-Aufrufe in den SMAspot-Scripten
(vorheriges Anlegen von Sicherungsdateien der Scripte schadet nie ;-) )
cd /var/www/123solar/scripts/protocols
sed s/SMAspot/SBFspot/g SMAspot_startup.php > SMAspot_startup.php.neu
sed s/SMAspot/SBFspot/g SMAspot_checks.php > SMAspot_checks.php.neu
sed s/SMAspot/SBFspot/g SMAspot.php > SMAspot.php.neu
mv SMAspot_startup.php.neu SMAspot_startup.php
mv SMAspot_checks.php.neu SMAspot_checks.php
mv SMAspot.php.neu SMAspot.php
(ggf vorher chmod 666 * ; ich musste allerdings die Änderung erst in eine andere Datei umleiten und diese dann wieder umbenennen ?!?)
Problem: SBFspot_0.cfg konnte nicht geöffnet werden
Ursache: in den SMAspot-Aufruden ist eine Variable $CFGDIR hinterlegt, die aus $SCRDIR."/config" gebildet wird; $SCRDIR wurde aber nicht übergeben.
alte Lösung: in den o.a. SMAspot-php-Dateien als Variable $CFGDIR den absoluten Pfad eingegeben:
$cfgdir = "/var/www/123solar/config";
aktuelle Lösung:
$SCRDIR = dirname(__FILE__);
$cfgdir = dirname($SCRDIR) . "/../config";
SBFspot.cfg aus /usr/local/bin/sbfspot.3 in /var/www/123solar/config/SBFspot_0.cfg umkopiert und Besitzer geändert
chown www-data:www-data /var/www/123solar/config/SBFspot_0.cfg
Ebenso die Dateien date_time_zonespec.csv und TagListDE-DE.txt umkopiert und Besitzer geändert
chown www-data:www-data date_time_zonespec.csv
root@raspbian:/var/www/123solar/config# chown www-data:www-data TagListDE-DE.txt
Danach funktionierte es (zumindest in der Konsole ;-)
Ums im "Browser" auch noch zum funktionieren zu bringen:
den absoluten Pfad /usr/local/bin/sbfspot.3 in den SMA-Dateien vor vor den SBFspot-Aufruf einfügen
(sicherheitshalber gleich auch noch die Timekill-Zeiten in den drei SMA-Dateien auf 30s 10s heraufsetzen)
Damit im Armaturenbrett ganz unten die Infos angezeigt werden und nicht der aufrufende Befehlt, musste in der Datei SBFspot_checks.php der $STATE-Aufruf wiefolgt angepasst werden:
// State
// Original-Aufruf auskommentiert
// $STATE = $timeout_setup." /usr/local/bin/sbfspot.3/SBFspot -finq -q -123s=STATE -cfg".$cfgdir."/SBFspot_${'ADR'.$invt_num}.cfg ${'COMOPTIO$
// dafür jetz so:
exec("timeout --kill-after=10s 5s /usr/local/bin/sbfspot.3/SBFspot -finq -q -123s=STATE -cfg/var/www/123solar/config/SBFspot_0.cfg -nosql", $$
$STATE = implode(PHP_EOL, $STATE);
Damit beim Boot 123solar gestartet wird:
sudo nano /etc/rc.local
vor exit 0 folgende Zeile einfügen
/usr/bin/curl http://127.0.0.1/123solar/scripts/boot123s.php
Nach einem Reboot sollte dann 123solar automatisch gestartet sein.
ACHTUNG: UNBEDINGT DEN DEBUG-MODUS AUF "NO" SETZEN (MAIN-CONFIG), ERST DANN FUNKTIONIERT ALLES !!!
zwischenzeitliche Probleme:
123solar war nach der Installation nicht zum Laufen zu bringen, folgende Versuche wurden in Abstimmung mit dem Entwickler getestet:
WEITERE TESTS, UM 123solar ZUM LAUFEN ZU BRINGEN:
In der Datei /var/www/123solar/scripts/loadcfg.php die Varaiable angepasst:
// $SCRDIR = dirname(__FILE__);
$SCRDIR = "/var/www/123solar";
LEIDER NICHT ERFOLGREICH - WIEDER ZURÜCKGESETZT
nächster Versuch:
über lsusb -t herausgefunden, dass der BT-DOngle scheinbar am Bus01.Port4 (Dev5 ) hängt
-> in Converter-Config als Port /dev/ttyUSB5 eingetragen
LEIDER AUCH NICHT ERFOLGREICH...
nächster Versuch:
in den php-Dateien die SCRDIR-Variable vorgegeben
// $cfgdir = "/var/www/123solar/config";
$SCRDIR = "/var/www/123solar/config";
$cfgdir = dirname($SCRDIR) . "/config";
WIEDER NIX... und zurückgesetzt
Kurios: wenn ich PVoutput-Export ausschalte, übernimmt er meine PVO-SYSID in die Converter-Data ?!?
Am End war lediglich der Debug-Mode zu beenden , schon klappte alles - grrrrr.
123Solar installieren (alte Version)
http://www.forum-raspberrypi.de/Thread-projekt-solar%C3%BCberwachung-solar-pi
1. Download 123solarXXX.tar.gz und Rest von http://123solar.org/downloads/123solar
2. 123Solar entpacken
tar -xzf 123solarXXX.tar.gz -C /home/anze10/123solar/
3. Link in WWW_Verzeichnis legen
sudo ln -s /home/anze10/123solar /var/www/123solar
4. ins Zielverzeichnis wechseln
cd /home/anze10/123solar/
5. 123Solar installieren
sudo ./install.sh