TapHome

go-e Gemini flex Wallbox

Packet Parser → HTTP
Autor
Posljednje ažuriranje: 08. 2026
go-e Gemini flex Wallbox

go-e Gemini flex je zidna punionica za električna vozila austrijske proizvodnje, dostupna u varijantama 11 kW (16 A) i 22 kW (32 A), a noviji model Gemini flex 2.0 ima ugrađen 4G LTE. TapHome s punionicom komunicira preko njezina lokalnog HTTP API v2 putem Wi-Fi mreže, bez potrebe za vezom s oblakom. API je potrebno izričito uključiti u aplikaciji go-e prije nego što se TapHome može spojiti.

Predložak omogućuje praćenje stanja punionice, upravljanje strujom punjenja, načinom punjenja i prisilnim stanjem, preklapanje faza, očitanje napona i struje po fazama, brojilo energije te ulaze samo za upis za vanjske podatke o snazi solarne elektrane i mreže, koji omogućuju punjenje viškom energije.

Konfiguracija

Uključivanje HTTP API-ja

Lokalni HTTP API v2 zadano je isključen. Za uključivanje:

  1. Spojite se na go-e Charger aplikacijom go-e (dostupna za iOS i Android)
  2. Otvorite Settings > Connection > API Settings
  3. Uključite „Allow access to local HTTP API vX”

Nakon uključivanja punionica odgovara na HTTP zahtjeve na portu 80. Autentifikacija nije potrebna, pristup se kontrolira isključivo ovim prekidačem.

Mrežne postavke

go-e Gemini flex spaja se preko Wi-Fi mreže (802.11b/g/n, samo 2,4 GHz). Žičani Ethernet priključak nema. Pri uvozu predloška u TapHome unesite IP adresu punionice.

go-e Charger ne podržava otkrivanje preko mDNS-a. Kako biste izbjegli probleme s povezivanjem nakon obnove DHCP zakupa, u usmjerivaču za MAC adresu punionice postavite statičku IP adresu ili DHCP rezervaciju.

Punionica može raditi u načinu hotspot (izravna veza) ili se spojiti na postojeću Wi-Fi mrežu. Za integraciju s TapHome punionica mora biti u istoj mreži kao TapHome CCU.

Mogućnosti uređaja

Stanje punionice

Uređaj Stanje punionice prikazuje trenutačno stanje priključenosti i punjenja kao indikator s više vrijednosti, samo za čitanje. API ključ car vraća jedno od pet stanja: Kvar (0), Dostupna (1), Punjenje (2), Priprema (3) ili Završeno (4). Tako se automatizacije u sustavu TapHome mogu pokretati ovisno o tome je li vozilo priključeno, puni li se ili je punjenje završeno.

Upravljanje strujom i načinom punjenja

Dva upravljiva uređaja određuju rad punionice:

  • Struja punjenja — odabire traženu struju punjenja između šest diskretnih vrijednosti: 6, 8, 10, 12, 14 i 16 A. Predložak ih preslikava na položaje prekidača s više vrijednosti 0–5 formulom amp/2 - 3 pri čitanju i (position + 3) × 2 pri upisu. Vrijednosti se punionici šalju preko api/set?amp={value}.

  • Način punjenja — odabire logiku punjenja: Osnovni (zadano neprekidno punjenje), Eco (optimizirano prema cijeni preko tarife Awattar) ili Dnevna vožnja (automatsko zaustavljanje nakon postizanja cilja). API koristi redom vrijednosti 3, 4 i 5, a predložak ih preslikava na položaje 0, 1 i 2.

Uređaj Struja punjenja preslikava samo šest vrijednosti (6–16 A u koracima od 2 A). Varijanta Gemini flex od 22 kW podržava do 32 A, ali vrijednosti iznad 16 A ovaj predložak ne pokriva. Za veće struje API ključ amp može se postaviti izravno, izvan predloška.

Prisilno stanje

Uređaj Prisilno stanje ima prednost pred odlukom punionice o tome hoće li puniti. API ključ frc prihvaća Neutralno (0 — odlučuje punionica), Zaustavljeno (1 — punjenje blokirano) i Punjenje (2 — punjenje prisilno uključeno). Vrijednost se upisuje preko api/set?frc={value} i čita natrag iz odgovora o stanju, zbog čega ova revizija predloška dodaje frc u filtar api/status.

Uređaj prikazuje i položaje 3–9 s brojčanim privremenim oznakama naslijeđenima iz predloška. API go-e za njih ne definira nikakvo značenje, pa koristite samo Neutralno, Zaustavljeno i Punjenje.

Preklapanje faza

Uređaj Preklapanje faza određuje koliko faza punionica koristi: Automatski (0), Jednofazno (1) ili Trofazno (2). go-e Charger podržava preklapanje faza čak i tijekom aktivnog punjenja. U automatskom načinu punionica odabire optimalnu konfiguraciju faza prema raspoloživoj snazi.

Praćenje energije

Predložak čita napon i struju po fazama iz podatkovnog polja nrg punionice, koje sadrži 16 vrijednosti osvježenih u svakom ciklusu očitavanja:

UređajIzvorJedinica
Napon L1nrg[0]V
Napon L2nrg[1]V
Napon L3nrg[2]V
Struja L1nrg[4]A
Struja L2nrg[5]A
Struja L3nrg[6]A

Uređaj Brojilo punionice prikazuje ukupnu isporučenu energiju iz ključa eto (Wh) i trenutačnu snagu iz nrg[11] podijeljenu s 1000. Zamjenjuje dosadašnji uređaj Current Consumption. Sve vrijednosti energije su samo za čitanje.

Predložak čita fazne struje iz nrg[4], nrg[5] i nrg[6], a snagu brojila iz nrg[11]. Prema dokumentaciji API-ja go-e fazne struje nalaze se na indeksima 5, 6 i 7, snaga neutralnog vodiča na indeksu 11, a ukupna snaga na indeksu 12. Upravo njih je koristila prethodna revizija predloška. Prije nego što se na očitanja oslonite za obračun ili automatizacije, usporedite ih s vrijednostima na punionici.

Ulazi za punjenje viškom solarne energije

Dva uređaja samo za upis omogućuju sustavu TapHome da punionici šalje vanjske podatke o energiji za izračun punjenja viškom energije:

  • Snaga prema mreži — šalje trenutačnu snagu predaje u mrežu ili preuzimanja iz mreže (u kW, pretvara se u W množenjem s 1000) preko api/set?ids={"pGrid":value}
  • Snaga solarne elektrane — šalje trenutačnu proizvodnju fotonaponskog sustava (u kW, pretvara se u W množenjem s 1000) preko api/set?ids={"pPv":value}

Ovi uređaji ne čitaju podatke s punionice. go-e Charger sam ne mjeri snagu mreže ni solarne elektrane, nego se oslanja na vanjske izvore tih podataka. U uobičajenoj instalaciji TapHome vrijednosti iz zasebnog brojila ili solarnog izmjenjivača (također integriranih u TapHome) prosljeđuju se punionici preko ovih uređaja samo za upis, pa način punjenja Eco može optimizirati vlastitu potrošnju.

Za punjenje viškom solarne energije postavite Način punjenja na Eco, a zatim automatizacijama u sustavu TapHome periodički upisujte trenutačnu snagu mreže i proizvodnju solarne elektrane u uređaje Snaga prema mreži i Snaga solarne elektrane. Punionica će struju punjenja automatski prilagođavati raspoloživom višku.

Dodatne mogućnosti

go-e Charger API v2 daje i dodatne podatke koji trenutačno nisu mapirani u predlošku: snagu po fazama (W) i faktor snage, napon neutralnog vodiča, ukupnu snagu (nrg[12]), energiju po sesiji (wh), kodove stanja pogreške, ograničenje struje kabela, temperaturne senzore, frekvenciju mreže, postavke ograničenja energije i konfiguraciju najmanje/najveće struje. Mogu se dodati u budućem ažuriranju predloška.

Rješavanje problema

Uređaj ne odgovara
  1. Provjerite je li punionica spojena na Wi-Fi i ima li valjanu IP adresu — u aplikaciji go-e pod Settings > Connection
  2. Provjerite je li HTTP API uključen (Settings > Connection > API Settings)
  3. U pregledniku otvorite http://{charger-ip}/api/status — ako odgovori u formatu JSON, API je dostupan
  4. Provjerite jesu li TapHome CCU i punionica u istoj mreži / VLAN-u
Struja punjenja se ne mijenja
  1. Predložak preslikava samo šest vrijednosti (6, 8, 10, 12, 14, 16 A). Ako punionica prikazuje drugu vrijednost (npr. 20 A postavljenih u aplikaciji), TapHome prikazuje najbliži preslikani položaj
  2. Provjerite ima li punionica firmver 051.4 ili noviji — stariji firmver koristi drugačiju sintaksu filtra, što može uzrokovati probleme pri raščlambi
Punjenje viškom solarne energije ne radi
  1. Provjerite je li Način punjenja postavljen na Eco — logika viška aktivira se samo u tom načinu
  2. Provjerite upisuju li se vrijednosti Snaga prema mreži i Snaga solarne elektrane redovito (najmanje svakih 30 sekundi)
  3. Provjerite jesu li vrijednosti u kW (predložak ih automatski pretvara u W)
  4. Otvorite http://{charger-ip}/api/status?filter=pgrid,ppv i provjerite prima li punionica vrijednosti

API ključ eto (ukupna energija) sada je dostupan kao uređaj Brojilo punionice, pa se vrijednost dohvaćena u filtru stanja više ne ostavlja neiskorištenom.

Dostupni uređaji

go-e Wallbox Modul
Prilagođene varijable

Go-e

Čitanje (modul)
responseJson := "error";



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

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
Stanje punionice Prekidač s više vrijednosti Samo za čitanje

Stanje priključenosti vozila i punjenja — kvar, dostupna, punjenje, priprema, završeno

uint8
Vrijednosti / stanja: Failure · Available · Charging · Preparing · Finished

Stanje punionice

Čitanje stanja sklopke
RETURN(PARSEjson(responseJson, "car"));
Zapis stanja sklopke
# 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
Struja punjenja Prekidač s više vrijednosti

Odabir tražene struje punjenja — 6, 8, 10, 12, 14, 16 A u diskretnim koracima

uint8 Jedinica: A numeric
Vrijednosti / stanja: 6-Amp · 8-Amp · 10-Amp · 12-Amp · 14-Amp · 16-Amp

Struja punjenja

Čitanje stanja sklopke
VAR ampers := PARSEjson(responseJson, "amp");
RETURN(ampers/2-3);
Zapis stanja sklopke
VAR amps:= (Mu +3)*2;
VAR response := SENDHTTPREQUEST("api/set?amp=" + amps);
IF response.IsSuccess = false
ADDERROR(response.StatusCode);
END
Način punjenja Prekidač s više vrijednosti

Odabir logike punjenja — Osnovni (neprekidno), Eco (prema cijeni / višak solarne energije), Dnevna vožnja (automatsko zaustavljanje nakon postizanja cilja)

uint8 numeric
Vrijednosti / stanja: Basic · Eco · Daily trip

Način punjenja

Čitanje stanja sklopke
RETURN(PARSEjson(responseJson, "lmo")-3);
Zapis stanja sklopke
VAR response := SENDHTTPREQUEST("api/set?lmo=" + (Mu+3));
IF response.IsSuccess = false
ADDERROR(response.StatusCode);
END
Prisilno stanje Prekidač s više vrijednosti

Prisilno upravljanje punjenjem — Neutralno prepušta odluku punionici, Zaustavljeno blokira punjenje, Punjenje ga prisilno uključuje

uint8
Vrijednosti / stanja: Neutral · Stopped · Charge

Prisilno stanje

Čitanje stanja sklopke
RETURN(PARSEjson(responseJson, "frc"));
Zapis stanja sklopke
VAR response := SENDHTTPREQUEST("api/set?frc=" + (Mu));
IF response.IsSuccess = false
ADDERROR(response.StatusCode);
END
Struja L1 Varijabla Samo za čitanje
numeric Jedinica: A json_path

Struja L1

Čitanje
VAR a := PARSETEXT (PARSEjson(responseJson, "nrg"), "[", "]");
VAR b := SPLIT(a,",");
RETURN(TODOUBLE(GETAT(b,4)))
Zapis
# 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
Čitanje (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");
Napon L1 Varijabla Samo za čitanje
numeric Jedinica: V json_path

Napon L1

Čitanje
VAR a := PARSETEXT (PARSEjson(responseJson, "nrg"), "[", "]");
VAR b := SPLIT(a,",");
RETURN(TODOUBLE(GETAT(b,0)))
Zapis
# 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
Čitanje (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");
Struja L2 Varijabla Samo za čitanje
numeric Jedinica: A json_path

Struja L2

Čitanje
VAR a := PARSETEXT (PARSEjson(responseJson, "nrg"), "[", "]");
VAR b := SPLIT(a,",");
RETURN(TODOUBLE(GETAT(b,5)))
Zapis
# 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
Čitanje (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");
Napon L2 Varijabla Samo za čitanje
numeric Jedinica: V json_path

Napon L2

Čitanje
VAR a := PARSETEXT (PARSEjson(responseJson, "nrg"), "[", "]");
VAR b := SPLIT(a,",");
RETURN(TODOUBLE(GETAT(b,1)))
Zapis
# 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
Čitanje (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");
Struja L3 Varijabla Samo za čitanje
numeric Jedinica: A json_path

Struja L3

Čitanje
VAR a := PARSETEXT (PARSEjson(responseJson, "nrg"), "[", "]");
VAR b := SPLIT(a,",");
RETURN(TODOUBLE(GETAT(b,6)))
Zapis
# 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
Čitanje (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");
Napon L3 Varijabla Samo za čitanje
numeric Jedinica: V json_path

Napon L3

Čitanje
VAR a := PARSETEXT (PARSEjson(responseJson, "nrg"), "[", "]");
VAR b := SPLIT(a,",");
RETURN(TODOUBLE(GETAT(b,2)))
Zapis
# 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
Čitanje (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");
Preklapanje faza Prekidač s više vrijednosti

Konfiguracija faza — Automatski (odlučuje punionica), Jednofazno (prisilno), Trofazno (prisilno). Može se preklopiti i tijekom aktivnog punjenja.

uint8
Vrijednosti / stanja: Automatic · 1-Phase · 3-Phase

Preklapanje faza

Čitanje stanja sklopke
RETURN(PARSEjson(responseJson, "psm"));
Zapis stanja sklopke
VAR response := SENDHTTPREQUEST("api/set?psm=" + Mu);
IF response.IsSuccess = false
ADDERROR(response.StatusCode);
END
Snaga prema mreži Varijabla

Samo za upis — šalje punionici vanjske podatke o snazi mreže (kW) za izračun punjenja viškom energije

numeric Jedinica: kW json_path

Snaga prema mreži

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

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

IF response.IsSuccess = false
ADDERROR(response.StatusCode);
END
Čitanje (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");
Snaga solarne elektrane Varijabla

Samo za upis — šalje punionici vanjske podatke o proizvodnji solarne elektrane (kW) za izračun punjenja viškom energije

numeric Jedinica: kW json_path

Snaga solarne elektrane

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

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

IF response.IsSuccess = false
ADDERROR(response.StatusCode);
END
Čitanje (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");
Brojilo punionice Brojilo električne energije Samo za čitanje

Brojilo energije — ukupna energija koju je isporučila punionica (eto) i trenutačna snaga punjenja

numeric Jedinica: kWh json_path

Brojilo punionice

Čitanje ukupne potrošnje
RETURN(PARSEjson(responseJson, "eto"))
Čitanje zahtjeva
VAR a := PARSETEXT (PARSEjson(responseJson, "nrg"), "[", "]");
VAR b := SPLIT(a,",");
RETURN(TODOUBLE(GETAT(b,11))/1000)
Povezivanje: Packet Parser → HTTP
Moguća poboljšanja (18)
  • Voltage N — Neutral voltage in V, available in nrg array index 3
  • Per-phase Power (L1, L2, L3) — Individual phase power in W — the template reads only element 11 (demand of the Wallbox Electric Meter)
  • Power Total — Total power in W. The former 'Current consumption' device read this element; the Wallbox Electric Meter that replaced it reads element 11 instead. See inconsistency report
  • Power Factor (L1, L2, L3) — Power factor per phase, available in nrg array
  • 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)

Izvori

  • 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

Pronašli ste problem s ovim predloškom uređaja?

Recite nam što ne radi, što nedostaje ili kako bi se predložak trebao ponašati. Vaše povratne informacije pomažu nam da katalog bude točan.

Provjerio TapHome

Želite ovo koristiti u svojoj centralnoj jedinici TapHome Core?

Otvorite ovaj predložak na portalu Customer Portal kako biste ga primijenili na jedan od svojih domova ili predložili poboljšanje i poslali ga natrag u katalog.

Otvorite na portalu