GoE — go-e Charger Library für ESP32. Fork von https://codeberg.org/LukasAnders/esp32-libgoe
Find a file
2026-04-04 08:16:28 +02:00
examples/BasicStatus v0.0.1 - initial data commit 2026-03-28 15:38:01 +01:00
src v0.0.1 - initial data commit 2026-03-28 15:38:01 +01:00
test v0.0.1 - initial data commit 2026-03-28 15:38:01 +01:00
.gitignore v0.0.1 - initial data commit 2026-03-28 15:38:01 +01:00
library.properties v0.0.1 - initial data commit 2026-03-28 15:38:01 +01:00
LICENSE v0.0.1 - initial data commit 2026-03-28 15:38:01 +01:00
LICENSE.de v0.0.1 - initial data commit 2026-03-28 15:38:01 +01:00
Makefile v0.0.1 - initial data commit 2026-03-28 15:38:01 +01:00
README.md v0.0.1 - initial data commit 2026-03-28 15:38:01 +01:00
README.WiFi.md v0.0.1 - initial data commit 2026-03-28 15:38:01 +01:00

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

Hinweis

Dies ist ein privates Hobbyprojekt ohne Verbindung zur go-e GmbH. Kein offizieller Code, kein Support durch den Hersteller.