Zum Inhalt springen

Konfiguration des Power-Splitters

Der Power-Splitter wird über Umgebungsvariablen konfiguriert.

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.

Beispiel
POWER_SPLITTER_INTERVAL=300

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.

Beispiel
INFLUX_HOST=influxdb

Schema für die Verbindung zu InfluxDB, http oder https. Standardwert ist http. Bei einer externen InfluxDB mit TLS gehört hier https hin.

Beispiel
INFLUX_SCHEMA=https

Port für die Verbindung zu InfluxDB, eine Ganzzahl. Standardwert ist 8086. Bei einer externen, per TLS abgesicherten InfluxDB ist es oft 443.

Beispiel
INFLUX_PORT=443

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.

Beispiel
INFLUX_TOKEN=my-super-secret-readwrite-token

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.

Beispiel
INFLUX_ORG=solectrus

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.

Beispiel
INFLUX_BUCKET=solectrus

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.

Beispiel
REDIS_URL=redis://redis:6379/1

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.

Beispiel
DB_HOST=postgresql

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.

Beispiel
DB_USER=postgres

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.

Beispiel
DB_PASSWORD=ExAmPl3PA55W0rD

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.

Beispiel
INSTALLATION_DATE=2020-11-27

Zeitzone 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.

Beispiel
TZ=Europe/Rome

Der Power-Splitter nutzt dieselben Sensoren wie das Dashboard, beschrieben unter Sensor-Konfiguration. Im Einzelnen sind das diese Variablen:

  • INFLUX_SENSOR_GRID_IMPORT_POWER
  • INFLUX_SENSOR_HOUSE_POWER
  • INFLUX_SENSOR_WALLBOX_POWER
  • INFLUX_SENSOR_HEATPUMP_POWER
  • INFLUX_SENSOR_BATTERY_CHARGING_POWER
  • INFLUX_SENSOR_CUSTOM_POWER_01
  • INFLUX_SENSOR_CUSTOM_POWER_02
  • INFLUX_SENSOR_CUSTOM_POWER_03
  • INFLUX_SENSOR_CUSTOM_POWER_04
  • INFLUX_SENSOR_CUSTOM_POWER_05
  • INFLUX_SENSOR_CUSTOM_POWER_06
  • INFLUX_SENSOR_CUSTOM_POWER_07
  • INFLUX_SENSOR_CUSTOM_POWER_08
  • INFLUX_SENSOR_CUSTOM_POWER_09
  • INFLUX_SENSOR_CUSTOM_POWER_10
  • INFLUX_SENSOR_CUSTOM_POWER_11
  • INFLUX_SENSOR_CUSTOM_POWER_12
  • INFLUX_SENSOR_CUSTOM_POWER_13
  • INFLUX_SENSOR_CUSTOM_POWER_14
  • INFLUX_SENSOR_CUSTOM_POWER_15
  • INFLUX_SENSOR_CUSTOM_POWER_16
  • INFLUX_SENSOR_CUSTOM_POWER_17
  • INFLUX_SENSOR_CUSTOM_POWER_18
  • INFLUX_SENSOR_CUSTOM_POWER_19
  • INFLUX_SENSOR_CUSTOM_POWER_20
  • INFLUX_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.

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.