Konfiguration des Power-Splitters
Der Power-Splitter wird über Umgebungsvariablen konfiguriert.
Umgebungsvariablen
Abschnitt betitelt „Umgebungsvariablen“POWER_SPLITTER_INTERVAL
Abschnitt betitelt „POWER_SPLITTER_INTERVAL“Abstand zwischen zwei Berechnungen in Sekunden, eine Ganzzahl. Standardwert ist 3600, also eine Stunde. Kleinere Werte lassen den Power-Splitter häufiger laufen. Genauer wird die Berechnung dadurch nicht, nur aktueller, und das sieht man ausschließlich am laufenden Tag im Dashboard.
Werte unter 300 haben keine Wirkung: Der Power-Splitter hebt sie auf 300 an, also auf fünf Minuten.
POWER_SPLITTER_INTERVAL=300INFLUX_HOST
Abschnitt betitelt „INFLUX_HOST“Hostname des InfluxDB-Servers. Läuft InfluxDB im selben Docker-Netzwerk, ist das der Name des Docker-Services, also influxdb. Es kann aber auch ein externer Server sein, etwa influxdb.example.com.
INFLUX_HOST=influxdbINFLUX_SCHEMA
Abschnitt betitelt „INFLUX_SCHEMA“Schema für die Verbindung zu InfluxDB, http oder https. Standardwert ist http. Bei einer externen InfluxDB mit TLS gehört hier https hin.
INFLUX_SCHEMA=httpsINFLUX_PORT
Abschnitt betitelt „INFLUX_PORT“Port für die Verbindung zu InfluxDB, eine Ganzzahl. Standardwert ist 8086. Bei einer externen, per TLS abgesicherten InfluxDB ist es oft 443.
INFLUX_PORT=443INFLUX_TOKEN
Abschnitt betitelt „INFLUX_TOKEN“Token, mit dem sich der Power-Splitter bei InfluxDB anmeldet. Er muss dort existieren und das Recht haben, den angegebenen Bucket zu lesen und in ihn zu schreiben. Ein reiner Schreib-Token genügt nicht: Der Power-Splitter holt sich die Messwerte der Sensoren aus InfluxDB, rechnet und legt das Ergebnis dort wieder ab.
Passt der Token nicht, weist InfluxDB die Zugriffe ab. Der Power-Splitter protokolliert Fehler, und im Dashboard bleibt die Aufteilung des Netzbezugs leer.
INFLUX_TOKEN=my-super-secret-readwrite-tokenINFLUX_ORG
Abschnitt betitelt „INFLUX_ORG“Organisation in InfluxDB, in der die Messwerte liegen. Eine Organisation ist der Mandant, dem Benutzer, Buckets und Tokens gehören. InfluxDB legt sie beim ersten Start an. In einer SOLECTRUS-Installation heißt sie solectrus.
Der Name muss zu der Organisation passen, die in InfluxDB tatsächlich existiert. Ein anderer Wert benennt sie nicht um, er lässt den Power-Splitter nur ins Leere greifen.
INFLUX_ORG=solectrusINFLUX_BUCKET
Abschnitt betitelt „INFLUX_BUCKET“Bucket in InfluxDB, aus dem der Power-Splitter die Messwerte liest und in den er seine Ergebnisse schreibt. Ein Bucket ist das, was anderswo die Datenbank wäre: ein benannter Speicher mit eigener Aufbewahrungsdauer. Auch ihn legt InfluxDB beim ersten Start an. Eine SOLECTRUS-Installation kommt mit einem einzigen aus, er heißt solectrus.
Es muss derselbe Bucket sein, in den die Kollektoren schreiben und aus dem das Dashboard liest. Ein anderer Name führt den Power-Splitter auf einen leeren oder nicht vorhandenen Bucket, und er hat nichts zu rechnen.
INFLUX_BUCKET=solectrusREDIS_URL
Abschnitt betitelt „REDIS_URL“Adresse des Redis-Cache, den das Dashboard nutzt. Der Power-Splitter leert ihn einmalig, nachdem er die Vergangenheit durchgerechnet hat. Sonst zeigt das Dashboard weiter die alten, zwischengespeicherten Werte.
Ohne die Variable schreibt der Power-Splitter eine Warnung ins Protokoll und lässt den Cache stehen. Er ist dann von Hand zu leeren.
REDIS_URL=redis://redis:6379/1DB_HOST
Abschnitt betitelt „DB_HOST“Hostname der PostgreSQL-Datenbank des Dashboards. Läuft sie im selben Docker-Netzwerk, ist das der Name des Docker-Services, also postgresql.
Wirksam nur zusammen mit DB_USER und DB_PASSWORD. Der Power-Splitter braucht die drei, um nach einer Neuberechnung die Tageszusammenfassungen des Dashboards zu löschen. Fehlt eine davon, schreibt er eine Warnung ins Protokoll, und die Zusammenfassungen sind im Dashboard von Hand zurückzusetzen.
DB_HOST=postgresqlDB_USER
Abschnitt betitelt „DB_USER“Benutzername für die PostgreSQL-Datenbank, üblicherweise postgres.
Wirksam nur zusammen mit DB_HOST und DB_PASSWORD. Fehlt eine der drei, kann der Power-Splitter die Tageszusammenfassungen des Dashboards nicht löschen.
DB_USER=postgresDB_PASSWORD
Abschnitt betitelt „DB_PASSWORD“Passwort für die PostgreSQL-Datenbank.
Wirksam nur zusammen mit DB_HOST und DB_USER. Fehlt eine der drei, kann der Power-Splitter die Tageszusammenfassungen des Dashboards nicht löschen.
DB_PASSWORD=ExAmPl3PA55W0rDINSTALLATION_DATE
Abschnitt betitelt „INSTALLATION_DATE“Datum der Inbetriebnahme der PV-Anlage im Format JJJJ-MM-TT. Es gibt der Neuberechnung einen definierten Startpunkt.
Ohne die Variable sucht der Power-Splitter den ältesten Tag, für den Messwerte vorliegen, und beginnt dort. Liegt der weit vor der Inbetriebnahme, rechnet er unnötig lange.
INSTALLATION_DATE=2020-11-27Zeitzone gemäß Liste. Standardwert ist Europe/Berlin.
Sie bestimmt, wo ein Tag beginnt und endet, denn der Power-Splitter rechnet tageweise. Eine falsche Zeitzone verschiebt die Tagesgrenzen und damit die Aufteilung an den Rändern.
TZ=Europe/RomeSensor-Definition
Abschnitt betitelt „Sensor-Definition“Der Power-Splitter nutzt dieselben Sensoren wie das Dashboard, beschrieben unter Sensor-Konfiguration. Im Einzelnen sind das diese Variablen:
INFLUX_SENSOR_GRID_IMPORT_POWERINFLUX_SENSOR_HOUSE_POWERINFLUX_SENSOR_WALLBOX_POWERINFLUX_SENSOR_HEATPUMP_POWERINFLUX_SENSOR_BATTERY_CHARGING_POWERINFLUX_SENSOR_CUSTOM_POWER_01INFLUX_SENSOR_CUSTOM_POWER_02INFLUX_SENSOR_CUSTOM_POWER_03INFLUX_SENSOR_CUSTOM_POWER_04INFLUX_SENSOR_CUSTOM_POWER_05INFLUX_SENSOR_CUSTOM_POWER_06INFLUX_SENSOR_CUSTOM_POWER_07INFLUX_SENSOR_CUSTOM_POWER_08INFLUX_SENSOR_CUSTOM_POWER_09INFLUX_SENSOR_CUSTOM_POWER_10INFLUX_SENSOR_CUSTOM_POWER_11INFLUX_SENSOR_CUSTOM_POWER_12INFLUX_SENSOR_CUSTOM_POWER_13INFLUX_SENSOR_CUSTOM_POWER_14INFLUX_SENSOR_CUSTOM_POWER_15INFLUX_SENSOR_CUSTOM_POWER_16INFLUX_SENSOR_CUSTOM_POWER_17INFLUX_SENSOR_CUSTOM_POWER_18INFLUX_SENSOR_CUSTOM_POWER_19INFLUX_SENSOR_CUSTOM_POWER_20INFLUX_EXCLUDE_FROM_HOUSE_POWER
INFLUX_SENSOR_GRID_IMPORT_POWER und INFLUX_SENSOR_HOUSE_POWER sind Pflicht. Fehlt eine der beiden, bricht der Power-Splitter beim Start ab. Alle übrigen sind optional, und je mehr davon gesetzt sind, desto feiner teilt er den Netzbezug auf.
Measurement
Abschnitt betitelt „Measurement“Der Power-Splitter schreibt seine Berechnungen in ein neues Measurement mit der (unveränderlichen) Bezeichnung power_splitter. Eine eigene Variable für das Measurement ist daher nicht nötig.