Skip to content

Commit

Permalink
Translation of README and small fixes on goEmulator
Browse files Browse the repository at this point in the history
  • Loading branch information
steff393 committed Jun 11, 2021
1 parent dd60101 commit bd433ee
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 10 deletions.
39 changes: 35 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,42 @@
< scroll down for English version and additional information >

# wbec
WLAN-Anbindung der Heidelberg **W**all**B**ox **E**nergy **C**ontrol über ESP8266

Die Heidelberg Wallbox Energy Control ist eine hochwertige Ladestation, bietet aber nur Modbus RTU als Schnittstelle.
Ziel des Projekts ist es, eine WLAN-Schnittstelle zu entwickeln, die gleichzeitig die Modbus-Leader-Funktion übernimmt.

## Funktionen (bisher)
- Anbindung an openWB, EVCC, Solaranzeige (per tlw. Emulation der go-eCharger API)
- MQTT-Kommunikation mit openWB
- Steuerbar per Android App [Wallbox Steuerung](https://android.chk.digital/ecar-charger-control/)
- PV-Überschussladen, Zielladen, etc. mit den o.g. Steuerungen
- Ansteuerung aller verbundenen Ladestationen (bis zu 16 Follower am Modbus, bis zu 8 openWB-Ladepunkte)
- Lesen/Schreiben der Modbus-Register über ein JSON-Web-Interface
- Standby-Funktion der Ladestation einstellbar
- Einfacher Prototyp einer Webseite zur Steuerung
- Einfacher Prototyp eines lokalen Lastmanagements
- Softwareupdate per WLAN (Over The Air), z.B. mit PlatformIO oder einfach per Browser (s. Wiki)
- Access-Point-Modus zur initialen Einstellung des WLANs (SSID/Passwort, s. Wiki)
- Weniger als 1W Strombedarf (trotz Ansteuerung von bis zu 16 Ladestationen)

## Kontakt
Bei Fragen gerne einfach eine Mail schicken (wbec393@gmail.com) oder einen Issue eröffnen ;-)
Bei Interesse an einer fertig gelöteten/programmierten "ready-to-use" Black-Box bitte ebenfalls eine Mail schicken.
Bitte schaut auch ins [Wiki](https://github.com/steff393/wbec/wiki).



# wbec
Wifi interface to Heidelberg **W**all**B**ox **E**nergy **C**ontrol using ESP8266

The Heidelberg Wallbox Energy Control is a high quality wallbox, but it offers only a Modbus RTU interface.
Goal of this project is to establish an Wifi interface, which also acts as Modbus master (for local external load management).
Goal of this project is to establish an Wifi interface, which also acts as Modbus master.

## Features (as of now)
- Works with openWB, EVCC, Solaranzeige (by emulation of go-eCharger API or via MQTT)
- Works with openWB, EVCC, Solaranzeige (by emulation of parts of the go-eCharger API)
- Support of MQTT communication to openWB
- Support of Android App [Wallbox Steuerung](https://android.chk.digital/ecar-charger-control/)
- Prepared for supporting up to all 16 connected boxes (up to 8 openWB load points)
- Modbus registers can be read/written via JSON web interface
- Standby of Wallbox can be configured
Expand Down Expand Up @@ -46,8 +76,8 @@ http://192.168.xx.yy/json

{
"wbec": {
"version": "v0.2.0" // wbec version
"bldDate": "2021-05-23" // wbec build date
"version": "v0.3.0" // wbec version
"bldDate": "2021-06-10" // wbec build date
},
"box": [
{ // s. also https://wallbox.heidelberg.com/wp-content/uploads/2021/04/EC_ModBus_register_table_20210222.pdf
Expand Down Expand Up @@ -117,6 +147,7 @@ wbec can partly emulate the API of Go-eCharger (https://github.com/goecharger/go
Read:
http://x.x.x.x/status
{"car":"1","alw":"1","amp":"6","err":"0","stp":"0","tmp":"307","dws":"5955","ubi":"0","eto":"59","nrg":[231,232,234,0,0,0,0,0,0,0,0,0,0,0,0,0],"fwv":"40"}
{"version":"B","car":"1","err":"0","alw":"1","amp":"6","amx":"6","stp":"0","pha":"63","tmp":"307","dws":"0","dwo":"0","uby":"0","eto":"59","nrg":[233,234,233,0,0,0,0,0,0,0,0,0,0,0,0,0],"fwv":"40","sse":"123456","ama":"16","ust":"2"}

Write:
http://x.x.x.x/mqtt?payload=...
Expand Down
8 changes: 4 additions & 4 deletions src/globalConfig.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@

const uint8_t m = 5;

char cfgWbecVersion[] = "v0.2.0+"; // wbec version
char cfgBuildDate[] = "2021-06-05"; // wbec build date
char cfgWbecVersion[] = "v0.3.0"; // wbec version
char cfgBuildDate[] = "2021-06-11"; // wbec build date

char cfgApSsid[32]; // SSID of the initial Access Point
char cfgApPass[63]; // Password of the initial Access Point
Expand All @@ -30,7 +30,7 @@ bool createConfig() {
doc["cfgApSsid"] = "wbec";
doc["cfgApPass"] = "wbec1234"; // older version had "cebw1234"
doc["cfgCntWb"] = 1;
doc["cfgMbCycleTime"] = 3;
doc["cfgMbCycleTime"] = 10;
doc["cfgMbDelay"] = 100;
doc["cfgMbTimeout"] = 60000;
doc["cfgStandby"] = 4;
Expand Down Expand Up @@ -100,7 +100,7 @@ void loadConfig() {
strncpy(cfgApSsid, doc["cfgApSsid"] | "wbec", sizeof(cfgApSsid));
strncpy(cfgApPass, doc["cfgApPass"] | "wbec1234", sizeof(cfgApPass));
cfgCntWb = doc["cfgCntWb"] | 1;
cfgMbCycleTime = doc["cfgMbCycleTime"] | 3;
cfgMbCycleTime = doc["cfgMbCycleTime"] | 10;
cfgMbDelay = doc["cfgMbDelay"] | 100UL;
cfgMbTimeout = doc["cfgMbTimeout"] | 60000UL;
cfgStandby = doc["cfgStandby"] | 4UL;
Expand Down
6 changes: 4 additions & 2 deletions src/goEmulator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ String goE_getStatus(uint8_t id, boolean fromApp) {
if (fromApp) {
data["oem"]="wbec";
data["typ"]="Heidelberg Energy Control";
data["box"]="0";
}
data["version"] = "B";
switch(content[id][1]) {
Expand All @@ -128,7 +129,7 @@ String goE_getStatus(uint8_t id, boolean fromApp) {
if (content[id][7] > 200) { pha+=18; } // 0001 0010
if (content[id][8] > 200) { pha+=36; } // 0010 0100
data["pha"] = String(pha);
data["tmp"] = String(content[id][5]);
data["tmp"] = String(content[id][5] / 10);
data["dws"] = String((((uint32_t) content[id][13] << 16 | (uint32_t)content[id][14]) - box[id].energyI) * 360);
data["dwo"] = String(box[id].dwo);
data["uby"] = "0";
Expand All @@ -149,10 +150,11 @@ String goE_getStatus(uint8_t id, boolean fromApp) {
data["nrg"][13] = 0;
data["nrg"][14] = 0;
data["nrg"][15] = 0;
data["fwv"] = "40";
data["fwv"] = "040";
data["sse"] = mb_getAscii(id, 27,3);
data["ama"] = String(content[id][15]);
data["ust"] = "2";
data["ast"] = "0";

String response;
serializeJson(data, response);
Expand Down

0 comments on commit bd433ee

Please sign in to comment.