Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support additional consumer #2836

Merged
merged 68 commits into from
May 30, 2024
Merged

Support additional consumer #2836

merged 68 commits into from
May 30, 2024

Conversation

ledermann
Copy link
Member

@ledermann ledermann commented Feb 20, 2024

SOLECTRUS kann jetzt auch Messwerte einer Wärmepumpe sowie einer externen Wallbox visualisieren. Wenn von diesen separaten Verbrauchern Messwerte geliefert werden, werden diese aus dem Hausverbrauch heraus gerechnet, also abgezogen.

Um das sauber implementieren zu können, wurde noch eine andere, größere Änderung vorgenommen: Es ist nun möglich, die Datenstruktur des InfluxDB-Buckets genauer zu konfigurieren. Konkret können Measurements und Fields angegeben werden.

Realisiert wurde das durch die Einführung von Sensoren als zusätzliche Schicht zwischen Applikation und InfluxDB. In diesem neuen Sprachgebrauch liefern Sensoren die Messwerte, die SOLECTRUS visualisiert. Außerdem verwendet SOLECTRUS nun anstelle der aus der SENEC-Welt angelehnten Begriffe eigene Begrifflichkeiten. Die missverständlichen plus/minus-Bezeichner entfallen damit.

Konkret gibt es jetzt genau diese (derzeitig 14) Sensoren:

  • battery_charging_power (Akku-Beladung)
  • battery_discharging_power (Akku-Entladung)
  • battery_soc (Akku-Ladestand)
  • case_temp (Gehäuse-Temperatur)
  • grid_export_limit (Einspeisebegrenzung)
  • grid_export_power (Einspeisung)
  • grid_import_power (Netzbezug)
  • heatpump_power (Wärmepumpe)
  • house_power (Hausverbrauch)
  • inverter_power (Erzeugung)
  • inverter_power_forecast (Vorhersage der Erzeugung)
  • system_status (Systemstatus, als Text)
  • system_status_ok (Systemstatus ist ok, als Bool)
  • wallbox_power (Wallbox-Beladung)

Über neue ENV-Variablen erfolgt ein Mapping der Sensoren auf die InfluxDB-Struktur. Für jeden Sensor wird Measurement und Field angegeben. Die Angaben erfolgen in der Form SENSOR_NAME=MEASUREMENT:FIELD. Ein Beispiel:

INFLUX_SENSOR_BATTERY_CHARGING_POWER=SENEC:bat_power_plus
INFLUX_SENSOR_BATTERY_DISCHARGING_POWER=SENEC:bat_power_minus
INFLUX_SENSOR_BATTERY_SOC=SENEC:bat_fuel_charge
INFLUX_SENSOR_CASE_TEMP=SENEC:case_temp
INFLUX_SENSOR_GRID_EXPORT_LIMIT=SENEC:power_ratio
INFLUX_SENSOR_GRID_EXPORT_POWER=SENEC:grid_power_minus
INFLUX_SENSOR_GRID_IMPORT_POWER=SENEC:grid_power_plus
INFLUX_SENSOR_HEATPUMP_POWER=Shelly:power
INFLUX_SENSOR_HOUSE_POWER=SENEC:house_power
INFLUX_SENSOR_INVERTER_POWER_FORECAST=Forecast:watt
INFLUX_SENSOR_INVERTER_POWER=SENEC:inverter_power
INFLUX_SENSOR_SYSTEM_STATUS_OK=SENEC:current_state_ok
INFLUX_SENSOR_SYSTEM_STATUS=SENEC:current_state
INFLUX_SENSOR_WALLBOX_POWER=SENEC:wallbox_charge_power

Zudem gibt es eine weitere Variable, über die man festlegen kann, welche Sensoren aus dem Hausverbrauch herausgerechnet werden sollen. Auch hierzu ein Beispiel:

INFLUX_EXCLUDE_FROM_HOUSE_POWER=HEATPUMP_POWER

Weitere Angaben sind möglich über eine komma-separierte Liste, Beispiel:

INFLUX_EXCLUDE_FROM_HOUSE_POWER=HEATPUMP_POWER,WALLBOX_POWER

Die bisherige Angabe von Measurements entfällt, d.h. die folgenden ENV-Variablen sind nicht mehr erforderlich, wenn die INFLUX_SENSOR_*-Variablen vorhanden sind:

  • INFLUX_MEASUREMENT_PV
  • INFLUX_MEASUREMENT_FORECAST

Für die Abwärtskompatibilität wird die bisherige Struktur aber weiterhin unterstützt. D.h. wenn keine Sensoren angegeben werden, wird die alte Struktur verwendet (also INFLUX_MEASUREMENT_PV und INFLUX_MEASUREMENT_FORECAST und den alten, konstanten Field-Namen). Im Log wird darauf in Form von Warnungen hingewiesen, inklusive der Information, wie die neue Struktur konfiguriert werden kann.

Resolves #2239

@ledermann ledermann merged commit 6fcc00a into develop May 30, 2024
7 checks passed
@ledermann ledermann deleted the separate_consumer branch May 30, 2024 14:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Darstellung separater Verbraucher
1 participant