Zum Inhalt springen

Sensor-Konfiguration des Dashboards

InfluxDB speichert die Messwerte als Zeitreihen. Jeder Messwert gehört zu einem Measurement und einem Field. SOLECTRUS abstrahiert davon und kennt stattdessen Sensoren, jeder mit einem eindeutigen Namen. Eine Umgebungsvariable je Sensor legt fest, wo in der InfluxDB seine Messwerte liegen.

Die Zuordnung folgt einer festen Schreibweise: Measurement und Field, getrennt durch einen Doppelpunkt. Steht die PV-Erzeugung im Measurement SENEC und dort im Field inverter_power, sieht der Eintrag so aus:

INFLUX_SENSOR_INVERTER_POWER=SENEC:inverter_power

Measurement und Field sind case-sensitive: InfluxDB unterscheidet Groß- und Kleinschreibung. Zeigen zwei Sensoren auf dieselbe Stelle in der InfluxDB, setzt das Dashboard eine Warnung ins Protokoll.

Keine dieser Variablen ist Pflicht, und keine hat einen Standardwert. Sensoren, für die keine Messwerte vorliegen (etwa mangels Wärmepumpe), bleiben einfach weg. Eine leere Zuordnung wie INFLUX_SENSOR_HEATPUMP_POWER= hat dieselbe Wirkung, nötig ist sie aber nicht.

Was fehlt, zeigt das Dashboard nicht an. Ohne INFLUX_SENSOR_BATTERY_SOC gibt es keinen Ladestand, ohne INFLUX_SENSOR_HOUSE_POWER keinen Hausverbrauch.

Die von SOLECTRUS unterstützten Sensoren lassen sich in verschiedene Kategorien einteilen. Jeder Sensor ist mit seiner Umgebungsvariablen verlinkt.

Sensor-NameEinheit
INVERTER_POWERWatt
INVERTER_POWER_1Watt
INVERTER_POWER_2Watt
INVERTER_POWER_3Watt
INVERTER_POWER_4Watt
INVERTER_POWER_5Watt
GRID_IMPORT_POWERWatt
GRID_EXPORT_POWERWatt
GRID_EXPORT_LIMITProzent
CASE_TEMP°C
SYSTEM_STATUSText
SYSTEM_STATUS_OKLogisch (True/False)
Sensor-NameEinheit
BATTERY_SOCProzent
BATTERY_CHARGING_POWERWatt
BATTERY_DISCHARGING_POWERWatt
Sensor-NameEinheit
HOUSE_POWERWatt
HEATPUMP_POWERWatt
CUSTOM_POWER_01Watt
CUSTOM_POWER_02Watt
CUSTOM_POWER_03Watt
CUSTOM_POWER_04Watt
CUSTOM_POWER_05Watt
CUSTOM_POWER_06Watt
CUSTOM_POWER_07Watt
CUSTOM_POWER_08Watt
CUSTOM_POWER_09Watt
CUSTOM_POWER_10Watt
CUSTOM_POWER_11Watt
CUSTOM_POWER_12Watt
CUSTOM_POWER_13Watt
CUSTOM_POWER_14Watt
CUSTOM_POWER_15Watt
CUSTOM_POWER_16Watt
CUSTOM_POWER_17Watt
CUSTOM_POWER_18Watt
CUSTOM_POWER_19Watt
CUSTOM_POWER_20Watt
Sensor-NameEinheit
WALLBOX_POWERWatt
WALLBOX_CAR_CONNECTEDLogisch (True/False)
Sensor-NameEinheit
CAR_BATTERY_SOC_XProzent
CAR_ODOMETER_XKilometer
CAR_RANGE_XKilometer
CAR_CONNECTED_XLogisch (True/False)
CAR_LATITUDE_XGrad
CAR_LONGITUDE_XGrad
Sensor-NameEinheit
HEATPUMP_HEATING_POWERWatt
HEATPUMP_TANK_TEMP°C
HEATPUMP_TANK_TEMP_SETPOINT°C
HEATPUMP_STATUSText
OUTDOOR_TEMP°C
Sensor-NameEinheit
INVERTER_POWER_FORECASTWatt
INVERTER_POWER_FORECAST_CLEARSKYWatt
OUTDOOR_TEMP_FORECAST°C

Die Variablen beginnen alle mit dem Präfix INFLUX_SENSOR_, gefolgt vom eindeutigen Sensor-Namen.

HELIOS schreibt die Zuordnungen selbst. Unter Konfiguration → Sensoren wird ein Sensor aktiviert und ihm eine Quelle zugewiesen, etwa der SENEC- oder der MQTT-Collector. Measurement und Field ergeben sich daraus. Nur bei der Quelle „Externe Quelle“ fragt HELIOS beides ab, denn dann schreibt ein Programm außerhalb von SOLECTRUS in die InfluxDB.

PV-Erzeugung als Leistung des Wechselrichters, in Watt. Gemeint ist die Gesamterzeugung, also inklusive etwaiger Steckersolargeräte oder separat betriebener Wechselrichter.

Gibt es keinen solchen Gesamtwert, bleibt die Variable weg. Das Dashboard addiert dann die Werte der einzelnen Wechselrichter (INFLUX_SENSOR_INVERTER_POWER_X) selbst.

Beispiel
INFLUX_SENSOR_INVERTER_POWER=SENEC:inverter_power

Leistung eines einzelnen Erzeugers in Watt, wobei X für eine Zahl zwischen 1 und 5 steht. Nötig sind diese Variablen nur, wenn Messwerte für einzelne Wechselrichter oder Strings vorliegen.

Beispiel
INFLUX_SENSOR_INVERTER_POWER_1=SENEC:mpp1_power
INFLUX_SENSOR_INVERTER_POWER_2=SENEC:mpp2_power
INFLUX_SENSOR_INVERTER_POWER_3=SENEC:mpp3_power
INFLUX_SENSOR_INVERTER_POWER_4=balcony:power
INFLUX_SENSOR_INVERTER_POWER_5=

Hausverbrauch in Watt.

Beispiel
INFLUX_SENSOR_HOUSE_POWER=SENEC:house_power

Strombezug aus dem Netz in Watt.

Beispiel
INFLUX_SENSOR_GRID_IMPORT_POWER=SENEC:grid_power_plus

Stromabgabe ins Netz (Einspeisung) in Watt.

Beispiel
INFLUX_SENSOR_GRID_EXPORT_POWER=SENEC:grid_power_minus

Ladeleistung des Stromspeichers in Watt.

Beispiel
INFLUX_SENSOR_BATTERY_CHARGING_POWER=SENEC:bat_power_plus

Entladeleistung des Stromspeichers in Watt.

Beispiel
INFLUX_SENSOR_BATTERY_DISCHARGING_POWER=SENEC:bat_power_minus

Ladestand des Stromspeichers in Prozent.

Beispiel
INFLUX_SENSOR_BATTERY_SOC=SENEC:bat_fuel_charge

Ladeleistung der Wallbox in Watt.

Beispiel
INFLUX_SENSOR_WALLBOX_POWER=SENEC:wallbox_charge_power

Gehäusetemperatur des Wechselrichters oder Stromspeichers in °C.

Beispiel
INFLUX_SENSOR_CASE_TEMP=SENEC:case_temp

Prognostizierte PV-Erzeugung in Watt.

Beispiel
INFLUX_SENSOR_INVERTER_POWER_FORECAST=Forecast:watt

Höchstmögliche PV-Erzeugung bei wolkenlosem Himmel, in Watt. Verfügbar ab Dashboard-Version 1.0.

Beispiel
INFLUX_SENSOR_INVERTER_POWER_FORECAST_CLEARSKY=Forecast:watt_clearsky

Prognostizierte Außentemperatur in °C. Verfügbar ab Dashboard-Version 1.0.

Beispiel
INFLUX_SENSOR_OUTDOOR_TEMP_FORECAST=Forecast:temp

Systemstatus als Text, etwa eine Fehlermeldung des Wechselrichters.

Beispiel
INFLUX_SENSOR_SYSTEM_STATUS=SENEC:current_state

Kennzeichnung, ob der Systemstatus als „in Ordnung“ gilt. Der Wert ist logisch: true zeigt einen grünen Punkt, false einen orangefarbenen.

Beispiel
INFLUX_SENSOR_SYSTEM_STATUS_OK=SENEC:current_state_ok

Einspeiseleistungsbegrenzung in Prozent. Gemeint ist nicht die Obergrenze, sondern die in einem einzelnen Moment gerade wirksame Begrenzung. Manche Wechselrichter liefern diesen Wert.

Beispiel
INFLUX_SENSOR_GRID_EXPORT_LIMIT=SENEC:power_ratio

Stromverbrauch der Wärmepumpe in Watt.

Beispiel
INFLUX_SENSOR_HEATPUMP_POWER=heatpump:power

Erzeugte Wärmeleistung der Wärmepumpe in Watt. Das ist die thermische Leistung, die die Wärmepumpe abgibt, nicht ihr Stromverbrauch. Verfügbar ab Dashboard-Version 1.0.

Zusammen mit INFLUX_SENSOR_HEATPUMP_POWER berechnet das Dashboard daraus die Arbeitszahl.

Beispiel
INFLUX_SENSOR_HEATPUMP_HEATING_POWER=heatpump:heating_power

Status der Wärmepumpe als Text, etwa „Heizen“ oder „Warmwasser“. Verfügbar ab Dashboard-Version 1.0.

Beispiel
INFLUX_SENSOR_HEATPUMP_STATUS=heatpump:status

Außentemperatur in °C, gemessen von der Wärmepumpe. Verfügbar ab Dashboard-Version 1.0.

Beispiel
INFLUX_SENSOR_OUTDOOR_TEMP=heatpump:outdoor_temp

Temperatur des Warmwasserspeichers der Wärmepumpe in °C. Verfügbar ab Dashboard-Version 1.0.

Beispiel
INFLUX_SENSOR_HEATPUMP_TANK_TEMP=heatpump:tank_temp

Solltemperatur des Warmwasserspeichers der Wärmepumpe in °C. Verfügbar ab Dashboard-Version 1.2.

Beispiel
INFLUX_SENSOR_HEATPUMP_TANK_TEMP_SETPOINT=heatpump:tank_temp_setpoint

Kennzeichnung, ob ein E-Auto an der Wallbox steckt. Der Wert ist logisch, also true oder false. Welches Fahrzeug steckt, sagt dieser Sensor nicht. Das meldet jedes Fahrzeug selbst über INFLUX_SENSOR_CAR_CONNECTED_X.

Beispiel
INFLUX_SENSOR_WALLBOX_CAR_CONNECTED=Wallbox:car_connected

Stromverbrauch eines benutzerdefinierten Sensors in Watt, wobei XX für eine Zahl zwischen 01 und 20 steht. Damit lassen sich einzelne Verbraucher im Haushalt erfassen, etwa Waschmaschine oder Kühlschrank.

Ein benutzerdefinierter Sensor bekommt ein eigenes Segment in der Strombilanz.

Beispiel
INFLUX_SENSOR_CUSTOM_POWER_01=Fridge:power
INFLUX_SENSOR_CUSTOM_POWER_02=Dishwasher:power
INFLUX_SENSOR_CUSTOM_POWER_03=Washer:power
# ...

Ab Dashboard-Version 1.4 wertet SOLECTRUS bis zu fünf E-Autos aus: Fahrstrecke, Verbrauch und Kosten je 100 km, Reichweite, Standorte und Ladevorgänge. Zur Darstellung der Auswertung ist ein Sponsoring-Abo erforderlich.

Jedes Fahrzeug hat eine Nummer von 1 bis 5, die am Ende seiner Variablen steht. Fehlt die Nummer, gilt die Variable automatisch für Fahrzeug 1. Bei nur einem Fahrzeug kann die Nummer also entfallen:

Beispiel mit einem Fahrzeug
INFLUX_SENSOR_CAR_BATTERY_SOC=Herbie:soc
INFLUX_SENSOR_CAR_ODOMETER=Herbie:odometer
INFLUX_SENSOR_CAR_RANGE=Herbie:range

Mit Nummer sieht dasselbe so aus, ergänzt um ein zweites Fahrzeug:

Beispiel mit zwei Fahrzeugen
INFLUX_SENSOR_CAR_BATTERY_SOC_1=Herbie:soc
INFLUX_SENSOR_CAR_ODOMETER_1=Herbie:odometer
INFLUX_SENSOR_CAR_RANGE_1=Herbie:range
INFLUX_SENSOR_CAR_CONNECTED_1=Herbie:plugged_in
INFLUX_SENSOR_CAR_LATITUDE_1=Herbie:latitude
INFLUX_SENSOR_CAR_LONGITUDE_1=Herbie:longitude
INFLUX_SENSOR_CAR_BATTERY_SOC_2=KITT:soc
INFLUX_SENSOR_CAR_ODOMETER_2=KITT:odometer
INFLUX_SENSOR_CAR_RANGE_2=KITT:range
INFLUX_SENSOR_CAR_CONNECTED_2=KITT:plugged_in
INFLUX_SENSOR_CAR_LATITUDE_2=KITT:latitude
INFLUX_SENSOR_CAR_LONGITUDE_2=KITT:longitude

Eine einzige Variable genügt, damit das Dashboard ein Fahrzeug kennt. Sind für ein Fahrzeug beide Schreibweisen gesetzt, gewinnt die mit Nummer.

Ein geparktes Auto meldet oft tagelang nichts, und manche Quellen senden einen Wert nur, wenn er sich ändert. Das Dashboard hält deshalb jeden Wert eines Fahrzeugs fest, bis der nächste kommt, egal wie alt er ist.

Nach dem Neustart des Dashboards stehen die Fahrzeuge unter Einstellungen → E-Autos. Dort bekommen sie Name, Farbe, Zeitraum der Nutzung und die nutzbare Kapazität der Batterie. Bei mehreren Fahrzeugen zählt der Zeitraum: Das Dashboard ordnet einen Ladevorgang nur einem Fahrzeug zu, das an diesem Tag in Gebrauch war. Das gilt auch für frühere Fahrzeuge, die längst verkauft sind, aber an der eigenen Wallbox geladen haben.

Ladestand eines E-Autos in Prozent. X steht für die Nummer des Fahrzeugs zwischen 1 und 5. Ohne Nummer gilt die Variable automatisch für Fahrzeug 1: INFLUX_SENSOR_CAR_BATTERY_SOC bedeutet dasselbe wie INFLUX_SENSOR_CAR_BATTERY_SOC_1. Die Nummer versteht das Dashboard ab Version 1.4, ältere Versionen kennen nur die Schreibweise ohne Nummer.

Steigt der Ladestand während eines Ladevorgangs an der Wallbox, ordnet das Dashboard den Vorgang diesem Fahrzeug zu. Zusammen mit INFLUX_SENSOR_CAR_RANGE_X ergibt sich die Reichweite bei voller Batterie.

Beispiel
INFLUX_SENSOR_CAR_BATTERY_SOC_1=Herbie:soc
INFLUX_SENSOR_CAR_BATTERY_SOC_2=KITT:soc

Kilometerstand eines E-Autos in km. X steht für die Nummer des Fahrzeugs zwischen 1 und 5. Ohne Nummer gilt die Variable automatisch für Fahrzeug 1: INFLUX_SENSOR_CAR_ODOMETER bedeutet dasselbe wie INFLUX_SENSOR_CAR_ODOMETER_1. Verfügbar ab Dashboard-Version 1.4.

Aus dem Kilometerstand berechnet das Dashboard die Fahrstrecke je Tag, die Fahrtkosten sowie Verbrauch und Kosten je 100 km. Ohne ihn zeigt die Auswertung des Fahrzeugs nur die Ladevorgänge.

Einen Kilometerstand von 0 und einen Rücksprung um mehr als 1 km wertet das Dashboard als Messfehler und ignoriert ihn. Sonst ergäbe der nächste korrekte Wert eine Fahrstrecke in Höhe des gesamten Kilometerstands. Bestätigt der nächste Wert den Rücksprung, gilt er, etwa nach einem Wechsel der Quelle.

Beispiel
INFLUX_SENSOR_CAR_ODOMETER_1=Herbie:odometer
INFLUX_SENSOR_CAR_ODOMETER_2=KITT:odometer

Aktuelle Reichweite eines E-Autos in km, wie sie das Auto selbst angibt. X steht für die Nummer des Fahrzeugs zwischen 1 und 5. Ohne Nummer gilt die Variable automatisch für Fahrzeug 1: INFLUX_SENSOR_CAR_RANGE bedeutet dasselbe wie INFLUX_SENSOR_CAR_RANGE_1. Verfügbar ab Dashboard-Version 1.4.

Zusammen mit INFLUX_SENSOR_CAR_BATTERY_SOC_X berechnet das Dashboard daraus die Reichweite bei voller Batterie. An ihr lassen sich der Verlust an Batteriekapazität und der Einfluss der Jahreszeit ablesen.

Beispiel
INFLUX_SENSOR_CAR_RANGE_1=Herbie:range
INFLUX_SENSOR_CAR_RANGE_2=KITT:range

Kennzeichnung, ob das Ladekabel am E-Auto steckt. X steht für die Nummer des Fahrzeugs zwischen 1 und 5. Ohne Nummer gilt die Variable automatisch für Fahrzeug 1: INFLUX_SENSOR_CAR_CONNECTED bedeutet dasselbe wie INFLUX_SENSOR_CAR_CONNECTED_1. Verfügbar ab Dashboard-Version 1.4.

Der Wert ist logisch. Neben true und false versteht das Dashboard die Texte on, off, yes und no in beliebiger Schreibweise, wie sie MQTT-Quellen oft senden. Eine Zahl größer als 0 gilt als true, jede andere als false.

Meldet ein Fahrzeug während eines Ladevorgangs an der Wallbox eine Verbindung, ordnet das Dashboard den Vorgang diesem Fahrzeug zu. Ohne den Sensor entscheiden Ladestand und Kilometerstand, was bei mehreren Fahrzeugen nicht immer gelingt.

Beispiel
INFLUX_SENSOR_CAR_CONNECTED_1=Herbie:plugged_in
INFLUX_SENSOR_CAR_CONNECTED_2=KITT:plugged_in

Breitengrad des Standorts eines E-Autos in Grad, als Dezimalzahl wie 48.137. X steht für die Nummer des Fahrzeugs zwischen 1 und 5. Ohne Nummer gilt die Variable automatisch für Fahrzeug 1: INFLUX_SENSOR_CAR_LATITUDE bedeutet dasselbe wie INFLUX_SENSOR_CAR_LATITUDE_1. Verfügbar ab Dashboard-Version 1.4.

Eine Position entsteht nur zusammen mit INFLUX_SENSOR_CAR_LONGITUDE_X. Beide Werte müssen denselben Zeitstempel tragen, also im selben Datenpunkt der InfluxDB stehen. Beim MQTT-Collector gelingt das, wenn beide aus derselben MQTT-Nachricht stammen, etwa aus einem JSON-Payload. Kommen sie über zwei getrennte Topics, entsteht keine Position.

Aus den Positionen ermittelt das Dashboard Orte und Aufenthalte. Steht ein Fahrzeug während eines Ladevorgangs an der Wallbox gerade woanders, scheidet es für diesen Vorgang aus. Dafür braucht es einen Ort mit der Kennzeichnung „Zuhause“, festgelegt unter Einstellungen → Standorte. Die Standorte sieht nur der Admin.

Beispiel
INFLUX_SENSOR_CAR_LATITUDE_1=Herbie:latitude
INFLUX_SENSOR_CAR_LATITUDE_2=KITT:latitude

Längengrad des Standorts eines E-Autos in Grad, als Dezimalzahl wie 11.575. X steht für die Nummer des Fahrzeugs zwischen 1 und 5. Ohne Nummer gilt die Variable automatisch für Fahrzeug 1: INFLUX_SENSOR_CAR_LONGITUDE bedeutet dasselbe wie INFLUX_SENSOR_CAR_LONGITUDE_1. Verfügbar ab Dashboard-Version 1.4.

Eine Position entsteht nur zusammen mit INFLUX_SENSOR_CAR_LATITUDE_X. Beide Werte müssen denselben Zeitstempel tragen, also im selben Datenpunkt der InfluxDB stehen. Beim MQTT-Collector gelingt das, wenn beide aus derselben MQTT-Nachricht stammen, etwa aus einem JSON-Payload. Kommen sie über zwei getrennte Topics, entsteht keine Position.

Beispiel
INFLUX_SENSOR_CAR_LONGITUDE_1=Herbie:longitude
INFLUX_SENSOR_CAR_LONGITUDE_2=KITT:longitude

Sensoren, deren Leistung aus dem Hausverbrauch herausgerechnet wird, als komma-getrennte Liste von Sensor-Namen. Die Namen stehen dort ohne das Präfix INFLUX_SENSOR_.

Nötig ist das, wenn der Hausverbrauch die Leistung der Wärmepumpe, der Wallbox oder anderer Verbraucher bereits enthält. Ohne die Korrektur zählt ihre Leistung doppelt.

Beispiel
INFLUX_EXCLUDE_FROM_HOUSE_POWER=HEATPUMP_POWER,WALLBOX_POWER

Auch benutzerdefinierte Sensoren gehören hierher:

Beispiel
INFLUX_EXCLUDE_FROM_HOUSE_POWER=WALLBOX_POWER,CUSTOM_POWER_02,CUSTOM_POWER_08

Ein Name, den SOLECTRUS nicht kennt, lässt das Dashboard beim Start abbrechen. Ist INFLUX_SENSOR_HOUSE_POWER nicht konfiguriert, bleibt die Variable wirkungslos.