---
title: "SolaX X1/X3-HAC EV Charger (Cloud API)"
description: "Nabíjací výkon, energia, stav a režim STOP/FAST/ECO/GREEN nabíjačiek SolaX HAC cez SolaX Developer API. Potrebné sú Client ID, Secret a SN."
url: "https://taphome.com/sk/compatibility/solax-hac-cloud-api/"
language: sk
lastmod: 2026-11-12
generator: hugo
ai:
  topics: ["http","wallbox","cloud-api","oauth2","ev-charging","solar-surplus-charging"]
  questions: ["Ako integrovať nabíjačku elektromobilov SolaX X1/X3-HAC s TapHome?","Čo číta a ovláda šablóna TapHome SolaX HAC Cloud API?","Ako získať Client ID a Client Secret pre API SolaX Developer Portalu?","Ktoré sériové číslo potrebuje šablóna SolaX HAC: Device SN alebo Registration No.?","Ako pripojiť nabíjačku SolaX HAC k SolaXCloud cez Wi-Fi, LAN alebo 4G?","Prečo SolaX Cloud API vracia v TapHome kód 10402 alebo 10406?"]
---

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

Komunikácia: Packet Parser → HTTP

## Návod na integráciu

Šablóna SolaX HAC Cloud API prepojí TapHome s nabíjačkou elektromobilov SolaX X1-HAC alebo X3-HAC cez API SolaX Developer Portalu (OpenAPI). Autor šablóny uvádza aj nabíjačky A1-HAC a C1/C3-HAC. TapHome s nabíjačkou nekomunikuje priamo: nabíjačka sa hlási do SolaXCloud cez Wi-Fi, LAN alebo 4G a TapHome číta jej dáta zo SolaX cloudu cez HTTPS každých 60 sekúnd. Zapisovacie príkazy (pracovný režim, spustenie a zastavenie, zamknutie, limit prúdu) idú späť do nabíjačky rovnakou cestou cez cloud.

Pred importom šablóny musia byť splnené dve veci. Nabíjačka musí byť online v účte SolaXCloud a tento účet potrebuje v SolaX Developer Portali aplikáciu, ktorá poskytne **Client ID** a **Client Secret**. Ak nabíjačka pracuje spolu so solárnym invertorom SolaX, v tom istom projekte TapHome môže bežať aj šablóna [SolaX Inverter (Cloud API)](https://taphome.com/sk/compatibility/solax-inverter/). Tá používa staršie monitorovacie API SolaxCloud s vlastným tokenom.

## Pripojenie nabíjačky k SolaXCloud

### Sieťové pripojenie

Nabíjačka sa môže pripojiť na internet tromi spôsobmi. Všetky používajú DHCP, takže IP adresu pridelí router automaticky.

- **Wi-Fi**: len 2,4 GHz (802.11 b/g/n). Siete 5 GHz nie sú podporované.
- **Ethernet (LAN)**: port RJ45 **LAN (/ DI)**. Ethernet používa piny 1, 2, 3 a 6 (TX+, TX−, RX+, RX−). Ak je potrebný len Ethernet, ostatné piny nechajte nezapojené. Pri pripojení cez LAN sa dá nastavenie Wi-Fi preskočiť.
- **4G**: len pre modely s „4G“ v názve (napríklad X3-HAC-22P-B4G). Nano SIM kartu s podporou Cat-M, NB-IoT alebo GSM musí vložiť oprávnený odborník. SolaX odporúča aspoň 100 MB dát mesačne v scenároch Solar a Standard.

![Zapojenie pinov komunikačných portov nabíjačky elektromobilov LAN/DI, COM2-M a COM1-S s farbami vodičov RJ45](https://taphome.com/images/compatibility/solax-hac-cloud-api/pins-communication-ports_hu_e3a3a34d16605204.jpg)

> [!WARNING]
> Ethernetový kábel k nabíjačke musí byť chránený pred úderom blesku. Ak je potrebný LAN aj signálový vstup DI, nalisujte piny 1, 2, 3 a 6 pre Ethernet a piny 4, 5 a 8 pre DI a oba káble potom spojte spojkou RJ45, ktorá je súčasťou balenia nabíjačky.

Pripojenie 4G sa nastavuje v aplikácii SolaXCloud v lokálnom režime: otvorte **Dongle**, potom tlačidlo nastavení, nastavte **Device Networking Mode** na **4G**, zadajte APN operátora a zvoľte typ siete, ktorý SIM karta podporuje.

### Pridanie nabíjačky v aplikácii SolaXCloud

1. Nainštalujte aplikáciu **SolaXCloud** z App Store alebo Google Play a zaregistrujte účet pomocou e-mailovej adresy alebo telefónneho čísla a overovacieho kódu.
2. Pri prvom prihlásení vytvorte elektráreň (plant): povoľte prístup k polohe, zadajte názov elektrárne a dokončite ostatné nastavenia.
3. Pridajte nabíjačku naskenovaním alebo zadaním **Registration No.** z jej typového štítku. Neskôr pridávané nabíjačky sa pridávajú cez stránku **Device**, ikonu **+** a potom **Add Device** alebo **Scan**.
4. Ak sa nabíjačka pripája cez Wi-Fi, zadajte názov a heslo siete Wi-Fi.

![Aplikácia SolaXCloud: pridanie nabíjačky elektromobilov podľa Registration No. z typového štítku](https://taphome.com/images/compatibility/solax-hac-cloud-api/add-device-registration-no_hu_4b06cff948b79022.jpg)

Na typovom štítku sú dve rôzne čísla. **Registration No.** slúži na pridanie nabíjačky v aplikácii a na lokálne prihlásenie. **SN** (sériové číslo zariadenia) je to, čo šablóna TapHome potrebuje ako `DeviceSN`. Aplikácia zobrazuje SN zariadenia na stránke nabíjačky **Basic information** (ťuknite na hornú časť stránky Details nabíjačky). Nájdete ho aj v Developer Portali v časti **Device > Device List**.

### Opätovné pripojenie Wi-Fi a lokálny prístup

Ak je nabíjačka offline, otvorte v aplikácii stránku **Device**, ťuknite na kartu nabíjačky označenú ako offline a zvoľte **Reconfigure**. Potom znova zadajte sieť 2,4 GHz a heslo.

![Aplikácia SolaXCloud: nové nastavenie Wi-Fi nabíjačky elektromobilov a prihlásenie v lokálnom režime podľa Registration No.](https://taphome.com/images/compatibility/solax-hac-cloud-api/wifi-reconfigure_hu_a2a623a4deacb2f4.jpg)

Ak nové nastavenie zlyhá, existuje druhý spôsob. Pripojte telefón alebo notebook k vlastnej sieti Wi-Fi nabíjačky, ktorá je pomenovaná podľa jej Registration No. (`Wifi_XC…`). Potom v prehliadači otvorte `http://192.168.10.10/` a prihláste sa ako `admin` s Registration No. ako heslom. Lokálny režim v aplikácii (**More > Local Access**, alebo **Service > Application > Local Access** po prihlásení) používa tú istú sieť.

> [!NOTE]
> Nabíjačka svoju lokálnu sieť Wi-Fi automaticky vypne hodinu po úspešnom pripojení k sieti. Ak chcete lokálny prístup použiť neskôr, sieť znova zapnite v aplikácii v časti **Network > Local Access**.

### Scenár použitia a režimy nabíjania

Nabíjačka pracuje v jednom z troch scenárov použitia, ktorý sa volí v aplikácii v časti **Advanced setting > Application scene**:

- **Solar** (predvolený): k dispozícii sú režimy nabíjania Green, Eco a Fast. Green a Eco vyžadujú, aby nabíjačka komunikovala so solárnym invertorom alebo s prúdovým transformátorom (CT) či elektromerom na prípojke siete, aby poznala prebytok FV výroby.
- **Standard**: nabíjačka len spúšťa a zastavuje nabíjanie. Green a Eco v tomto scenári neexistujú.
- **OCPP**: nabíjačka je riadená cez OCPP server a aplikácia SolaXCloud voľbu režimu skryje.

![Scenár Solar: nabíjačka elektromobilov SolaX komunikuje so solárnym invertorom, router Wi-Fi/LAN do cloudu, prúdový transformátor (CT) alebo elektromer, prúdový chránič s nadprúdovou ochranou (RCBO) a rozvádzač AC](https://taphome.com/images/compatibility/solax-hac-cloud-api/system-solar-scene-inverter_hu_d5e2ffa4db2be771.jpg)

Solárny invertor sa pripája na port **COM1-S-** (A1/B1). Elektromer alebo prúdový transformátor (CT) sa pripája na port **COM2-M-** (A2/B2, vstupy CT na ostatných pinoch). Úroveň nabíjacieho prúdu pre režim Green (3 A alebo 6 A) a pre režim Eco (6, 10, 16, 20 alebo 25 A) sa nastavuje v aplikácii v časti **Details > Function Control > Charge Level**. Pri modeloch 11 kW ponúka Eco len 6 A a 10 A. Nabíjanie v režimoch Green a Eco tiež vyžaduje vozidlo, ktoré spĺňa normu IEC 61851.

## Nastavenie prístupu k API v SolaX Developer Portali

1. Prihláste sa do [SolaX Developer Portalu](https://developer.solaxcloud.com/home) a otvorte **Quick Start** alebo **Application**.
2. Vytvorte aplikáciu pre elektráreň SolaXCloud, ktorá obsahuje nabíjačku. Aplikácia musí mať aspoň jednu autorizovanú elektráreň.
3. Na karte aplikácie **Authorization** skopírujte **Client ID** a **Client Secret**.
4. V časti **Service API > Authorize** zapnite monitorovacie služby **Data Monitoring Service** (`API_Telemetry_V2`) a **Information Access Service** (`API_Info_V2`). Zapnite aj službu ovládania nabíjačky elektromobilov, ktorú potrebuje prepínač pracovného režimu a servisné akcie. Samotné monitorovanie funguje aj bez nej.
5. Sériové číslo nabíjačky nájdete v časti **Device > Device List**. Je to to isté SN ako v aplikácii SolaXCloud.

> [!WARNING]
> Šablóna je nastavená na európsky API host `openapi-eu.solaxcloud.com`. SolaX prevádzkuje samostatné hosty pre Čínu (`openapi-cn.solaxcloud.com`) a Indiu (`openapi-in.solaxcloud.com`). Región účtu je uvedený v Developer Portali. S aplikáciou v inom regióne šablóna v importovanej podobe nefunguje.

### Parametre importu

V TapHome importujte šablónu a vyplňte tri parametre uvedené nižšie. Všetko ostatné (token, dopytovanie, opakované pokusy) rieši modul.

| Parameter | Popis | Kde ho nájsť |
|-----------|-------|--------------|
| `ClientId` | Client ID aplikácie v Developer Portali | Application > **Authorization** |
| `ClientSecret` | Client Secret tej istej aplikácie | Application > **Authorization** |
| `DeviceSN` | Sériové číslo nabíjačky (nie Registration No.) | Developer Portal **Device > Device List** alebo **Basic information** v aplikácii SolaXCloud |

> [!WARNING]
> Jednu dvojicu Client ID a Client Secret používajte len pre jedného klienta. Každá aplikácia má len jeden platný prístupový token, takže nová žiadosť o token zruší predchádzajúci. Druhá inštancia šablóny TapHome alebo iný nástroj, ktorý dopytuje s tými istými prístupovými údajmi, bude token tejto šablóny neustále rušiť. Pre druhú nabíjačku alebo pre iný systém vytvorte v Developer Portali samostatnú aplikáciu.

## Možnosti zariadenia

Názvy zariadení v šablóne sú v slovenčine. Nižšie je každé uvedené presne tak, ako ho zobrazí aplikácia.

### Nabíjací výkon a energia

`Nabíjací výkon` je elektromer. Zobrazuje aktuálny nabíjací výkon v kW a celkovú nabitú energiu v kWh. Jeho servisné atribúty zobrazujú energiu aktuálnej relácie (`Energia aktuálnej relácie [kWh]`), fázové prúdy L1, L2 a L3 (`Prúd L1 [A]`, `Prúd L2 [A]`, `Prúd L3 [A]`) a jednofázový prúd (`Jednofázový prúd [A]`).

### Stav nabíjania a stavový kód

- `Nabíjanie prebieha` je kontakt. Je zapnutý (`Nabíja`) len vtedy, keď nabíjačka hlási stav Charging. Pri každom inom stave je vypnutý (`Nenabíja`), vrátane Suspended EV a Suspended EVSE.
- `Stav nabíjačky` je surový stavový kód nabíjačky:

| Kód | Stav | Kód | Stav |
|-----|------|-----|------|
| 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 |

### Pracovný režim

`Pracovný režim` je viachodnotový prepínač so štyrmi hodnotami: **STOP**, **FAST**, **ECO** a **GREEN**. Číta aktuálny režim nabíjačky a z TapHome nastavuje nový. ECO a GREEN sa správajú tak, ako je opísané pri scenári Solar vyššie, a závisia od komunikácie nabíjačky so solárnym invertorom alebo elektromerom.

### Servisné akcie

Zariadenie stavu nabíjačky má štyri servisné akcie:

- `Spustiť nabíjanie` a `Zastaviť nabíjanie`.
- `Zamknúť / sprístupniť nabíjačku` s hodnotami `Zamknúť` a `Sprístupniť`.
- `Nastaviť limit prúdu`: 6–32 A pri modeloch 7 kW a 22 kW, 6–16 A pri modeli 11 kW.

Príkazy sú asynchrónne. Odpoveď „OK, príkaz odoslaný“ znamená, že SolaX cloud príkaz prijal, nie že ho nabíjačka už vykonala. Výsledok sa prejaví v hodnotách nasledujúcich cyklov.

### História kariet a relácií v grafoch

- `RFID karta` zobrazuje číslo karty, ktorá reláciu spustila, alebo 0, keď sa karta nepoužíva.
- `Čas nabíjania relácie` zobrazuje trvanie aktuálnej relácie v minútach.

SolaX API históriu kariet neposkytuje. Keď sú pri týchto dvoch premenných zapnuté grafy, TapHome si históriu vytvorí sám: ktorá karta nabíjala, kedy a ako dlho, s rozlíšením 60 sekúnd. Karty sa používajú len vtedy, keď je režim aktivácie nabíjačky v aplikácii SolaXCloud nastavený na **RFID** (**Charger setting > Activation mode**). Predvolený režim **Plug & Charge** kartu nepoužíva.

## Riešenie problémov

### Žiadne dáta alebo chyba overenia na module

- Skontrolujte, či je nabíjačka online v aplikácii SolaXCloud. Ikona servera na displeji nabíjačky ukazuje, či je pripojená k SolaXCloud.
- Skontrolujte `ClientId` a `ClientSecret` voči karte **Authorization**. Secret, ktorý bol v portáli vygenerovaný znova, treba zadať znova.
- Skontrolujte, či je `DeviceSN` sériové číslo nabíjačky, nie Registration No.
- Skontrolujte, či má aplikácia autorizovanú elektráreň s nabíjačkou a či sú autorizované monitorovacie služby. Kód API **10403** znamená, že služba API nemá prístupové práva. Kód **10500** znamená, že aplikácia nemá oprávnenie na dáta tohto zariadenia.
- Kódy **10400** a **10402** znamenajú, že token nie je platný. Modul si vyžiada nový token a čítanie zopakuje v tom istom cykle. Ak modul aj potom hlási chybu s textom „aj po obnove tokenu“, prístupové údaje alebo autorizované služby sú nesprávne.

### Hodnoty sa prestanú meniť

Kódy **10405** a **10406** znamenajú, že sa dosiahol limit volaní API. Modul zobrazí upozornenie a ponechá hodnoty z posledného úspešného cyklu. Šablóna posiela jednu požiadavku za minútu. Do toho istého limitu sa započítavajú aj ďalšie nástroje, ktoré čítajú ten istý účet SolaX.

### Pracovný režim alebo akcie zlyhávajú

- Servisná akcia vráti text `SolaX API kód <code>`, keď cloud príkaz odmietne. Kód **10403** (žiadne prístupové práva k rozhraniu) môže znamenať, že pre aplikáciu nie je autorizovaná služba ovládania nabíjačky elektromobilov.
- ECO a GREEN fungujú len v scenári Solar a potrebujú funkčné spojenie so solárnym invertorom alebo s prúdovým transformátorom (CT) či elektromerom. V scenári Standard nabíjačka len spúšťa a zastavuje nabíjanie.

### Komerčné inštalácie

Šablóna číta nabíjačku ako súčasť rezidenčnej elektrárne (`businessType=1`). Podľa autora šablóny potrebuje nabíjačka v komerčnej a priemyselnej elektrárni hodnotu 4 a jej hodnoty výkonu sú potom v kW namiesto W.

## Dostupné zariadenia 6

Tieto zariadenia sa po importe zobrazia v TapHome.

SolaX Cloud API Modul

Vlastné premenné

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

Čítanie (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 Elektromer

Servisné atribúty

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

Čítanie celkovej spotreby

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

Čítanie odberu

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

Servisné atribúty

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 Jazýčkový kontakt

Čítanie

```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 Premenná

Servisné akcie

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

Čítanie

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

Servisné akcie

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

Parametre: 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

Parametre: 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 Premenná

Čítanie

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

Čas nabíjania relácie Premenná

Čítanie

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

Pracovný režim Viacstavový prepínač

Hodnoty / Stavy: STOP · FAST · ECO · GREEN

Čítanie stavu prepínača

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

Zápis stavu prepínača

```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
```

**Pripojenie:** Packet Parser → HTTP

## Parametre importu

Tieto hodnoty zadáte pri importe XML.

| Pýta sa v aplikácii                                   | Predvolené         |
|-------------------------------------------------------|--------------------|
| ClientId: ID klienta z SolaX Developer Portálu        | Zadáte pri importe |
| ClientSecret: Client Secret z SolaX Developer Portálu | Zadáte pri importe |
| DeviceSN: Sériové číslo nabíjačky (Device SN)         | Zadáte pri importe |

## Súvisiaca dokumentácia

- [Integrácia Packet Parser](https://taphome.com/sk/compatibility/packet-parser-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/sk/docs/integration/packet-parser/)
- [Funkcie Packet parsera](https://taphome.com/sk/docs/script/packet-parser/)
- [Parsovacie funkcie](https://taphome.com/sk/docs/script/parsing-functions/)

