Skip to content

Commit

Permalink
Installation
Browse files Browse the repository at this point in the history
  • Loading branch information
ledermann committed Oct 6, 2024
1 parent b11a914 commit 2e88500
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 44 deletions.
44 changes: 13 additions & 31 deletions installation/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,46 +6,28 @@ nav_order: 2

# Installation von SOLECTRUS

Für die Installation von SOLECTRUS ist ein wenig Erfahrung mit **Linux** und **Docker** sehr hilfreich. Wenn du weißt, wie du dich per SSH auf einen Linux-Server einloggst, dann wirst du die Installation bestimmt hinbekommen. Andernfalls solltest du vielleicht einen IT-Freund fragen, der dir hilft.

Ausgangspunkt einer Installation ist der brandneue, interaktive Konfigurator, der den Einstieg leicht macht. Du kannst damit deine individuelle Konfiguration zusammenstellen und erhältst dann alles, was du benötigst:

- `readme.md` mit einer individuellen Schritt-für-Schritt-Anleitung für die Installation mit Docker
- `compose.yaml` mit der Definition der benötigen Docker-Services
- `.env` für die Umgebungsvariablen mit den individuellen Einstellungen

Mit der Anleitung und den beiden Konfigurationsdateien kannst du die Installation dann leicht über die Linux-Konsole durchführen.

<div class="text-center">
<a href="https://configurator.solectrus.de">Zum Konfigurator ❯</a>
</div>
Für die Installation von SOLECTRUS ist ein wenig **Erfahrung mit Linux und Docker** sehr hilfreich. Wer in der Lage ist, sich per SSH auf einen Linux-Server einzuloggen und das Konzept von _Docker-Compose_ grob verstanden hat, der wird die Installation schaffen. Andernfalls sollte vielleicht ein IT-Freund gefragt werden, der dabei hilft.

## Überblick zur Architektur

SOLECTRUS ist eine Webanwendung, die auf einem Server läuft und über den Browser aufgerufen wird.
Bevor es in die Details der Installation geht, hier ein Überblick über die Architektur von SOLECTRUS.

Zusätzlich gibt es weitere Komponenten, die im Hintergrund laufen und die Daten sammeln und verarbeiten. Üblicherweise benötigt man nicht alle Komponenten, sondern nur die, die für das eigene Setup notwendig sind.
SOLECTRUS ist eine Webanwendung, die auf einem Server läuft und über den Browser aufgerufen wird. Neben diesem Dashboard gibt es etliche weitere Komponenten, die im Hintergrund laufen und die Daten sammeln und verarbeiten. Üblicherweise benötigt man nicht alle Komponenten, sondern nur die, die für das eigene Setup notwendig sind.

<img src="{{ site.baseurl }}/assets/images/architektur.svg" alt="Architektur von SOLECTRUS" />

Jede Komponente läuft in einem separaten Docker-Container. Hierzu gehören:

- Dashboard-App, der Hauptbestandteil mit der Benutzeroberfläche
- InfluxDB, die Zeitreihendatenbank für Messwerte
- PostgreSQL, die Datenbank für alle anderen Daten (z.B. Strompreise und Einstellungen)
- Redis, In-Memory-Datenbank für bessere Performance durch Caching
- Verschiedene "Kollektoren", mit denen Messwerte eingesammelt werden. Es gibt beispielsweise den SENEC-Collector, der Daten vom SENEC-Speicher abruft. Es gibt aber auch den MQTT-Collector, der benötigt wird, wenn du Daten von einem MQTT-Broker abrufen möchtest. Spezielle Kollektoren für Tibber oder Shelly sind ebenfalls vorhanden. Ein Forecast-Collector ermöglicht eine Vorhersage der PV-Erzeugung. Die Kollektoren sind optional und können je nach Bedarf eingesetzt werden.
- CSV-Importer, der historische Messwerte im CSV-Format einmalig nach InfluxDB überträgt
- Power-Splitter, der die Aufteilung des Netzbezugs auf verschiedene Verbraucher berechnet

Die Container sind in einem Docker-Netzwerk miteinander verbunden und kommunizieren untereinander.

## Szenarien der Installation
- [Dashboard-App](/docs/referenz/dashboard), der Hauptbestandteil mit der Benutzeroberfläche
- [InfluxDB](/docs/referenz/influxdb), die Zeitreihendatenbank für Messwerte
- [PostgreSQL](/docs/referenz/postgresql), die Datenbank für alle anderen Daten (z.B. Strompreise und Einstellungen)
- [Redis](<(/docs/referenz/redis)>), eine In-Memory-Datenbank für bessere Performance durch Caching
- Verschiedene _Kollektoren_, mit denen Messwerte eingesammelt werden. Es gibt beispielsweise den [SENEC-Collector](/docs/referenz/senec-collector), der Daten vom SENEC-Speicher abruft. Es gibt aber auch den [MQTT-Collector](/docs/referenz/mqtt-collector), der benötigt wird, wenn du Daten von einem MQTT-Broker abrufen möchtest. Spezielle Kollektoren für [Tibber](/docs/referenz/tibber-collector) oder [Shelly](/docs/referenz/shelly-collector) sind ebenfalls vorhanden. Ein [Forecast-Collector](/docs/referenz/forecast-collector) ermöglicht eine Vorhersage der PV-Erzeugung. Die Kollektoren sind optional und können je nach Bedarf eingesetzt werden.
- [CSV-Importer](/docs/referenz/csv-importer), der historische Messwerte im CSV-Format einmalig nach InfluxDB überträgt
- [Power-Splitter](/docs/referenz/power-splitter), der die Aufteilung des Netzbezugs auf verschiedene Verbraucher berechnet

Es ist möglich (und in den meisten Fällen auch empfehlenswert), alle notwendigen Komponenten auf dem gleichen Gerät zu betreiben. Denkbar ist aber auch eine verteilte Installation, bei der nur einige Kollektoren auf dem eigenen Gerät laufen und alles andere extern in der Cloud. Letzteres ist beispielsweise bei der [Live-Demo](https://demo.solectrus.de) der Fall.
Die Container sind per Docker-Compose in einem Docker-Netzwerk miteinander verbunden und kommunizieren untereinander.

Der Konfigurator ermöglicht drei grundsätzlich verschiedene Szenarien:
## Erste Schritte

- Lokale Installation (auf einem lokalen Linux-Server wie dem Raspberry Pi oder Synology NAS)
- Verteilte Installation (Datensammlung auf einem lokalen Linux-Server, Datenspeicherung und Dashboard auf einem Cloud-Server)
- Im Fall von SENEC ist eine reine Cloud-Installation möglich, bei der lokal gar kein Server notwendig ist, sondern die Messwerte direkt über eine API von SENEC abgerufen werden.
Vor der Installation sind zunächst die [Systemvoraussetzungen](/docs/installation/systemvoraussetzungen) zu prüfen. Anschließend hilft der [Konfigurator](/docs/installation/konfigurator), die richtigen Einstellungen zu finden. Mit der dabei generierten Anleitung und den erstellten Konfigurationsdateien kann die Installation dann leicht über die Linux-Konsole durchgeführt werden.
29 changes: 28 additions & 1 deletion installation/konfigurator.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,31 @@ parent: Installation
nav_order: 2
---

todo
# Konfigurator zum Einrichten von SOLECTRUS

Es gibt unzählige Möglichkeiten, SOLECTRUS zu betreiben. Allein die Vielzahl der unterstützten Geräte und Datenquellen führt dazu, dass die Installation eine sehr individuelle Angelegenheit ist. Der interaktive **Konfigurator** hilft dabei, die richtigen Einstellungen zu finden.

## Konfigurator starten

Der Konfigurator erstellt im Dialog eine individuelle Konfiguration und generiert alles, was man benötigt:

- `readme.md` mit einer individuellen Schritt-für-Schritt-Anleitung für die Installation mit Docker
- `compose.yaml` mit der Definition der benötigen Docker-Services
- `.env` für die Umgebungsvariablen mit den individuellen Einstellungen

Mit der Anleitung und den beiden Konfigurationsdateien kann die Installation leicht über die Linux-Konsole durchgeführt werden.

Der Konfigurator wird über den Web-Browser aufgerufen ist unter folgender Adresse erreichbar: \
[configurator.solectrus.de](https://configurator.solectrus.de/)

## Szenarien der Installation

Es ist möglich (und in den meisten Fällen auch empfehlenswert), alle notwendigen Komponenten auf dem gleichen Gerät zu betreiben. Denkbar ist aber auch eine verteilte Installation, bei der nur einige Kollektoren auf dem eigenen Gerät laufen und alles andere extern in der Cloud. Letzteres ist beispielsweise bei der [Live-Demo](https://demo.solectrus.de) der Fall.

Der Konfigurator ermöglicht **drei** grundsätzlich verschiedene Szenarien:

- **Lokale Installation** (auf einem lokalen Linux-Server wie dem Raspberry Pi oder Synology NAS)
- **Verteilte Installation** (Datensammlung auf einem lokalen Linux-Server, Datenspeicherung und Dashboard auf einem Cloud-Server)
- Mit einem Stromspeicher von SENEC ist eine reine **Cloud-Installation** möglich, bei der lokal gar kein Server notwendig ist, sondern die Messwerte direkt von `mein-senec.de` abgerufen werden.

In den meisten Fällen wird die **lokale Installation** sinnvoll sein. Die anderen beiden Szenarien sind eher für spezielle Anwendungsfälle gedacht.
30 changes: 18 additions & 12 deletions installation/systemvoraussetzungen.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,9 @@ parent: Installation
nav_order: 1
---

Für den Betrieb von SOLECTRUS benötigst du neben der Photovoltaik-Anlage (optional mit Stromspeicher, Wärmepumpe und/oder Wallbox) oder einem Balkonkraftwerk lediglich einen kleinen Linux-Server.
# Technische Voraussetzungen für SOLECTRUS

## Geräte über MQTT

Über das Netzwerkprotokoll <a href="https://de.wikipedia.org/wiki/MQTT">MQTT</a> können beliebige Speicher, Wechselrichter, Wallboxen und Wärmepumpen integriert werden, sofern diese ein solches Auslesen von Messwerten ermöglichen. Hierfür ist zusätzliche Software notwendig, insbesondere ein MQTT-Broker. Erfolgreiche Installationen basieren auf [ioBroker](https://www.iobroker.net/) und [evcc](https://evcc.io), viele Nutzer betreiben SOLECTRUS jedoch auch in anderen Szenarien. Entscheidend ist, dass man per MQTT an die Messwerte herankommt.

## Stromspeicher von SENEC

SOLECTRUS unterstützt außerdem nativ die Stromspeicher **SENEC.Home V3 und V2.1**, deren Messwerte über die proprietäre `lala.cgi`-Schnittstelle direkt ausgelesen werden. Auch der **SENEC.Home 4** wird unterstützt – per Cloud-Anbindung über die App-API.
Für den Betrieb von SOLECTRUS wird neben der Photovoltaik-Anlage (optional mit Stromspeicher, Wärmepumpe und/oder Wallbox) bzw. einem Balkonkraftwerk lediglich ein kleiner Linux-Server benötigt.

## Linux-Server

Expand All @@ -34,13 +28,25 @@ Diesen Zwecke erfüllt beispielsweise ein [Raspberry Pi](https://de.wikipedia.or
- Lenovo ThinkCentre M73 mit Linux Mint
- Fujitsu Futro S920 mit Linux Mint

:::note
{: .note}

Wer SOLECTRUS auf einem anderen Gerät erfolgreich betreibt, kann gerne die Liste ergänzen.

## Anbindung per MQTT

Über das verbreitete Netzwerkprotokoll <a href="https://de.wikipedia.org/wiki/MQTT">MQTT</a> können beliebige Stromspeicher, Wechselrichter, Wallboxen, Wärmepumpen und E-Autos integriert werden, sofern diese ein Auslesen von Messwerten ermöglichen. Hierfür ist zusätzliche Software notwendig, insbesondere ein MQTT-Broker. Erfolgreiche Installationen basieren auf [ioBroker](https://www.iobroker.net/) und [evcc](https://evcc.io), viele Nutzer betreiben SOLECTRUS jedoch auch in anderen Szenarien. Entscheidend ist, dass man per MQTT an die Messwerte herankommt.

## Stromspeicher von SENEC

SOLECTRUS unterstützt außerdem nativ die Stromspeicher **SENEC.Home V2.1 und V3**, deren Messwerte über eine proprietäre Schnittstelle direkt ausgelesen werden. Auch der **SENEC.Home 4** wird unterstützt – per Anbindung an `meine-senec.de`.

## Cloud

Diese Liste wird gerne erweitert. Wenn du SOLECTRUS auf einem anderen Gerät erfolgreich betreibst, schreibe bitte eine E-Mail an <ScrambledEmail subject="SOLECTRUS erfolgreich im Einsatz" />. Ich freue mich insbesondere über Berichte zu ungewöhnlichen Installationen.
In bestimmten Fällen (z.B. bei Verwendung eines SENEC Stromspeichers) ist auch eine reine Cloud-Installation möglich, also ganz ohne lokalen Server. In anderen Fällen ist eine verteilte Installation möglich, bei der die Datensammlung auf einem lokalen Linux-Server erfolgt, während die Datenspeicherung und das Dashboard auf einem Cloud-Server liegen.

:::
Für beides benötigt man einen Cloud-Server. Erfolgreich getestet wurde SOLECTRUS in der [Hetzner-Cloud](https://hetzner.cloud/?ref=NggV8HU9FqCz) auf einem virtuellen Server mit 2 vCPUs und 4GB RAM, der mit Kosten von unter €5 pro Monat sehr günstig ist.

Beim Zugriff auf die SENEC-App-API kann SOLECTRUS auch auf einem beliebigen Cloud-Server betrieben werden, auf dem Docker installiert ist. Erfolgreich getestet wurde SOLECTRUS auf einem [Hetzner-Cloud](https://hetzner.cloud/?ref=NggV8HU9FqCz)-Server mit 2 vCPUs und 4GB RAM. 2GB RAM sollten jedoch auch ausreichen. **Eine solche Installation kommt gänzlich ohne ein lokales Gerät aus.**
## Nicht unterstützte Geräte

Es gibt jedoch auch Geräte, auf denen SOLECTRUS leider nicht funktioniert. Dazu gehören:

Expand Down

0 comments on commit 2e88500

Please sign in to comment.