GoE — go-e Charger Library für ESP32. Fork von https://codeberg.org/LukasAnders/esp32-libgoe
| examples/BasicStatus | ||
| src | ||
| test | ||
| .gitignore | ||
| library.properties | ||
| LICENSE | ||
| LICENSE.de | ||
| Makefile | ||
| README.md | ||
| README.WiFi.md | ||
GoE — go-e Charger Library für ESP32
C++ Library für die go-e Charger Gemini HTTP API v2 auf ESP32 (Arduino).
Architektur
GoEApi Braucht nur eine IP. Spricht HTTP.
└── GoE Fügt WiFi-Hotspot-Verbindung und IP-Erkennung hinzu.
- GoEApi — Wenn die Netzwerkverbindung extern verwaltet wird (z.B. Charger im Heim-WLAN, IP bekannt)
- GoE — Wenn direkt zum Charger-Hotspot verbunden werden soll
Schnellstart
Charger im Netzwerk (IP bekannt)
#include <GoE.h>
GoE goe("192.168.1.15");
void setup() {
WiFi.begin("MeinWLAN", "MeinPasswort");
while (WiFi.status() != WL_CONNECTED) delay(500);
}
void loop() {
GoEStatus s;
if (goe.getStatus(s)) {
Serial.printf("car=%d %dA %.2fkW\n", s.car, s.amp, s.powerKw());
}
delay(10000);
}
Direkt zum Charger-Hotspot
#include <GoE.h>
GoE goe;
void setup() {
if (goe.connect("go-e-xxxxxx", "***********")) {
Serial.println("Charger-IP: " + goe.getIP());
}
}
void loop() {
GoEStatus s;
if (goe.getStatus(s)) {
Serial.printf("car=%d %dA %.2fkW\n", s.car, s.amp, s.powerKw());
}
delay(10000);
}
API
Status lesen
GoEStatus s;
goe.getStatus(s);
s.car // GoECarStatus: CAR_IDLE, CAR_CHARGING, CAR_COMPLETE, ...
s.amp // Ladestrom (A)
s.frc // GoEForceState: FRC_NEUTRAL, FRC_OFF, FRC_ON
s.psm // GoEPhaseMode: PSM_AUTO, PSM_1PHASE, PSM_3PHASE
s.err // GoEError: ERR_NONE, ERR_OVERVOLT, ...
s.wh // Geladene Energie Session (Wh)
s.eto // Gesamtenergie seit Start (Wh)
s.dwo // Energie-Limit (Wh), 0 = kein Limit
s.alw // Laden erlaubt?
s.fna // Friendly Name
s.nrg[0..15] // Energie-Array (Spannung, Strom, Leistung, PF)
s.powerKw() // Gesamtleistung in kW
s.voltL1() // Spannung L1 (V)
s.ampL1() // Strom L1 (A)
s.isCharging() // car == CAR_CHARGING?
s.hasError() // err != ERR_NONE?
Werte setzen
goe.setAmp(16); // Ladestrom
goe.setForceState(FRC_ON); // Laden erzwingen
goe.startCharging(10); // frc=2 + amp=10
goe.stopCharging(); // frc=1
goe.setPhase(PSM_3PHASE); // 3-phasig
goe.setEnergyLimit(20000); // 20 kWh Limit
goe.clearEnergyLimit(); // Limit entfernen
Zeitsync
goe.syncTime(); // ESP32-RTC vom Charger setzen
Roher API-Zugriff
JsonDocument doc;
goe.apiGet("car,nrg,amp", doc); // Beliebige Keys abfragen
goe.apiSet("amp=16&frc=2"); // Beliebige Keys setzen
Build
make test # Kompilieren
make upload # Flash
make monitor # Serial Monitor
make upload-monitor # Flash + Monitor
make test DEBUG=1 # Mit Debug-Ausgaben ([GoE] ...)
make upload DEBUG=1
Abhängigkeiten
- ESP32 Arduino Core
- ArduinoJson v7
Voraussetzung am Charger
In der go-e App: Internet → Erweiterte Einstellungen → Lokale HTTP API v2 aktivieren.
Dateien
src/GoEApi.h/.cpp Basisklasse (HTTP API)
src/GoE.h/.cpp Erweiterte Klasse (WiFi + IP-Erkennung)
test/test.ino Test-Sketch
examples/ Arduino-IDE-kompatible Beispiele
README.WiFi.md WiFi-Strategien und Stromverbrauch
go-e
Der go-e Charger, der in diesem Projekt verwendet wird, ist ein Produkt der österreichischen Firma go-e GmbH.
go-e GmbH
Satellitenstraße 1
9560 Feldkirchen in Kärnten
ÖSTERREICH
- Webseite: https://go-e.com
- API Dokumentation: https://github.com/goecharger/go-eCharger-API-v2
- go-e Charger Gemini: https://go-e.com/de-ch/produkte/go-e-charger-gemini
Hinweis
Dies ist ein privates Hobbyprojekt ohne Verbindung zur go-e GmbH. Kein offizieller Code, kein Support durch den Hersteller.