---
title: "SolaX X1/X3-HAC EV Charger (Cloud API)"
description: "Nabíjecí výkon, energie, stav a režim STOP/FAST/ECO/GREEN nabíječek SolaX HAC přes SolaX Developer API. Potřebujete Client ID, Secret a SN."
url: "https://taphome.com/cs/compatibility/solax-hac-cloud-api/"
language: cs
lastmod: 2026-11-12
generator: hugo
ai:
  topics: ["http","wallbox","cloud-api","oauth2","ev-charging","solar-surplus-charging"]
  questions: ["Jak integrovat nabíječku elektromobilů SolaX X1/X3-HAC s TapHome?","Co čte a ovládá šablona TapHome SolaX HAC Cloud API?","Jak získat Client ID a Client Secret pro API SolaX Developer Portalu?","Které sériové číslo potřebuje šablona SolaX HAC: Device SN, nebo Registration No.?","Jak připojit nabíječku SolaX HAC k SolaXCloud přes Wi-Fi, LAN nebo 4G?","Proč SolaX Cloud API vrací v TapHome kód 10402 nebo 10406?"]
---

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

Komunikace: Packet Parser → HTTP

## Návod na integraci

Šablona SolaX HAC Cloud API propojí TapHome s nabíječkou elektromobilů SolaX X1-HAC nebo X3-HAC přes API SolaX Developer Portalu (OpenAPI). Autor šablony uvádí také nabíječky A1-HAC a C1/C3-HAC. TapHome s nabíječkou nekomunikuje přímo: nabíječka se hlásí do SolaXCloud přes Wi-Fi, LAN nebo 4G a TapHome čte její data ze SolaX cloudu přes HTTPS každých 60 sekund. Zapisovací příkazy (pracovní režim, spuštění a zastavení, zamknutí, limit proudu) jdou zpět do nabíječky stejnou cestou přes cloud.

Před importem šablony musí být splněny dvě věci. Nabíječka musí být online v účtu SolaXCloud a tento účet potřebuje v SolaX Developer Portalu aplikaci, která poskytne **Client ID** a **Client Secret**. Pokud nabíječka pracuje společně se střídačem SolaX, může ve stejném projektu TapHome běžet i šablona [SolaX Inverter (Cloud API)](https://taphome.com/cs/compatibility/solax-inverter/). Ta používá starší monitorovací API SolaxCloud s vlastním tokenem.

## Připojení nabíječky k SolaXCloud

### Síťové připojení

Nabíječka se může připojit k internetu třemi způsoby. Všechny používají DHCP, takže IP adresu přidělí router automaticky.

- **Wi-Fi**: pouze 2,4 GHz (802.11 b/g/n). Sítě 5 GHz nejsou podporovány.
- **Ethernet (LAN)**: port RJ45 **LAN (/ DI)**. Ethernet používá piny 1, 2, 3 a 6 (TX+, TX−, RX+, RX−). Pokud je potřeba jen Ethernet, ostatní piny nechte nezapojené. Při připojení přes LAN lze nastavení Wi-Fi přeskočit.
- **4G**: pouze pro modely se „4G“ v názvu (například X3-HAC-22P-B4G). Nano SIM kartu s podporou Cat-M, NB-IoT nebo GSM musí vložit oprávněný odborník. SolaX doporučuje alespoň 100 MB dat měsíčně ve scénářích Solar a Standard.

![Zapojení pinů komunikačních portů nabíječky elektromobilů LAN/DI, COM2-M a COM1-S s barvami vodičů RJ45](https://taphome.com/images/compatibility/solax-hac-cloud-api/pins-communication-ports_hu_e3a3a34d16605204.jpg)

> [!WARNING]
> Ethernetový kabel k nabíječce musí být chráněn před úderem blesku. Pokud je potřeba LAN i signálový vstup DI, nakrimpujte piny 1, 2, 3 a 6 pro Ethernet a piny 4, 5 a 8 pro DI a oba kabely pak spojte spojkou RJ45, která je součástí balení nabíječky.

Připojení 4G se nastavuje v aplikaci SolaXCloud v lokálním režimu: otevřete **Dongle**, poté tlačítko nastavení, nastavte **Device Networking Mode** na **4G**, zadejte APN operátora a zvolte typ sítě, který SIM karta podporuje.

### Přidání nabíječky v aplikaci SolaXCloud

1. Nainstalujte aplikaci **SolaXCloud** z App Store nebo Google Play a zaregistrujte účet pomocí e-mailové adresy nebo telefonního čísla a ověřovacího kódu.
2. Při prvním přihlášení vytvořte elektrárnu (plant): povolte přístup k poloze, zadejte název elektrárny a dokončete ostatní nastavení.
3. Přidejte nabíječku naskenováním nebo zadáním **Registration No.** z jejího typového štítku. Později přidávané nabíječky se přidávají přes stránku **Device**, ikonu **+** a poté **Add Device** nebo **Scan**.
4. Pokud se nabíječka připojuje přes Wi-Fi, zadejte název a heslo sítě Wi-Fi.

![Aplikace SolaXCloud: přidání nabíječky elektromobilů podle Registration No. z typového štítku](https://taphome.com/images/compatibility/solax-hac-cloud-api/add-device-registration-no_hu_4b06cff948b79022.jpg)

Na typovém štítku jsou dvě různá čísla. **Registration No.** slouží k přidání nabíječky v aplikaci a k lokálnímu přihlášení. **SN** (sériové číslo zařízení) je to, co šablona TapHome potřebuje jako `DeviceSN`. Aplikace zobrazuje SN zařízení na stránce nabíječky **Basic information** (klepněte na horní část stránky Details nabíječky). Najdete ho také v Developer Portalu v části **Device > Device List**.

### Opětovné připojení Wi-Fi a lokální přístup

Pokud je nabíječka offline, otevřete v aplikaci stránku **Device**, klepněte na kartu nabíječky označenou jako offline a zvolte **Reconfigure**. Poté znovu zadejte síť 2,4 GHz a heslo.

![Aplikace SolaXCloud: nové nastavení Wi-Fi nabíječky elektromobilů a přihlášení v lokálním režimu podle Registration No.](https://taphome.com/images/compatibility/solax-hac-cloud-api/wifi-reconfigure_hu_a2a623a4deacb2f4.jpg)

Pokud nové nastavení selže, existuje druhý způsob. Připojte telefon nebo notebook k vlastní síti Wi-Fi nabíječky, která je pojmenována podle jejího Registration No. (`Wifi_XC…`). Poté v prohlížeči otevřete `http://192.168.10.10/` a přihlaste se jako `admin` s Registration No. jako heslem. Lokální režim v aplikaci (**More > Local Access**, nebo **Service > Application > Local Access** po přihlášení) používá stejnou síť.

> [!NOTE]
> Nabíječka svou lokální síť Wi-Fi automaticky vypne hodinu po úspěšném připojení k síti. Chcete-li lokální přístup použít později, síť znovu zapněte v aplikaci v části **Network > Local Access**.

### Scénář použití a režimy nabíjení

Nabíječka pracuje v jednom ze tří scénářů použití, který se volí v aplikaci v části **Advanced setting > Application scene**:

- **Solar** (výchozí): k dispozici jsou režimy nabíjení Green, Eco a Fast. Green a Eco vyžadují, aby nabíječka komunikovala se střídačem nebo s proudovým transformátorem (CT) či elektroměrem na přípojce sítě, aby znala přebytek FV výroby.
- **Standard**: nabíječka pouze spouští a zastavuje nabíjení. Green a Eco v tomto scénáři neexistují.
- **OCPP**: nabíječka je řízena přes OCPP server a aplikace SolaXCloud volbu režimu skryje.

![Scénář Solar: nabíječka elektromobilů SolaX komunikuje se střídačem, router Wi-Fi/LAN do cloudu, proudový transformátor (CT) nebo elektroměr, proudový chránič s nadproudovou ochranou (RCBO) a rozvaděč AC](https://taphome.com/images/compatibility/solax-hac-cloud-api/system-solar-scene-inverter_hu_d5e2ffa4db2be771.jpg)

Střídač se připojuje na port **COM1-S-** (A1/B1). Elektroměr nebo proudový transformátor (CT) se připojuje na port **COM2-M-** (A2/B2, vstupy CT na ostatních pinech). Úroveň nabíjecího proudu pro režim Green (3 A nebo 6 A) a pro režim Eco (6, 10, 16, 20 nebo 25 A) se nastavuje v aplikaci v části **Details > Function Control > Charge Level**. U modelů 11 kW nabízí Eco pouze 6 A a 10 A. Nabíjení v režimech Green a Eco navíc vyžaduje vozidlo, které splňuje normu IEC 61851.

## Nastavení přístupu k API v SolaX Developer Portalu

1. Přihlaste se do [SolaX Developer Portalu](https://developer.solaxcloud.com/home) a otevřete **Quick Start** nebo **Application**.
2. Vytvořte aplikaci pro elektrárnu SolaXCloud, která obsahuje nabíječku. Aplikace musí mít alespoň jednu autorizovanou elektrárnu.
3. Na kartě aplikace **Authorization** zkopírujte **Client ID** a **Client Secret**.
4. V části **Service API > Authorize** zapněte monitorovací služby **Data Monitoring Service** (`API_Telemetry_V2`) a **Information Access Service** (`API_Info_V2`). Zapněte také službu ovládání nabíječky elektromobilů, kterou potřebuje přepínač pracovního režimu a servisní akce. Samotné monitorování funguje i bez ní.
5. Sériové číslo nabíječky najdete v části **Device > Device List**. Je to stejné SN jako v aplikaci SolaXCloud.

> [!WARNING]
> Šablona je nastavena na evropský API host `openapi-eu.solaxcloud.com`. SolaX provozuje samostatné hosty pro Čínu (`openapi-cn.solaxcloud.com`) a Indii (`openapi-in.solaxcloud.com`). Region účtu je uveden v Developer Portalu. S aplikací v jiném regionu šablona v importované podobě nefunguje.

### Parametry importu

V TapHome importujte šablonu a vyplňte tři parametry uvedené níže. Vše ostatní (token, dotazování, opakované pokusy) řeší modul.

| Parametr | Popis | Kde ho najít |
|----------|-------|--------------|
| `ClientId` | Client ID aplikace v Developer Portalu | Application > **Authorization** |
| `ClientSecret` | Client Secret stejné aplikace | Application > **Authorization** |
| `DeviceSN` | Sériové číslo nabíječky (ne Registration No.) | Developer Portal **Device > Device List** nebo **Basic information** v aplikaci SolaXCloud |

> [!WARNING]
> Jednu dvojici Client ID a Client Secret používejte pouze pro jednoho klienta. Každá aplikace má jen jeden platný přístupový token, takže nová žádost o token zruší předchozí. Druhá instance šablony TapHome nebo jiný nástroj, který se dotazuje se stejnými přístupovými údaji, bude token této šablony neustále rušit. Pro druhou nabíječku nebo pro jiný systém vytvořte v Developer Portalu samostatnou aplikaci.

## Možnosti zařízení

Názvy zařízení v šabloně jsou ve slovenštině. Každé je níže uvedeno s názvem v aplikaci v závorce.

### Nabíjecí výkon a energie

**Nabíjecí výkon** (`Nabíjací výkon`) je elektroměr. Zobrazuje aktuální nabíjecí výkon v kW a celkovou nabitou energii v kWh. Jeho servisní atributy zobrazují energii aktuální relace (`Energia aktuálnej relácie [kWh]`), fázové proudy L1, L2 a L3 (`Prúd L1 [A]`, `Prúd L2 [A]`, `Prúd L3 [A]`) a jednofázový proud (`Jednofázový prúd [A]`).

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

- **Probíhá nabíjení** (`Nabíjanie prebieha`) je kontakt. Je zapnutý (`Nabíja`) pouze tehdy, když nabíječka hlásí stav Charging. Při každém jiném stavu je vypnutý (`Nenabíja`), včetně Suspended EV a Suspended EVSE.
- **Stav nabíječky** (`Stav nabíjačky`) je surový stavový kód nabíječ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** (`Pracovný režim`) je vícehodnotový přepínač se čtyřmi hodnotami: **STOP**, **FAST**, **ECO** a **GREEN**. Čte aktuální režim nabíječky a z TapHome nastavuje nový. ECO a GREEN se chovají tak, jak je popsáno u scénáře Solar výše, a závisí na komunikaci nabíječky se střídačem nebo elektroměrem.

### Servisní akce

Zařízení stavu nabíječky má čtyři servisní akce:

- **Spustit nabíjení** (`Spustiť nabíjanie`) a **Zastavit nabíjení** (`Zastaviť nabíjanie`).
- **Zamknout / zpřístupnit** (`Zamknúť / sprístupniť nabíjačku`) s hodnotami Zamknout (`Zamknúť`) a Zpřístupnit (`Sprístupniť`).
- **Nastavit limit proudu** (`Nastaviť limit prúdu`): 6–32 A u modelů 7 kW a 22 kW, 6–16 A u modelu 11 kW.

Příkazy jsou asynchronní. Odpověď „OK, príkaz odoslaný“ znamená, že SolaX cloud příkaz přijal, ne že ho nabíječka už provedla. Výsledek se projeví v hodnotách následujících cyklů.

### Historie karet a relací v grafech

- **RFID karta** (`RFID karta`) zobrazuje číslo karty, která relaci spustila, nebo 0, když se karta nepoužívá.
- **Čas nabíjení relace** (`Čas nabíjania relácie`) zobrazuje dobu trvání aktuální relace v minutách.

SolaX API historii karet neposkytuje. Když jsou u těchto dvou proměnných zapnuté grafy, TapHome si historii vytvoří sám: která karta nabíjela, kdy a jak dlouho, s rozlišením 60 sekund. Karty se používají pouze tehdy, když je režim aktivace nabíječky v aplikaci SolaXCloud nastaven na **RFID** (**Charger setting > Activation mode**). Výchozí režim **Plug & Charge** kartu nepoužívá.

## Řešení problémů

### Žádná data nebo chyba ověření na modulu

- Zkontrolujte, zda je nabíječka online v aplikaci SolaXCloud. Ikona serveru na displeji nabíječky ukazuje, zda je připojena k SolaXCloud.
- Zkontrolujte `ClientId` a `ClientSecret` vůči kartě **Authorization**. Secret, který byl v portálu znovu vygenerován, je nutné zadat znovu.
- Zkontrolujte, zda je `DeviceSN` sériové číslo nabíječky, ne Registration No.
- Zkontrolujte, zda má aplikace autorizovanou elektrárnu s nabíječkou a zda jsou autorizovány monitorovací služby. Kód API **10403** znamená, že služba API nemá přístupová práva. Kód **10500** znamená, že aplikace nemá oprávnění k datům tohoto zařízení.
- Kódy **10400** a **10402** znamenají, že token není platný. Modul si vyžádá nový token a čtení zopakuje ve stejném cyklu. Pokud modul i potom hlásí chybu s textem „aj po obnove tokenu“ („i po obnovení tokenu“), přístupové údaje nebo autorizované služby jsou chybné.

### Hodnoty se přestanou měnit

Kódy **10405** a **10406** znamenají, že byl dosažen limit volání API. Modul zobrazí upozornění a ponechá hodnoty z posledního úspěšného cyklu. Šablona posílá jeden požadavek za minutu. Do stejného limitu se započítávají i další nástroje, které čtou stejný účet SolaX.

### Pracovní režim nebo akce selhávají

- Servisní akce vrátí text `SolaX API kód <code>`, když cloud příkaz odmítne. Kód **10403** (žádná přístupová práva k rozhraní) může znamenat, že pro aplikaci není autorizována služba ovládání nabíječky elektromobilů.
- ECO a GREEN fungují pouze ve scénáři Solar a potřebují funkční spojení se střídačem nebo s proudovým transformátorem (CT) či elektroměrem. Ve scénáři Standard nabíječka pouze spouští a zastavuje nabíjení.

### Komerční instalace

Šablona čte nabíječku jako součást rezidenční elektrárny (`businessType=1`). Podle autora šablony potřebuje nabíječka v komerční a průmyslové elektrárně hodnotu 4 a její hodnoty výkonu jsou pak v kW místo W.

## Dostupná zařízení 6

Tato zařízení se po importu zobrazí v TapHome.

SolaX Cloud API Modul

Vlastní proměnné

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

Čtení (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 Elektroměr

Servisní atributy

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

Čtení celkové spotřeby

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

Čtení odběru

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

Servisní atributy

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

Čtení

```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 Proměnná

Servisní akce

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

Čtení

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

Servisní akce

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

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

Parametry: 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 Proměnná

Čtení

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

Čas nabíjania relácie Proměnná

Čtení

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

Pracovný režim Vícestavový přepínač

Hodnoty / Stavy: STOP · FAST · ECO · GREEN

Čtení stavu přepínače

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

Zápis stavu přepínače

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

**Připojení:** Packet Parser → HTTP

## Parametry importu

Tyto hodnoty zadáte při importu XML.

| Ptá se v aplikaci                                     | Výchozí            |
|-------------------------------------------------------|--------------------|
| ClientId: ID klienta z SolaX Developer Portálu        | Zadáte při importu |
| ClientSecret: Client Secret z SolaX Developer Portálu | Zadáte při importu |
| DeviceSN: Sériové číslo nabíjačky (Device SN)         | Zadáte při importu |

## Související dokumentace

- [Integrace Packet Parser](https://taphome.com/cs/compatibility/packet-parser-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/cs/docs/integration/packet-parser/)
- [Funkce Packet parser](https://taphome.com/cs/docs/script/packet-parser/)
- [Funkce pro parsování](https://taphome.com/cs/docs/script/parsing-functions/)

