Zum Inhalt springen

HEM2 / DLM Pro -Formeln

Der HEM2 / DLM Pro erlaubt die dynamische Auswertung von Formeln. Diese Funktionalität gibt es bei einem Zähler vom Typ „Expression“ und bei Laderegeln vom Typ „Formel“.

Sie können also Zähler einrichten, die aus anderen Zählern oder Wallboxen Werte berechnen und diese bereithalten und anzeigen. Die Laderegeln können ebenfalls mittels Formeln den Ladestrom dynamisch berechnen und dabei auch auf Zähler und Wallboxen (inklusive Zähler vom Typ „Expression“) zugreifen.

Folgende Operationen sind mit den Formeln möglich:

+ - * / %Addition, Subtraktion, Multiplikation, Division, Modulus
& |bitweise AND und OR
^Potenzrechnung, z.B. 10^2 = 100
min(x,y)Minimum von x und y, mehr als 2 Argumente möglich
max(x,y)Maximum von x und y, mehr als 2 Argumente möglich
abs(x)Absolutbetrag von x, z.B. abs(-2) = 2
sqrt(x)Quadratwurzel von x
exists(x)true, falls die Variable x existiert, sonst false

Weiterhin sind folgende logische Ausdrücke möglich:

== (gleich), != (ungleich), < (kleiner), <= (kleiner-gleich), > (größer), >= (größer-gleich), ! (nicht), || (logisches Oder), && (logisches Und), ? (Bedingter Operator, z.B. x ? y : z, liefert y falls x wahr ist, andernfalls z)

Dies erlaubt z.B. den Strom in Abhängigkeit von Bedingungen abzuschalten: M1.current >= 6500 ? M1.current : 0 liefert den Strom von M1, falls er größer 6,5A ist und andernfalls 0, wodurch das Laden pausiert wird. Für solche Bedingungen bietet sich auch das Abfragen von Inputs an (s.u.)

Folgende Namen sind möglich:

MxZähler mit Geräte ID x, z.B. M1
ExWallbox mit Geräte ID x, z.B. E1

Es ist auch möglich auf virtuelle Zähler, wie Solarüberschuss, Netzbezug oder „Power avail. for EVSEs“ (für Wallboxen verfügbare Leistung), zuzugreifen, indem man den Zähler einrichtet und dann in der Formel die entsprechende Geräte ID benutzt.

Mittels Punkt kann man dann auf einzelne Werte der Geräte zugreifen. Diese heißen wie folgt:

current_l1Strom der Phase 1 in mA
current_l2Strom der Phase 2 in mA
current_l3Strom der Phase 3 in mA
currentStrom der aktuellen Phase in mA (bei Laderegeln fragt der Charging Manager alle Phasen nacheinander ab, bei Zählern vom Typ „Expression“ gilt die jeweilige Phase auf die sich die Formel bezieht. Wenn Sie für „Strom L1“ eine Formel angegeben haben, können Sie die Felder für Strom L2 und L3 weglassen. Dann wird die Formel für Strom L1 verwendet)
power_vaAktuelle Leistung in Watt/VA (hier kann je nach Zählertyp Scheinleistung oder Wirkleistung geliefert werden)
power_wAktuelle Wirkleistung in Watt
opower_vaWallbox: Aktuell angebotene Leistung in VA bezogen auf alle 3 Phasen.
import_whBezogene Energie in Wh
export_whEingespeiste Energie in Wh
dtDie Zeit, seit dem letzten vergangenen Update vergangen ist (in Sekunden)
inputNInput Nummer N des Gerätes, 1 = aktiv, 0 = inaktiv
socSOC, Ladestand in Prozent (Zähler/Speicher)
idGeräte Id, Modbus ID
txn_durationDauer der aktuellen Transaktion in Sekunden (Wallbox)
txn_energyGeladene Energie der aktuellen Transaktion in Wh (Wallbox)
min_currentMinimaler Ladestrom in mA (Wallbox)
max_currentMaximaler Ladestrom in mA (Wallbox)
stateStatus: 1 warten, 2 eingesteckt, 3 laden, 4 laden mit Lüftung, 5 Fehler, 6 offline (Wallbox)
cphasesAnzahl ladender Phasen (0-3)
pphasesAnzahl vorhergesagter ladender Phasen (0-3)
budgetAuf dem aktuellen Budget befindliche kWh
budget_amountAuf dem aktuellen Budget maximale kWh
budget_usedAuf dem aktuellen Budget genutzte kWh

Beispiel
M1.current_l1Strom des Zählers M1, Phase 1
E2.import_whVerbrauchte Wh der Wallbox E2
E3.power_vaAktuelle Ladeleistung von E3

Wenn man die Formeln für einen Zähler von Typ „Expression“ nutzt, kann man die Geräte ID auch weglassen. Dann beziehen sich die Feldnamen auf diesen Zähler, z.B. ist ‚power_va‘ dann die Leistung dieses Zählers in Watt/VA. Mittels ‚dt‘ kann man ein paar erweitere Funktionen realisieren, z.B. in einem Zähler vom Typ „Expression“:

  • Als Formel für ‚import_wh‘import_wh + M1.power_va * dt / 3600 aktualisiert die bezogene Energie anhand der Leistung während der vergangenen Updatezeit
  • Als Formel für ‚power_va‘(power_va * (20 - dt) + M1.power_va * dt) / 20 glättet die Leistung über die letzten 20 Sekunden.

Globale Variablen

date

date.yearAktuelles Jahr
date.monthMonat von 0..11
date.dayTag von 1..31
date.weekdayWochentag Mo=0, Di=1, … So=6
date.yeardayTag im Jahr von 0..366
date.hourStunde von 0..23
date.minuteMinute von 0..60
date.secondSekunde von 0..60
date.daysecondSekunde dieses Tages von 0..86399
date.dayminuteMinute dieses Tages von 0..1439
date.dst0 = Winterzeit, 1 = Sommerzeit

PB (cFos Power brain only)

PB.input1S0 Input 1, 1 = aktiv, 0 = inaktiv
PB.input2S0 Input 2, 1 = aktiv, 0 = inaktiv

CM Charging Manager variables

Diese Variablen können vom admin unter „Konfiguration“ gesetzt werden. Wenn der admin z.B. die Variable ‚var_x‘ auf 1.5 setzt, liefert CM.var_x den Wert 1.5.

Vordefinierte Variablen:
_num_charging: Anzahl der aktuell ladenden Wallboxen
_num_charging1: Anzahl der aktuell ladenden Wallboxen, 1 wenn keine lädt
_max_total_current: Maximaler Strom des Hausanschluss in mA pro Phase
_max_total_evse_current: Maximaler Strom für Wallboxen in mA (pro Phase)
_price: Aktueller Strompreis
_price_level: Aktuelles Strompreis-Niveau, -2=sehr teuer, -3=teuer, -4=normal, -5=billig, -6=sehr billig _surplus: Aktueller Solarüberschuss in Watt _org_surplus: Solarüberschuss, wie ihn der Charging Manager unabhängig von eigenen Formeln berechnet hätte

Benutzung der globalen Objekte:
charge 8A starting at 8:00am: date.dayminute >= 480 ? 8000 : 0
charge 16A on Saturday and Sunday: date.weekday == 5 || date.weekday == 6 ? 16000 : 0
charge 6A if input 2 active: PB.input2 ? 6000 : 0 charge 6A if CM variable non-zero: cm.var1 ? 6000 : 0

Anwendungsbeispiel

Sie möchten den Ladestrom hinsichtlich eine Verbrauchszählers einer Wohnung zusätzlich limitieren. Hierzu können Sie eine Laderegel mit der Formel 16000 - M1.current einrichten.
M1 ist der Zähler, der den Verbrauch der Wohnung misst. Das Lastmanagement des HEM2 /DLM Pro versucht zunächst der Wallbox den maximalen Strom bzgl. der Hausanschlussleistung zur Verfügung zu stellen, limitiert diesen dann aber auf 16A abzgl. des Wohnungsverbrauchs.