steff393 / wbec

Control Heidelberg Wallbox Energy Control over WiFi using ESP8266
https://steff393.github.io/wbec-site/
MIT License
192 stars 32 forks source link

TFT Display direkt an wbec #37

Closed tobelix87 closed 2 years ago

tobelix87 commented 2 years ago

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 _lmstoreRequest(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 und kann dann über content[id][10] den Wert abrufen?

Vielen Dank im Voraus!

steff393 commented 2 years ago

Hi tobelix, alles richtig. Nur id ist 0-basiert. Die busID am Modbus beginnt bei 1. Um also die busID=1 anzusprechen musst du id=0 verwenden.

ChristianNebendahl commented 2 years ago

Hi, ich habe mir einen 2.ten Controller mit Display ("Zuladungs-Controller") parallel zur Heidelberg Energy Control und dem WBec gehängt, um an dem WBec Interface nichts ändern zu müssen (Ich möchte gerne kompatibel mit steff393 Lösung bleiben, um bei Updates einfach mit schwimmen zu können). Ich hatte den zusätzlichen Wunsch die Zuladung bequem einstellen zu können (Da die Batterie die teuerste Einheit in einem Elektroauto ist, betreibe ich sie möglichst nur in einem schonenden Bereich von 20-80%. Leider ermöglicht mein Hyundai keine automatische Ladezustandsabfrage, weswegen ich basteln musste). Im Unterschied zu Dir benutze ich OpenWB als zentrale Steuereinheit, dass den Ladestrom in Abhängigkeit der Leistungen meiner PV-Anlage regelt. Ebenso wie Du wollte ich die aktuellen Ladedaten zusätzlich angezeigt bekommen.
Der Zuladungs-Controller hat ein kleines Display an Board ->ESP8266 mit integriertem 0,91" Oled Display, den kannst Du für wenige Euro bei AZ-Delivery bekommen. Nach Betätigen des Startknopfs am Ladecontroller wird der OpenWB Modi (PV Only, Min PV, Sofort, Stop) auf dem Display angezeigt, bevor die Anzeige auf die Zuladung, die Zielzuladung und die Ladeleistung wechselt.

Ich hab Dir den Source Code zum "Zuladungs-Controller" anhängen. Anzupassen ist die Batteriegröße sowie die IP Adresse. Über ein bistabiles Relais am Zuladungs-Controller gebe ich die Wallbox frei bzw. sperre sie. Dies könntest man auch per SW machen. Ich hab es bei dem bistabilen Relais gelassen, da ich den "Zuladungs-Controller" von Vorgänger-Projekt vererbt habe, bevor ich die WBec Lösung von Steff393 gefunden habe.

Christian

SOC SOC_Control_ESP8266IntegriertemDisplay_Template.zip

tobelix87 commented 2 years ago

Hallo Christian, auch ein schöner Ansatz, danke fürs Teilen. Ich werde da mal rein schauen.

Ich will mir (vorerst zumindest) nicht noch ein zusätzliches Gerät da hin hängen. Ich habe jetzt einen ersten Test mit der Wallbox gemacht, allerdings noch ohne Auto dran. Ich konnte über den Touchscreen die Ladeleistung regeln. Akt. Ladeleistung zeigt er natürlich nix an ohne Auto. Aber ich bin zuversichtlich dass das funktioniert. Werde ansonsten hier berichten, wenn alles final in Betrieb ist.

Ich hab an wbec bisher kaum was geändert. Nur die PIN_RST_PV_SWITCH und PIN_SS hab ich im Code auf ungültige PINs gesetzt, weil ich D3 und D8 fürs Display brauche. PV Steuerung brauche ich aktuell noch nicht und PIN_SS hab ich nicht ganz verstanden. damit kann ich wohl einen RFID Leser anschließen? Und ansonsten meinen Code ins Loop der Main Funktion gehängt.

tobelix87 commented 2 years ago

Sooo, ich konnte jetzt endlich mal mit Auto testen. Funktioniert soweit alles ganz gut. PXL_20220730_133448560 Paar kleine Bugs muss ich noch beheben -z.B. sind natürlich keine 60A sondern nur 6A.

Eine Frage noch für die mir spontan keine einfache Lösung einfällt: Wie könnte ich auf dem Display jeweils die geladene Energiemenge für den aktuellen Ladevorgang anzeigen? Aktuell zeigt es mir die Energie seit Poweron, aber das kummuliert ja immer weiter auf. Ich will quasi die Energiemenge nach Abstecken (oder Anstecken) des Autos immer auf Null setzen.

tobelix87 commented 2 years ago

Nochmal eine Nacht drüber geschlafen... Ich kann einfach über den ChargeState prüfen ob ein Auto angesteckt wurde, dann den aktuellen Zählerstand abspeichern und dann von diesem gespeicherten Wert immer die Differenz zum jeweils aktuellen Wert berechnen. Sollte funktionieren. Teste ich die Tage und berichte.

steff393 commented 2 years ago

Hi @tobelix87, die Version 0.4.5 wird bald verfügbar sein und dann einen Wert "energyC" enthalten, der genau diese Differenzbildung abbilden soll Hab's aber noch nicht getestet.