---
title: "SolaX X1/X3-HAC EV Charger (Cloud API)"
description: "Puterea, energia, starea și modul STOP/FAST/ECO/GREEN ale stațiilor de încărcare SolaX HAC prin SolaX Developer API. Necesită Client ID, Secret și SN."
url: "https://taphome.com/ro/compatibility/solax-hac-cloud-api/"
language: ro
lastmod: 2026-11-12
generator: hugo
ai:
  topics: ["http","wallbox","cloud-api","oauth2","ev-charging","solar-surplus-charging"]
  questions: ["Cum se integrează o stație de încărcare SolaX X1/X3-HAC cu TapHome?","Ce citește și ce controlează șablonul TapHome SolaX HAC Cloud API?","Cum se obțin Client ID și Client Secret pentru API-ul SolaX Developer Portal?","De ce număr de serie are nevoie șablonul SolaX HAC: Device SN sau Registration No.?","Cum se conectează stația de încărcare SolaX HAC la SolaXCloud prin Wi-Fi, LAN sau 4G?","De ce returnează SolaX Cloud API codul 10402 sau 10406 în TapHome?"]
---

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

Comunicație: Packet Parser → HTTP

## Ghid de integrare

Șablonul SolaX HAC Cloud API conectează TapHome la o stație de încărcare SolaX X1-HAC sau X3-HAC prin API-ul SolaX Developer Portal (OpenAPI). Autorul șablonului enumeră și stațiile de încărcare A1-HAC și C1/C3-HAC. TapHome nu comunică direct cu stația de încărcare: aceasta raportează către SolaXCloud prin Wi-Fi, LAN sau 4G, iar TapHome îi citește datele din cloudul SolaX prin HTTPS la fiecare 60 de secunde. Comenzile de scriere (mod de lucru, pornire și oprire, blocare, limită de curent) ajung înapoi la stația de încărcare tot prin cloud.

Înainte de importul șablonului trebuie îndeplinite două condiții. Stația de încărcare trebuie să fie online într-un cont SolaXCloud, iar acest cont are nevoie de o aplicație în SolaX Developer Portal, care furnizează **Client ID** și **Client Secret**. Dacă stația de încărcare funcționează alături de un invertor solar SolaX, șablonul [SolaX Inverter (Cloud API)](https://taphome.com/ro/compatibility/solax-inverter/) poate rula în același proiect TapHome. Acesta folosește vechiul API de monitorizare SolaxCloud, cu propriul token.

## Conectarea stației de încărcare la SolaXCloud

### Conexiunea la rețea

Stația de încărcare are trei moduri de conectare la internet. Toate folosesc DHCP, astfel încât adresa IP este atribuită automat de router.

- **Wi-Fi**: doar 2,4 GHz (802.11 b/g/n). Rețelele de 5 GHz nu sunt acceptate.
- **Ethernet (LAN)**: portul RJ45 **LAN (/ DI)**. Ethernetul folosește pinii 1, 2, 3 și 6 (TX+, TX−, RX+, RX−). Când este nevoie doar de Ethernet, lăsați ceilalți pini neconectați. Cu o conexiune LAN, configurarea Wi-Fi poate fi omisă.
- **4G**: doar pentru modelele care au „4G” în denumire (de exemplu X3-HAC-22P-B4G). Cartela nano SIM, care trebuie să accepte Cat-M, NB-IoT sau GSM, se montează numai de către un specialist autorizat. SolaX recomandă cel puțin 100 MB de date pe lună în scenariile Solar și Standard.

![Definiția pinilor porturilor de comunicație LAN/DI, COM2-M și COM1-S ale stației de încărcare, cu culorile firelor RJ45](https://taphome.com/images/compatibility/solax-hac-cloud-api/pins-communication-ports_hu_e3a3a34d16605204.jpg)

> [!WARNING]
> Cablul Ethernet către stația de încărcare trebuie protejat împotriva descărcărilor atmosferice. Dacă sunt necesare atât LAN-ul, cât și intrarea de semnal DI, sertizați pinii 1, 2, 3 și 6 pentru Ethernet și pinii 4, 5 și 8 pentru DI, apoi uniți cele două cabluri cu cuplorul RJ45 livrat împreună cu stația de încărcare.

Conexiunea 4G se configurează în aplicația SolaXCloud, în modul local: deschideți **Dongle**, apoi butonul de setări, setați **Device Networking Mode** la **4G**, introduceți APN-ul operatorului și alegeți tipul de rețea acceptat de cartela SIM.

### Adăugarea stației de încărcare în aplicația SolaXCloud

1. Instalați aplicația **SolaXCloud** din App Store sau Google Play și înregistrați un cont cu o adresă de e-mail sau un număr de telefon și un cod de verificare.
2. La prima autentificare, creați o centrală (plant): permiteți accesul la locație, introduceți numele centralei și finalizați celelalte setări.
3. Adăugați stația de încărcare scanând sau tastând **Registration No.** de pe eticheta de tip. Stațiile de încărcare adăugate ulterior se adaugă din pagina **Device**, pictograma **+**, apoi **Add Device** sau **Scan**.
4. Dacă stația de încărcare se conectează prin Wi-Fi, introduceți numele și parola rețelei Wi-Fi.

![Aplicația SolaXCloud: adăugarea stației de încărcare după Registration No. de pe eticheta de tip](https://taphome.com/images/compatibility/solax-hac-cloud-api/add-device-registration-no_hu_4b06cff948b79022.jpg)

Eticheta de tip conține două numere diferite. **Registration No.** se folosește pentru adăugarea stației de încărcare în aplicație și pentru autentificarea locală. **SN** (numărul de serie al dispozitivului) este cel de care șablonul TapHome are nevoie ca `DeviceSN`. Aplicația afișează SN-ul dispozitivului pe pagina **Basic information** a stației de încărcare (atingeți partea de sus a paginii Details a stației). Numărul apare și în Developer Portal, la **Device > Device List**.

### Reconectarea la Wi-Fi și accesul local

Dacă stația de încărcare devine offline, deschideți pagina **Device** din aplicație, atingeți cardul stației marcat offline și alegeți **Reconfigure**. Apoi introduceți din nou rețeaua de 2,4 GHz și parola.

![Aplicația SolaXCloud: reconfigurarea Wi-Fi a stației de încărcare și autentificarea în modul local după Registration No.](https://taphome.com/images/compatibility/solax-hac-cloud-api/wifi-reconfigure_hu_a2a623a4deacb2f4.jpg)

Dacă reconfigurarea eșuează, există o a doua cale. Conectați un telefon sau un laptop la rețeaua Wi-Fi proprie a stației de încărcare, denumită după Registration No. (`Wifi_XC…`). Apoi deschideți `http://192.168.10.10/` într-un browser și autentificați-vă ca `admin`, cu Registration No. ca parolă. Modul local din aplicație (**More > Local Access** sau, după autentificare, **Service > Application > Local Access**) folosește aceeași rețea.

> [!NOTE]
> Stația de încărcare își oprește automat rețeaua Wi-Fi locală la o oră după ce se conectează cu succes la rețea. Pentru a folosi ulterior accesul local, reporniți rețeaua din aplicație, la **Network > Local Access**.

### Scenariul de utilizare și modurile de încărcare

Stația de încărcare funcționează într-unul dintre cele trei scenarii de utilizare, ales în aplicație la **Advanced setting > Application scene**:

- **Solar** (implicit): sunt disponibile modurile de încărcare Green, Eco și Fast. Green și Eco necesită comunicația stației de încărcare cu invertorul sau cu un transformator de curent (CT) ori un contor la punctul de racordare la rețea, pentru ca stația să cunoască surplusul fotovoltaic.
- **Standard**: stația de încărcare doar pornește și oprește încărcarea. Green și Eco nu există în acest scenariu.
- **OCPP**: stația de încărcare este gestionată printr-un server OCPP, iar aplicația SolaXCloud ascunde selecția modului.

![Scenariul Solar: stația de încărcare SolaX comunică cu invertorul, routerul Wi-Fi/LAN către cloud, CT/contor, RCBO și tabloul electric AC](https://taphome.com/images/compatibility/solax-hac-cloud-api/system-solar-scene-inverter_hu_d5e2ffa4db2be771.jpg)

Invertorul se conectează la portul **COM1-S-** (A1/B1). Un contor sau un CT se conectează la portul **COM2-M-** (A2/B2, intrările CT pe ceilalți pini). Nivelul curentului de încărcare pentru modul Green (3 A sau 6 A) și pentru modul Eco (6, 10, 16, 20 sau 25 A) se setează în aplicație la **Details > Function Control > Charge Level**. La modelele de 11 kW, Eco oferă doar 6 A și 10 A. Încărcarea Green și Eco necesită, de asemenea, un vehicul conform cu IEC 61851.

## Configurarea accesului API în SolaX Developer Portal

1. Autentificați-vă în [SolaX Developer Portal](https://developer.solaxcloud.com/home) și deschideți **Quick Start** sau **Application**.
2. Creați o aplicație pentru centrala SolaXCloud care conține stația de încărcare. Aplicația trebuie să aibă cel puțin o centrală autorizată.
3. În fila **Authorization** a aplicației, copiați **Client ID** și **Client Secret**.
4. La **Service API > Authorize**, activați serviciile de monitorizare **Data Monitoring Service** (`API_Telemetry_V2`) și **Information Access Service** (`API_Info_V2`). Activați și serviciul de control al stației de încărcare, de care au nevoie comutatorul modului de lucru și acțiunile de service. Monitorizarea singură funcționează și fără el.
5. Găsiți numărul de serie al stației de încărcare la **Device > Device List**. Este același SN ca în aplicația SolaXCloud.

> [!WARNING]
> Șablonul este setat pe hostul API european `openapi-eu.solaxcloud.com`. SolaX operează hosturi separate pentru China (`openapi-cn.solaxcloud.com`) și India (`openapi-in.solaxcloud.com`). Regiunea contului este afișată în Developer Portal. Așa cum este importat, șablonul nu funcționează cu o aplicație dintr-o altă regiune.

### Parametri de import

În TapHome, importați șablonul și completați cei trei parametri de mai jos. Restul (token, interogare periodică, reîncercări) este gestionat de modul.

| Parametru | Descriere | Unde se găsește |
|-----------|-----------|-----------------|
| `ClientId` | Client ID al aplicației din Developer Portal | Application > **Authorization** |
| `ClientSecret` | Client Secret al aceleiași aplicații | Application > **Authorization** |
| `DeviceSN` | Numărul de serie al stației de încărcare (nu Registration No.) | Developer Portal **Device > Device List** sau **Basic information** în aplicația SolaXCloud |

> [!WARNING]
> Folosiți o pereche Client ID și Client Secret pentru un singur client. Fiecare aplicație are un singur token de acces valid, astfel că o nouă cerere de token îl anulează pe cel anterior. O a doua instanță a șablonului TapHome sau un alt instrument care interoghează cu aceleași date de autentificare anulează în mod repetat tokenul acestui șablon. Pentru o a doua stație de încărcare sau pentru un alt sistem, creați o aplicație separată în Developer Portal.

## Funcțiile dispozitivului

Numele dispozitivelor din șablon sunt în slovacă. Fiecare este prezentat mai jos, cu numele din aplicație între paranteze.

### Puterea și energia de încărcare

**Puterea de încărcare** (`Nabíjací výkon`) este un contor electric. Afișează puterea de încărcare actuală în kW și energia totală încărcată în kWh. Atributele de service afișează energia sesiunii curente (`Energia aktuálnej relácie [kWh]`), curenții pe fazele L1, L2 și L3 (`Prúd L1 [A]`, `Prúd L2 [A]`, `Prúd L3 [A]`) și curentul monofazat (`Jednofázový prúd [A]`).

### Starea încărcării și codul de stare

- **Încărcare în curs** (`Nabíjanie prebieha`) este un contact. Este activ (`Nabíja`) doar cât timp stația de încărcare raportează starea Charging. În orice altă stare este inactiv (`Nenabíja`), inclusiv în Suspended EV și Suspended EVSE.
- **Starea stației de încărcare** (`Stav nabíjačky`) este codul de stare brut al stației:

| Cod | Stare | Cod | Stare |
|-----|-------|-----|-------|
| 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 |

### Modul de lucru

**Modul de lucru** (`Pracovný režim`) este un comutator cu mai multe valori, cu patru valori: **STOP**, **FAST**, **ECO** și **GREEN**. Citește modul actual al stației de încărcare și setează unul nou din TapHome. ECO și GREEN funcționează conform descrierii scenariului Solar de mai sus și depind de comunicația stației de încărcare cu invertorul sau cu contorul.

### Acțiuni de service

Dispozitivul de stare a stației de încărcare are patru acțiuni de service:

- **Pornire încărcare** (`Spustiť nabíjanie`) și **Oprire încărcare** (`Zastaviť nabíjanie`).
- **Blocare / punere la dispoziție** (`Zamknúť / sprístupniť nabíjačku`), cu valorile Blocare (`Zamknúť`) și Punere la dispoziție (`Sprístupniť`).
- **Setare limită de curent** (`Nastaviť limit prúdu`): 6–32 A la modelele de 7 kW și 22 kW, 6–16 A la modelul de 11 kW.

Comenzile sunt asincrone. Răspunsul „OK, príkaz odoslaný” înseamnă că cloudul SolaX a acceptat comanda, nu că stația de încărcare a și executat-o. Rezultatul apare în citirile din ciclurile următoare.

### Istoricul cardurilor și al sesiunilor în grafice

- **Card RFID** (`RFID karta`) afișează numărul cardului care a pornit sesiunea sau 0 când nu se folosește niciun card.
- **Durata de încărcare a sesiunii** (`Čas nabíjania relácie`) afișează durata sesiunii curente în minute.

API-ul SolaX nu oferă un istoric al cardurilor. Cu graficele (Charts) activate pentru aceste două variabile, TapHome construiește singur istoricul: ce card a încărcat, când și cât timp, cu o rezoluție de 60 de secunde. Cardurile se folosesc doar când modul de activare al stației de încărcare este setat pe **RFID** în aplicația SolaXCloud (**Charger setting > Activation mode**). Modul implicit **Plug & Charge** nu folosește card.

## Depanare

### Nu există date sau modulul afișează o eroare de autentificare

- Verificați dacă stația de încărcare este online în aplicația SolaXCloud. Pictograma de server de pe ecranul stației arată dacă aceasta este conectată la SolaXCloud.
- Verificați `ClientId` și `ClientSecret` față de fila **Authorization**. Un secret regenerat în portal trebuie introdus din nou.
- Verificați dacă `DeviceSN` este numărul de serie al stației de încărcare, nu Registration No.
- Verificați dacă aplicația are o centrală autorizată care conține stația de încărcare și dacă serviciile de monitorizare sunt autorizate. Codul API **10403** înseamnă că serviciul API nu are drepturi de acces. Codul **10500** înseamnă că aplicația nu are permisiune pentru datele acestui dispozitiv.
- Codurile **10400** și **10402** înseamnă că tokenul nu este valid. Modulul solicită un token nou și repetă citirea în același ciclu. Dacă modulul raportează în continuare o eroare cu textul „aj po obnove tokenu” („chiar și după reînnoirea tokenului”), datele de autentificare sau serviciile autorizate sunt greșite.

### Valorile nu se mai schimbă

Codurile **10405** și **10406** înseamnă că s-a atins limita de apeluri API. Modulul afișează un avertisment și păstrează valorile din ultimul ciclu reușit. Șablonul face o cerere pe minut. Alte instrumente care citesc același cont SolaX consumă din aceeași limită.

### Modul de lucru sau acțiunile nu funcționează

- O acțiune de service returnează textul `SolaX API kód <code>` când cloudul respinge comanda. Codul **10403** (fără drepturi de acces la interfață) poate însemna că serviciul de control al stației de încărcare nu este autorizat pentru aplicație.
- ECO și GREEN funcționează doar în scenariul Solar și necesită o conexiune funcțională cu invertorul sau cu CT-ul/contorul. În scenariul Standard, stația de încărcare doar pornește și oprește încărcarea.

### Instalații comerciale

Șablonul citește stația de încărcare ca parte a unei centrale rezidențiale (`businessType=1`). Potrivit autorului șablonului, o stație de încărcare dintr-o centrală comercială și industrială necesită valoarea 4, iar valorile de putere sunt atunci în kW în loc de W.

## Dispozitive disponibile 6

Aceste dispozitive apar în TapHome după import.

SolaX Cloud API Modul

Variabile personalizate

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

Citire (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 Contor electric

Atribute de service

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

Citirea consumului total

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

Citirea cererii

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

Atribute de service

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 Contact reed

Citire

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

Acțiuni de service

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

Citire

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

Acțiuni de service

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 Variabilă

Citire

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

Čas nabíjania relácie Variabilă

Citire

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

Pracovný režim Comutator cu mai multe valori

Valori / Stări: STOP · FAST · ECO · GREEN

Citirea stării comutatorului

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

Scrierea stării comutatorului

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

**Conexiune:** Packet Parser → HTTP

## Parametri de import

Introduceți aceste valori când importați XML-ul.

| Solicitat în aplicație                                | Implicit               |
|-------------------------------------------------------|------------------------|
| ClientId: ID klienta z SolaX Developer Portálu        | Se introduce la import |
| ClientSecret: Client Secret z SolaX Developer Portálu | Se introduce la import |
| DeviceSN: Sériové číslo nabíjačky (Device SN)         | Se introduce la import |

## Documentație asociată

- [Packet Parser Integration](https://taphome.com/ro/compatibility/packet-parser-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/ro/docs/integration/packet-parser/)
- [Funcții Packet parser](https://taphome.com/ro/docs/script/packet-parser/)
- [Funcții de parsare](https://taphome.com/ro/docs/script/parsing-functions/)

