Architektur von SOLECTRUS
SOLECTRUS ist self-hosted: Es läuft vollständig auf einem eigenen Server, meist einem kleinen Linux-Rechner im Haus. Einen SOLECTRUS-Cloud-Dienst gibt es nicht, die Anlagendaten bleiben dort, wo der Server steht.
Technisch besteht SOLECTRUS aus mehreren Docker-Containern, die zusammenspielen. Einer davon nimmt eine Sonderrolle ein: HELIOS, eine Web-App, die alle anderen Container im Browser installiert und konfiguriert. Mehr dazu unter HELIOS.
Die Komponenten
Abschnitt betitelt „Die Komponenten“Jede Komponente läuft in einem eigenen Docker-Container, einzeln installiert werden sie aber nicht – das erledigt HELIOS. Ein Überblick hilft trotzdem beim Lesen der Protokolle und beim Nachschlagen in der Referenz. Zu den Diensten 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, Einstellungen und Aggregationen in Form von Tageszusammenfassungen)
- Redis, eine In-Memory-Datenbank, in der das Dashboard seinen Cache ablegt
- Verschiedene Kollektoren, mit denen Messwerte eingesammelt werden. Der SENEC-Collector ruft beispielsweise Daten vom SENEC-Speicher ab, der MQTT-Collector holt sie von einem MQTT-Broker. Stromzähler liest der Shelly-Collector aus. Ein Forecast-Collector sagt die PV-Erzeugung voraus.
- CSV-Importer, der historische Messwerte im CSV-Format einmalig nach InfluxDB überträgt. Ihn startet HELIOS nur auf Anforderung.
- Power-Splitter, der die Aufteilung des Netzbezugs auf verschiedene Verbraucher berechnet
- Ingest, der die Messwerte der Kollektoren entgegennimmt und daraus den Hausverbrauch neu berechnet
- Watchtower, der neue Versionen der Docker-Images einspielt
Die Container sind per Docker Compose in einem Netzwerk verbunden und kommunizieren untereinander. Dazu kommt Traefik als Reverse Proxy, sobald das Dashboard unter einer eigenen Domain erreichbar sein soll. Traefik holt dann auch das HTTPS-Zertifikat.
Welche Kollektoren dabei sind, hängt von den angebundenen Geräten ab. HELIOS nimmt genau die auf, die zur Konfiguration passen. Den Ingest etwa nur dann, wenn ein Erzeuger als Balkonkraftwerk markiert ist, die Kollektoren auf demselben Server laufen und kein Sensor seine Werte aus einer externen Quelle bezieht.
Daneben gibt es den Tibber-Collector für Strompreise und den SENEC-Charger für die netzgeführte Beladung eines SENEC-Speichers. Diese beiden richtet HELIOS nicht ein, sie laufen nur in bestehenden Installationen weiter.
HELIOS ist eine Web-App, über die die gesamte Installation und Konfiguration im Browser läuft. Ein einziger Befehl im Terminal holt HELIOS auf den Server, alles Weitere geschieht in der Oberfläche: HELIOS installiert die übrigen Container, richtet sie anhand der Konfiguration ein und hält sie aktuell. HELIOS gehört dabei selbst zu den Diensten, die es verwaltet, und läuft als eigener Container mit.
Die Gesamtheit aller Dienste wird durch zwei Dateien beschrieben: compose.yaml und .env. Beide schreibt HELIOS und erzeugt sie nach jeder Änderung im Browser neu. Ein manuelles Bearbeiten ist weder erforderlich noch wäre es sinnvoll, da die Dateien von HELIOS automatisch erzeugt und immer wieder überschrieben werden.
Referenz
Abschnitt betitelt „Referenz“Jede Komponente wird über Umgebungsvariablen konfiguriert. Welche davon nötig sind und welche Werte sie bekommen, leitet HELIOS aus der Konfiguration ab.
Die Referenz beschreibt sie dennoch alle. Dort steht, was die einzelnen Variablen bewirken und was die Dienste tun. Das hilft beim Nachvollziehen einer bestehenden Installation und bei der Fehlersuche.