---
title: "SolaX X1/X3-HAC EV Charger (Cloud API)"
description: "Snaga punjenja, energija, status i način STOP/FAST/ECO/GREEN punionica SolaX HAC preko SolaX Developer API-ja. Potrebni su Client ID, Secret i SN."
url: "https://taphome.com/hr/compatibility/solax-hac-cloud-api/"
language: hr
lastmod: 2026-11-12
generator: hugo
ai:
  topics: ["http","wallbox","cloud-api","oauth2","ev-charging","solar-surplus-charging"]
  questions: ["Kako integrirati punionicu za električna vozila SolaX X1/X3-HAC sa sustavom TapHome?","Što predložak TapHome SolaX HAC Cloud API očitava i čime upravlja?","Kako dobiti Client ID i Client Secret za API SolaX Developer Portala?","Koji serijski broj treba predložak SolaX HAC: Device SN ili Registration No.?","Kako spojiti punionicu SolaX HAC na SolaXCloud preko Wi-Fi mreže, LAN-a ili 4G mreže?","Zašto SolaX Cloud API u sustavu TapHome vraća kod 10402 ili 10406?"]
---

# SolaX X1/X3-HAC EV Charger (Cloud API)

Komunikacija: Packet Parser → HTTP

## Upute za integraciju

Predložak SolaX HAC Cloud API povezuje TapHome s punionicom za električna vozila SolaX X1-HAC ili X3-HAC preko API-ja SolaX Developer Portala (OpenAPI). Autor predloška navodi i punionice A1-HAC i C1/C3-HAC. TapHome ne komunicira izravno s punionicom: punionica šalje podatke u SolaXCloud preko Wi-Fi mreže, LAN-a ili 4G mreže, a TapHome ih svakih 60 sekundi očitava iz SolaX oblaka preko HTTPS-a. Naredbe za upis (radni način, pokretanje i zaustavljanje, zaključavanje, ograničenje struje) na isti se način vraćaju punionici preko oblaka.

Prije uvoza predloška moraju biti ispunjena dva uvjeta. Punionica mora biti na mreži u računu SolaXCloud, a taj račun treba aplikaciju u SolaX Developer Portalu koja daje **Client ID** i **Client Secret**. Ako punionica radi uz SolaX solarni izmjenjivač (inverter), u istom TapHome projektu može raditi i predložak [SolaX Inverter (Cloud API)](https://taphome.com/hr/compatibility/solax-inverter/). On koristi stariji SolaxCloud API za nadzor s vlastitim tokenom.

## Povezivanje punionice sa SolaXCloudom

### Mrežna veza

Punionica se na internet može spojiti na tri načina. Svi koriste DHCP, pa IP adresu automatski dodjeljuje usmjerivač.

- **Wi-Fi**: samo 2,4 GHz (802.11 b/g/n). Mreže na 5 GHz nisu podržane.
- **Ethernet (LAN)**: priključak RJ45 **LAN (/ DI)**. Ethernet koristi pinove 1, 2, 3 i 6 (TX+, TX−, RX+, RX−). Kad je potreban samo Ethernet, ostale pinove ostavite nespojene. Uz LAN vezu postavljanje Wi-Fi mreže može se preskočiti.
- **4G**: samo za modele s oznakom „4G” u nazivu (na primjer X3-HAC-22P-B4G). Ovlašteni stručnjak mora ugraditi nano SIM karticu koja podržava Cat-M, NB-IoT ili GSM. SolaX preporučuje najmanje 100 MB podataka mjesečno u scenarijima Solar i Standard.

![Raspored pinova komunikacijskih priključaka LAN/DI, COM2-M i COM1-S punionice s bojama žica RJ45](https://taphome.com/images/compatibility/solax-hac-cloud-api/pins-communication-ports_hu_e3a3a34d16605204.jpg)

> [!WARNING]
> Ethernet kabel do punionice mora biti zaštićen od udara groma. Ako su potrebni i LAN i signalni ulaz DI, krimpajte pinove 1, 2, 3 i 6 za Ethernet i pinove 4, 5 i 8 za DI, a zatim spojite oba kabela RJ45 spojnicom koja se isporučuje uz punionicu.

4G veza postavlja se u aplikaciji SolaXCloud u lokalnom načinu rada: otvorite **Dongle**, zatim gumb postavki, postavite **Device Networking Mode** na **4G**, upišite APN operatera i odaberite vrstu mreže koju SIM kartica podržava.

### Dodavanje punionice u aplikaciju SolaXCloud

1. Instalirajte aplikaciju **SolaXCloud** iz App Storea ili Google Playa i registrirajte račun e-adresom ili brojem telefona i kontrolnim kodom.
2. Pri prvoj prijavi izradite elektranu (plant): dopustite pristup lokaciji, upišite naziv elektrane i dovršite ostale postavke.
3. Dodajte punionicu skeniranjem ili upisom broja **Registration No.** s njezine natpisne pločice. Punionice koje se dodaju kasnije dodaju se preko stranice **Device**, ikone **+**, a zatim **Add Device** ili **Scan**.
4. Ako se punionica spaja preko Wi-Fi mreže, upišite naziv i lozinku Wi-Fi mreže.

![Aplikacija SolaXCloud: dodavanje punionice prema broju Registration No. s natpisne pločice](https://taphome.com/images/compatibility/solax-hac-cloud-api/add-device-registration-no_hu_4b06cff948b79022.jpg)

Na natpisnoj pločici nalaze se dva različita broja. **Registration No.** služi za dodavanje punionice u aplikaciju i za lokalnu prijavu. **SN** (serijski broj uređaja) je ono što predložak TapHome treba kao `DeviceSN`. Aplikacija prikazuje SN uređaja na stranici punionice **Basic information** (dodirnite gornji dio stranice Details punionice). Naveden je i u Developer Portalu pod **Device > Device List**.

### Ponovno spajanje na Wi-Fi i lokalni pristup

Ako punionica nije na mreži, u aplikaciji otvorite stranicu **Device**, dodirnite karticu punionice označenu kao offline i odaberite **Reconfigure**. Zatim ponovno upišite mrežu na 2,4 GHz i lozinku.

![Aplikacija SolaXCloud: ponovno postavljanje Wi-Fi mreže punionice i prijava u lokalnom načinu rada brojem Registration No.](https://taphome.com/images/compatibility/solax-hac-cloud-api/wifi-reconfigure_hu_a2a623a4deacb2f4.jpg)

Ako ponovno postavljanje ne uspije, postoji drugi način. Spojite telefon ili prijenosno računalo na vlastitu Wi-Fi mrežu punionice, koja nosi naziv prema njezinu broju Registration No. (`Wifi_XC…`). Zatim u pregledniku otvorite `http://192.168.10.10/` i prijavite se kao `admin`, s brojem Registration No. kao lozinkom. Lokalni način rada u aplikaciji (**More > Local Access** ili, kad ste prijavljeni, **Service > Application > Local Access**) koristi istu mrežu.

> [!NOTE]
> Punionica automatski isključuje svoju lokalnu Wi-Fi mrežu sat vremena nakon uspješnog spajanja na mrežu. Za kasniji lokalni pristup ponovno uključite mrežu u aplikaciji pod **Network > Local Access**.

### Scenarij primjene i načini punjenja

Punionica radi u jednom od tri scenarija primjene, koji se odabire u aplikaciji pod **Advanced setting > Application scene**:

- **Solar** (zadano): dostupni su načini punjenja Green, Eco i Fast. Za Green i Eco punionica mora komunicirati s izmjenjivačem ili sa strujnim transformatorom (CT) odnosno brojilom na priključku na mrežu, kako bi znala višak fotonaponske proizvodnje.
- **Standard**: punionica samo pokreće i zaustavlja punjenje. Green i Eco u ovom scenariju ne postoje.
- **OCPP**: punionicom upravlja OCPP poslužitelj, a aplikacija SolaXCloud skriva odabir načina.

![Scenarij Solar: SolaX punionica u komunikaciji s izmjenjivačem, Wi-Fi/LAN usmjerivač prema oblaku, CT/brojilo, RCBO i AC razvodni ormarić](https://taphome.com/images/compatibility/solax-hac-cloud-api/system-solar-scene-inverter_hu_d5e2ffa4db2be771.jpg)

Izmjenjivač se spaja na priključak **COM1-S-** (A1/B1). Brojilo ili CT spaja se na priključak **COM2-M-** (A2/B2, CT ulazi na ostalim pinovima). Razina struje punjenja za način Green (3 A ili 6 A) i za način Eco (6, 10, 16, 20 ili 25 A) postavlja se u aplikaciji pod **Details > Function Control > Charge Level**. Na modelima od 11 kW Eco nudi samo 6 A i 10 A. Punjenje u načinima Green i Eco zahtijeva i vozilo koje je u skladu s normom IEC 61851.

## Postavljanje pristupa API-ju u SolaX Developer Portalu

1. Prijavite se u [SolaX Developer Portal](https://developer.solaxcloud.com/home) i otvorite **Quick Start** ili **Application**.
2. Izradite aplikaciju za elektranu SolaXCloud u kojoj je punionica. Aplikacija mora imati barem jednu autoriziranu elektranu.
3. Na kartici **Authorization** aplikacije kopirajte **Client ID** i **Client Secret**.
4. Pod **Service API > Authorize** uključite usluge nadzora **Data Monitoring Service** (`API_Telemetry_V2`) i **Information Access Service** (`API_Info_V2`). Uključite i uslugu upravljanja punionicom, koju trebaju prekidač radnog načina i servisne radnje. Sam nadzor radi i bez nje.
5. Serijski broj punionice pronađite pod **Device > Device List**. To je isti SN kao u aplikaciji SolaXCloud.

> [!WARNING]
> Predložak je postavljen na europski API poslužitelj `openapi-eu.solaxcloud.com`. SolaX ima zasebne poslužitelje za Kinu (`openapi-cn.solaxcloud.com`) i Indiju (`openapi-in.solaxcloud.com`). Regija računa prikazana je u Developer Portalu. S aplikacijom iz druge regije predložak u uvezenom obliku ne radi.

### Parametri uvoza

U sustavu TapHome uvezite predložak i ispunite tri parametra navedena u nastavku. Sve ostalo (token, očitavanje, ponovni pokušaji) obavlja modul.

| Parametar | Opis | Gdje ga pronaći |
|-----------|-------------|------------------|
| `ClientId` | Client ID aplikacije u Developer Portalu | Application > **Authorization** |
| `ClientSecret` | Client Secret iste aplikacije | Application > **Authorization** |
| `DeviceSN` | Serijski broj punionice (ne Registration No.) | Developer Portal **Device > Device List** ili **Basic information** u aplikaciji SolaXCloud |

> [!WARNING]
> Jedan par Client ID i Client Secret koristite samo za jednog klijenta. Svaka aplikacija ima samo jedan važeći pristupni token, pa novi zahtjev za token poništava prethodni. Druga instanca predloška TapHome ili drugi alat koji očitava s istim pristupnim podacima stalno poništava token ovog predloška. Za drugu punionicu ili za drugi sustav izradite zasebnu aplikaciju u Developer Portalu.

## Mogućnosti uređaja

Nazivi uređaja u predlošku su na slovačkom. Svaki je u nastavku naveden s nazivom u aplikaciji u zagradi.

### Snaga i energija punjenja

**Snaga punjenja** (`Nabíjací výkon`) je brojilo. Prikazuje trenutačnu snagu punjenja u kW i ukupnu napunjenu energiju u kWh. Njegovi servisni atributi prikazuju energiju tekuće sesije (`Energia aktuálnej relácie [kWh]`), fazne struje L1, L2 i L3 (`Prúd L1 [A]`, `Prúd L2 [A]`, `Prúd L3 [A]`) i jednofaznu struju (`Jednofázový prúd [A]`).

### Stanje punjenja i statusni kod

- **Punjenje u tijeku** (`Nabíjanie prebieha`) je kontakt. Uključen je (`Nabíja`) samo dok punionica javlja status Charging. U svakom drugom statusu isključen je (`Nenabíja`), uključujući Suspended EV i Suspended EVSE.
- **Status punionice** (`Stav nabíjačky`) je izvorni statusni kod punionice:

| Kod | Status | Kod | Status |
|------|--------|------|--------|
| 0 | Available | 7 | Suspended EV |
| 1 | Preparing | 8 | Suspended EVSE |
| 2 | Charging | 9 | Update |
| 3 | Finishing | 10 | Card Activation |
| 4 | Faulted | 11 | Start Delay |
| 5 | Unavailable | 12 | Charge Pause |
| 6 | Reserved | 13 | Stopping |

### Radni način

**Radni način** (`Pracovný režim`) je uređaj Prekidač s više vrijednosti s četiri stanja: **STOP**, **FAST**, **ECO** i **GREEN**. Očitava trenutačni način punionice i postavlja novi iz sustava TapHome. ECO i GREEN ponašaju se kako je opisano gore kod scenarija Solar i ovise o komunikaciji punionice s izmjenjivačem ili brojilom.

### Servisne radnje

Uređaj statusa punionice ima četiri servisne radnje:

- **Pokretanje punjenja** (`Spustiť nabíjanie`) i **Zaustavljanje punjenja** (`Zastaviť nabíjanie`).
- **Zaključavanje / omogućavanje** (`Zamknúť / sprístupniť nabíjačku`), s vrijednostima Zaključaj (`Zamknúť`) i Omogući (`Sprístupniť`).
- **Postavljanje ograničenja struje** (`Nastaviť limit prúdu`): 6–32 A na modelima od 7 kW i 22 kW, 6–16 A na modelu od 11 kW.

Naredbe su asinkrone. Odgovor „OK, príkaz odoslaný” znači da je SolaX oblak prihvatio naredbu, a ne da ju je punionica već izvršila. Rezultat se vidi u očitanjima sljedećih ciklusa.

### Povijest kartica i sesija u grafikonima

- **RFID kartica** (`RFID karta`) prikazuje broj kartice koja je pokrenula sesiju ili 0 kad se kartica ne koristi.
- **Trajanje punjenja u sesiji** (`Čas nabíjania relácie`) prikazuje trajanje tekuće sesije u minutama.

SolaX API ne daje povijest kartica. Kad su na ove dvije varijable uključeni grafikoni (Charts), TapHome sam gradi povijest: koja je kartica punila, kada i koliko dugo, s razlučivošću od 60 sekundi. Kartice se koriste samo kad je način aktivacije punionice u aplikaciji SolaXCloud postavljen na **RFID** (**Charger setting > Activation mode**). Zadani način **Plug & Charge** ne koristi karticu.

## Rješavanje problema

### Nema podataka ili greška autentifikacije na modulu

- Provjerite je li punionica na mreži u aplikaciji SolaXCloud. Ikona poslužitelja na zaslonu punionice pokazuje je li spojena na SolaXCloud.
- Provjerite `ClientId` i `ClientSecret` prema kartici **Authorization**. Tajni ključ ponovno generiran u portalu treba ponovno upisati.
- Provjerite je li `DeviceSN` serijski broj punionice, a ne Registration No.
- Provjerite ima li aplikacija autoriziranu elektranu s punionicom i jesu li autorizirane usluge nadzora. API kod **10403** znači da usluga API-ja nema prava pristupa. Kod **10500** znači da aplikacija nema dopuštenje za podatke ovog uređaja.
- Kodovi **10400** i **10402** znače da token nije valjan. Modul zatraži novi token i ponovi očitavanje u istom ciklusu. Ako modul i dalje javlja grešku s tekstom „aj po obnove tokenu” („čak i nakon obnove tokena”), pogrešni su pristupni podaci ili autorizirane usluge.

### Očitanja se prestaju mijenjati

Kodovi **10405** i **10406** znače da je dosegnuto ograničenje broja API poziva. Modul prikazuje upozorenje i zadržava vrijednosti iz posljednjeg uspješnog ciklusa. Predložak šalje jedan zahtjev u minuti. Drugi alati koji očitavaju isti SolaX račun troše isto ograničenje.

### Radni način ili radnje ne rade

- Servisna radnja vraća tekst `SolaX API kód <code>` kad oblak odbije naredbu. Kod **10403** (nema prava pristupa sučelju) može značiti da usluga upravljanja punionicom nije autorizirana za aplikaciju.
- ECO i GREEN rade samo u scenariju Solar i trebaju ispravnu vezu s izmjenjivačem ili CT-om odnosno brojilom. U scenariju Standard punionica samo pokreće i zaustavlja punjenje.

### Komercijalne instalacije

Predložak očitava punionicu kao dio kućne elektrane (`businessType=1`). Prema autoru predloška punionica u komercijalnoj i industrijskoj elektrani treba vrijednost 4, a njezine se vrijednosti snage tada iskazuju u kW umjesto u W.

## Dostupni uređaji 6

Ovi se uređaji pojavljuju u TapHomeu nakon uvoza.

SolaX Cloud API Modul

Prilagođene varijable

|                         |
|-------------------------|
| `AccessToken` (string)  |
| `RealtimeData` (string) |
| `ClientId` (string)     |
| `ClientSecret` (string) |
| `DeviceSN` (string)     |

Čitanje (modul)

```taphome
IF LENGTH(AccessToken) = 0
    VAR tokenBody := "client_id=" + ClientId + "&client_secret=" + ClientSecret + "&grant_type=client_credentials";
    VAR tokenResponse := SENDHTTPREQUEST("/openapi/auth/oauth/token", "POST", tokenBody, "Content-Type: application/x-www-form-urlencoded");
    IF tokenResponse.IsSuccess
        VAR newToken := PARSEJSON(tokenResponse.Content, "$.result.access_token", true);
        IF !ISNULL(newToken)
            AccessToken := newToken;
        ELSE
            ADDERROR(1, "SolaX auth: odpoveď bez access_token");
        END
    ELSE
        ADDERROR(1, "SolaX auth zlyhala: HTTP " + tokenResponse.StatusCode);
    END
END

IF LENGTH(AccessToken) > 0
    VAR rtResponse := SENDHTTPREQUEST("/openapi/v2/device/realtime_data?snList=" + DeviceSN + "&deviceType=4&businessType=1", "GET", "", "Authorization: bearer " + AccessToken);
    IF rtResponse.IsSuccess
        VAR rtCode := PARSEJSON(rtResponse.Content, "$.code", true);
        IF rtCode = 10000
            RealtimeData := rtResponse.Content;
        ELSEIF rtCode = 10400 | rtCode = 10402
            VAR tokenBody2 := "client_id=" + ClientId + "&client_secret=" + ClientSecret + "&grant_type=client_credentials";
            VAR tokenResponse2 := SENDHTTPREQUEST("/openapi/auth/oauth/token", "POST", tokenBody2, "Content-Type: application/x-www-form-urlencoded");
            AccessToken := "";
            IF tokenResponse2.IsSuccess
                VAR newToken2 := PARSEJSON(tokenResponse2.Content, "$.result.access_token", true);
                IF !ISNULL(newToken2)
                    AccessToken := newToken2;
                    rtResponse := SENDHTTPREQUEST("/openapi/v2/device/realtime_data?snList=" + DeviceSN + "&deviceType=4&businessType=1", "GET", "", "Authorization: bearer " + AccessToken);
                    IF rtResponse.IsSuccess
                        rtCode := PARSEJSON(rtResponse.Content, "$.code", true);
                        IF rtCode = 10000
                            RealtimeData := rtResponse.Content;
                        ELSE
                            ADDERROR(2, "SolaX API kód " + rtCode + " aj po obnove tokenu");
                        END
                    END
                END
            END
        ELSEIF rtCode = 10405 | rtCode = 10406
            ADDWARNING("SolaX limit volaní API (kód " + rtCode + "), zobrazujú sa dáta z minulého cyklu");
        ELSE
            ADDWARNING("SolaX prechodná chyba, kód " + rtCode);
        END
    ELSE
        ADDERROR(3, "Chyba čítania dát: HTTP " + rtResponse.StatusCode);
    END
END
```

Nabíjací výkon Brojilo električne energije

Servisni atributi

|                                  |
|----------------------------------|
| Energia aktuálnej relácie \[kWh] |
| Prúd L1 \[A]                     |
| Prúd L2 \[A]                     |
| Prúd L3 \[A]                     |
| Jednofázový prúd \[A]            |

Čitanje ukupne potrošnje

```taphome
PARSEJSON(RealtimeData, "$.result[0].totalChargeEnergy", true)
```

Čitanje zahtjeva

```taphome
PARSEJSON(RealtimeData, "$.result[0].chargingPower", true) / 1000
```

Servisni atributi

Energia aktuálnej relácie \[kWh]

```taphome
PARSEJSON(RealtimeData, "$.result[0].chargingEnergyThisSession", true)
```

Prúd L1 \[A]

```taphome
PARSEJSON(RealtimeData, "$.result[0].l1Current", true)
```

Prúd L2 \[A]

```taphome
PARSEJSON(RealtimeData, "$.result[0].l2Current", true)
```

Prúd L3 \[A]

```taphome
PARSEJSON(RealtimeData, "$.result[0].l3Current", true)
```

Jednofázový prúd \[A]

```taphome
PARSEJSON(RealtimeData, "$.result[0].singlePhaseCurrent", true)
```

Nabíjanie prebieha Magnetski kontakt

Čitanje

```taphome
VAR status := PARSEJSON(RealtimeData, "$.result[0].deviceStatus", true);
IF ISNULL(status)
    RETURN(0);
END
IF status = 2
    RETURN(1);
END
RETURN(0);
```

Stav nabíjačky Varijabla

Servisne radnje

|                                 |
|---------------------------------|
| Spustiť nabíjanie               |
| Zastaviť nabíjanie              |
| Zamknúť / sprístupniť nabíjačku |
| Nastaviť limit prúdu            |

Čitanje

```taphome
PARSEJSON(RealtimeData, "$.result[0].deviceStatus", true)
```

Servisne radnje

Spustiť nabíjanie

```taphome
VAR body := "{\"snList\":[\"" + DeviceSN + "\"],\"workCmd\":2,\"workMode\":2,\"businessType\":1}";
VAR r := SENDHTTPREQUEST("/openapi/v2/device/evc_control/set_evc_charge_command", "POST", body, "Authorization: bearer " + AccessToken, "Content-Type: application/json");
VAR c := 0;
IF r.IsSuccess
    c := PARSEJSON(r.Content, "$.code", true);
    IF c = 10400 | c = 10402
        VAR tb := "client_id=" + ClientId + "&client_secret=" + ClientSecret + "&grant_type=client_credentials";
        VAR tr := SENDHTTPREQUEST("/openapi/auth/oauth/token", "POST", tb, "Content-Type: application/x-www-form-urlencoded");
        IF tr.IsSuccess
            VAR nt := PARSEJSON(tr.Content, "$.result.access_token", true);
            IF !ISNULL(nt)
                AccessToken := nt;
                r := SENDHTTPREQUEST("/openapi/v2/device/evc_control/set_evc_charge_command", "POST", body, "Authorization: bearer " + AccessToken, "Content-Type: application/json");
                IF r.IsSuccess
                    c := PARSEJSON(r.Content, "$.code", true);
                END
            END
        END
    END
    IF c = 10000
        RETURN("OK, príkaz odoslaný");
    END
    RETURN("SolaX API kód " + c);
END
ADDERROR(r.StatusCode);
RETURN("Chyba");
```

Zastaviť nabíjanie

```taphome
VAR body := "{\"snList\":[\"" + DeviceSN + "\"],\"workCmd\":3,\"workMode\":3,\"businessType\":1}";
VAR r := SENDHTTPREQUEST("/openapi/v2/device/evc_control/set_evc_charge_command", "POST", body, "Authorization: bearer " + AccessToken, "Content-Type: application/json");
VAR c := 0;
IF r.IsSuccess
    c := PARSEJSON(r.Content, "$.code", true);
    IF c = 10400 | c = 10402
        VAR tb := "client_id=" + ClientId + "&client_secret=" + ClientSecret + "&grant_type=client_credentials";
        VAR tr := SENDHTTPREQUEST("/openapi/auth/oauth/token", "POST", tb, "Content-Type: application/x-www-form-urlencoded");
        IF tr.IsSuccess
            VAR nt := PARSEJSON(tr.Content, "$.result.access_token", true);
            IF !ISNULL(nt)
                AccessToken := nt;
                r := SENDHTTPREQUEST("/openapi/v2/device/evc_control/set_evc_charge_command", "POST", body, "Authorization: bearer " + AccessToken, "Content-Type: application/json");
                IF r.IsSuccess
                    c := PARSEJSON(r.Content, "$.code", true);
                END
            END
        END
    END
    IF c = 10000
        RETURN("OK, príkaz odoslaný");
    END
    RETURN("SolaX API kód " + c);
END
ADDERROR(r.StatusCode);
RETURN("Chyba");
```

Zamknúť / sprístupniť nabíjačku

Parametri: Stav

```taphome
VAR body := "{\"snList\":[\"" + DeviceSN + "\"],\"workCmd\":" + lockCmd + ",\"workMode\":" + lockCmd + ",\"businessType\":1}";
VAR r := SENDHTTPREQUEST("/openapi/v2/device/evc_control/set_evc_charge_command", "POST", body, "Authorization: bearer " + AccessToken, "Content-Type: application/json");
VAR c := 0;
IF r.IsSuccess
    c := PARSEJSON(r.Content, "$.code", true);
    IF c = 10400 | c = 10402
        VAR tb := "client_id=" + ClientId + "&client_secret=" + ClientSecret + "&grant_type=client_credentials";
        VAR tr := SENDHTTPREQUEST("/openapi/auth/oauth/token", "POST", tb, "Content-Type: application/x-www-form-urlencoded");
        IF tr.IsSuccess
            VAR nt := PARSEJSON(tr.Content, "$.result.access_token", true);
            IF !ISNULL(nt)
                AccessToken := nt;
                r := SENDHTTPREQUEST("/openapi/v2/device/evc_control/set_evc_charge_command", "POST", body, "Authorization: bearer " + AccessToken, "Content-Type: application/json");
                IF r.IsSuccess
                    c := PARSEJSON(r.Content, "$.code", true);
                END
            END
        END
    END
    IF c = 10000
        RETURN("OK, príkaz odoslaný");
    END
    RETURN("SolaX API kód " + c);
END
ADDERROR(r.StatusCode);
RETURN("Chyba");
```

Nastaviť limit prúdu

Parametri: Limit prúdu \[A] (7/22 kW: 6-32, 11 kW: 6-16) (6–32 iLim)

```taphome
VAR body := "{\"snList\":[\"" + DeviceSN + "\"],\"currentLimit\":" + iLim + ",\"businessType\":1}";
VAR r := SENDHTTPREQUEST("/openapi/v2/device/evc_control/set_evc_current_limit", "POST", body, "Authorization: bearer " + AccessToken, "Content-Type: application/json");
VAR c := 0;
IF r.IsSuccess
    c := PARSEJSON(r.Content, "$.code", true);
    IF c = 10400 | c = 10402
        VAR tb := "client_id=" + ClientId + "&client_secret=" + ClientSecret + "&grant_type=client_credentials";
        VAR tr := SENDHTTPREQUEST("/openapi/auth/oauth/token", "POST", tb, "Content-Type: application/x-www-form-urlencoded");
        IF tr.IsSuccess
            VAR nt := PARSEJSON(tr.Content, "$.result.access_token", true);
            IF !ISNULL(nt)
                AccessToken := nt;
                r := SENDHTTPREQUEST("/openapi/v2/device/evc_control/set_evc_current_limit", "POST", body, "Authorization: bearer " + AccessToken, "Content-Type: application/json");
                IF r.IsSuccess
                    c := PARSEJSON(r.Content, "$.code", true);
                END
            END
        END
    END
    IF c = 10000
        RETURN("OK, príkaz odoslaný");
    END
    RETURN("SolaX API kód " + c);
END
ADDERROR(r.StatusCode);
RETURN("Chyba");
```

RFID karta Varijabla

Čitanje

```taphome
VAR rfid := PARSEJSON(RealtimeData, "$.result[0].rfidnumber", true);
IF ISNULL(rfid)
    RETURN(0);
END
RETURN(rfid);
```

Čas nabíjania relácie Varijabla

Čitanje

```taphome
VAR t := PARSEJSON(RealtimeData, "$.result[0].chargingTimeThisSession", true);
IF ISNULL(t)
    RETURN(0);
END
RETURN(t / 60);
```

Pracovný režim Prekidač s više vrijednosti

Vrijednosti / stanja: STOP · FAST · ECO · GREEN

Čitanje stanja sklopke

```taphome
VAR mode := PARSEJSON(RealtimeData, "$.result[0].deviceWorkingMode", true);
IF ISNULL(mode)
    RETURN(0);
END
RETURN(mode);
```

Zapis stanja sklopke

```taphome
VAR body := "{\"snList\":[\"" + DeviceSN + "\"],\"workMode\":" + Mu + ",\"businessType\":1}";
VAR r := SENDHTTPREQUEST("/openapi/v2/device/evc_control/set_evc_work_mode", "POST", body, "Authorization: bearer " + AccessToken, "Content-Type: application/json");
VAR c := 0;
IF r.IsSuccess
    c := PARSEJSON(r.Content, "$.code", true);
    IF c = 10400 | c = 10402
        VAR tb := "client_id=" + ClientId + "&client_secret=" + ClientSecret + "&grant_type=client_credentials";
        VAR tr := SENDHTTPREQUEST("/openapi/auth/oauth/token", "POST", tb, "Content-Type: application/x-www-form-urlencoded");
        IF tr.IsSuccess
            VAR nt := PARSEJSON(tr.Content, "$.result.access_token", true);
            IF !ISNULL(nt)
                AccessToken := nt;
                r := SENDHTTPREQUEST("/openapi/v2/device/evc_control/set_evc_work_mode", "POST", body, "Authorization: bearer " + AccessToken, "Content-Type: application/json");
                IF r.IsSuccess
                    c := PARSEJSON(r.Content, "$.code", true);
                END
            END
        END
    END
    IF c != 10000
        ADDERROR(1, "SolaX API kód " + c);
    END
ELSE
    ADDERROR(r.StatusCode);
END
```

**Povezivanje:** Packet Parser → HTTP

## Parametri uvoza

Ove vrijednosti unosite pri uvozu XML-a.

| Pitanje u aplikaciji                                  | Zadano             |
|-------------------------------------------------------|--------------------|
| ClientId: ID klienta z SolaX Developer Portálu        | Unosi se pri uvozu |
| ClientSecret: Client Secret z SolaX Developer Portálu | Unosi se pri uvozu |
| DeviceSN: Sériové číslo nabíjačky (Device SN)         | Unosi se pri uvozu |

## Povezana dokumentacija

- [Packet Parser Integration](https://taphome.com/hr/compatibility/packet-parser-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/hr/docs/integration/packet-parser/)
- [Funkcije Packet parsera](https://taphome.com/hr/docs/script/packet-parser/)
- [Funkcije za raščlambu](https://taphome.com/hr/docs/script/parsing-functions/)

