SolarPi installieren

Veröffentlicht am: Mo., 12/03/2018 - 00:55 Von: Markus

Solar Pi ist eine Software zur Auswertung einer PV Anlage mit kostal piko Wechselrichter von Christian Stade-Schuldt.

https://github.com/Tafkas/solarpi

Demo: http://solarpi.tafkas.net/

 

Es ist aber auch möglich die Software für die Auswertung von andern Wechselrichtern zu verwenden, es muss dazu aber ein neues Script zum Erfassen der Daten und schreiben in die Datenbank geschrieben werden.

Vielleicht reicht auch schon eine Anpassung aus.

Die Software besteht aus einem Webserver und einem Script das die Daten in eine SQLite Datenbank speichert. Der Webserver greift auf die Datenbank zu und stelt die Werte grafisch dar mit Hilfe von Highcharts Animationen.

https://www.highcharts.com/

Es wird das Flask Framewok mit Bootstrap und  SB Admin 2 Theme verwendet.

https://startbootstrap.com/template-overviews/sb-admin-2/

 

Voraussetzung:

Ein lauffähiges Linux System mit Internetzugang.

Ein Raspberry Pi ist dazu ideal.

 

Sie sollten Raspian nach folgender Anleitung bereits eingerichtet haben.

https://rothlive.de/de/article/raspberry-pi-raspbian-installieren-grundkonfiguration-ultravnc

 

Ich empfehle den Zugriff per SSH über putty, so benötigen sie keinen zweiten Bildschirm.

Installation:

Bevor sie mit der Installation beginnen stellen sie sicher das ihr System auf dem Aktuellen Stand ist mit :

sudo apt-get update
sudo apt-get dist-upgrade
sudo reboot

Zur Installation werden einige Erweiterungen benötigt:

sudo apt-get install python-dev
sudo apt-get install libffi-dev
sudo apt-get install sqlite3
sudo apt-get install python-lxml
sudo apt-get install python-pip
sudo apt-get install git
sudo pip install raven

Nach dem sie diese besonders wichtigen Erweiterungen installiert haben beginnen sie mit der eigentlichen Installation.

Dazu klonen sie Solarpi auf ihren Raspberry mit:

git clone https://github.com/Tafkas/solarpi.git

Und wechseln anschließend in das Verzeichnis mit :

cd solarpi

Als nächstes muss ein Patch installiert werden.

(Bei der Aktuellen Version am 11.03.2018 nötig. git checkout 23aa8c4 damit können sie prüfen ob sie die gleiche Version verwenden).

Der Patch wurde geschrieben von saamir@infrontpower.com . Vielen Dank dafür !

Den Patch laden sie auf den Raspberry mit:

wget --output-document=../solarpi.patch http://infrontpower.com/solarpi/howto-en.txt

Leider funktioniert der Befehl so nicht mehr weil die Webseite nicht mehr online ist.

Wenn sie den Patch benötigen schreiben sie mir bitte eine Nachricht.

Die für den Patch nötigen Befehle stehen am Ende des Textes.

Entfernen sie dazu alles bis zur Zeile 91.  Also das „------------- snip -------------„ nicht mehr entfernen.

Am einfachsten einfach die Datei mit Sudo nano solarpi.patch im Editor öffnen und mit Strg + O die Änderungen speichern.

Wichtig kopieren sie den Code nicht direkt von der Webseite, sonst haben sie wieder das Problem mit fehlerhaft kopiertem Text. Möchte ich jetzt nicht genau erklären warum.

Anschließend noch die Datei verschieben:

mv solarpi.patch /home/pi/solarpi/

Wieder ins Solarpi Verzeichnis wechseln

cd solarpi

Den Patch installieren sie mit:

git apply solarpi.patch

Anschließend installieren sie noch weitere Python Erweiterungen mit:

sudo pip install -r requirements/dev.txt

Als nächstes muss noch eine Template Konfigurationsdatei kopiert werden:

cp /usr/local/lib/python2.7/dist-packages/alembic/templates/generic/env.py migrations/

Jetzt benötigen sie noch eine Datenbank für den Webserver:

SOLARPI_ENV=dev SOLARPI_SECRET="xyz" python manage.py db upgrade
sqlite3 dev.db "insert into pvdata (created_at, dc_1_u, dc_1_i, ac_1_u, ac_1_p, dc_2_u, dc_2_i, ac_2_u, ac_2_p, dc_3_u, dc_3_i, ac_3_u, ac_3_p, current_power, daily_energy, total_energy) values ('$(date -u +"%Y-%m-%dT%H:%M:%S")', 0, 0.0, 0, 0, 0, 0.0, 0, 0, 0, 0.0, 0, 0, 0, 0.0, 3);"

Zum Test können sie jetzt schon den Webserver Starten mit:

SOLARPI_ENV=dev SOLARPI_SECRET="xyz" python manage.py server

Der Webserver ist über Port 5000 erreichbar.

http://ip:5000

Damit haben sie einen Webserver er auf Daten von ihrer PV Anlage wartet.

Als Datenlogger können sie jedes beliebige Script verwenden.

Ein Script für einen Kostal Wechselrichter finden sie bei Github unter:

https://gist.github.com/Tafkas/673a56d8f836820f6138dd8d535c88c8

Download auf den Raspberry mit :

git clone https://gist.github.com/Tafkas/673a56d8f836820f6138dd8d535c88c8

Je nach Typ muss die Datei entsprechend angepasst werden.

Der von mir verwendete Wechselrichter hatte nur zwei Strings.

 

 

Fehler deshalb :

pi@raspberrypi:~/673a56d8f836820f6138dd8d535c88c8 $ python collect_kostal.py
Traceback (most recent call last):
  File "collect_kostal.py", line 93, in <module>
    main()
  File "collect_kostal.py", line 87, in main
    data = get_data()
  File "collect_kostal.py", line 54, in get_data
    dc_i_3 = data[13]
IndexError: list index out of range

Also musste die Datei angepasst werden:   

current_power = data[0]
    total_energy = data[1]
    daily_energy = data[2]
    dc_u_1 = data[3]
    ac_u_1 = data[4]
    dc_i_1 = data[5]
    ac_p_1 = data[6]
    dc_u_2 = data[7]
    ac_u_2 = data[8]
    dc_i_2 = data[9]
    ac_p_2 = data[10]
    dc_u_3 = 0
    ac_u_3 = data[11]
    dc_i_3 = 0
    ac_p_3 = data[12]

Dazu dc_u_3 und dc_i_3 auf null setzen. Mehr ist nicht nötig.

Passt das Script müssen nur noch die Zugangsdaten eingetragen werden unter:

URL = 'http://192.168.2.4' # use your address
USERNAME = 'pvserver'
PASSWORD = 'pvwr'

Die Zugangsdaten sind die Standard Daten für einen Kostal Wechselrichter.

Und die Ip Adresse des Wechselrichters. Außerdem muss der Speicher fad für die sqlite Datei festgelegt  werden.

con = sqlite3.connect("/home/pi/solarpi/dev.db")

Wo man das Script auf dem Raspberry speichert ist unwichtig. Speichern auf einem USB Stick oder über ein Netzlaufwerk ist auch möglich.

Anschließend können sie das Script testen in dem sie es mit dem Befehl

python collect_kostal.py

starten.

Kommt es zu keiner Fehlermeldung war alles korrekt.

Achtung wenn der Wechselrichter aus ist, das heißt es dunkel ist wird keine Datei erstellt.

Also die Funktion nur am Tage testen wenn Strom erzeugt wird.

Es wird eine dev.db Datei erstellt in der die Werte von der PV Anlage gespeichert werden.

Jetzt kann man festlegen wie oft man die Werte aufnehmen möchte (hier jede Minute durch */1) in dem man durch einen Cronjob eine Zeit festlegt:

crontab -e
*/1 * * * * bash /home/pi/673a56d8f836820f6138dd8d535c88c8/collect_kostal.sh

Oder mit Ausgabe eines Fehlerlogs :

*/1 * * * * bash /home/pi/673a56d8f836820f6138dd8d535c88c8/collect_kostal.sh> /home/pi/cron.log 2>&1

Mit sudo nano collect_kostal.sh habe  ich noch ein bash script geschrieben:

#!/bin/bash

cd /home/pi/673a56d8f836820f6138dd8d535c88c8/

python collect_kostal.py

Jetzt sollte beim Start des Webservers durch :

SOLARPI_ENV=dev SOLARPI_SECRET="xyz" python manage.py server

Ein erster Wert angezeigt werden.

Damit der Webserver auch nach dem Schließen der Konsole aktiv bleibt und automatisch mit dem Raspberry gestartet wird ist ein Respawn-Prozess nötig.

Dazu muss ein systemd erstellt werden mit:

sudo nano /etc/systemd/system/Webserver.service
[Unit]
Description=SolarPi Webserver
After=network.target

[Service]
ExecStart=/bin/sh -c "cd /home/pi/solarpi && SOLARPI_ENV=dev SOLARPI_SECRET="xy$
User=pi
Restart=always

[Install]
WantedBy=multi-user.target

Der Service wird aktiviert mit:

sudo systemctl enable Webserver.service

Nach einem Neustart sollte der Solar Pi Webserver automatisch starten und per Browser erreichbar sein.

Außerdem zeichnet das Python Script die Aktuellen Werte auf.

Mit einem weiteren Script ist es möglich Wetterdaten von OpenWeatherMap einzubinden (Temperatur):

https://gist.github.com/Tafkas/adb83e3a62291e4df5cd89a195fcd87a

 

Wofür folgendes Script gedacht ist kann ich derzeit nicht sagen:

https://gist.github.com/Tafkas/5dfc85fcb9b23e9cf9f08e9b4c143889

Mehr zu SolarPi unter :

http://blog.tafkas.net/2014/11/19/solarpi-a-flask-powered-photovoltaic-monitor/

 

Viel Spaß mit ihrer PV Anlage und Solar Pi.

Nochmal die ganze Installation kopiert aus dem ssh Client putty:

pi@raspberrypi:~ $ sudo apt-get install python-dev
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
The following additional packages will be installed:
  libexpat1-dev libpython-dev libpython2.7 libpython2.7-dev python2.7-dev
Die folgenden NEUEN Pakete werden installiert:
  libexpat1-dev libpython-dev libpython2.7 libpython2.7-dev python-dev python2.7-dev
0 aktualisiert, 6 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 28,9 MB an Archiven heruntergeladen werden.
Nach dieser Operation werden 40,6 MB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n] J
Holen:1 http://mirrordirector.raspbian.org/raspbian stretch/main armhf libexpat1-dev armhf 2.2.0-2+deb9u1 [116 kB]
Holen:2 http://mirrordirector.raspbian.org/raspbian stretch/main armhf libpython2.7 armhf 2.7.13-2+deb9u2 [914 kB]
Holen:3 http://mirrordirector.raspbian.org/raspbian stretch/main armhf libpython2.7-dev armhf 2.7.13-2+deb9u2 [27,6 MB]
Holen:4 http://mirrordirector.raspbian.org/raspbian stretch/main armhf libpython-dev armhf 2.7.13-2 [20,0 kB]
Holen:5 http://mirrordirector.raspbian.org/raspbian stretch/main armhf python2.7-dev armhf 2.7.13-2+deb9u2 [286 kB]
Holen:6 http://mirrordirector.raspbian.org/raspbian stretch/main armhf python-dev armhf 2.7.13-2 [1.130 B]
Es wurden 28,9 MB in 5 s geholt (4.911 kB/s).
Vormals nicht ausgewähltes Paket libexpat1-dev:armhf wird gewählt.
(Lese Datenbank ... 34438 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../0-libexpat1-dev_2.2.0-2+deb9u1_armhf.deb ...
Entpacken von libexpat1-dev:armhf (2.2.0-2+deb9u1) ...
Vormals nicht ausgewähltes Paket libpython2.7:armhf wird gewählt.
Vorbereitung zum Entpacken von .../1-libpython2.7_2.7.13-2+deb9u2_armhf.deb ...
Entpacken von libpython2.7:armhf (2.7.13-2+deb9u2) ...
Vormals nicht ausgewähltes Paket libpython2.7-dev:armhf wird gewählt.
Vorbereitung zum Entpacken von .../2-libpython2.7-dev_2.7.13-2+deb9u2_armhf.deb ...
Entpacken von libpython2.7-dev:armhf (2.7.13-2+deb9u2) ...
Vormals nicht ausgewähltes Paket libpython-dev:armhf wird gewählt.
Vorbereitung zum Entpacken von .../3-libpython-dev_2.7.13-2_armhf.deb ...
Entpacken von libpython-dev:armhf (2.7.13-2) ...
Vormals nicht ausgewähltes Paket python2.7-dev wird gewählt.
Vorbereitung zum Entpacken von .../4-python2.7-dev_2.7.13-2+deb9u2_armhf.deb ...
Entpacken von python2.7-dev (2.7.13-2+deb9u2) ...
Vormals nicht ausgewähltes Paket python-dev wird gewählt.
Vorbereitung zum Entpacken von .../5-python-dev_2.7.13-2_armhf.deb ...
Entpacken von python-dev (2.7.13-2) ...
Trigger für libc-bin (2.24-11+deb9u1) werden verarbeitet ...
libpython2.7:armhf (2.7.13-2+deb9u2) wird eingerichtet ...
libexpat1-dev:armhf (2.2.0-2+deb9u1) wird eingerichtet ...
Trigger für man-db (2.7.6.1-2) werden verarbeitet ...
libpython2.7-dev:armhf (2.7.13-2+deb9u2) wird eingerichtet ...
python2.7-dev (2.7.13-2+deb9u2) wird eingerichtet ...
libpython-dev:armhf (2.7.13-2) wird eingerichtet ...
python-dev (2.7.13-2) wird eingerichtet ...
Trigger für libc-bin (2.24-11+deb9u1) werden verarbeitet ...
pi@raspberrypi:~ $ sudo apt-get install libffi-dev
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden NEUEN Pakete werden installiert:
  libffi-dev
0 aktualisiert, 1 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 159 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 332 kB Plattenplatz zusätzlich benutzt.
Holen:1 http://mirrordirector.raspbian.org/raspbian stretch/main armhf libffi-dev armhf 3.2.1-6 [159 kB]
Es wurden 159 kB in 0 s geholt (744 kB/s).
Vormals nicht ausgewähltes Paket libffi-dev:armhf wird gewählt.
(Lese Datenbank ... 34608 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../libffi-dev_3.2.1-6_armhf.deb ...
Entpacken von libffi-dev:armhf (3.2.1-6) ...
Trigger für install-info (6.3.0.dfsg.1-1+b1) werden verarbeitet ...
libffi-dev:armhf (3.2.1-6) wird eingerichtet ...
Trigger für man-db (2.7.6.1-2) werden verarbeitet ...
pi@raspberrypi:~ $ sudo apt-get install sqlite3
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Vorgeschlagene Pakete:
  sqlite3-doc
Die folgenden NEUEN Pakete werden installiert:
  sqlite3
0 aktualisiert, 1 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 709 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 1.991 kB Plattenplatz zusätzlich benutzt.
Holen:1 http://mirrordirector.raspbian.org/raspbian stretch/main armhf sqlite3 armhf 3.16.2-5+deb9u1 [709 kB]
Es wurden 709 kB in 0 s geholt (2.619 kB/s).
Vormals nicht ausgewähltes Paket sqlite3 wird gewählt.
(Lese Datenbank ... 34643 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../sqlite3_3.16.2-5+deb9u1_armhf.deb ...
Entpacken von sqlite3 (3.16.2-5+deb9u1) ...
sqlite3 (3.16.2-5+deb9u1) wird eingerichtet ...
Trigger für man-db (2.7.6.1-2) werden verarbeitet ...
pi@raspberrypi:~ $ sudo apt-get install python-lxml
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
The following additional packages will be installed:
  libxslt1.1 python-bs4 python-chardet python-html5lib python-pkg-resources python-six
  python-webencodings
Vorgeschlagene Pakete:
  python-genshi python-lxml-dbg python-lxml-doc python-setuptools
Die folgenden NEUEN Pakete werden installiert:
  libxslt1.1 python-bs4 python-chardet python-html5lib python-lxml python-pkg-resources python-six
  python-webencodings
0 aktualisiert, 8 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 1.469 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 5.679 kB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n] J
Holen:1 http://mirrordirector.raspbian.org/raspbian stretch/main armhf libxslt1.1 armhf 1.1.29-2.1 [214 kB]
Holen:2 http://mirrordirector.raspbian.org/raspbian stretch/main armhf python-bs4 all 4.5.3-1 [86,7 kB]
Holen:3 http://mirrordirector.raspbian.org/raspbian stretch/main armhf python-pkg-resources all 33.1.1-1 [166 kB]
Holen:4 http://mirrordirector.raspbian.org/raspbian stretch/main armhf python-chardet all 2.3.0-2 [96,0 kB]
Holen:5 http://mirrordirector.raspbian.org/raspbian stretch/main armhf python-six all 1.10.0-3 [14,4 kB]
Holen:6 http://mirrordirector.raspbian.org/raspbian stretch/main armhf python-webencodings all 0.5-2 [10,3 kB]
Holen:7 http://mirrordirector.raspbian.org/raspbian stretch/main armhf python-html5lib all 0.999999999-1 [88,0 kB]
Holen:8 http://mirrordirector.raspbian.org/raspbian stretch/main armhf python-lxml armhf 3.7.1-1 [793 kB]
Es wurden 1.469 kB in 1 s geholt (974 kB/s).
Vormals nicht ausgewähltes Paket libxslt1.1:armhf wird gewählt.
(Lese Datenbank ... 34651 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../0-libxslt1.1_1.1.29-2.1_armhf.deb ...
Entpacken von libxslt1.1:armhf (1.1.29-2.1) ...
Vormals nicht ausgewähltes Paket python-bs4 wird gewählt.
Vorbereitung zum Entpacken von .../1-python-bs4_4.5.3-1_all.deb ...
Entpacken von python-bs4 (4.5.3-1) ...
Vormals nicht ausgewähltes Paket python-pkg-resources wird gewählt.
Vorbereitung zum Entpacken von .../2-python-pkg-resources_33.1.1-1_all.deb ...
Entpacken von python-pkg-resources (33.1.1-1) ...
Vormals nicht ausgewähltes Paket python-chardet wird gewählt.
Vorbereitung zum Entpacken von .../3-python-chardet_2.3.0-2_all.deb ...
Entpacken von python-chardet (2.3.0-2) ...
Vormals nicht ausgewähltes Paket python-six wird gewählt.
Vorbereitung zum Entpacken von .../4-python-six_1.10.0-3_all.deb ...
Entpacken von python-six (1.10.0-3) ...
Vormals nicht ausgewähltes Paket python-webencodings wird gewählt.
Vorbereitung zum Entpacken von .../5-python-webencodings_0.5-2_all.deb ...
Entpacken von python-webencodings (0.5-2) ...
Vormals nicht ausgewähltes Paket python-html5lib wird gewählt.
Vorbereitung zum Entpacken von .../6-python-html5lib_0.999999999-1_all.deb ...
Entpacken von python-html5lib (0.999999999-1) ...
Vormals nicht ausgewähltes Paket python-lxml wird gewählt.
Vorbereitung zum Entpacken von .../7-python-lxml_3.7.1-1_armhf.deb ...
Entpacken von python-lxml (3.7.1-1) ...
python-pkg-resources (33.1.1-1) wird eingerichtet ...
libxslt1.1:armhf (1.1.29-2.1) wird eingerichtet ...
python-six (1.10.0-3) wird eingerichtet ...
Trigger für libc-bin (2.24-11+deb9u1) werden verarbeitet ...
python-bs4 (4.5.3-1) wird eingerichtet ...
python-lxml (3.7.1-1) wird eingerichtet ...
Trigger für man-db (2.7.6.1-2) werden verarbeitet ...
python-webencodings (0.5-2) wird eingerichtet ...
python-chardet (2.3.0-2) wird eingerichtet ...
python-html5lib (0.999999999-1) wird eingerichtet ...
pi@raspberrypi:~ $ sudo apt-get install python-pip
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
The following additional packages will be installed:
  gir1.2-glib-2.0 libdbus-glib-1-2 libgirepository-1.0-1 libpython-all-dev python-all
  python-all-dev python-cffi-backend python-crypto python-cryptography python-dbus python-enum34
  python-gi python-idna python-ipaddress python-keyring python-keyrings.alt python-pip-whl
  python-pyasn1 python-secretstorage python-setuptools python-wheel python-xdg
Vorgeschlagene Pakete:
  python-crypto-dbg python-crypto-doc python-cryptography-doc python-cryptography-vectors
  python-dbus-dbg python-dbus-doc python-enum34-doc python-gi-cairo gnome-keyring libkf5wallet-bin
  gir1.2-gnomekeyring-1.0 python-fs python-gdata python-kde4 python-keyczar doc-base
  python-secretstorage-doc python-setuptools-doc
Die folgenden NEUEN Pakete werden installiert:
  gir1.2-glib-2.0 libdbus-glib-1-2 libgirepository-1.0-1 libpython-all-dev python-all
  python-all-dev python-cffi-backend python-crypto python-cryptography python-dbus python-enum34
  python-gi python-idna python-ipaddress python-keyring python-keyrings.alt python-pip
  python-pip-whl python-pyasn1 python-secretstorage python-setuptools python-wheel python-xdg
0 aktualisiert, 23 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 3.750 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 10,4 MB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n] J
Holen:1 http://mirrordirector.raspbian.org/raspbian stretch/main armhf libgirepository-1.0-1 armhf 1.50.0-1 [76,4 kB]
Holen:2 http://archive.raspberrypi.org/debian stretch/main armhf python-pip-whl all 9.0.1-2+rpt2 [1.399 kB]
Holen:3 http://mirrordirector.raspbian.org/raspbian stretch/main armhf gir1.2-glib-2.0 armhf 1.50.0-1 [139 kB]
Holen:4 http://mirrordirector.raspbian.org/raspbian stretch/main armhf libdbus-glib-1-2 armhf 0.108-2 [196 kB]
Holen:5 http://mirrordirector.raspbian.org/raspbian stretch/main armhf libpython-all-dev armhf 2.7.13-2 [958 B]
Holen:6 http://mirrordirector.raspbian.org/raspbian stretch/main armhf python-all armhf 2.7.13-2 [940 B]
Holen:7 http://archive.raspberrypi.org/debian stretch/main armhf python-pip all 9.0.1-2+rpt2 [179 kB]
Holen:8 http://mirrordirector.raspbian.org/raspbian stretch/main armhf python-all-dev armhf 2.7.13-2 [962 B]
Holen:9 http://mirrordirector.raspbian.org/raspbian stretch/main armhf python-cffi-backend armhf 1.9.1-2 [60,7 kB]
Holen:10 http://mirrordirector.raspbian.org/raspbian stretch/main armhf python-crypto armhf 2.6.1-7 [253 kB]
Holen:11 http://mirrordirector.raspbian.org/raspbian stretch/main armhf python-enum34 all 1.1.6-1 [35,0 kB]
Holen:12 http://mirrordirector.raspbian.org/raspbian stretch/main armhf python-idna all 2.2-1 [32,6 kB]
Holen:13 http://mirrordirector.raspbian.org/raspbian stretch/main armhf python-ipaddress all 1.0.17-1 [18,1 kB]
Holen:14 http://mirrordirector.raspbian.org/raspbian stretch/main armhf python-pyasn1 all 0.1.9-2 [51,8 kB]
Holen:15 http://mirrordirector.raspbian.org/raspbian stretch/main armhf python-setuptools all 33.1.1-1 [297 kB]
Holen:16 http://mirrordirector.raspbian.org/raspbian stretch/main armhf python-cryptography armhf 1.7.1-3+b2 [174 kB]
Holen:17 http://mirrordirector.raspbian.org/raspbian stretch/main armhf python-dbus armhf 1.2.4-1 [178 kB]
Holen:18 http://mirrordirector.raspbian.org/raspbian stretch/main armhf python-gi armhf 3.22.0-2 [499 kB]
Holen:19 http://mirrordirector.raspbian.org/raspbian stretch/main armhf python-secretstorage all 2.3.1-2 [13,8 kB]
Holen:20 http://mirrordirector.raspbian.org/raspbian stretch/main armhf python-keyring all 10.1-1 [40,7 kB]
Holen:21 http://mirrordirector.raspbian.org/raspbian stretch/main armhf python-keyrings.alt all 1.3-1 [16,4 kB]
Holen:22 http://mirrordirector.raspbian.org/raspbian stretch/main armhf python-wheel all 0.29.0-2 [51,7 kB]
Holen:23 http://mirrordirector.raspbian.org/raspbian stretch/main armhf python-xdg all 0.25-4 [35,8 kB]
Es wurden 3.750 kB in 3 s geholt (1.042 kB/s).
Vormals nicht ausgewähltes Paket libgirepository-1.0-1:armhf wird gewählt.
(Lese Datenbank ... 34924 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../00-libgirepository-1.0-1_1.50.0-1_armhf.deb ...
Entpacken von libgirepository-1.0-1:armhf (1.50.0-1) ...
Vormals nicht ausgewähltes Paket gir1.2-glib-2.0:armhf wird gewählt.
Vorbereitung zum Entpacken von .../01-gir1.2-glib-2.0_1.50.0-1_armhf.deb ...
Entpacken von gir1.2-glib-2.0:armhf (1.50.0-1) ...
Vormals nicht ausgewähltes Paket libdbus-glib-1-2:armhf wird gewählt.
Vorbereitung zum Entpacken von .../02-libdbus-glib-1-2_0.108-2_armhf.deb ...
Entpacken von libdbus-glib-1-2:armhf (0.108-2) ...
Vormals nicht ausgewähltes Paket libpython-all-dev:armhf wird gewählt.
Vorbereitung zum Entpacken von .../03-libpython-all-dev_2.7.13-2_armhf.deb ...
Entpacken von libpython-all-dev:armhf (2.7.13-2) ...
Vormals nicht ausgewähltes Paket python-all wird gewählt.
Vorbereitung zum Entpacken von .../04-python-all_2.7.13-2_armhf.deb ...
Entpacken von python-all (2.7.13-2) ...
Vormals nicht ausgewähltes Paket python-all-dev wird gewählt.
Vorbereitung zum Entpacken von .../05-python-all-dev_2.7.13-2_armhf.deb ...
Entpacken von python-all-dev (2.7.13-2) ...
Vormals nicht ausgewähltes Paket python-cffi-backend wird gewählt.
Vorbereitung zum Entpacken von .../06-python-cffi-backend_1.9.1-2_armhf.deb ...
Entpacken von python-cffi-backend (1.9.1-2) ...
Vormals nicht ausgewähltes Paket python-crypto wird gewählt.
Vorbereitung zum Entpacken von .../07-python-crypto_2.6.1-7_armhf.deb ...
Entpacken von python-crypto (2.6.1-7) ...
Vormals nicht ausgewähltes Paket python-enum34 wird gewählt.
Vorbereitung zum Entpacken von .../08-python-enum34_1.1.6-1_all.deb ...
Entpacken von python-enum34 (1.1.6-1) ...
Vormals nicht ausgewähltes Paket python-idna wird gewählt.
Vorbereitung zum Entpacken von .../09-python-idna_2.2-1_all.deb ...
Entpacken von python-idna (2.2-1) ...
Vormals nicht ausgewähltes Paket python-ipaddress wird gewählt.
Vorbereitung zum Entpacken von .../10-python-ipaddress_1.0.17-1_all.deb ...
Entpacken von python-ipaddress (1.0.17-1) ...
Vormals nicht ausgewähltes Paket python-pyasn1 wird gewählt.
Vorbereitung zum Entpacken von .../11-python-pyasn1_0.1.9-2_all.deb ...
Entpacken von python-pyasn1 (0.1.9-2) ...
Vormals nicht ausgewähltes Paket python-setuptools wird gewählt.
Vorbereitung zum Entpacken von .../12-python-setuptools_33.1.1-1_all.deb ...
Entpacken von python-setuptools (33.1.1-1) ...
Vormals nicht ausgewähltes Paket python-cryptography wird gewählt.
Vorbereitung zum Entpacken von .../13-python-cryptography_1.7.1-3+b2_armhf.deb ...
Entpacken von python-cryptography (1.7.1-3+b2) ...
Vormals nicht ausgewähltes Paket python-dbus wird gewählt.
Vorbereitung zum Entpacken von .../14-python-dbus_1.2.4-1_armhf.deb ...
Entpacken von python-dbus (1.2.4-1) ...
Vormals nicht ausgewähltes Paket python-gi wird gewählt.
Vorbereitung zum Entpacken von .../15-python-gi_3.22.0-2_armhf.deb ...
Entpacken von python-gi (3.22.0-2) ...
Vormals nicht ausgewähltes Paket python-secretstorage wird gewählt.
Vorbereitung zum Entpacken von .../16-python-secretstorage_2.3.1-2_all.deb ...
Entpacken von python-secretstorage (2.3.1-2) ...
Vormals nicht ausgewähltes Paket python-keyring wird gewählt.
Vorbereitung zum Entpacken von .../17-python-keyring_10.1-1_all.deb ...
Entpacken von python-keyring (10.1-1) ...
Vormals nicht ausgewähltes Paket python-keyrings.alt wird gewählt.
Vorbereitung zum Entpacken von .../18-python-keyrings.alt_1.3-1_all.deb ...
Entpacken von python-keyrings.alt (1.3-1) ...
Vormals nicht ausgewähltes Paket python-pip-whl wird gewählt.
Vorbereitung zum Entpacken von .../19-python-pip-whl_9.0.1-2+rpt2_all.deb ...
Entpacken von python-pip-whl (9.0.1-2+rpt2) ...
Vormals nicht ausgewähltes Paket python-pip wird gewählt.
Vorbereitung zum Entpacken von .../20-python-pip_9.0.1-2+rpt2_all.deb ...
Entpacken von python-pip (9.0.1-2+rpt2) ...
Vormals nicht ausgewähltes Paket python-wheel wird gewählt.
Vorbereitung zum Entpacken von .../21-python-wheel_0.29.0-2_all.deb ...
Entpacken von python-wheel (0.29.0-2) ...
Vormals nicht ausgewähltes Paket python-xdg wird gewählt.
Vorbereitung zum Entpacken von .../22-python-xdg_0.25-4_all.deb ...
Entpacken von python-xdg (0.25-4) ...
python-idna (2.2-1) wird eingerichtet ...
python-pip-whl (9.0.1-2+rpt2) wird eingerichtet ...
python-setuptools (33.1.1-1) wird eingerichtet ...
python-crypto (2.6.1-7) wird eingerichtet ...
libdbus-glib-1-2:armhf (0.108-2) wird eingerichtet ...
python-pyasn1 (0.1.9-2) wird eingerichtet ...
python-wheel (0.29.0-2) wird eingerichtet ...
libpython-all-dev:armhf (2.7.13-2) wird eingerichtet ...
libgirepository-1.0-1:armhf (1.50.0-1) wird eingerichtet ...
python-keyrings.alt (1.3-1) wird eingerichtet ...
python-cffi-backend (1.9.1-2) wird eingerichtet ...
gir1.2-glib-2.0:armhf (1.50.0-1) wird eingerichtet ...
Trigger für libc-bin (2.24-11+deb9u1) werden verarbeitet ...
python-enum34 (1.1.6-1) wird eingerichtet ...
Trigger für man-db (2.7.6.1-2) werden verarbeitet ...
python-dbus (1.2.4-1) wird eingerichtet ...
Remove stale byte-compiled files...
python-ipaddress (1.0.17-1) wird eingerichtet ...
python-pip (9.0.1-2+rpt2) wird eingerichtet ...
python-all (2.7.13-2) wird eingerichtet ...
python-xdg (0.25-4) wird eingerichtet ...
python-gi (3.22.0-2) wird eingerichtet ...
python-all-dev (2.7.13-2) wird eingerichtet ...
python-cryptography (1.7.1-3+b2) wird eingerichtet ...
python-secretstorage (2.3.1-2) wird eingerichtet ...
python-keyring (10.1-1) wird eingerichtet ...
pi@raspberrypi:~ $ sudo apt-get install git
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
The following additional packages will be installed:
  git-man liberror-perl
Vorgeschlagene Pakete:
  git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch
  git-cvs git-mediawiki git-svn
Die folgenden NEUEN Pakete werden installiert:
  git git-man liberror-perl
0 aktualisiert, 3 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 4.839 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 26,3 MB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n] J
Holen:1 http://mirrordirector.raspbian.org/raspbian stretch/main armhf liberror-perl all 0.17024-1 [26,9 kB]
Holen:2 http://mirrordirector.raspbian.org/raspbian stretch/main armhf git-man all 1:2.11.0-3+deb9u2 [1.432 kB]
Holen:3 http://mirrordirector.raspbian.org/raspbian stretch/main armhf git armhf 1:2.11.0-3+deb9u2 [3.380 kB]
Es wurden 4.839 kB in 1 s geholt (4.650 kB/s).
Vormals nicht ausgewähltes Paket liberror-perl wird gewählt.
(Lese Datenbank ... 35792 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../liberror-perl_0.17024-1_all.deb ...
Entpacken von liberror-perl (0.17024-1) ...
Vormals nicht ausgewähltes Paket git-man wird gewählt.
Vorbereitung zum Entpacken von .../git-man_1%3a2.11.0-3+deb9u2_all.deb ...
Entpacken von git-man (1:2.11.0-3+deb9u2) ...
Vormals nicht ausgewähltes Paket git wird gewählt.
Vorbereitung zum Entpacken von .../git_1%3a2.11.0-3+deb9u2_armhf.deb ...
Entpacken von git (1:2.11.0-3+deb9u2) ...
git-man (1:2.11.0-3+deb9u2) wird eingerichtet ...
liberror-perl (0.17024-1) wird eingerichtet ...
Trigger für man-db (2.7.6.1-2) werden verarbeitet ...
git (1:2.11.0-3+deb9u2) wird eingerichtet ...
pi@raspberrypi:~ $ sudo pip install raven
Collecting raven
  Downloading raven-6.6.0-py2.py3-none-any.whl (282kB)
    100% |████████████████████████████████| 286kB 835kB/s
Collecting contextlib2; python_version < "3.2" (from raven)
  Downloading contextlib2-0.5.5-py2.py3-none-any.whl
Installing collected packages: contextlib2, raven
Successfully installed contextlib2-0.5.5 raven-6.6.0
pi@raspberrypi:~ $



pi@raspberrypi:~ $ git clone https://github.com/Tafkas/solarpi.git
Klone nach 'solarpi' ...
remote: Counting objects: 2013, done.
remote: Total 2013 (delta 0), reused 0 (delta 0), pack-reused 2013
Empfange Objekte: 100% (2013/2013), 1.35 MiB | 1.94 MiB/s, Fertig.
Löse Unterschiede auf: 100% (1228/1228), Fertig.
pi@raspberrypi:~ $ cd solarpi
pi@raspberrypi:~/solarpi $ git checkout 23aa8c4
Hinweis: Checke '23aa8c4' aus.

Sie befinden sich im Zustand eines 'lösgelösten HEAD'. Sie können sich
umschauen, experimentelle Änderungen vornehmen und diese committen, und
Sie können alle möglichen Commits, die Sie in diesem Zustand machen,
ohne Auswirkungen auf irgendeinen Branch verwerfen, indem Sie einen
weiteren Checkout durchführen.

Wenn Sie einen neuen Branch erstellen möchten, um Ihre erstellten Commits
zu behalten, können Sie das (jetzt oder später) durch einen weiteren Checkout
mit der Option -b tun. Beispiel:

  git checkout -b <neuer-Branchname>

HEAD ist jetzt bei 23aa8c4... add .gitattributes
pi@raspberrypi:~/solarpi $ wget --output-document=../solarpi.patch http://infron                                                                                                                               tpower.com/solarpi/howto-en.txt
--2018-03-11 23:47:26--  http://infrontpower.com/solarpi/howto-en.txt
Auflösen des Hostnamens »infrontpower.com (infrontpower.com)« … 74.220.215.216
Verbindungsaufbau zu infrontpower.com (infrontpower.com)|74.220.215.216|:80 … ve                                                                                                                               rbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 10065 (9,8K) [text/plain]
Wird in »»../solarpi.patch«« gespeichert.

../solarpi.patch    100%[===================>]   9,83K  --.-KB/s    in 0,05s

2018-03-11 23:47:26 (202 KB/s) - »»../solarpi.patch«« gespeichert [10065/10065]

pi@raspberrypi:~/solarpi $

pi@raspberrypi:~/solarpi $ cd ..
pi@raspberrypi:~ $ dir
solarpi  solarpi.patch
pi@raspberrypi:~ $ sudo nano solarpi.patch

pi@raspberrypi:~ $ mv solarpi.patch /home/pi/solarpi/
pi@raspberrypi:~ $ cd solarpi
pi@raspberrypi:~/solarpi $ git apply solarpi.patch
solarpi.patch:149: trailing whitespace.

solarpi.patch:149: new blank line at EOF.
+
warning: 2 Zeilen fügen Whitespace-Fehler hinzu.
pi@raspberrypi:~/solarpi $

pi@raspberrypi:~/solarpi $ sudo pip install -r requirements/dev.txt
Collecting Flask==0.10.1 (from -r requirements/prod.txt (line 4))
  Downloading Flask-0.10.1.tar.gz (544kB)
    100% |████████████████████████████████| 552kB 449kB/s
Collecting MarkupSafe==0.23 (from -r requirements/prod.txt (line 5))
  Downloading MarkupSafe-0.23.tar.gz
Collecting Werkzeug==0.11.9 (from -r requirements/prod.txt (line 6))
  Downloading Werkzeug-0.11.9-py2.py3-none-any.whl (306kB)
    100% |████████████████████████████████| 307kB 771kB/s
Collecting Jinja2==2.8 (from -r requirements/prod.txt (line 7))
  Downloading Jinja2-2.8-py2.py3-none-any.whl (263kB)
    100% |████████████████████████████████| 266kB 1.2MB/s
Collecting itsdangerous==0.24 (from -r requirements/prod.txt (line 8))
  Downloading itsdangerous-0.24.tar.gz (46kB)
    100% |████████████████████████████████| 51kB 1.9MB/s
Collecting Flask-SQLAlchemy==2.1 (from -r requirements/prod.txt (line 11))
  Downloading Flask-SQLAlchemy-2.1.tar.gz (95kB)
    100% |████████████████████████████████| 102kB 1.9MB/s
Collecting SQLAlchemy==1.0.13 (from -r requirements/prod.txt (line 12))
  Downloading SQLAlchemy-1.0.13.tar.gz (4.8MB)
    100% |████████████████████████████████| 4.8MB 31kB/s
Collecting Flask-Migrate==1.8.0 (from -r requirements/prod.txt (line 15))
  Downloading Flask-Migrate-1.8.0.tar.gz
Collecting Flask-WTF==0.12 (from -r requirements/prod.txt (line 18))
  Downloading Flask_WTF-0.12-py2-none-any.whl
Collecting WTForms==2.1 (from -r requirements/prod.txt (line 19))
  Downloading https://www.piwheels.org/simple/wtforms/WTForms-2.1-py2.py3-none-any.whl (140kB)
    100% |████████████████████████████████| 143kB 1.2MB/s
Collecting gunicorn>=19.5 (from -r requirements/prod.txt (line 22))
  Downloading gunicorn-19.7.1-py2.py3-none-any.whl (111kB)
    100% |████████████████████████████████| 112kB 1.7MB/s
Requirement already satisfied: wsgiref>=0.1.2 in /usr/lib/python2.7 (from -r requirements/prod.txt (line 23))
Collecting Flask-Assets==0.11 (from -r requirements/prod.txt (line 26))
  Downloading Flask-Assets-0.11.tar.gz
Collecting cssmin>=0.2.0 (from -r requirements/prod.txt (line 27))
  Downloading cssmin-0.2.0.tar.gz
Collecting jsmin>=2.2.1 (from -r requirements/prod.txt (line 28))
  Downloading jsmin-2.2.2.tar.gz
Collecting Flask-Login==0.2.11 (from -r requirements/prod.txt (line 31))
  Downloading Flask-Login-0.2.11.tar.gz
Collecting Flask-Bcrypt==0.7.1 (from -r requirements/prod.txt (line 32))
  Downloading Flask-Bcrypt-0.7.1.tar.gz
Collecting Flask-Cache>=0.13.1 (from -r requirements/prod.txt (line 35))
  Downloading Flask-Cache-0.13.1.tar.gz (45kB)
    100% |████████████████████████████████| 51kB 1.9MB/s
Collecting Pysolar>=0.7 (from -r requirements/prod.txt (line 38))
  Downloading pysolar-0.7.tar.gz
Collecting pytz>=2016.4 (from -r requirements/prod.txt (line 41))
  Downloading pytz-2018.3-py2.py3-none-any.whl (509kB)
    100% |████████████████████████████████| 512kB 523kB/s
Collecting python-dateutil>=2.5.3 (from -r requirements/prod.txt (line 43))
  Downloading python_dateutil-2.7.0-py2.py3-none-any.whl (207kB)
    100% |████████████████████████████████| 215kB 1.1MB/s
Collecting pytest (from -r requirements/dev.txt (line 5))
  Downloading pytest-3.4.2-py2.py3-none-any.whl (189kB)
    100% |████████████████████████████████| 194kB 1.2MB/s
Collecting webtest (from -r requirements/dev.txt (line 6))
  Downloading WebTest-2.0.29-py2.py3-none-any.whl
Collecting factory-boy>=2.2.1 (from -r requirements/dev.txt (line 7))
  Downloading factory_boy-2.10.0-py2.py3-none-any.whl (41kB)
    100% |████████████████████████████████| 51kB 2.0MB/s
Collecting Flask-Script (from -r requirements/dev.txt (line 10))
  Downloading Flask-Script-2.0.6.tar.gz (43kB)
    100% |████████████████████████████████| 51kB 1.9MB/s
Collecting Flask-DebugToolbar==0.10.0 (from -r requirements/dev.txt (line 13))
  Downloading Flask-DebugToolbar-0.10.0.tar.gz (253kB)
    100% |████████████████████████████████| 256kB 907kB/s
Collecting alembic>=0.6 (from Flask-Migrate==1.8.0->-r requirements/prod.txt (line 15))
  Downloading https://www.piwheels.org/simple/alembic/alembic-0.9.8-py2.py3-none-any.whl (158kB)
    100% |████████████████████████████████| 163kB 1.0MB/s
Collecting webassets>=0.11 (from Flask-Assets==0.11->-r requirements/prod.txt (line 26))
  Downloading webassets-0.12.1.tar.gz (179kB)
    100% |████████████████████████████████| 184kB 1.2MB/s
Collecting bcrypt (from Flask-Bcrypt==0.7.1->-r requirements/prod.txt (line 32))
  Downloading bcrypt-3.1.4.tar.gz (42kB)
    100% |████████████████████████████████| 51kB 1.9MB/s
Requirement already satisfied: six>=1.5 in /usr/lib/python2.7/dist-packages (from python-dateutil>=2.5.3->-r requirements/prod.txt (line 43))
Requirement already satisfied: setuptools in /usr/lib/python2.7/dist-packages (from pytest->-r requirements/dev.txt (line 5))
Collecting py>=1.5.0 (from pytest->-r requirements/dev.txt (line 5))
  Downloading py-1.5.2-py2.py3-none-any.whl (88kB)
    100% |████████████████████████████████| 92kB 1.9MB/s
Collecting funcsigs; python_version < "3.0" (from pytest->-r requirements/dev.txt (line 5))
  Downloading funcsigs-1.0.2-py2.py3-none-any.whl
Collecting attrs>=17.2.0 (from pytest->-r requirements/dev.txt (line 5))
  Downloading attrs-17.4.0-py2.py3-none-any.whl
Collecting pluggy<0.7,>=0.5 (from pytest->-r requirements/dev.txt (line 5))
  Downloading https://www.piwheels.org/simple/pluggy/pluggy-0.6.0-py2.py3-none-any.whl
Collecting WebOb>=1.2 (from webtest->-r requirements/dev.txt (line 6))
  Downloading WebOb-1.7.4-py2.py3-none-any.whl (84kB)
    100% |████████████████████████████████| 92kB 1.9MB/s
Requirement already satisfied: beautifulsoup4 in /usr/lib/python2.7/dist-packages (from webtest->-r requirements/dev.txt (line 6))
Collecting waitress>=0.8.5 (from webtest->-r requirements/dev.txt (line 6))
  Downloading waitress-1.1.0-py2.py3-none-any.whl (114kB)
    100% |████████████████████████████████| 122kB 1.7MB/s
Collecting Faker>=0.7.0 (from factory-boy>=2.2.1->-r requirements/dev.txt (line 7))
  Downloading Faker-0.8.11-py2.py3-none-any.whl (722kB)
    100% |████████████████████████████████| 727kB 359kB/s
Collecting Blinker (from Flask-DebugToolbar==0.10.0->-r requirements/dev.txt (line 13))
  Downloading blinker-1.4.tar.gz (111kB)
    100% |████████████████████████████████| 112kB 1.7MB/s
Collecting python-editor>=0.3 (from alembic>=0.6->Flask-Migrate==1.8.0->-r requirements/prod.txt (line 15))
  Downloading python-editor-1.0.3.tar.gz
Collecting Mako (from alembic>=0.6->Flask-Migrate==1.8.0->-r requirements/prod.txt (line 15))
  Downloading Mako-1.0.7.tar.gz (564kB)
    100% |████████████████████████████████| 573kB 436kB/s
Collecting cffi>=1.1 (from bcrypt->Flask-Bcrypt==0.7.1->-r requirements/prod.txt (line 32))
  Downloading cffi-1.11.5.tar.gz (438kB)
    100% |████████████████████████████████| 440kB 546kB/s
Collecting text-unidecode (from Faker>=0.7.0->factory-boy>=2.2.1->-r requirements/dev.txt (line 7))
  Downloading text_unidecode-1.2-py2.py3-none-any.whl (77kB)
    100% |████████████████████████████████| 81kB 1.9MB/s
Requirement already satisfied: ipaddress; python_version == "2.7" in /usr/lib/python2.7/dist-packages (from Faker>=0.7.0->factory-boy>=2.2.1->-r requirements/dev.txt (line 7))
Collecting pycparser (from cffi>=1.1->bcrypt->Flask-Bcrypt==0.7.1->-r requirements/prod.txt (line 32))
  Downloading https://www.piwheels.org/simple/pycparser/pycparser-2.18-py2.py3-none-any.whl (209kB)
    100% |████████████████████████████████| 215kB 328kB/s
Building wheels for collected packages: Flask, MarkupSafe, itsdangerous, Flask-SQLAlchemy, SQLAlchemy, Flask-Migrate, Flask-Assets, cssmin, jsmin, Flask-Login, Flask-Bcrypt, Flask-Cache, Pysolar, Flask-Script, Flask-DebugToolbar, webassets, bcrypt, Blinker, python-editor, Mako, cffi
  Running setup.py bdist_wheel for Flask ... done
  Stored in directory: /root/.cache/pip/wheels/b6/09/65/5fcf16f74f334a215447c26769e291c41883862fe0dc7c1430
  Running setup.py bdist_wheel for MarkupSafe ... done
  Stored in directory: /root/.cache/pip/wheels/a3/fa/dc/0198eed9ad95489b8a4f45d14dd5d2aee3f8984e46862c5748
  Running setup.py bdist_wheel for itsdangerous ... done
  Stored in directory: /root/.cache/pip/wheels/fc/a8/66/24d655233c757e178d45dea2de22a04c6d92766abfb741129a
  Running setup.py bdist_wheel for Flask-SQLAlchemy ... done
  Stored in directory: /root/.cache/pip/wheels/cf/9f/1b/390c152e645c6e300fda9ed9c678c6e22717a3020fd02acb4d
  Running setup.py bdist_wheel for SQLAlchemy ... done
  Stored in directory: /root/.cache/pip/wheels/2c/f6/27/f2a961a1c2f8e148a566c23a3bf795f81c407309da3c691fb0
  Running setup.py bdist_wheel for Flask-Migrate ... done
  Stored in directory: /root/.cache/pip/wheels/8d/8a/fe/7095af905ec6c4185e08b70064566231766c9e58627f9685e3
  Running setup.py bdist_wheel for Flask-Assets ... done
  Stored in directory: /root/.cache/pip/wheels/50/0a/f8/e12e4a824cef1a693df6eb38fc06e82defbe505900e4ea30b6
  Running setup.py bdist_wheel for cssmin ... done
  Stored in directory: /root/.cache/pip/wheels/c3/79/88/647f59be446af4e9867362ca6e961cc7f218bd793fbdc351a6
  Running setup.py bdist_wheel for jsmin ... done
  Stored in directory: /root/.cache/pip/wheels/fb/5f/9f/8c4a6aaa73d81713a9080d0a7a541da3dc613934eb66ccebcf
  Running setup.py bdist_wheel for Flask-Login ... done
  Stored in directory: /root/.cache/pip/wheels/4b/58/2e/fbba562e845fb419f6157a504055275a4d1783a22ebe3124e8
  Running setup.py bdist_wheel for Flask-Bcrypt ... done
  Stored in directory: /root/.cache/pip/wheels/d5/e7/b5/396663b38fada7b0b7d9698cbdfb356ed7d4718c59855b1a52
  Running setup.py bdist_wheel for Flask-Cache ... done
  Stored in directory: /root/.cache/pip/wheels/d3/ea/07/db4bcd93163f4ac63974a7ce7aa15df9d45cdc9864c8232f9c
  Running setup.py bdist_wheel for Pysolar ... done
  Stored in directory: /root/.cache/pip/wheels/c3/d7/df/bbf3a1022c710ccebc3925ef77536d8b88f6640d7891117338
  Running setup.py bdist_wheel for Flask-Script ... done
  Stored in directory: /root/.cache/pip/wheels/35/38/2a/5a4aef4aa51913c135f5d2ff6f8552ad0db06667cd3e48ef2d
  Running setup.py bdist_wheel for Flask-DebugToolbar ... done
  Stored in directory: /root/.cache/pip/wheels/d2/71/62/43b0162aeccbf9bcbc00578b04d5bee698df9ec65749e6966e
  Running setup.py bdist_wheel for webassets ... done
  Stored in directory: /root/.cache/pip/wheels/9d/cb/c2/340b9b695822b6954840bcb6cd147b3a7cfc2bcd922296e63e
  Running setup.py bdist_wheel for bcrypt ... done
  Stored in directory: /root/.cache/pip/wheels/3c/3a/46/aebf133d0746d742726bcc9b31c4f7c5827f51a12c1f1c5b4b
  Running setup.py bdist_wheel for Blinker ... done
  Stored in directory: /root/.cache/pip/wheels/7b/8a/eb/5a4f4444f366c515073db8a129c92d4727ad945e5e64b9e8bd
  Running setup.py bdist_wheel for python-editor ... done
  Stored in directory: /root/.cache/pip/wheels/84/d6/b8/082dc3b5cd7763f17f5500a193b6b248102217cbaa3f0a24ca
  Running setup.py bdist_wheel for Mako ... done
  Stored in directory: /root/.cache/pip/wheels/33/bf/8f/036f36c35e0e3c63a4685e306bce6b00b6349fec5b0947586e
  Running setup.py bdist_wheel for cffi ... done
  Stored in directory: /root/.cache/pip/wheels/6e/3e/ea/7c7a81e010f9ca4f1ee3ebf1005f316612274e3e44f90a5ada
Successfully built Flask MarkupSafe itsdangerous Flask-SQLAlchemy SQLAlchemy Flask-Migrate Flask-Assets cssmin jsmin Flask-Login Flask-Bcrypt Flask-Cache Pysolar Flask-Script Flask-DebugToolbar webassets bcrypt Blinker python-editor Mako cffi
Installing collected packages: MarkupSafe, Jinja2, Werkzeug, itsdangerous, Flask, SQLAlchemy, Flask-SQLAlchemy, Flask-Script, python-editor, python-dateutil, Mako, alembic, Flask-Migrate, WTForms, Flask-WTF, gunicorn, webassets, Flask-Assets, cssmin, jsmin, Flask-Login, pycparser, cffi, bcrypt, Flask-Bcrypt, Flask-Cache, Pysolar, pytz, py, funcsigs, attrs, pluggy, pytest, WebOb, waitress, webtest, text-unidecode, Faker, factory-boy, Blinker, Flask-DebugToolbar
Successfully installed Blinker-1.4 Faker-0.8.11 Flask-0.10.1 Flask-Assets-0.11 Flask-Bcrypt-0.7.1 Flask-Cache-0.13.1 Flask-DebugToolbar-0.10.0 Flask-Login-0.2.11 Flask-Migrate-1.8.0 Flask-SQLAlchemy-2.1 Flask-Script-2.0.6 Flask-WTF-0.12 Jinja2-2.8 Mako-1.0.7 MarkupSafe-0.23 Pysolar-0.7 SQLAlchemy-1.0.13 WTForms-2.1 WebOb-1.7.4 Werkzeug-0.11.9 alembic-0.9.8 attrs-17.4.0 bcrypt-3.1.4 cffi-1.11.5 cssmin-0.2.0 factory-boy-2.10.0 funcsigs-1.0.2 gunicorn-19.7.1 itsdangerous-0.24 jsmin-2.2.2 pluggy-0.6.0 py-1.5.2 pycparser-2.18 pytest-3.4.2 python-dateutil-2.7.0 python-editor-1.0.3 pytz-2018.3 text-unidecode-1.2 waitress-1.1.0 webassets-0.12.1 webtest-2.0.29
pi@raspberrypi:~/solarpi $

pi@raspberrypi:~/solarpi $ cp /usr/local/lib/python2.7/dist-packages/alembic/templates/generic/env.py migrations/
pi@raspberrypi:~/solarpi $ SOLARPI_ENV=dev SOLARPI_SECRET="xyz" python manage.py db upgrade
INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [alembic.runtime.migration] Running upgrade  -> 721be6649087, Initialize database
pi@raspberrypi:~/solarpi $ sqlite3 dev.db "insert into pvdata (created_at, dc_1_u, dc_1_i, ac_1_u, ac_1_p, dc_2_u, dc_2_i, ac_2_u, ac_2_p, dc_3_u, dc_3_i, ac_3_u, ac_3_p, current_power, daily_energy, total_energy) values ('$(date -u +"%Y-%m-%dT%H:%M:%S")', 0, 0.0, 0, 0, 0, 0.0, 0, 0, 0, 0.0, 0, 0, 0, 0.0, 3);"
pi@raspberrypi:~/solarpi $ SOLARPI_ENV=dev SOLARPI_SECRET="xyz" python manage.py server


pi@raspberrypi:~ $ sudo nano /etc/systemd/system/Webserver.service
pi@raspberrypi:~ $ sudo systemctl enable Webserver.service
Created symlink /etc/systemd/system/multi-user.target.wants/Webserver.service → /etc/systemd/system/Webserver.service.
pi@raspberrypi:~ $ git clone https://gist.github.com/Tafkas/673a56d8f836820f6138                                                                                                                               dd8d535c88c8
Klone nach '673a56d8f836820f6138dd8d535c88c8' ...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 3
Entpacke Objekte: 100% (3/3), Fertig.
pi@raspberrypi:~ $ dir
673a56d8f836820f6138dd8d535c88c8  solarpi
pi@raspberrypi:~ $ cd 673a56d8f836820f6138dd8d535c88c8
pi@raspberrypi:~/673a56d8f836820f6138dd8d535c88c8 $ dir
collect_kostal.py
pi@raspberrypi:~/673a56d8f836820f6138dd8d535c88c8 $ sudo nano collect_kostal.py
[Unit]
Description=SolarPi Webserver
After=network.target

[Service]
ExecStart=/bin/sh -c "cd /home/pi/solarpi && SOLARPI_ENV=dev SOLARPI_SECRET="xy$
User=pi
Restart=always

[Install]
WantedBy=multi-user.target

 

Kommentare

Hallo,
Sind Sie so net und senden mir den Patch?
Beste Grüße

Guten Tag.
Könnten Sie mir den Link des Patches senden?
Danke und Gruss
Lex

Antwort auf von Lex (nicht überprüft)

https://web.archive.org/web/20171118151750/http://infrontpower.com/solarpi/howto-en.txt

 

Ist der Link. Leider ist die Webseite infrontpower.com nicht mehr online deshalb mit archive.org.

Ich wüde gerne SolarPi mit meinem Kaco Wechselrichter betreiben. Ich könnte wohl ein passendes Script für mich erstellen, allerdings weichen die Ausgabewerte meines Wechselrichters etwas von diesem Schema ab.
Gibt es eine Erklärung, wie das Programm die Daten getrennt nach WR verarbeitet? Werden die Summenwerte vom WR empfangen oder berechnet das Progamm die Summen selbst?
Vielen Dank für ein kurzes Feedback

Neuen Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.

Eingeschränktes HTML

  • Erlaubte HTML-Tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Zeilenumbrüche und Absätze werden automatisch erzeugt.
  • Website- und E-Mail-Adressen werden automatisch in Links umgewandelt.
CAPTCHA
Geben Sie die Zeichen ein, die im Bild gezeigt werden.
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.