TapHome

go-e Gemini flex Wallbox

Packet Parser → HTTP
Přidal
Poslední aktualizace: 03. 2026
go-e Gemini flex Wallbox

go-e Gemini flex je rakouský EV wallbox dostupný ve variantách 11 kW (16 A) a 22 kW (32 A), přičemž novější model Gemini flex 2.0 disponuje integrovaným 4G LTE modulem. TapHome komunikuje s nabíječkou přes lokální HTTP API v2 po Wi-Fi — cloudové připojení není vyžadováno. API je nutné explicitně povolit v aplikaci go-e, než se TapHome může připojit.

Šablona poskytuje monitorování stavu nabíječky, ovládání nabíjecího proudu a režimu, přepínání fází, měření napětí a proudu na jednotlivých fázích a zapisovací vstupy pro externí FV a síťová data umožňující přebytkové nabíjení.

Konfigurace

Povolení HTTP API

Lokální HTTP API v2 je ve výchozím stavu vypnuté. Pro jeho povolení:

  1. Připojte se k go-e Charger přes aplikaci go-e (dostupná pro iOS a Android)
  2. Přejděte do Nastavení > Připojení > Nastavení API
  3. Povolte „Povolit přístup k lokálnímu HTTP API vX"

Po povolení nabíječka odpovídá na HTTP požadavky na portu 80. Autentizace není vyžadována — přístup je řízen výhradně tímto přepínačem.

Nastavení sítě

go-e Gemini flex se připojuje přes Wi-Fi (802.11b/g/n, pouze 2,4 GHz). Ethernetový port není k dispozici. Při importu šablony TapHome zadejte IP adresu nabíječky.

go-e Charger nepodporuje mDNS. Aby nedocházelo k problémům s připojením po obnovení DHCP, nakonfigurujte statickou IP adresu nebo DHCP rezervaci na routeru pro MAC adresu nabíječky.

Nabíječka může pracovat v režimu hotspot (přímé připojení) nebo se připojit k existující Wi-Fi síti. Pro integraci s TapHome musí být nabíječka ve stejné síti jako TapHome CCU.

Možnosti zařízení

Stav nabíječky

Zařízení Stav nabíječky zobrazuje aktuální stav připojení a nabíjení jako vícehodnotový indikátor (pouze pro čtení). API klíč car vrací jeden z pěti stavů: Porucha (0), Dostupná (1), Nabíjení (2), Příprava (3) nebo Dokončeno (4). To umožňuje automatizacím TapHome reagovat na to, zda je vozidlo připojeno, aktivně se nabíjí nebo dokončilo relaci.

Ovládání nabíjecího proudu a režimu

Dvě ovladatelná zařízení řídí způsob fungování nabíječky:

  • Nabíjecí proud — vybírá požadovaný nabíjecí proud ze šesti diskrétních hodnot: 6, 8, 10, 12, 14 a 16 A. Šablona mapuje tyto hodnoty na pozice přepínače 0–5 pomocí vzorce amp/2 - 3 pro čtení a (position + 3) × 2 pro zápis. Hodnoty se odesílají na nabíječku přes api/set?amp={value}.

  • Režim nabíjení — vybírá logiku nabíjení: Základní (výchozí nepřetržité nabíjení), Eco (cenově optimalizované přes tarif Awattar) nebo Denní cesta (automatické zastavení po dosažení cíle). API používá hodnoty 3, 4 a 5; šablona je mapuje na pozice 0, 1 a 2.

Selektor nabíjecího proudu mapuje pouze šest hodnot (6–16 A v krocích po 2 A). Varianta 22 kW nabíječky Gemini flex podporuje až 32 A, ale hodnoty nad 16 A nejsou pokryty touto šablonou. Pro použití vyšších proudů lze API klíč amp nastavit přímo mimo šablonu.

Přepínání fází

Zařízení Přepínání fází řídí počet fází používaných nabíječkou: Automaticky (0), 1fázové (1) nebo 3fázové (2). go-e Charger podporuje přepínání fází i během aktivní nabíjecí relace. V automatickém režimu nabíječka zvolí optimální konfiguraci fází podle dostupného výkonu.

Měření energie

Šablona čte napětí a proud na jednotlivých fázích z pole nrg nabíječky, které obsahuje 16 hodnot aktualizovaných v každém cyklu dotazování:

ZařízeníZdrojJednotka
L1 Napětínrg[0]V
L2 Napětínrg[1]V
L3 Napětínrg[2]V
L1 Proudnrg[5]A
L2 Proudnrg[6]A
L3 Proudnrg[7]A
Aktuální spotřebanrg[12]W

Zařízení Aktuální spotřeba zobrazuje celkový aktivní nabíjecí výkon ve wattech. Všechny energetické hodnoty jsou pouze pro čtení.

Vstupy pro přebytkové FV nabíjení

Dvě zařízení (pouze pro zápis) umožňují TapHome zasílat externí energetická data do nabíječky pro výpočty přebytkového nabíjení:

  • Výkon do sítě — odesílá aktuální výkon exportu/importu do sítě (v kW, převedený na W násobením 1000) přes api/set?ids={"pGrid":value}
  • FV výkon — odesílá aktuální fotovoltaickou produkci (v kW, převedenou na W násobením 1000) přes api/set?ids={"pPv":value}

Tato zařízení nečtou data z nabíječky. go-e Charger sám neměří výkon sítě ani FV — spoléhá se na externí zdroje, které mu tyto informace poskytují. V typické konfiguraci TapHome se hodnoty ze samostatného elektroměru nebo solárního střídače (také integrovaného v TapHome) přeposílají na nabíječku přes tato zapisovací zařízení, čímž se aktivuje režim Eco pro optimalizaci vlastní spotřeby.

Pro použití přebytkového FV nabíjení nastavte režim nabíjení na Eco a poté pomocí automatizací TapHome pravidelně zapisujte aktuální hodnoty výkonu sítě a FV produkce do zařízení Výkon do sítě a FV výkon. Nabíječka automaticky přizpůsobí nabíjecí proud podle dostupného přebytku.

Další možnosti

API go-e Charger v2 zpřístupňuje další data, která momentálně nejsou mapována v šabloně: výkon na fázi (W) a účiník, napětí neutrálního vodiče, celkovou spotřebovanou energii (eto ve Wh), energii za relaci (wh), kódy chybových stavů, proudový limit kabelu, teplotní senzory, frekvenci sítě, řízení nuceného nabíjení, nastavení energetického limitu a konfiguraci minimálního/maximálního proudu. Tyto je možné přidat v budoucí aktualizaci šablony.

Řešení problémů

Zařízení neodpovídá
  1. Ověřte, že nabíječka je připojena k Wi-Fi a má platnou IP adresu — zkontrolujte v aplikaci go-e v části Nastavení > Připojení
  2. Potvrďte, že HTTP API je povoleno (Nastavení > Připojení > Nastavení API)
  3. Otevřete http://{charger-ip}/api/status v prohlížeči — pokud odpoví JSON, API je dostupné
  4. Zkontrolujte, že TapHome CCU a nabíječka jsou ve stejné síti / VLAN
Nabíjecí proud se nemění
  1. Šablona mapuje pouze šest hodnot (6, 8, 10, 12, 14, 16 A). Pokud nabíječka zobrazuje jinou hodnotu (např. 20 A nastavenou přes aplikaci), TapHome zobrazí nejbližší mapovanou pozici
  2. Ověřte, že firmware nabíječky je verze 051.4 nebo novější — starší firmware používá odlišnou syntaxi filtru, což může způsobit problémy s parsováním
Přebytkové FV nabíjení nefunguje
  1. Potvrďte, že režim nabíjení je nastaven na Eco — logika přebytku se aktivuje pouze v tomto režimu
  2. Ověřte, že hodnoty Výkon do sítě a FV výkon se zapisují pravidelně (alespoň každých 30 sekund)
  3. Zkontrolujte, že hodnoty jsou v kW (šablona je automaticky převádí na W)
  4. Otevřete http://{charger-ip}/api/status?filter=pgrid,ppv pro ověření, že nabíječka přijímá hodnoty

API klíč eto (celková energie) je zahrnut ve filtru stavu, ale není exponován jako zařízení v šabloně. Hodnota celkové energie se načítá, ale nepoužívá.

Dostupná zařízení

go-e Wallbox Modul
Vlastní proměnné

Go-e

Čtení (modul)
responseJson := "error";



VAR response := SENDHTTPREQUEST("api/status?filter=car,nrg,psm,amp,eto,lmo");

IF response.IsSuccess
    responseJson := response.Content;
ELSE
    VAR contentJson := response.Content;
    VAR errCode := response.StatusCode;
    VAR message := PARSEJSON(contentJson, "message");
    #ADDERROR("Failed to read data - (" + errCode + ") " + message);
END
Stav nabíječky Vícestavový přepínač Pouze ke čtení

Stav připojení vozidla a nabíjení — Porucha, Dostupná, Nabíjení, Příprava, Dokončeno

uint8
Hodnoty / Stavy: Failure · Available · Charging · Preparing · Finished

Stav nabíječky

Čtení stavu přepínače
RETURN(PARSEjson(responseJson, "car"));
Zápis stavu přepínače
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/set/value=" + Mu);
# IF response.IsSuccess = false
#  ADDERROR(response.StatusCode);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/setValue", "GET", "value=" + Mu, "header1:value1", "header2:value2", ...);\r
# Or VAR request := HTTPREQUEST("/example/setValue");
# request.Method := "PUT";
# VAR response := SENDHTTPREQUEST(request);
#r
#
# Send TCP, UDP data:
# VAR data1 := "{\"name\":\"John\", \"age\":" + Mu + "}";
# SENDDATA(data1);
# VAR data2 := TOBYTES("{\"name\":\"John\", \"age\":" + Mu + "}", "iso-8859-1");
# SENDDATA(data2);
# You can process received TCP or UDP data in the Listener script
#
#
# Upload data to FTP:
# FTPUPLOAD("filePath", "somedata=" + Mu, "write"); # use "append" mode to append data to existing file
Nabíjecí proud Vícestavový přepínač

Selektor požadovaného nabíjecího proudu — 6, 8, 10, 12, 14, 16 A v diskrétních krocích

uint8 Jednotka: A numeric
Hodnoty / Stavy: 6-Amp · 8-Amp · 10-Amp · 12-Amp · 14-Amp · 16-Amp

Nabíjecí proud

Čtení stavu přepínače
VAR ampers := PARSEjson(responseJson, "amp");
RETURN(ampers/2-3);
Zápis stavu přepínače
VAR amps:= (Mu +3)*2;
VAR response := SENDHTTPREQUEST("api/set?amp=" + amps);
IF response.IsSuccess = false
ADDERROR(response.StatusCode);
END
Režim nabíjení Vícestavový přepínač

Selektor logiky nabíjení — Základní (nepřetržité), Eco (cenově optimalizované / FV přebytek), Denní cesta (automatické zastavení při dosažení cíle)

uint8 numeric
Hodnoty / Stavy: Basic · Eco · Daily trip

Režim nabíjení

Čtení stavu přepínače
RETURN(PARSEjson(responseJson, "lmo")-3);
Zápis stavu přepínače
VAR response := SENDHTTPREQUEST("api/set?lmo=" + (Mu+3));
IF response.IsSuccess = false
ADDERROR(response.StatusCode);
END
Aktuální spotřeba Proměnná Pouze ke čtení

Celkový aktivní nabíjecí výkon na všech fázích (W)

numeric Jednotka: W json_path

Aktuální spotřeba

Čtení
VAR a := PARSETEXT (PARSEjson(responseJson, "nrg"), "[", "]");
VAR b := SPLIT(a,",");
RETURN(TODOUBLE(GETAT(b,12)))
Zápis
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/set/value=" + Va);
# IF response.IsSuccess = false
#  ADDERROR(response.StatusCode);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/setValue", "GET", "value=" + Va, "header1:value1", "header2:value2", ...);\r
# Or VAR request := HTTPREQUEST("/example/setValue");
# request.Method := "PUT";
# VAR response := SENDHTTPREQUEST(request);
#r
#
# Send TCP, UDP data:
# VAR data1 := "{\"name\":\"John\", \"age\":" + Va + "}";
# SENDDATA(data1);
# VAR data2 := TOBYTES("{\"name\":\"John\", \"age\":" + Va + "}", "iso-8859-1");
# SENDDATA(data2);
# You can process received TCP or UDP data in the Listener script
#
#
# Upload data to FTP:
# FTPUPLOAD("filePath", "somedata=" + Va, "write"); # use "append" mode to append data to existing file
Čtení (modul)
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/getValue");
# IF response.IsSuccess
#  VAR content := response.Content;
#  VAR responseHeaders := response.Headers;
#  RETURN(PARSEXML(content, "//element1/value1"));
# ELSE
#  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
#  RETURN(NaN);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/getValue", "GET", "some data", "header1:value1", "header2:value2", ...);
# OR
# VAR request := HTTPREQUEST("/example/getValue", "POST", "some data");
# request.headers := { "header1:value1", "header2:value2", ...};
# request.method := "GET";
# request.data := null;
# VAR response := SENDHTTPREQUEST(request);
#
#
# Send TCP, UDP data:
# VAR data1 := BYTECOLLECTION("0a bb ea df 01");
# SENDDATA(data1);
# VAR data2 := "{\"name\":\"John\", \"age\":32}";
# SENDDATA(data2);
# VAR data3 := TOBYTES("{\"name\":\"John\", \"age\":32}", "iso-8859-1");
# SENDDATA(data3);
# Process received TCP or UDP data and set device values in the Listener script
#
#
# Download data from FTP:
# FTPDOWNLOAD("filePath");
L1 Proud Proměnná Pouze ke čtení
numeric Jednotka: A json_path

L1 Proud

Čtení
VAR a := PARSETEXT (PARSEjson(responseJson, "nrg"), "[", "]");
VAR b := SPLIT(a,",");
RETURN(TODOUBLE(GETAT(b,5)))
Zápis
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/set/value=" + Va);
# IF response.IsSuccess = false
#  ADDERROR(response.StatusCode);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/setValue", "GET", "value=" + Va, "header1:value1", "header2:value2", ...);\r
# Or VAR request := HTTPREQUEST("/example/setValue");
# request.Method := "PUT";
# VAR response := SENDHTTPREQUEST(request);
#r
#
# Send TCP, UDP data:
# VAR data1 := "{\"name\":\"John\", \"age\":" + Va + "}";
# SENDDATA(data1);
# VAR data2 := TOBYTES("{\"name\":\"John\", \"age\":" + Va + "}", "iso-8859-1");
# SENDDATA(data2);
# You can process received TCP or UDP data in the Listener script
#
#
# Upload data to FTP:
# FTPUPLOAD("filePath", "somedata=" + Va, "write"); # use "append" mode to append data to existing file
Čtení (modul)
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/getValue");
# IF response.IsSuccess
#  VAR content := response.Content;
#  VAR responseHeaders := response.Headers;
#  RETURN(PARSEXML(content, "//element1/value1"));
# ELSE
#  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
#  RETURN(NaN);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/getValue", "GET", "some data", "header1:value1", "header2:value2", ...);
# OR
# VAR request := HTTPREQUEST("/example/getValue", "POST", "some data");
# request.headers := { "header1:value1", "header2:value2", ...};
# request.method := "GET";
# request.data := null;
# VAR response := SENDHTTPREQUEST(request);
#
#
# Send TCP, UDP data:
# VAR data1 := BYTECOLLECTION("0a bb ea df 01");
# SENDDATA(data1);
# VAR data2 := "{\"name\":\"John\", \"age\":32}";
# SENDDATA(data2);
# VAR data3 := TOBYTES("{\"name\":\"John\", \"age\":32}", "iso-8859-1");
# SENDDATA(data3);
# Process received TCP or UDP data and set device values in the Listener script
#
#
# Download data from FTP:
# FTPDOWNLOAD("filePath");
L1 Napětí Proměnná Pouze ke čtení
numeric Jednotka: V json_path

L1 Napětí

Čtení
VAR a := PARSETEXT (PARSEjson(responseJson, "nrg"), "[", "]");
VAR b := SPLIT(a,",");
RETURN(TODOUBLE(GETAT(b,0)))
Zápis
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/set/value=" + Va);
# IF response.IsSuccess = false
#  ADDERROR(response.StatusCode);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/setValue", "GET", "value=" + Va, "header1:value1", "header2:value2", ...);\r
# Or VAR request := HTTPREQUEST("/example/setValue");
# request.Method := "PUT";
# VAR response := SENDHTTPREQUEST(request);
#r
#
# Send TCP, UDP data:
# VAR data1 := "{\"name\":\"John\", \"age\":" + Va + "}";
# SENDDATA(data1);
# VAR data2 := TOBYTES("{\"name\":\"John\", \"age\":" + Va + "}", "iso-8859-1");
# SENDDATA(data2);
# You can process received TCP or UDP data in the Listener script
#
#
# Upload data to FTP:
# FTPUPLOAD("filePath", "somedata=" + Va, "write"); # use "append" mode to append data to existing file
Čtení (modul)
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/getValue");
# IF response.IsSuccess
#  VAR content := response.Content;
#  VAR responseHeaders := response.Headers;
#  RETURN(PARSEXML(content, "//element1/value1"));
# ELSE
#  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
#  RETURN(NaN);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/getValue", "GET", "some data", "header1:value1", "header2:value2", ...);
# OR
# VAR request := HTTPREQUEST("/example/getValue", "POST", "some data");
# request.headers := { "header1:value1", "header2:value2", ...};
# request.method := "GET";
# request.data := null;
# VAR response := SENDHTTPREQUEST(request);
#
#
# Send TCP, UDP data:
# VAR data1 := BYTECOLLECTION("0a bb ea df 01");
# SENDDATA(data1);
# VAR data2 := "{\"name\":\"John\", \"age\":32}";
# SENDDATA(data2);
# VAR data3 := TOBYTES("{\"name\":\"John\", \"age\":32}", "iso-8859-1");
# SENDDATA(data3);
# Process received TCP or UDP data and set device values in the Listener script
#
#
# Download data from FTP:
# FTPDOWNLOAD("filePath");
L2 Proud Proměnná Pouze ke čtení
numeric Jednotka: A json_path

L2 Proud

Čtení
VAR a := PARSETEXT (PARSEjson(responseJson, "nrg"), "[", "]");
VAR b := SPLIT(a,",");
RETURN(TODOUBLE(GETAT(b,6)))
Zápis
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/set/value=" + Va);
# IF response.IsSuccess = false
#  ADDERROR(response.StatusCode);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/setValue", "GET", "value=" + Va, "header1:value1", "header2:value2", ...);\r
# Or VAR request := HTTPREQUEST("/example/setValue");
# request.Method := "PUT";
# VAR response := SENDHTTPREQUEST(request);
#r
#
# Send TCP, UDP data:
# VAR data1 := "{\"name\":\"John\", \"age\":" + Va + "}";
# SENDDATA(data1);
# VAR data2 := TOBYTES("{\"name\":\"John\", \"age\":" + Va + "}", "iso-8859-1");
# SENDDATA(data2);
# You can process received TCP or UDP data in the Listener script
#
#
# Upload data to FTP:
# FTPUPLOAD("filePath", "somedata=" + Va, "write"); # use "append" mode to append data to existing file
Čtení (modul)
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/getValue");
# IF response.IsSuccess
#  VAR content := response.Content;
#  VAR responseHeaders := response.Headers;
#  RETURN(PARSEXML(content, "//element1/value1"));
# ELSE
#  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
#  RETURN(NaN);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/getValue", "GET", "some data", "header1:value1", "header2:value2", ...);
# OR
# VAR request := HTTPREQUEST("/example/getValue", "POST", "some data");
# request.headers := { "header1:value1", "header2:value2", ...};
# request.method := "GET";
# request.data := null;
# VAR response := SENDHTTPREQUEST(request);
#
#
# Send TCP, UDP data:
# VAR data1 := BYTECOLLECTION("0a bb ea df 01");
# SENDDATA(data1);
# VAR data2 := "{\"name\":\"John\", \"age\":32}";
# SENDDATA(data2);
# VAR data3 := TOBYTES("{\"name\":\"John\", \"age\":32}", "iso-8859-1");
# SENDDATA(data3);
# Process received TCP or UDP data and set device values in the Listener script
#
#
# Download data from FTP:
# FTPDOWNLOAD("filePath");
L2 Napětí Proměnná Pouze ke čtení
numeric Jednotka: V json_path

L2 Napětí

Čtení
VAR a := PARSETEXT (PARSEjson(responseJson, "nrg"), "[", "]");
VAR b := SPLIT(a,",");
RETURN(TODOUBLE(GETAT(b,1)))
Zápis
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/set/value=" + Va);
# IF response.IsSuccess = false
#  ADDERROR(response.StatusCode);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/setValue", "GET", "value=" + Va, "header1:value1", "header2:value2", ...);\r
# Or VAR request := HTTPREQUEST("/example/setValue");
# request.Method := "PUT";
# VAR response := SENDHTTPREQUEST(request);
#r
#
# Send TCP, UDP data:
# VAR data1 := "{\"name\":\"John\", \"age\":" + Va + "}";
# SENDDATA(data1);
# VAR data2 := TOBYTES("{\"name\":\"John\", \"age\":" + Va + "}", "iso-8859-1");
# SENDDATA(data2);
# You can process received TCP or UDP data in the Listener script
#
#
# Upload data to FTP:
# FTPUPLOAD("filePath", "somedata=" + Va, "write"); # use "append" mode to append data to existing file
Čtení (modul)
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/getValue");
# IF response.IsSuccess
#  VAR content := response.Content;
#  VAR responseHeaders := response.Headers;
#  RETURN(PARSEXML(content, "//element1/value1"));
# ELSE
#  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
#  RETURN(NaN);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/getValue", "GET", "some data", "header1:value1", "header2:value2", ...);
# OR
# VAR request := HTTPREQUEST("/example/getValue", "POST", "some data");
# request.headers := { "header1:value1", "header2:value2", ...};
# request.method := "GET";
# request.data := null;
# VAR response := SENDHTTPREQUEST(request);
#
#
# Send TCP, UDP data:
# VAR data1 := BYTECOLLECTION("0a bb ea df 01");
# SENDDATA(data1);
# VAR data2 := "{\"name\":\"John\", \"age\":32}";
# SENDDATA(data2);
# VAR data3 := TOBYTES("{\"name\":\"John\", \"age\":32}", "iso-8859-1");
# SENDDATA(data3);
# Process received TCP or UDP data and set device values in the Listener script
#
#
# Download data from FTP:
# FTPDOWNLOAD("filePath");
L3 Proud Proměnná Pouze ke čtení
numeric Jednotka: A json_path

L3 Proud

Čtení
VAR a := PARSETEXT (PARSEjson(responseJson, "nrg"), "[", "]");
VAR b := SPLIT(a,",");
RETURN(TODOUBLE(GETAT(b,7)))
Zápis
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/set/value=" + Va);
# IF response.IsSuccess = false
#  ADDERROR(response.StatusCode);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/setValue", "GET", "value=" + Va, "header1:value1", "header2:value2", ...);\r
# Or VAR request := HTTPREQUEST("/example/setValue");
# request.Method := "PUT";
# VAR response := SENDHTTPREQUEST(request);
#r
#
# Send TCP, UDP data:
# VAR data1 := "{\"name\":\"John\", \"age\":" + Va + "}";
# SENDDATA(data1);
# VAR data2 := TOBYTES("{\"name\":\"John\", \"age\":" + Va + "}", "iso-8859-1");
# SENDDATA(data2);
# You can process received TCP or UDP data in the Listener script
#
#
# Upload data to FTP:
# FTPUPLOAD("filePath", "somedata=" + Va, "write"); # use "append" mode to append data to existing file
Čtení (modul)
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/getValue");
# IF response.IsSuccess
#  VAR content := response.Content;
#  VAR responseHeaders := response.Headers;
#  RETURN(PARSEXML(content, "//element1/value1"));
# ELSE
#  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
#  RETURN(NaN);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/getValue", "GET", "some data", "header1:value1", "header2:value2", ...);
# OR
# VAR request := HTTPREQUEST("/example/getValue", "POST", "some data");
# request.headers := { "header1:value1", "header2:value2", ...};
# request.method := "GET";
# request.data := null;
# VAR response := SENDHTTPREQUEST(request);
#
#
# Send TCP, UDP data:
# VAR data1 := BYTECOLLECTION("0a bb ea df 01");
# SENDDATA(data1);
# VAR data2 := "{\"name\":\"John\", \"age\":32}";
# SENDDATA(data2);
# VAR data3 := TOBYTES("{\"name\":\"John\", \"age\":32}", "iso-8859-1");
# SENDDATA(data3);
# Process received TCP or UDP data and set device values in the Listener script
#
#
# Download data from FTP:
# FTPDOWNLOAD("filePath");
L3 Napětí Proměnná Pouze ke čtení
numeric Jednotka: V json_path

L3 Napětí

Čtení
VAR a := PARSETEXT (PARSEjson(responseJson, "nrg"), "[", "]");
VAR b := SPLIT(a,",");
RETURN(TODOUBLE(GETAT(b,2)))
Zápis
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/set/value=" + Va);
# IF response.IsSuccess = false
#  ADDERROR(response.StatusCode);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/setValue", "GET", "value=" + Va, "header1:value1", "header2:value2", ...);\r
# Or VAR request := HTTPREQUEST("/example/setValue");
# request.Method := "PUT";
# VAR response := SENDHTTPREQUEST(request);
#r
#
# Send TCP, UDP data:
# VAR data1 := "{\"name\":\"John\", \"age\":" + Va + "}";
# SENDDATA(data1);
# VAR data2 := TOBYTES("{\"name\":\"John\", \"age\":" + Va + "}", "iso-8859-1");
# SENDDATA(data2);
# You can process received TCP or UDP data in the Listener script
#
#
# Upload data to FTP:
# FTPUPLOAD("filePath", "somedata=" + Va, "write"); # use "append" mode to append data to existing file
Čtení (modul)
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/getValue");
# IF response.IsSuccess
#  VAR content := response.Content;
#  VAR responseHeaders := response.Headers;
#  RETURN(PARSEXML(content, "//element1/value1"));
# ELSE
#  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
#  RETURN(NaN);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/getValue", "GET", "some data", "header1:value1", "header2:value2", ...);
# OR
# VAR request := HTTPREQUEST("/example/getValue", "POST", "some data");
# request.headers := { "header1:value1", "header2:value2", ...};
# request.method := "GET";
# request.data := null;
# VAR response := SENDHTTPREQUEST(request);
#
#
# Send TCP, UDP data:
# VAR data1 := BYTECOLLECTION("0a bb ea df 01");
# SENDDATA(data1);
# VAR data2 := "{\"name\":\"John\", \"age\":32}";
# SENDDATA(data2);
# VAR data3 := TOBYTES("{\"name\":\"John\", \"age\":32}", "iso-8859-1");
# SENDDATA(data3);
# Process received TCP or UDP data and set device values in the Listener script
#
#
# Download data from FTP:
# FTPDOWNLOAD("filePath");
Přepínání fází Vícestavový přepínač

Konfigurace fází — Automaticky (rozhoduje nabíječka), 1fázové (vynucené), 3fázové (vynucené). Přepínání je možné i během aktivního nabíjení.

uint8
Hodnoty / Stavy: Automatic · 1-Phase · 3-Phase

Přepínání fází

Čtení stavu přepínače
RETURN(PARSEjson(responseJson, "psm"));
Zápis stavu přepínače
VAR response := SENDHTTPREQUEST("api/set?psm=" + Mu);
IF response.IsSuccess = false
ADDERROR(response.StatusCode);
END
Výkon do sítě Proměnná

Pouze pro zápis — odesílá externí data o výkonu sítě (kW) na nabíječku pro výpočty přebytkového nabíjení

numeric Jednotka: kW json_path

Výkon do sítě

Zápis
VAR pgrid := "{\"pGrid\":"+ Round(Va*1000)+"}";

VAR response := SENDHTTPREQUEST("api/set?ids=" + pgrid);

IF response.IsSuccess = false
ADDERROR(response.StatusCode);
END
Čtení (modul)
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/getValue");
# IF response.IsSuccess
#  VAR content := response.Content;
#  VAR responseHeaders := response.Headers;
#  RETURN(PARSEXML(content, "//element1/value1"));
# ELSE
#  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
#  RETURN(NaN);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/getValue", "GET", "some data", "header1:value1", "header2:value2", ...);
# OR
# VAR request := HTTPREQUEST("/example/getValue", "POST", "some data");
# request.headers := { "header1:value1", "header2:value2", ...};
# request.method := "GET";
# request.data := null;
# VAR response := SENDHTTPREQUEST(request);
#
#
# Send TCP, UDP data:
# VAR data1 := BYTECOLLECTION("0a bb ea df 01");
# SENDDATA(data1);
# VAR data2 := "{\"name\":\"John\", \"age\":32}";
# SENDDATA(data2);
# VAR data3 := TOBYTES("{\"name\":\"John\", \"age\":32}", "iso-8859-1");
# SENDDATA(data3);
# Process received TCP or UDP data and set device values in the Listener script
#
#
# Download data from FTP:
# FTPDOWNLOAD("filePath");
FV výkon Proměnná

Pouze pro zápis — odesílá externí data o FV produkci (kW) na nabíječku pro výpočty přebytkového nabíjení

numeric Jednotka: kW json_path

FV výkon

Zápis
VAR pPv := "{\"pPv\":"+ Round(Va*1000)+"}";

VAR response := SENDHTTPREQUEST("api/set?ids=" + pPv);

IF response.IsSuccess = false
ADDERROR(response.StatusCode);
END
Čtení (modul)
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/getValue");
# IF response.IsSuccess
#  VAR content := response.Content;
#  VAR responseHeaders := response.Headers;
#  RETURN(PARSEXML(content, "//element1/value1"));
# ELSE
#  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
#  RETURN(NaN);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/getValue", "GET", "some data", "header1:value1", "header2:value2", ...);
# OR
# VAR request := HTTPREQUEST("/example/getValue", "POST", "some data");
# request.headers := { "header1:value1", "header2:value2", ...};
# request.method := "GET";
# request.data := null;
# VAR response := SENDHTTPREQUEST(request);
#
#
# Send TCP, UDP data:
# VAR data1 := BYTECOLLECTION("0a bb ea df 01");
# SENDDATA(data1);
# VAR data2 := "{\"name\":\"John\", \"age\":32}";
# SENDDATA(data2);
# VAR data3 := TOBYTES("{\"name\":\"John\", \"age\":32}", "iso-8859-1");
# SENDDATA(data3);
# Process received TCP or UDP data and set device values in the Listener script
#
#
# Download data from FTP:
# FTPDOWNLOAD("filePath");
Připojení: Packet Parser → HTTP
Možná vylepšení (18)
  • Voltage N — Neutral voltage in V, available in nrg array index 3
  • Per-phase Power (L1, L2, L3, N) — Individual phase power in W — template only reads total power (nrg[12])
  • Power Factor (L1, L2, L3) — Power factor per phase, available in nrg array
  • Total Energy — Total energy consumed in Wh — included in status filter but not exposed as a device
  • Session Energy — Energy consumed in current charging session (Wh)
  • Error State — Error code — None, FiAc, FiDc, Phase, Overvolt, Overamp, etc. Useful for diagnostics.
  • Allow Charging — Whether the car is presently allowed to charge
  • Force State — Force charger state: Neutral=0, Off=1, On=2. Read/write. Could override charging logic.
  • Cable Current Limit — Maximum current the connected cable supports (A)
  • Temperature Sensors — Controller and charger temperature sensors array
  • Grid Frequency — Grid frequency in Hz
  • Firmware Version — Current firmware version string
  • Serial Number — Device serial number
  • Uptime — Time since boot in milliseconds
  • Energy Limit — Charging energy limit in Wh (null=disabled). Read/write.
  • Ampere Maximum — Maximum ampere limit (R/W)
  • Minimum Charging Current — Minimum charging current (R/W)
  • PV Surplus Feature — Enable/disable PV surplus charging (boolean, R/W)

Zdroje

  • go-eCharger API v2 — HTTP API Reference
    github.com 2026-03-27
  • go-e Charger Gemini flex — Data Sheet V1.4
    go-e.com 2026-03-27
    PDF
  • ha-goecharger-api2 — Home Assistant Integration
    github.com 2026-03-27