Hier ist eine Anleitung, wie man die Solaranzeige auf einem anderen Linux (Debian) installieren kann.
Experten werden es mit dieser Anleitung auch auf anderen Linux Versionen lauffähig bekommen. In diesem Fall wird es aber mehrere Unterschiede zu dieser Installation geben.
Bitte möglichst sich genau an die Punkte halten. Manche sind entscheidend für den Erfolg. Bitte keinen Punkt überspringen, auch wenn es logischer erscheint!
Grundvoraussetzung ist ein Debian "light" Betriebssystem. Deshalb wird hier der "light Desktop" LXDE installiert. Mehr benötigt die Solaranzeige nicht. Der Desktop benötigt wenig Resourcen.
Es wird davon ausgegangen, dass man mit root eingeloggt ist.
- SSH Zugriff über das Netzwerk auf den Rechner gewähren
- User "pi" mit Password "solaranzeige" anlegen. [ useradd -m -s /bin/bash -U pi ]
Falls es ein User "pi" schon gibt kann dieser auch benutzt werden. In diesem Fall muss das vorhandene Passwort nicht geändert werden. - Falls das Paket "sudo" nicht installiert ist, dann nachinstallieren. [ apt install sudo apt-utils ]
- Den Hostnamen auf "solaranzeige" einstellen. Datei: /etc/hostname
- Die Sprache auf Deutsch einstellen de_DE.UTF-8 [ raspi-config ]
- Timezone auf EUROPE / Berlin stellen
- Keybord auf Deutsche Tastatur stellen
- user "root" das Password "solar.2016" geben [ passwd root ]
- Auf der Konsole [ apt update ] eingeben.
- mc Editor installieren [ apt install mc ]
- ssh Server für root öffnen Datei /etc/ssh/sshd_config ändern:
"PermitRootLogin yes"
"AddressFamily inet"
"UseDNS no" - Folgende Pakete installieren [ apt install sysv-rc-conf avahi-daemon autossh htop cron syslog-ng lxterminal net-tools ]
- Desktop light Installieren [ apt install lxde-core lxappearance ]
- Einrichten, dass der Desktop automatisch startet beim Hochfahren des PC's und user "pi" automatisch sich einloggt.
- Neu booten!
- Checkpoint! Keine Fehler aufgetreten? Der Desktop muss zu sehen und Benutzer "pi" muss eingeloggt sein. Dann weiter..
- Prüfen mit Eingabe "hostname" auf der Konsole ob das Gerät sich mit "solaranzeige" meldet.
- Auf der Konsole [ apt-get install firefox-esr x11-xserver-utils unclutter lighttpd nmap ] eingeben
- In der Datei /home/pi/.config/lxsession/LXDE/autostart bitte den Inhalt ändern:
-------------------
@pcmanfm --desktop --profile LXDE
@xset s off
@xset -dpms
@xset s noblank
@icewease
@firefox -kiosk http://localhost:3000
------------------- - Folgende Pakete installieren: [ apt install php php-cgi php-pear php-curl php-gd php-sqlite3 php-fpm php-ssh2 php-dev ]
- Folgende Pakete installieren: [ apt install influxdb influxdb-client screen expect sqlite3 hwinfo hfsutils sshpass wget lshw mbpoll ]
- Folgendes auf der Konsole ausführen: [ wget -q -O - https://packages.grafana.com/gpg.key | apt-key add - ]
- Folgendes auf der Konsole ausführen: [ curl https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/grafana-archive-keyrings.gpg >/dev/null ]
- Folgendes auf der Konsole ausführen: [ echo "deb [signed-by=/usr/share/keyrings/grafana-archive-keyrings.gpg] https://apt.grafana.com stable main" | tee /etc/apt/sources.list.d/grafana.list ]
- Auf der Konsole [apt update ] eingeben.
- Folgende Pakete installieren: [ apt install grafana ]
- Auf der Konsole ausführen: [ systemctl enable grafana-server]
- Auf der Konsole ausführen: [ systemctl enable influxdb]
- Neu booten!
- Checkpoint! Es muss nach dem Booten Grafana im Kioskmode zu sehen sein. Keine Fehler aufgetreten? Dann weiter..
- Auf der Konsole [ influx ] eingeben und dann
[ create database solaranzeige ]
[ create database steuerung ]
[ quit ]
------------------- - In der Datei /etc/grafana/grafana.ini folgendes ändern:
---------------------------------------------------------------------------
[panels]
# If set to true Grafana will allow script tags in text panels. Not recommended
disable_sanitize_html = true
#################################### Anonymous Auth ######################
[auth.anonymous]
enabled = true
# Organization name that should be used for unauthenticated users
org_name = Solaranzeige
# Role for unauthenticated users, other valid values are `Editor` and `Admin`
org_role = Viewer
# Hide the Grafana version text from the footer and help tooltip for unauthenticated users (default: false)
;hide_version = false
#################################### Security ####################################
[security]
# disable creation of admin user on first start of grafana
;disable_initial_admin_creation = false
# default admin user, created on startup
admin_user = admin
# default admin password, can be changed before first start of grafana, or in profile settings
admin_password = solaranzeige
------------------- - Mit "admin" und "admin" in Grafan einloggen. Dabei das Kennwort auf "solaranzeige" ändern und den Namen der Organisation auf "Solaranzeige" ( Zahnrad links -> Preferences -> Organisation )
- Folgende Folder in Grafana anlegen: => unter Dashboards -> + Neuer Ordner
Heizungen
Relais
Wechselrichter
Laderegler
Batterie-Management-Systeme
Wallboxen
Stromzähler
Sonstige
------------------- - In Grafana die beiden Datenbanken bekannt machen Configuration->Data sources -> Add data sources -> InfluxDB
influxDB: solaranzeige -> Grafana: Solaranzeige
influxDB: steuerung -> Grafana: Steuerung - Alle, oder die nötigen Standard Dashboards von hier importieren: viewtopic.php?t=188
Es gibt dazu auch eine Anleitung: [ download/Grafana_und_Datenbanken.pdf ] - Paket installieren: [ apt install mosquitto mosquitto-clients libmosquitto-dev ]
- Auf der Konsole ausführen [ pecl install mosquitto-alpha ]
- Eine Datei "mqtt-solaranzeige.conf" neu anlegen im Verzeichnis /etc/mosquitto/conf.d mit folgendem Inhalt:
--------------------------------------------
allow_anonymous true
listener 1883
------------------- - Überprüfen mit folgenden Eingaben auf der Konsole:
[ systemctl restart mosquitto.service ]
[ nmap -p 1883 localhost ] oder [ nmap -p 1883 <IP des Raspberry> ]
Der Port 1883 sollte als offen angezeigt werden. - In die /etc/php/7.4/cli/php.ini folgende Einträge machen:
"extension=mosquitto.so"
"error_log=/var/www/log/php.log" - Auf der Konsole folgendes eingeben: [ php -i ]
In der Ausgabe muss folgendes enthalten sein:
-------------------------------------------------------
mosquitto
Mosquitto support => enabled
Compiled as dynamic module
libmosquitto version => 2.0.11
Extension version => 0.4.0
pdo_sqlite
PDO Driver for SQLite 3.x => enabled
SQLite Library => 3.34.1
------------------- - In der Konsole eingeben: [ crontab -e ] und folgende Einträge machen:
----------------------------------------------------------------
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin
MAILTO=""
#@reboot sleep 20 && /usr/local/bin/support >/dev/null
@reboot /var/www/html/usb_init.php >/dev/null
* * * * * /var/www/html/regler_auslesen.php >/dev/null
* * * * * /var/www/html/checkreboot.sh >/dev/null
20,50 * * * * /var/www/html/wetterdaten.php >/dev/null
* * * * * /var/www/html/mqtt_prozess.php >/dev/null
55 23 * * * /var/www/html/wartung.php >/dev/null
#* * * * * /var/www/html/wallbox_steuerung.php >/dev/null
#01 */4 * * * /var/www/html/awattar.php >/dev/null
#* * * * * /var/www/html/automation.php >/dev/null
#* * * * * /var/www/html/strg-control.php >/dev/null
------------------- - in der Konsole eingeben: [ sudo ./verzeichnisse-anlegen.sh ] Der Script kann hier im Anhang heruntergeladen werden. Er muss mit den Rechten für "ausführbar" versehen werden. Unbedingt mit sudo ausführen, da man Root Rechte benötigt. Es ist wichtig, dass dieser Script durchläuft, da hier die Rechte von Dateien und Verzeichnissen eingestellt werden.
- Auf der Konsole [ /usr/local/bin/update ] eingeben. (Normaler Solaranzeigen update)
- Folgende 2 Dateien:
10-fastcgi.conf
15-fastcgi-php.conf
vom Verzeichnis "/etc/lighttpd/conf-available" in das Verzeichnis "/etc/lighttpd/conf-enabled" kopieren.
------------------- - Auf der Konsole [ apt upgrade ] eingeben
- Den Path erweitern:
in die Datei /home/pi/.bashrc und in die Datei /root/.bashrc am Ende einfügen:
PATH=/usr/local/bin:/solaranzeige:$PATH
export PATH
------------------- - Neu booten!
- Checkpoint! Jetzt sollte man mit der "normalen" Konfiguration der Solaranzeige beginnen können, so wie es in dem Installationsdokument beschrieben ist.
Jeder Punkt ist einzeln zu sehen und muss erst erfolgreich beendet werden, bevor man zum nächsten übergeht. Wird ein Punkt übersprungen, kann das unerwartete Folgen haben.
Wer die Anleitung nutzt und auf Probleme bei seinem Betriebssystem stößt, bitte im Betreff immer die Hardware und das Betriebssystem angeben. Im Text sich bitte auf den Listenpunkt beziehen. Probleme sind meist Versionsabhängig.
Schön wäre es, wenn jemand einmal eine Alternative wie Banana Pi ausprobieren würde.
Die Anleitung wird bei Bedarf noch verfeinert und ergänzt. Bitte den Script immer neu herunterladen, wenn man ihn benötigt! Er wird oft noch verändert.
Es wird aber schon klarer, warum es einfacher ist, ein fertiges Image auf eine SD-Karte zu übertragen. Die möglichen Fehlerquellen sind dabei etwas geringer.
Probleme, die bekannt sind:
- Bei langsamen Raspberry's oder wenn nur 1GB RAM zur Verfügung steht, wird das Dashboard nicht beim Starten geladen, da Grafana länger braucht um hochzufahren. Für dieses Timing Problem suche ich noch eine Lösung. Um die Seite "von der Ferne aus" neu zu laden bitte "systemctl restart lightdm" eingeben.