EVSE mit Phasenumschaltung
Verfasst: Do 3. Jun 2021, 22:53
Für das PV-Überschussladen empfiehlt es sich flexibel zwischen einphasiger und dreiphasiger Ladung umschalten zu können. Leider fehlt in der aktuellen Version (2.2.2) von EVSE-Wifi diese Möglichkeit. Ich habe deshalb alle fehlenden Funktionen in Soft- und Hardware nachgerüstet. Das Ergebnis sieht nun so aus:
Auf den ersten Blick fällt ein zweiter Schütz auf, der L2 und L3 nach Bedarf zuschalten kann. Damit das ordentlich (ohne Gefahr für das EV) geschehen kann, muss die Software vor der Umschaltung einen eventuell laufenden Ladevorgang stoppen und danach ggf. wieder starten.
Hierfür gibt es im Web-Frontend im Dialog zur Stromstärkeneinstellung nun die Buttons '1P' und '3P':
Natürlich lässt sich diese Umschaltung auch über die API über den neuen Call 'setNumPhases' per http oder über das Websocket-Kommando 'setnumphases' vornehmen. Da im Falle eines nur einphasigen Stromzählers auch der MeterFactor umgestellt werden muss, gibt es nun auch dazu korrespondierend den API-Call 'setMeterFactor'. Auch im ModBus-Master finden sich in den Registern 40004 und 40005 die entsprechenden Einstellungen zum Lesen und Schreiben.
Im 'Settings'-Dialog kann der Zustand der Phasenumschaltung nach dem Booten unter 'Three phase operation' festgelegt werden. Initial ist die Phasenumschaltung gänzlich deaktiviert. Um die Funktion freizuschalten, empfiehlt es sich ein Backup der Einstellungen herunterzuladen und mit dem Texteditor den Wert 'numPhases' auf 1 oder 3 zu setzen. Danach wird das Backup wieder eingespielt.
Per Web-API würde die Phasenumschaltung so vorgenommen werden, wenn man den PV-Überschuss als Leistung übergibt:
Ich habe einen minimalistischen Stromlaufplan gezeichnet, der sich auf die Phasenumschaltung konzentriert und auf OLED, NFC, LED sowie Taster verzichtet:
Meine Entwicklungen sind spontan über die Pfingstfeiertage entstanden und ich hatte nur ein normales ESP32 Devkit-Board herumliegen, das ich zusammen mit einem Simple EVSE WB-Modul in ein 2TE-Hutschienengehäuse geklebt habe. Für den nicht so versierten Bastler empfehle ich natürlich das offizielle EVSE-Wifi-Modul, das alle Schnittstellen einfach zugänglich zur Verfügung stellt.
Der Quellcode meines Forks ist unter https://github.com/baycom/SimpleEVSE-WiFi zu finden. Alle neuen Funktionen sind sicherheitshalber nur im Environment 'esp32doit-devkit-v1' verfügbar. Vielleicht fühlt sich Mathias motiviert den Pull-Request in seinen Code zu integrieren.
Auf den ersten Blick fällt ein zweiter Schütz auf, der L2 und L3 nach Bedarf zuschalten kann. Damit das ordentlich (ohne Gefahr für das EV) geschehen kann, muss die Software vor der Umschaltung einen eventuell laufenden Ladevorgang stoppen und danach ggf. wieder starten.
Hierfür gibt es im Web-Frontend im Dialog zur Stromstärkeneinstellung nun die Buttons '1P' und '3P':
Natürlich lässt sich diese Umschaltung auch über die API über den neuen Call 'setNumPhases' per http oder über das Websocket-Kommando 'setnumphases' vornehmen. Da im Falle eines nur einphasigen Stromzählers auch der MeterFactor umgestellt werden muss, gibt es nun auch dazu korrespondierend den API-Call 'setMeterFactor'. Auch im ModBus-Master finden sich in den Registern 40004 und 40005 die entsprechenden Einstellungen zum Lesen und Schreiben.
Im 'Settings'-Dialog kann der Zustand der Phasenumschaltung nach dem Booten unter 'Three phase operation' festgelegt werden. Initial ist die Phasenumschaltung gänzlich deaktiviert. Um die Funktion freizuschalten, empfiehlt es sich ein Backup der Einstellungen herunterzuladen und mit dem Texteditor den Wert 'numPhases' auf 1 oder 3 zu setzen. Danach wird das Backup wieder eingespielt.
Per Web-API würde die Phasenumschaltung so vorgenommen werden, wenn man den PV-Überschuss als Leistung übergibt:
Code: Alles auswählen
function wbset (power)
{
var amps;
if(power < 1380) {
wget(evseuri+"setStatus?active=false");
} else {
if(power < 4140) {
wget(evseuri+"setNumPhases?numPhases=1");
await sleep(1000);
wget(evseuri+"setMeterFactor?meterFactor=1");
await sleep(1000);
amps = power/230;
} else {
wget(evseuri+"setNumPhases?numPhases=3");
await sleep(1000);
wget(evseuri+"setMeterFactor?meterFactor=3");
await sleep(1000);
amps = power/230/3;
}
wget(evseuri+"setCurrent?current="+parseInt(amps));
await sleep(1000);
wget(evseuri+"setStatus?active=true");
}
}
Meine Entwicklungen sind spontan über die Pfingstfeiertage entstanden und ich hatte nur ein normales ESP32 Devkit-Board herumliegen, das ich zusammen mit einem Simple EVSE WB-Modul in ein 2TE-Hutschienengehäuse geklebt habe. Für den nicht so versierten Bastler empfehle ich natürlich das offizielle EVSE-Wifi-Modul, das alle Schnittstellen einfach zugänglich zur Verfügung stellt.
Der Quellcode meines Forks ist unter https://github.com/baycom/SimpleEVSE-WiFi zu finden. Alle neuen Funktionen sind sicherheitshalber nur im Environment 'esp32doit-devkit-v1' verfügbar. Vielleicht fühlt sich Mathias motiviert den Pull-Request in seinen Code zu integrieren.