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 https://github.com/snaptec/openWB/wiki/%C3%9Cbersicht-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.

Entwickler

  • Github Repository

  • API 

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

 

Befehlserkennung

Einheit

Hinweis

openwb-Zaehler-kWh

llkwhlp1":"\v

Wh

Fw 1.9.x als Standalone: lp1
Fw 1.9.x als Ladepunkt: lp2

openwb-Zaehler-W

lllp1":"\v

W

Fw 1.9.x als Standalone: lp1
Fw 1.9.x als Ladepunkt: lp2

openwb-Lademodus

lademodus":"\v

0..4

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

 

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:
Verzögert um ca. 7 Sekunden bis im Webinterface umgeschaltet

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:

- 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)