Control Heidelberg Wallbox Energy Control over WiFi using ESP8266 and configure your own local load management

Overview

< scroll down for English version and additional information >

wbec

WLAN-Anbindung der Heidelberg WallBox Energy Control ü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
  • 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 ([email protected]) 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.

wbec

Wifi interface to Heidelberg WallBox Energy Control 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.

Features (as of now)

  • 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
  • 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
  • Simple prototype of a web interface
  • Simple prototype of a local load management
  • Update via WiFi (OTA), e.g. with PlatformIO or simply via Web browser (s. Wiki)
  • Access point mode, to configure your WiFi network/password (s. Wiki)
  • < 1W power consumption (for controlling up to 16 boxes)

Contact

In case of any questions, feel free to send a mail ([email protected]) or open an issue ;-)
When you're interested in a ready-to-use black-box, then please send a mail.
Please also take a look to the Wiki.

Pictures


Switch configuration of wallbox

S1 > 5 (16A max)
S2 = 0000
S3 = 0 (6A min)
S4 = 0001 (slave address, Bus-ID)
S5 = 0000
S6 = 0100 (terminator 120 Ohm, only on last box)

Examples

First simple web interface (might be removed again in future, as there are better alternatives with openWB, EVCC, ...):

Get current status (here for 2 configured wallboxes, but only 1 connected):

http://192.168.xx.yy/json

{
  "wbec": {
    "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
      "busId": 1,               // Modbus bus id (as configured by DIP switches)
      "version": "108",         // Modbus Register-Layouts Version, e.g. 1.0.8
      "chgStat": 2,             // Charging State
      "currL1": 0,              // L1 - Current RMS (in 0.1A)
      "currL2": 0,              // L2 - Current RMS (in 0.1A)
      "currL3": 0,              // L3 - Current RMS (in 0.1A)
      "pcbTemp": 333,           // PCB-Temperatur (in 0.1°C)
      "voltL1": 232,            // Voltage L1 - N rms in Volt
      "voltL2": 9,              // Voltage L2 - N rms in Volt
      "voltL3": 9,              // Voltage L3 - N rms in Volt
      "extLock": 1,             // extern lock state
      "power": 0,               // Power (L1+L2+L3) in VA
      "energyP": 0,             // Energy since PowerOn (in kWh)
      "energyI": 0.003,         // Energy since Installation (in kWh)
      "currMax": 16,            // Hardware configuration maximal current (in 0.1A)
      "currMin": 6,             // Hardware configuration minimal current (in 0.1A)
      "logStr": "<item no> <mfgDate> <serial>",
      "wdTmOut": 15000,         // ModBus-Master WatchDog Timeout (in ms)
      "standby": 4,             // Standby Function Control 
      "remLock": 1,             // Remote lock (only if extern lock unlocked) 
      "currLim": 130,           // Maximal current command
      "currFs": 0,              // FailSafe Current configuration 
      "load": 0,                // wbec load management
      "resCode": "0"            // Result code of last Modbus message (0 = ok)
    },
    {                           // Values of 2nd box ...
      "busId": 2,
      "version": "0",
      "chgStat": 0,
      ...
      "load": 0,
      "resCode": "e4"
    }
  ],
  "modbus": {
    "state": {
      "lastTm": 2852819,        // Timestamp of last Modbus message (in ms)
      "millis": 2855489         // Time since start of wbec (in ms)
    }
  },
  "wifi": {
    "mac": "00:1F:3F:15:29:7E", // wbec MAC address
    "rssi": -76,                // WiFi signal
    "signal": 48,               // WiFi signal quality (in %)
    "channel": 11               // WiFi channel
  }
}

Set allowed current:

http://192.168.xx.yy/json?currLim=120      --> set current limit to 12A (on the box with id=0, i.e. ModBus Bus-ID=1)
http://192.168.xx.yy/json?currLim=60&id=2  --> set current limit to 6A on the box with id=2 (i.e. ModBus Bus-ID=3)

Set Watchdog timeout:

http://192.168.xx.yy/json?wdTmOut=20000

go-eCharger API

wbec can partly emulate the API of Go-eCharger (https://github.com/goecharger/go-eCharger-API-v1) via the following HTTP commands:

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=...

This offers a simple way to integrate wbec into Energy Management Systems, which support go-eCharger, but not the Heidelberg Energy Control, such as EVCC or Solaranzeige.

Support the project

You like wbec? Please star this project on GitHub!

What? You don't like it but you love it? When wbec helps you in using your wallbox more efficiently, you can also

Issues
  • Lokaler Webserver antwortet kaum

    Lokaler Webserver antwortet kaum

    Hallo! Habe es mit der Installation der Software ziemlich weit geschafft, denke ich: Der lokale AP wird gestartet, ich verbinde mich mit meinem WLAN, das Gerät startet neu.

    Problem Leider erhalte ich auf der IP-Adresse selten oder seeeehr langsam eine Antwort. Nur Webseiten, die eine kurze Anwort vermuten lassen, sind erreichbar, also z.B. IP/reset

    Lösungsversuche: Hardware-Resets, Re-Flashes, EEPROM-wipe Ich habe mir das Projekt herunter geladen und selbst kompiliert, um der Sache auf den Grund zu gehen: Selbst wenn ich im Main-Loop alles bis auf den async Webserver auskommentiere, wird es nicht besser. Der Serial Montior zeigt genau die Ausgaben, die im Setup vorgesehen sind. Der ESP8266 startet also korrekt. Ich kann auch Debug-Nachrichten per Serial.println absetzen. Sitze mit dem Modul neben dem Router. Tasmota läuft auf den Modulen wunderbar.

    Grundsätzlich scheint es also zu funktionieren, nur halt nicht in allen Bereichen. Ich vermute, dass es eventuell an der Hardware liegt - verwendet wird ein WEMOS D1 mini. Von den Dingern habe ich allerdings einige und konnte deshalb wechseln - hat aber auch nichts gebracht. Im Moment bin ich mit meinem Latein am Ende.

    Wäre schön, wenn noch jemand einen Lösungsvorschlag hätte oder auch eine Liste funktionierender ESP8266 Module.

    Dnke!

    Frank

    opened by mrbgfromv 28
  • WBEC box not constantly available after upgrade to 0.41

    WBEC box not constantly available after upgrade to 0.41

    After upgrade and reset, the availbility of wbec is really limited. It got even worse. Ping to wbec is also loosing packages. Any advice is appreciated. Do other users have a similar impression regarding the stability after the upgrade?

    Cheers!

    opened by oldgitdaddy 14
  • ESP innerhalb der Heidelberg auflegen

    ESP innerhalb der Heidelberg auflegen

    Hi,

    überlege gerade wie ich die Box am besten anbinde. Es existiert noch kein Switch und dieser wäre auch vermutlich 20 Meter von der Box entfernt.

    An der Box selber liegt (noch) kein separater Strom.

    Manche haben das WLAN Modul extern positioniert.

    Spricht was gegen die Verwendung einer Phase mit Wago Klemmen auf diesen Converter und parallel weiter in die Heidelberg?

    image

    und von dem Converter an den Wemos?

    In der Box selber ist für all dies genug Platz und liese sich auch dort in einer zusätzlichen Box verstauen. Oder rauchen die Converter gerne ab und zerstören mir die gesamte Heidelberg?

    Im Sommer, der prallen Sonne hinter der Aluplatte, wirds nicht zu heiß in der Box für Wemos und Co?

    Wemos D1 Mini kompatibel oder muss es eine NodeMCU sein?

    Wo bekomme ich diesen Aufsatz her?

    image

    Gruß maxpd

    opened by maxpd1 10
  • Improve docu on MQTT and logging

    Improve docu on MQTT and logging

    Hi all, Would it be possible to spend more words on the mqtt feature? and also send some logging over the mqtt channel, so that we have more options for debugging? Documentation should cover an example of the config and also the particular mqtt topics wbec publishes. I understand that the mqtt feature is preliminarly developed to support openwb, but I also think that it can be of general use for integration into other systems.

    Thank you.

    enhancement 
    opened by oldgitdaddy 8
  • Automatische Umschaltung zwischen 1 und 3 Phasen für die Heidelberg

    Automatische Umschaltung zwischen 1 und 3 Phasen für die Heidelberg

    Hallo zusammen,

    ich hab mir jetzt nochmal Gedanken zu der automatischen 1-/3-Phasen-Umschaltung gemacht. Bin mir nicht sicher, wie viel Sinn es in der Praxis macht, aber in den Foren ist es ja ein vieldiskutiertes Thema/Kaufkriterium.

    Auf Basis von des Ansatzes von @kerstinbaskakow (https://github.com/steff393/wbec/issues/1#issuecomment-828647021) müsste die Schaltung ja so ausschauen, oder? grafik

    Ich hab wbec jetzt mal ein Modul (src/phaseCtrl.cpp) spendiert, was den Schaltvorgang des Shelly durchführen würde. Der Ablauf wäre wie folgt: grafik

    Wenn sich die Anforderung ändert wird der verfügbare Strom (Reg. 261) auf 0A gesetzt. Wenn der tatsächliche Strom für 60s lang an allen 3 Phasen 0A ist, wird per http-Aufruf der Shelly An oder Aus geschalten. Danach wird im Zustand INIT darauf gewartet, dass die Spannung an allen 3 Phasen stabil ist (entweder L1>200V und L2,L3 < 15V oder alle 3 Phasen > 200V für jeweils 60s). In den Zuständen INIT und WAIT_0AMP wird jede Veränderung von Reg. 261 unterdrückt (aber gespeichert und bei Eintritt in NORMAL_xP wieder eingestellt).

    Allerdings ist das Thema ja sehr heikel (s. Probleme bei Zoe, etc.).

    Die Nutzung erfolgt explizit auf eigenes RISIKO! Beschädigungen an Fahrzeug oder Ladestationen sind nicht ausgeschlossen!

    Daher ist der Funktionsaufruf in main.cpp noch auskommentiert. Die Funktion ist auch nur für eine angeschlossene Wallbox (cfgCntWb=1) vorgesehen, um Timing-Probleme am Modbus (veraltete Werte) möglichst auszuschließen.

    Folgende Punkte sind mir noch unklar:

    • Stimmt die Schaltung so? Oder widerspricht sie gewissen Vorgaben?
    • Seht ihr noch Risiken, wie ungewollt eine Änderung der Phasen während aktivem Laden stattfinden könnte? Verbindungsprobleme, Stromausfall (kurzzeitig), Relais klebt, ...
    • Weiß jemand, wie man von openWB & Co. die für's Laden zur Verfügung stehende Leistung bekommt? Letztlich müsste man anhand davon die Zustände wechseln (z.B.: wenn > 4,1kW dann 3-phasig; wenn < 3,7kW dann 1-phasig)
    • Sollte man die Anzahl der Umschaltungen pro Zeit noch begrenzen?
    • Kann die "Pause" während des Umschaltens dazu führen, dass das Stromkontingent vom Lastmanagement an eine andere Wallbox vergeben wird?
    • Besteht Interesse an diesem Feature für die Heidelberg?

    Man könnte natürlich statt dem Shelly auch direkt ein Relais von wbec schalten lassen (oder wbec auf den Shelly packen, o.ä.). Aber preislich ist der Unterschied minimal und eine Kapselung der Funktionen macht ja auch Sinn.

    enhancement 
    opened by steff393 6
  • Probleme mit EVCC und WBEC

    Probleme mit EVCC und WBEC

    Hallo zusammen, Mein aktuelles setup besteht aus EVCC, was auf Home Assistant läuft und per Wifi angebundenen WBEC Installation. Im letzten Jahr hat das setup bereits etwas rumgezickt. Dies ist jetzt mein nächster Versuch, das gut ans laufen zubekommen. Generell funktioniert das setup, leider verliert es EVCC zum WBEC immer die Verbindung. Ich habe das Problem sowohl wenn EVCC per REST mit dem WBEC oder per MQTT kommunziert. EVCC stoppt das Laden, bzw. führt es nicht weiter eher zufällig. Sobald ich aber das Auto wieder neu an die Heidelberg Connect anhänge funktioniert es dann wieder für eine Weile.

    Gerne bin ich bereit jeweilige Logs zur Verfügung zu stellen, aber über MQTT sehe ich keine nennenswerten Fehler. Danke für Eure Hilfe!

    opened by oldgitdaddy 5
  • Build fails: rtcvars.h: No such file or directory

    Build fails: rtcvars.h: No such file or directory

    I just cloned this repository and opened it with VS Code PlatformIO. When compiling I get the following error:

    src/pvAlgo.cpp:11:10: fatal error: rtcvars.h: No such file or directory

    PS: Here's the full compilation output:

    Processing nodemcuv2 (platform: espressif8266; board: nodemcuv2; framework: arduino)

    Verbose mode can be enabled via -v, --verbose option CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/nodemcuv2.html PLATFORM: Espressif 8266 (3.2.0) > NodeMCU 1.0 (ESP-12E Module) HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash PACKAGES:

    • framework-arduinoespressif8266 @ 3.30002.0 (3.0.2)
    • tool-esptool @ 1.413.0 (4.13)
    • tool-esptoolpy @ 1.30000.201119 (3.0.0)
    • toolchain-xtensa @ 2.100300.210717 (10.3.0) LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf LDF Modes: Finder ~ chain, Compatibility ~ soft Found 47 compatible libraries Scanning dependencies... Dependency Graph |-- modbus-esp8266 @ 4.1.0 | |-- ESP8266WiFi @ 1.0 | |-- Ethernet @ 2.0.0 | | |-- SPI @ 1.0 |-- ESP Async WebServer @ 1.2.3 | |-- ESPAsyncTCP @ 1.2.2 | |-- Hash @ 1.0 | |-- ArduinoJson @ 6.19.4 | |-- AsyncElegantOTA @ 2.2.7 | | |-- ESP8266WiFi @ 1.0 | | |-- ESPAsyncTCP @ 1.2.2 | |-- ESP8266WiFi @ 1.0 |-- ArduinoJson @ 6.19.4 |-- PubSubClient @ 2.8.0 |-- NTPClient @ 3.2.1 |-- MFRC522 @ 1.4.10 | |-- SPI @ 1.0 |-- RTCVars @ 0.1.1 |-- WebSockets @ 2.3.7 | |-- ESP8266WiFi @ 1.0 | |-- ESPAsyncTCP @ 1.2.2 | |-- Ethernet @ 2.0.0 | | |-- SPI @ 1.0 | |-- SPI @ 1.0 | |-- AsyncElegantOTA @ 2.2.7 | | |-- ESP8266WiFi @ 1.0 | | |-- ESPAsyncTCP @ 1.2.2 | |-- ESP8266WebServer @ 1.0 | | |-- ESP8266WiFi @ 1.0 |-- AsyncElegantOTA @ 2.2.7 | |-- ESP8266WiFi @ 1.0 | |-- ESPAsyncTCP @ 1.2.2 |-- Bounce2 @ 2.71.0 |-- LittleFS @ 0.1.0 |-- ESP8266mDNS @ 1.2 | |-- ESP8266WiFi @ 1.0 |-- ArduinoOTA @ 1.0 | |-- ESP8266WiFi @ 1.0 | |-- ESP8266mDNS @ 1.2 | | |-- ESP8266WiFi @ 1.0 |-- WiFiManager-asyncwebserver | |-- DNSServer @ 1.1.1 | | |-- ESP8266WiFi @ 1.0 | |-- ESP8266WebServer @ 1.0 | | |-- ESP8266WiFi @ 1.0 | |-- ESP8266WiFi @ 1.0 | |-- ESP Async WebServer @ 1.2.3 | | |-- ESPAsyncTCP @ 1.2.2 | | |-- Hash @ 1.0 | | |-- ArduinoJson @ 6.19.4 | | |-- AsyncElegantOTA @ 2.2.7 | | | |-- ESP8266WiFi @ 1.0 | | | |-- ESPAsyncTCP @ 1.2.2 | | |-- ESP8266WiFi @ 1.0 |-- EspSoftwareSerial @ 6.12.7 |-- ESP8266WiFi @ 1.0 |-- ESP8266HTTPClient @ 1.2 | |-- ESP8266WiFi @ 1.0 |-- SPI @ 1.0 |-- ESPAsyncTCP @ 1.2.2 Building in release mode Compiling .pio/build/nodemcuv2/src/button.cpp.o Compiling .pio/build/nodemcuv2/src/globalConfig.cpp.o Compiling .pio/build/nodemcuv2/src/goEmulator.cpp.o Compiling .pio/build/nodemcuv2/src/inverter.cpp.o Compiling .pio/build/nodemcuv2/src/loadManager.cpp.o Compiling .pio/build/nodemcuv2/src/logger.cpp.o Compiling .pio/build/nodemcuv2/src/main.cpp.o Compiling .pio/build/nodemcuv2/src/mbComm.cpp.o Compiling .pio/build/nodemcuv2/src/mqtt.cpp.o Compiling .pio/build/nodemcuv2/src/phaseCtrl.cpp.o Compiling .pio/build/nodemcuv2/src/powerfox.cpp.o Compiling .pio/build/nodemcuv2/src/pvAlgo.cpp.o Compiling .pio/build/nodemcuv2/src/rfid.cpp.o src/pvAlgo.cpp:11:10: fatal error: rtcvars.h: No such file or directory

    • Looking for rtcvars.h dependency? Check our library registry!
    • CLI > platformio lib search "header:rtcvars.h"
    • Web > https://registry.platformio.org/search?q=header:rtcvars.h

    11 | #include <rtcvars.h> | ^~~~~~~~~~~ compilation terminated. *** [.pio/build/nodemcuv2/src/pvAlgo.cpp.o] Error 1 ================================================================== [FAILED] Took 3.92 seconds ================================================================== The terminal process "platformio 'run'" terminated with exit code: 1.

    opened by VanKurt 4
  • Ethernet Version

    Ethernet Version

    Good morning. First, thank you for brilliant work! I have some issues with my wireless network. If it fails, wbec stopped working and the Heidelberg energy control goes into bus error. Nothing that depends on wbec, only on my wireless network and my house made of steel (I think)...

    Is it possible to include Ethernet modules like the W5500 or ENC28J60 to control everything over wired network? Maybe PoE is also possible.

    opened by moddmylife 4
  • Port ändern MQTT

    Port ändern MQTT

    Hallo zusammen, erstmal ein Gutes Neues und Glückwunsch zu diesem tollen Projekt. Ich binde WBEC mit Hilfe von MQTT an meinen IOBroker an. Leider habe ich keine Möglichkeit gefunden den Port anzupassen. Dies ist bei mir aber leider notwendig. Kann mir da jemand weiterhelfen, vielen Dank

    enhancement 
    opened by anselra 4
  • Nicht erreichbar nach flash

    Nicht erreichbar nach flash

    Servus,

    ich habe einen NodeMCU mit der 0.4.4 Version geflasht. Nach der Einrichtung des WLAN finde ich diesen auch in meinem Router, kann mich aber nicht auf seine IP anmelden. Wenn ich die Seite http://192.168.178.XXX/ aufrufe kommt nichts. VG Dean

    opened by Deanw1975 3
  • Ladung wird unterbrochen, da WBec Controller aus dem STA-Mode fliegt

    Ladung wird unterbrochen, da WBec Controller aus dem STA-Mode fliegt

    Hallo Steff, erstmals vielen Dank für Deine super Arbeit des WBECs. Super Lösung! Ich habe das Problem, dass das WBEC Interface aus dem Client-Mode fliegt und das das Laden meines Autos darauf hin unterbrochen wird. Den Fehlerzustand kann man an der Heidelberg Control gut sehen, da diese dann abwechselnd 6x weiß und dann 3x blau blinkt (Kommunikationsfehler). Dies passiert leider häufig, so dass die Gesamtlösung OpenWB mit WBec und Heidelberg Control unzuverlässig ist. Im Fehlerzustand finde ich dann auf meiner Fritzbox7590 das WEB als AP wieder. Wenn ich dann nur das WBec durch einen PowerOnReset neu starte, funktioniert alles wieder tadellos. Ich habe das WBec schon dichter an meine Fritzbox platziert, um Sendeunterbrechungen durch ein zu schwaches WLan zu reduzieren. Ich weiß nicht, ob eventuell nur temporär mein WLan (als potentielle Fehlerquelle) gestört ist und daraufhin das WBec des STA Mode verlässt und in den AP geht (und verbleibt).

    Christian

    opened by ChristianNebendahl 3
  • Kompatibilität Senec Wallbox

    Kompatibilität Senec Wallbox

    Hallo zusammen,

    weiß jemand, ob die Senec Wallboxen baugleich zur Heidelberg sind? Ich vermute, dass wbec auch mit den Senec Wallboxen funktionieren würde. Siehe auch hier: https://solaranzeige.de/phpBB3/viewtopic.php?t=2112

    opened by steff393 1
  • TFT Display direkt an wbec

    TFT Display direkt an wbec

    Hallo zusammen,

    die Heidelberg Control wird demnächst montiert und ich plane wbec mit einem kleinen TFT Touchscreen zu verwenden und direkt neben die Wallbox zu hängen. Auf dem Display will ich dann 2-3 Werte anzeigen lassen und mit zwei Buttons den Ladestrom ändern.

    Ich bin neu in der C++ Programmierung und da die Wallbox noch nicht in Betrieb ist, kann ich auch noch nicht richtig testen, daher hab ich ein paar Fragen. Ich habe wbec auf einen Wemos D1 mini geflashed und konnte über den Webserver darauf zugreifen. Funktioniert soweit. Als nächstes habe ich das Display angeschlossen und angesteuert. Funktioniert auch.

    Nun zu den Fragen:

    1. Sehe ich das richtig, dass ich die Stromstärke über den Aufruf von lm_storeRequest(id, val) setzen sollte? Wobei id die ID der Wallbox im Modbus ist und val einen Wert zwischen 60 (=6A) und 160 (=16A) haben muss?
    2. Wenn ich Werte aus der Wallbox auslesen will, z.B. aktuelle Ladeleistung dann include ich einfach <mbComm.h> und kann dann über content[id][10] den Wert abrufen?

    Vielen Dank im Voraus!

    opened by tobelix87 5
  • WLAN Verbindung mit fester IP Adresse / ohne DHCP

    WLAN Verbindung mit fester IP Adresse / ohne DHCP

    Im Access Point Mode kann ich WBEC mit meinem WLAN verbinden und gebe dazu die SSID und das Passwort ein. WBEC scheint dabei aber nur mit DHCP zu arbeiten und darauf angewiesen zu sein dass ein DHCP Server im WLAN läuft. Für Installationen bei denen IoT Geräte absichtlich ein eigenes WLAN haben und feste IPs bekommen ist das eher ungeschickt.

    Gibt es eine Möglichkeit (über eine Konfigurationsdatei) eine feste IP Adresse für die WLAN Verbindung zu konfigurieren oder, falls nicht, könnte diese Möglichkeit im Access Point Mode implementiert werden?

    Vielen Dank!

    opened by abias 1
  • Support für Fronius Inverter / Smart Meter and Kostal KSEM

    Support für Fronius Inverter / Smart Meter and Kostal KSEM

    Da die Firma Fronius den Modbus auch über TCP verbreitet und auch die Daten dazu veröffentlich hat, möchte ich die Fronius WR samt Smart Meter mit in dieses Projekt einbinden.

    Das ganze hat das Ziel die Wallbox automatisch auf die Ladeleistung zu setzen, die dem PV Überschuss entspricht.

    Es gibt bereits hilfreiche Informationen zum Thema Fronius Modbus TCP und dessen Register. https://github.com/Brovning/fronius/blob/main/README.md Fronius_Modbus-TCP.pdf Bis ich aktiven und getesteten Code teilen kann wird noch einige Wochen dauern, da ich den Wechselrichter noch nicht in Betrieb habe.

    opened by andy5macht 7
  • Support für openWB und EVCC

    Support für openWB und EVCC

    Hallo zusammen,

    ein vielfacher Wunsch war, die Heidelberg Wallbox Energy Control mit openWB oder EVCC steuern zu können.

    Ich habe die letzten Tage mal probeweise den Support für openWB und EVCC eingebaut. wbec bildet jetzt den Teil der API vom go-eCharger nach, der von openWB und EVCC genutzt wird. Es ist somit keine Änderung am Code von openWB/EVCC notwendig. Stattdessen konfiguriert man einfach einen go-eCharger mit der IP-Adresse von wbec.

    Die Firmware steht als Release v0.0.2 zur Verfügung: https://github.com/steff393/wbec/releases/tag/v0.0.2

    Ich würde mich über Freiwillige freuen, die das Ganze mal testen und mir Rückmeldung geben. Selbst kann ich leider nur mit EVCC recht limitiert testen (kein Auto). Kann daher sein, dass gerade die Zustandswechsel/Timings noch nicht sauber funktionieren.

    Hier z.B. die Konfiguration für die evcc.yaml:

    chargers:
    - name: wbec
      type: go-e
      uri: http://192.168.xx.yy
    

    Einschränkung: Die go-eCharger API bietet nur eine Wallbox pro IP-Adresse an. Es funktioniert daher aktuell nur mit der Wallbox mit Modbus-Adresse 1. Update Nov. 2021: Seit Version 0.4.2 gehen jetzt euch mehrere Wallboxen an einem wbec ;-)

    opened by steff393 17
Releases(v0.4.4)
  • v0.4.4(Feb 26, 2022)

    Wesentliche Änderungen:

    • primitive PV-Überschussregelung jetzt auch ohne powerfox möglich, per JSON-API --> cfgPvActive
    • Integration SolarEdge-Wechselrichter (Danke @Amiketta), aktuell noch als Beta-Version --> cfgSolarEdgeIp
    • Per Default wird das neue Web Interface angezeigt (mit Schieberegler)
    • neuer Parameter cfgLoopDelay (#18)
    • neuer Parameter cfgMqttPort (#16)
    • neue Versionen von ArduinoJSON & MFRC522

    Vorabinformation: Geplante Inkompatibilitäten für die nächste Version:

    • Das alte Web Interface (rote/blaue Buttons) ist letztmalig enthalten und wird ab der nächsten Version nicht mehr unterstützt. Derzeit kann es noch über http://x.x.x.x/web aufgerufen werden. Diese Möglichkeit (/web) wird ebenso entfallen.
    • Auch die pfoxChart-Dateien werden entfernt und durch pvChart ersetzt.
    • /pfox wird künftig durch /pv ersetzt werden, da allgemeiner gefasst

    Wer sollte updaten?

    Das Update wird empfohlen für Nutzer, die die neue PV-Regelung benötigen, oder die Probleme mit dem WebServer haben. Alle anderen können auch bei der bisherigen Version bleiben; das Update ist nicht zwingend erforderlich.

    Vorgehensweise

    Die .bin-Datei kann über USB mit dem https://github.com/marcelstoer/nodemcu-pyflasher oder über WLAN per http://x.x.x.x/update (-> Firmware) geladen werden.

    Die html/css/js-Dateien für das Web Interface können über http://x.x.x.x/edit aus dem "data"-Ordner hochgeladen werden. Löschen ("Erase") ist normalerweise nicht nötig. Durch das "Erase" werden die Konfigurationsparameter und die WLAN-Zugangsdaten auf Default zurückgesetzt.

    Source code(tar.gz)
    Source code(zip)
    wbec_firmware_0_4_4.bin(839.78 KB)
  • v0.4.3(Dec 18, 2021)

    Major changes:

    • Several wallboxes can now be controlled with the web interface (not only one)
    • Added AsyncElegantOTA for update
    • Complete redesign of the load management code (but still in beta phase and needs more changes)

    Note: When you have only one wallbox connected, then updating is not needed. When you update, you may also want to upload the new version of the data/web.html and web.js (using http://x.x.x.x/edit)

    Bin file can be flashed with https://github.com/marcelstoer/nodemcu-pyflasher or via http://x.x.x.x/update

    The html/css/js files for the web interface can also be uploaded later from the 'data' folder, using http://x.x.x.x/edit Erasing is normally not needed. When erasing the ESP8266 before flashing, then the configuration and the Wifi credentials will be set to defaults!

    Source code(tar.gz)
    Source code(zip)
    wbec_firmware_0_4_3.bin(832.78 KB)
  • v0.4.2(Nov 2, 2021)

    Major changes:

    • Support of multiple boxes controlled by EVCC (via MQTT, s. Wiki)
    • Bugfix MQTT (#13)
    • Optional WiFi.setSleepMode() (#12)

    Bin file can be flashed with https://github.com/marcelstoer/nodemcu-pyflasher or via http://x.x.x.x/update

    The html/css/js files for the web interface can also be uploaded later from the 'data' folder, using http://x.x.x.x/edit Erasing is normally not needed. When erasing the ESP8266 before flashing, then the configuration and the Wifi credentials will be set to defaults!

    Source code(tar.gz)
    Source code(zip)
    wbec_firmware_0_4_2.bin(778.48 KB)
  • v0.4.1(Oct 13, 2021)

    UPDATE: Due to #13, this release is not really useable with openWB. I recommend to remain at 0.4.0 until a fixed 0.4.2 is available

    Major changes:

    • Add logging via MQTT (#9)
    • Bugfix resetwifi
    • Refactoring of the code

    wbec 0.4.1 is a small patch release. Normally it's not mandatory to update.

    Bin file can be flashed with https://github.com/marcelstoer/nodemcu-pyflasher or via http://x.x.x.x/update

    The html/css/js files for the web interface can also be uploaded later from the 'data' folder, using http://x.x.x.x/edit Erasing is normally not needed. When erasing the ESP8266 before flashing, then the configuration and the Wifi credentials will be set to defaults!

    Source code(tar.gz)
    Source code(zip)
    wbec_firmware_0_4_1.bin(777.15 KB)
  • v0.4.0(Aug 6, 2021)

    Finally... I'm very proud to release wbec 0.4.0 with several new features that have been awaited. The changes include a major rework of all modules in order to realize HTTPS/TLS calls despite the small memory on ESP8266. Special thanks for @Clanchef for testing preliminary releases and his valueable input.

    Major changes:

    • Powerfox support for simple PV (and Min+PV) charging
    • New web interface (mainly for powerfox), including chart
    • Introduction of Websockets
    • Possibility to add own, user-defined web pages
    • RFID support (needs special Hardware)
    • MQTT: User and Password can be configured
    • NTP server can be defined locally to e.g. fritz.box to avoid internet access
    • One of the GPIO outputs can be switched via http call (not possible in combination with RFID)
    • Bugfix: Connection issues with FW1.0.7 solved
    • Several optimizations in all modules to make more heap available for powerfox
    • Update to Arduino core 3.0.0
    • Usage of new option: 16KB cache + 48KB IRAM and 2nd Heap (shared)

    Bin file can be flashed with https://github.com/marcelstoer/nodemcu-pyflasher or via http://x.x.x.x/update

    The html/css/js files for the web interface can also be uploaded later from the 'data' folder, using http://x.x.x.x/edit Erasing is normally not needed. When erasing the ESP8266 before flashing, then the configuration and the Wifi credentials will be set to defaults!

    Source code(tar.gz)
    Source code(zip)
    wbec_firmware_0_4_0.bin(778.03 KB)
  • v0.3.0(Jun 11, 2021)

    Major changes:

    • Support of Android App "Wallbox-Steuerung"
    • Major rework of the go-eCharger emulation
    • Robustness improvement when loading the config file
    • Simplified update via web browser (/update)
    • More registers writeable (259, 262)
    • Set cfgMbCycleTime by default back to 10s like in older versions (should be sufficient in most use-cases)

    In case you use the go-eCharger emulation, I recommend planning some time for testing and potential fallback to old version. Please let me know in case of issues/inconsistencies.

    Bin files can be flashed with https://github.com/marcelstoer/nodemcu-pyflasher a) wbec_firmware_0_3_0.bin --> recommended b) wbec_complete_0_3_0.bin --> contains additionally the LittleFS image with the html/css files for the web interface

    The html/css files for the web interface can also be uploaded later from the data folder, using http://x.x.x.x/edit When erasing the ESP8266 before flashing, then the configuration and the Wifi credentials will be set to defaults.

    Erasing is recommended at first usage of wbec. When updating from a previous version (e.g. 0.0.2, 0.1.0, 0.2.0), it's recommended to add the following content to cfg.json (using http://x.x.x.x/edit) before the update (erasing not needed then -> Wifi credentials will remain). Values can be adapted of course.

    {"cfgApSsid":"wbec","cfgApPass":"wbec1234","cfgCntWb":1,"cfgMbCycleTime":10,"cfgMbDelay":100,"cfgMbTimeout":60000,"cfgStandby":4,"cfgMqttIp":"","cfgMqttLp":[]}
    
    Source code(tar.gz)
    Source code(zip)
    wbec_complete_0_3_0.bin(3.97 MB)
    wbec_firmware_0_3_0.bin(553.45 KB)
  • v0.2.0(May 23, 2021)

    Major changes:

    • Modbus: Stability improvements for using several wallboxes: Timeout-Handling, configurable delay (#5)
    • Bugfix: Overflow after 49 days (#6)
    • Configurable assignments to openWB load points (#4)
    • Get time from NTP server
    • Add logger for debugging, accessible via browser (http:// ip /bootlog)
    • Go-e: Start with alw=1

    Bin files can be flashed with https://github.com/marcelstoer/nodemcu-pyflasher a) wbec_firmware_0_2_0.bin --> recommended b) wbec_complete_0_2_0.bin --> contains additionally the LittleFS image with the html/css files for the web interface

    The html/css files for the web interface can also be uploaded later from the data folder, using http:// ip /edit When erasing the ESP8266 before flashing, then the configuration and the Wifi credentials will be set to defaults.

    Erasing is recommended at first usage of wbec. When updating from a previous version (e.g. 0.0.2 or 0.1.0), it's recommended to add the following content to cfg.json (using http:// ip /edit) before the update (erasing not needed then -> Wifi credentials will remain). Values can be adapted of course.

    {"cfgApSsid":"wbec","cfgApPass":"wbec1234","cfgCntWb":1,"cfgMbCycleTime":3,"cfgMbDelay":100,"cfgMbTimeout":60000,"cfgStandby":4,"cfgMqttIp":"","cfgMqttLp":[]}
    
    Source code(tar.gz)
    Source code(zip)
    wbec_complete_0_2_0_with_cfg.bin(3.97 MB)
    wbec_firmware_0_2_0.bin(547.87 KB)
  • v0.1.0(May 15, 2021)

    Major changes:

    • Bugfix for firmware 1.0.7 (#3)
    • MQTT support for openWB
    • Rework of the configuration approach
    • Standby mode configurable

    Bin files can be flashed with https://github.com/marcelstoer/nodemcu-pyflasher a) wbec_firmware_0_1_0.bin --> recommended b) wbec_complete_0_1_0.bin --> contains additionally the LittleFS image with the html/css files for the web interface

    The html/css files for the web interface can also be uploaded later from the data folder, using http:// ip /edit When erasing the ESP8266 before flashing, then the configuration and the Wifi credentials will be set to defaults.

    Erasing is recommended at first usage of wbec. When updating from a previous version (e.g. 0.0.2), it's recommended to add the following content to cfg.json (using http:// ip /edit) before the update (erasing not needed then -> Wifi credentials will remain):

    {"cfgApSsid":"wbec","cfgApPass":"wbec1234","cfgCntWb":1,"cfgMbCycleTime":3,"cfgMbTimeout":60000,"cfgStandby":4,"cfgMqttIp":""}
    
    Source code(tar.gz)
    Source code(zip)
    wbec_complete_0_1_0.bin(3.97 MB)
    wbec_firmware_0_1_0.bin(544.21 KB)
  • v0.0.2(May 1, 2021)

    Major changes:

    • Config file in LittleFS: http:///edit --> cfg.json
    • Basic emulation of go-eCharger API
    • Support of openWB and EVCC (simulating an go-eCharger) - still to be tested
    • More info in json: Wifi state, version, ...

    Bin files can be flashed with https://github.com/marcelstoer/nodemcu-pyflasher a) wbec_complete_0_0_2.bin --> complete binary with sketch & LittleFS image --> suitable for an empty/erased ESP8266 b) wbec_firmware_0_0_2.bin --> only sketch without the LittleFS image --> suitable e.g. for OTA (but will NOT work on an empty ESP8266)

    Source code(tar.gz)
    Source code(zip)
    wbec_complete_0_0_2.bin(3.97 MB)
    wbec_firmware_0_0_2.bin(535.31 KB)
  • v0.0.1(Apr 21, 2021)

🪴💧 A Bluetooth Low Energy (BLE) soil moisture sensor.

b-parasite b-parasite is an open source Bluetooth Low Energy (BLE) soil moisture and ambient temperature/humidity sensor. Features Soil moisture senso

null 520 Aug 7, 2022
Bluetooth low energy (BLE) tracker for ESP32

BLEcker Bluetooth low energy (BLE) tracker for ESP32 This software is written for ESP32 boards to track BLE devices. It can be used for your smart hom

Vörös Ákos 39 Jul 9, 2022
Stock exchange simulator made in Swing using Java with logic backend in C++ giving it faster load time and better data control

StockSimulator Stock exchange simulator made in Swing using Java with logic backend in C++ giving it faster load time and better data control Features

Dušan Todorović 0 Mar 1, 2022
Creates an AP with a web page interface that allows configuration of ESP for local WiFi network.

Creates an AP with a web page interface that allows configuration of ESP for local WiFi network.

null 3 Feb 5, 2022
null 251 Aug 5, 2022
Patch Onimusha 3 to allow any screen resolution and configure inputs.

Onimusha3Patch Patch Onmimusha 3 to allow any screen resolution. Fix the Configure input menu (see Configure input patch directory). How to use Compil

Xavier Monin 1 Nov 26, 2021
ESP32 and ESP8266 Arduino wifi template

ESP wifi template ESP32 and ESP8266 Arduino wifi template Features Popular WiFI AP mode WiFI STA mode ETH mode DNS server for AP mode Async DDNS clien

Tien Huy Huynh 5 Jun 20, 2022
A kernel level driver for Windows built to configure the Blue Screen Of Death

BSODConfigure A kernel level driver for Windows built to configure the Blue Screen Of Death. Go see the writeup at https://www.phasetw0.com/configurin

phasetw0 13 Jun 30, 2022
How to configure the Goodix 521d on Linux

Please see the Goodix Linux Development Discord for more information and help if you need it. Goodix 521d Configuration Instructions Tested on Arch an

June 15 Jul 25, 2022
AnalogWrite for ESP32 and ESP32-S2 with LEDC PWM. Includes PWM Phase Control, DAC and Smart GPIO resource management.

analogWrite() ESP32 Installation Instructions This library was tested using using the ESP32 Arduino IDE Boards Manager installation method. Stable rel

null 22 Jun 18, 2022
Bobby Cooke 272 Jul 27, 2022
Project to check which Nt/Zw functions your local EDR is hooking

Probatorum EDR Userland Hook Checker Probatorum will check which Nt/Zw functions your local EDR is hooking. Most credit for this code goes to SolomonS

null 145 Jul 25, 2022
KePOS is a 64-bit operating system. Design and implement your own operating system

KePOS is a 64-bit operating system. The purpose of this system is to combine the theoretical knowledge and practice of the operating system, and to deepen the understanding of the operating system.

null 65 Jul 27, 2022
A continuation of FSund's pteron-keyboard project. Feel free to contribute, or use these files to make your own! Kits and PCBs are also available through my facebook page.

pteron-pcb Intro This project is the evolution of the Pteron-Keyboard project, an incredible ergonomic keyboard that was handwired only. I aimed to in

null 15 Mar 20, 2022
Apex cheat without R/W. can implement your own R/W and it will work fine

pubApexCheat Apex cheat without R/W. can implement your own R/W and it will work fine. will update readme later Aimbot Prediction and imGui draw funct

null 22 Jun 20, 2022
MyOwnBricks - A library for building your own sensors and devices compatible with the modern LEGO PoweredUp system.

English version (See at the end for the French version) MyOwnBricks MyOwnBricks is a library for building your own sensors and devices compatible with

null 5 Jun 27, 2022
Harsh Badwaik 1 Dec 19, 2021
Bring your own print driver privilege escalation tool

Concealed Position Concealed Position is a local privilege escalation attack against Windows using the concept of "Bring Your Own Vulnerability". Spec

Jacob Baines 208 Jul 16, 2022
A fully customisable assembler for your own instruction sets

CASM A fully customisable assembler for your own instruction sets! What Is CASM? ?? Documentation ?? Command-Line Usage ?? How To Install CASM ?? Buil

Sjoerd Vermeulen 2 May 7, 2022