openWB
openWB ist ein Open Source Softwareprojekt, das auf einer Closed Source Hardware läuft. Als Gesamtpaket kann diese in verschiedenen Konfigurationen bestellt werden.
Für dieses Gesamtpaket gibt es verschiedene Förderungen von KfW, progres.nrw u.a. Auch Zusicherungen des Herstellers zum verbindlichen Lastmanagement gemäß EVU-Vorgaben werden üblicherweise anerkannt.
Die Software wird aktiv weiterentwickelt und es ist zu erwarten, dass auch die Bestandsgeräte noch verhältnismäßig lange Zeit unterstützt werden und somit von Weiterentwicklungen profitieren. Viele Informationen gibt es im deutschsprachigen openWB-Forum.
openWB kann unter anderem bis zu 8 Ladepunkten (Stand Feb 4, 2023, Firmware latest stable 1.9.x
) verwalten und das entsprechende Lastmanagement garantieren. In der Firmware 2.x
sind umfassende Erweiterungen, u.a. für “Ladeparks” in Vorbereitung.
Einbindung
Die openWB kommuniziert ausschließlich per IP, üblicherweise über die LAN-Buchse des verbauten Raspberry Pi mit 100 Mbit/s Link-Geschwindigkeit. Auslieferungszustand per LAN ist DHCP
mit einer Fallback-IP 192.168.193.5
.
Unter der IP-Adresse kann das umfangreiche Webinterface der Wallbox aufgerufen werden. Die Einstellungen können optional per Passwort geschützt werden. Das Statusdisplay kann immer aufgerufen werden, sofern die IP-Adresse auf dem entsprechenden Port erreichbar ist.
Schnittstellen
Touchscreen direkt an der Wallbox (optional)
Webinterface
HTTP
MQTT
Modbus TCP
Zählerstand
Die openWB enthält einen MID-geeichten Zähler, der auch im Webinterface der openWB angezeigt wird: Status > Zählerstand [kWh]
.
Lademodus umschalten
Die openWB arbeitet mit verschiedenen Lade-Modi, die in der Dokumentation im Github-Wiki Übersicht Lademodi näher erläutert sind. Diese können im Webinterface / HTTP / MQTT / Modbus geändert werden. Im Webinterface der openWB wird der aktuelle Modus direkt oben in der der Mitte angezeigt.
In Firmware 1.9.288
kann der Lademodus für einzelne Wallboxen, die zum Lastmanagement gemeinsam über eine openWB-Wallbox betrieben werden, nicht separat geändert werden (unabhängig von der Schnittstelle). Für die Firmware 2.x
soll dies möglich werden.
Weiterführende Links
Herstellerseite http://www.openwb.de
Herstellerseite Features Features
Herstellerseite Produktseite openWB series2
Herstellerforum http://openwb.de/forum/
Wissenssammlung Wissenssammlung - openWB Forum
Diskussion EVU Kit MQTT anstatt EVU Kit - openWB Forum
Diskussion openWB, HTTP vs MQTT usw. Ladestation openWB series2 - loxforum.com
MQTT Diskusssion MQTT Befehle korrekt ausgeben - loxforum.com
Infos auf GoingElectric openWB - modulare Wallbox Lösung (inkl. Energiemanagement) - Seite 108 - Ladeequipment - Elektroauto Forum
Entwickler
Github Repository GitHub - snaptec/openWB: openWB - die modulare Wallbox
HTTP Befehle
Virtueller HTTP Eingang
URL: http://IPopenWB/openWB/web/api.php?get=all (bei Lastmanagement IP der einzelnen Wallbox)
Abfragezyklus [s] = 10
Timeout [ms] = 4000
Anzahl erlaubter Timeouts = 10
| Befehlserkennung | Einheit | Hinweis |
---|---|---|---|
openwb-Zaehler-kWh | llkwhlp1":"\v | Wh | Fw |
openwb-Zaehler-W | lllp1":"\v | W | Fw |
openwb-Lademodus | lademodus":"\v |
| 0 = Sofort Laden, 1 = Min + PV, 2 = Nur PV, 3 = Stop, 4 = Standby Hinweis: Verzögert um ca. 7 Sekunden ggü. Aktion im Webinterface |
… | … | … | … |
Virtueller Ausgang
Adresse = http://IPopenWB (bei Lastmanagement IP der einzelnen Wallbox)
Hinweis: Aufteilung (bis IP in den Ausgang, Rest ab /openwb/ in den Befehl) ist anscheinend ein Bug in Loxone und funktioniert nur so. Siehe auch dieser Beitrag.
Verbindung nach Senden schließen = ja
Trennzeichen = ;
Als Digitalausgang verwenden = nein
| Befehl bei EIN | Hinweis |
---|---|---|
openwb-jetzt | /openWB/web/api.php?lademodus=jetzt | Lademodus “Sofortladen” |
openwb-minundpv | /openWB/web/api.php?lademodus=minundpv | Lademodus “Min+PV-Laden” |
openwb-pvuberschuss | /openWB/web/api.php?lademodus=pvuberschuss | Lademodus “PV-Laden” |
openwb-stop | /openWB/web/api.php?lademodus=stop | Lademodus “Stop” |
openwb-standby | /openWB/web/api.php?lademodus=standby | Lademodus “Standby” |
|
| Hinweis alle Lademodi: |
… | … | … |
Lademodus Loxone Radiotasten-Belegung (Vorschlag HTTP):
Möchte man das Radiotasten-Element in der Loxone-Visualisierung mitführen, falls die Einstellung zB im Webinterface oder an dem optionalen Touchscreen an der openWB selbst geändert wird, kann der aktuelle Modus per HTTP ausgelesen werden, +1 addiert (da Radiobutton mit HTTP-Befehlen am Ausgang nur von 1..8 statt 0..7) und an den Radiobutton weitergegeben werden.
Die Verzögerung in der Loxone Visualisierung gegenüber einer Änderung im openWB Webinterface liegt hier bei 5 bis 7 Sekunden.
Beispiel:
HTTP Templates
Dokumentation der erarbeiten Lösung von User Benny und Christian Fenzl aus dem Loxforum
Eingänge
Ausgänge
Hinweis 1: in dem “vordefinierten Gerät” sind doppelte / (Vorwärtsschrägstrich) definiert. Also entweder beim Ausgang oder beim Befehl einen / entfernen.
Hinweis 2: Außerdem ist die Aufteilung wie folgt zu korrigieren:
1. bis IP ohne / in den Ausgang,
2. Rest ab /openwb/ in den Befehl.
Ist anscheinend ein Bug in Loxone und funktioniert nur so. Siehe auch dieser Beitrag.
MQTT
Dokumentation der erarbeiten Lösung von User Benny und Christian Fenzl aus dem Loxforum
Einstellungen
Die openWB hat die Eigenheit dass sie keinen Clienten wie gewohnt zur Verfügung stellt und nur einen Brocker aufbaut um sich mit einer "Brücke" mit entfernten Broker per TLS Verschlüsselung zu verbinden.
Für diesen Fall nutzen wir den Broker in der openWB und deaktivieren den Broker vom Loxberry Plugin das dann nur noch als Client arbeitet. Das bedeutet auch dass alle Devices die bislang auf den Broker des Loxberry gelaufen sind auf die Zugangsdaten des Brokers von openWB abgeändert werden müssen.
In der openWB müssen dann noch das Modul-Konfig für das EVU-Kit auf MQTT eingestellt werden da wir in unserem Fall einen eigenen Zähler benutzen und nicht das EVU Kit
Template für die Ausgänge
Bei den Globaleinstellungen legt man fest ob die Ansteuerung mit Modus 0 die Loxone (Direktmodus) oder die Intelligenz der openWB mit Modus 1 bzw. 2 genutzt werden soll.
Globaleinsteillung: 0 = Sofort Laden (Direct), 1 = Min und PV, 2 = Nur PV, 3 = Stop, 4 = Standby
Submodus: 0 (Direkt) = Aus, 1 = kWh Laden, 2 = SoC Laden, 3 = Ladestrom ?? (nicht getestet)
mögliche Parameter:
Submodus 1 = kWh: 1-100
Submodus 2 = SoC: 1-100
Submodus 3 = A: 6-32
"openWB/set/evu/W"
Bezugsleistung in Watt, int, positiv Bezug, negativ Einspeisung
"openWB/set/evu/APhase1"
Strom in Ampere für Phase 1, float, Punkt als Trenner, positiv Bezug, negativ Einspeisung
"openWB/set/evu/APhase2"
Strom in Ampere für Phase 2, float, Punkt als Trenner, positiv Bezug, negativ Einspeisung
"openWB/set/evu/APhase3"
Strom in Ampere für Phase 3, float, Punkt als Trenner, positiv Bezug, negativ Einspeisung
"openWB/set/evu/WhImported"
Bezogene Energie in Wh, float, Punkt als Trenner, nur positiv
"openWB/set/evu/WhExported"
Eingespeiste Energie in Wh, float, Punkt als Trenner, nur positiv
"openWB/set/evu/VPhase1"
Spannung in Volt für Phase 1, float, Punkt als Trenner
"openWB/set/evu/VPhase2"
Spannung in Volt für Phase 2, float, Punkt als Trenner
"openWB/set/evu/VPhase3"
Spannung in Volt für Phase 3, float, Punkt als Trenner
"openWB/set/evu/HzFrequenz"
Netzfrequenz in Hz, float, Punkt als Trenner
openWB/set/ChargeMode
# 0 = Sofort Laden (Direct), 1 = Min und PV, 2 = Nur PV, 3 = Stop, 4 = Standby
openWB/set/lp1/DirectChargeSubMode
# Setzt den Sofort Laden (Direct) Untermodus, Int 0 = Aus, 1 = kWh Laden, 2 = SoC Laden
openWB/set/lp2/DirectChargeSubMode
# Setzt den Sofort Laden (Direct) Untermodus, Int 0 = Aus, 1 = kWh Laden, 2 = SoC Laden
openWB/set/lp1/DirectChargeSoc
# Setzt den Sofort Laden (Direct) Untermodus SoC Wert bis zu dem geladen werden soll, Int 1 - 100
openWB/set/lp1/DirectChargeSoc
# Setzt den Sofort Laden (Direct) Untermodus SoC Wert bis zu dem geladen werden soll, Int 1 - 100
##### Jeweils für alle Ladepunkte verfügbar ######
openWB/set/lp1/ChargePointEnabled
# (De-) Aktivieren des Ladepunktes, unabhängig von gewähltem Lademodus oder Einstellungen, Int 0 oder 1
openWB/set/lp1/DirectChargeAmps
# Ampere mit denen im Sofortladen Modus geladen werden soll, Int 6-32
openWB/set/lp1/kWhDirectChargeToCharge
# Setzt die Lademenge in kWh für den Sofort Laden Untermodus Lademenge, Int 1-100
openWB/set/lp3/DirectChargeSubMode
# Ladepunkt 3-8, setzt den Sofort Laden (Direct) Untermodus, Int 0 = Aus, 1 = kWh Laden
openWB/set/lp1/boolResetDirectCharge
# Setzt die geladene Menge auf 0 zurück für den Sofort Laden Untermodus Lademenge, Int 1
Die Leistung des Hauses wir rechnerisch in der openWB errechnet und kann nicht übergeben werden.
Modbus TCP
getestet: Firmware 1.9.288
openWB kann sich immer nur eine Verbindung per Modbus TCP herstellen. Bei Tests mit QModMaster und gleichzeitig dem Miniserver entsprechend darauf achten, dass nur eine der beiden Verbindungen aktiv ist.
openWB stellt eine entsprechende Dokumentation der Modbus-Register als PDF bereit:
Downloads - Direktlink: openWB ModbusTCP Register Beschreibung
Die Werte werden in verschiedenen Kodierungen gespeichert (16 und 32 bit signed integer). Dies beim Anlegen der entsprechenden Werte in Loxone beachten und für 32 bit ggf. die Register-Startadresse um 1 erhöhen.
Diese Register lassen sich wie gewohnt in Loxone einbinden (Aktualisierungsintervall eingehend nicht kleiner als alle 5 Sekunden - bekannte Einschränkung des Miniservers).
Zählerstand
Laut Dokumentation für LP1 Register 10102
, sint32
, Read only
, Einheit Wh
LP2 = 10202
[Hinweis siehe unten]
Signed Integer 32 = in Loxone IO-Adresse +1 = 10103
Befehl = 4 - Read input register(3x)
Einheit Wh = Korrektur Eingangswert 2 = 1000
, Zielwert 2: 1
Loxone Config:
aktuelle Leistung
Wie Zählerstand, jedoch LP1 Register 10100
Signed Integer 32 = in Loxone IO-Adresse +1 = 10101
Einheit: W (keine Korrektur notwendig)
Lademodus umschalten
Hinweis alle Lademodi (unabhängig ob per Modbus oder HTTP): Umschaltung im Webinterface verzögert um ca. 7 Sekunden.
Laut Dokumentation Register 112
, sint16
, Write only
, Wertebereich 0
..4
0 = Sofort Laden, 1 = Min + PV, 2 = Nur PV, 3 = Stop, 4 = Standby
Signed Integer 16 = in Loxone IO-Adresse = 112
Befehl = 6 - Preset single register
Einheit = <v>
Loxone Config:
Loxone Radiotasten-Belegung (Vorschlag Modbus):
Laut Modbus-Doku gibt es keinen Wert für den aktuellen Modus, den man auslesen kann. Möchte man also das Radiotasten-Element in der Loxone-Visualisierung mitführen, falls die Einstellung zB im Webinterface oder an dem optionalen Touchscreen an der openWB selbst geändert wird, müsste dieser Wert per HTTP oder MQTT ausgelesen und an den Radiobutton weitergegeben werden.
Videos
Hier ein kurzes Video wo die openWB selbst den Überschuss ins E-Auto regelt:
Tesla-User erklärt Umstellung auf openWB (Stand 2020)
OpenWB Demo - PV Ladung (Stand 2018)
openWB automatik PV Modus mit Phasenumschaltung (Stand 2019)
FroniusGen24 + OpenWB ab heute lauffähig (Stand 2020)