---
title: "SolaX X1/X3-HAC EV Charger (Cloud API)"
description: "Ladeleistung, Energie, Status und Modus STOP/FAST/ECO/GREEN der SolaX HAC Wallbox über die SolaX Developer API. Benötigt Client ID, Secret und SN."
url: "https://taphome.com/de/compatibility/solax-hac-cloud-api/"
language: de
lastmod: 2026-11-12
generator: hugo
ai:
  topics: ["http","wallbox","cloud-api","oauth2","ev-charging","solar-surplus-charging"]
  questions: ["Wie integriert man eine SolaX X1/X3-HAC Wallbox mit TapHome?","Was liest und steuert die TapHome-Vorlage SolaX HAC Cloud API?","Wie erhält man Client ID und Client Secret für die API des SolaX Developer Portal?","Welche Seriennummer braucht die SolaX-HAC-Vorlage: Device SN oder Registration No.?","Wie verbindet man die SolaX HAC Wallbox über WLAN, LAN oder 4G mit SolaXCloud?","Warum gibt die SolaX Cloud API in TapHome den Code 10402 oder 10406 zurück?"]
---

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

Kommunikation: Packet Parser → HTTP

## Integrationsanleitung

Die Vorlage SolaX HAC Cloud API verbindet TapHome über die API des SolaX Developer Portal (OpenAPI) mit einer Wallbox SolaX X1-HAC oder X3-HAC. Der Autor der Vorlage führt außerdem die Wallboxen A1-HAC und C1/C3-HAC auf. TapHome kommuniziert nicht direkt mit der Wallbox: Die Wallbox meldet ihre Daten über WLAN, LAN oder 4G an SolaXCloud, und TapHome liest sie alle 60 Sekunden über HTTPS aus der SolaX-Cloud. Schreibbefehle (Betriebsmodus, Start und Stopp, Sperre, Strombegrenzung) gelangen auf demselben Weg über die Cloud zurück zur Wallbox.

Bevor Sie die Vorlage importieren, müssen zwei Voraussetzungen erfüllt sein. Die Wallbox muss in einem SolaXCloud-Konto online sein, und für dieses Konto wird im SolaX Developer Portal eine Anwendung benötigt, die **Client ID** und **Client Secret** bereitstellt. Arbeitet die Wallbox neben einem SolaX-Wechselrichter, kann die Vorlage [SolaX Inverter (Cloud API)](https://taphome.com/de/compatibility/solax-inverter/) im selben TapHome-Projekt laufen. Sie nutzt die ältere Monitoring-API von SolaxCloud mit eigenem Token.

## Wallbox mit SolaXCloud verbinden

### Netzwerkverbindung

Die Wallbox bietet drei Wege ins Internet. Alle nutzen DHCP, der Router vergibt die IP-Adresse also automatisch.

- **WLAN**: nur 2,4 GHz (802.11 b/g/n). 5-GHz-Netze werden nicht unterstützt.
- **Ethernet (LAN)**: der RJ45-Anschluss **LAN (/ DI)**. Ethernet nutzt die Pins 1, 2, 3 und 6 (TX+, TX−, RX+, RX−). Wird nur Ethernet benötigt, bleiben die übrigen Pins unbeschaltet. Bei einer LAN-Verbindung kann die WLAN-Einrichtung entfallen.
- **4G**: nur bei Modellen mit „4G“ im Namen (zum Beispiel X3-HAC-22P-B4G). Eine autorisierte Fachkraft muss eine Nano-SIM-Karte einsetzen, die Cat-M, NB-IoT oder GSM unterstützt. SolaX empfiehlt in den Szenen Solar und Standard mindestens 100 MB Daten pro Monat.

![Pinbelegung der Kommunikationsanschlüsse LAN/DI, COM2-M und COM1-S der Wallbox mit den RJ45-Aderfarben](https://taphome.com/images/compatibility/solax-hac-cloud-api/pins-communication-ports_hu_e3a3a34d16605204.jpg)

> [!WARNING]
> Das Ethernet-Kabel zur Wallbox muss gegen Blitzeinschlag geschützt sein. Werden LAN und der Signaleingang DI gemeinsam benötigt, crimpen Sie die Pins 1, 2, 3 und 6 für Ethernet und die Pins 4, 5 und 8 für DI und verbinden Sie dann beide Kabel mit dem RJ45-Kupplungsstück, das der Wallbox beiliegt.

Die 4G-Verbindung wird in der SolaXCloud-App im lokalen Modus eingerichtet: Öffnen Sie **Dongle** und dann die Einstellungsschaltfläche, setzen Sie **Device Networking Mode** auf **4G**, geben Sie den APN des Netzbetreibers ein und wählen Sie den Netztyp, den die SIM-Karte unterstützt.

### Wallbox in der SolaXCloud-App hinzufügen

1. Installieren Sie die App **SolaXCloud** aus dem App Store oder von Google Play und registrieren Sie ein Konto mit E-Mail-Adresse oder Telefonnummer und einem Bestätigungscode.
2. Legen Sie bei der ersten Anmeldung eine Anlage an: Erlauben Sie den Standortzugriff, geben Sie einen Anlagennamen ein und schließen Sie die übrigen Einstellungen ab.
3. Fügen Sie die Wallbox hinzu, indem Sie die **Registration No.** von ihrem Typenschild scannen oder eintippen. Später hinzugefügte Wallboxen laufen über die Seite **Device**, das Symbol **+** und dann **Add Device** oder **Scan**.
4. Geben Sie den WLAN-Namen und das Passwort ein, wenn die Wallbox per WLAN verbunden wird.

![SolaXCloud-App: Wallbox über die Registration No. vom Typenschild hinzufügen](https://taphome.com/images/compatibility/solax-hac-cloud-api/add-device-registration-no_hu_4b06cff948b79022.jpg)

Das Typenschild zeigt zwei verschiedene Nummern. Die **Registration No.** dient zum Hinzufügen der Wallbox in der App und zur lokalen Anmeldung. Die **SN** (Seriennummer des Geräts) braucht die TapHome-Vorlage als `DeviceSN`. Die App zeigt die Geräte-SN auf der Seite **Basic information** der Wallbox (tippen Sie auf den oberen Teil der Seite Details der Wallbox). Außerdem ist sie im Developer Portal unter **Device > Device List** aufgeführt.

### WLAN neu verbinden und lokaler Zugriff

Geht die Wallbox offline, öffnen Sie in der App die Seite **Device**, tippen Sie auf die als offline markierte Karte der Wallbox und wählen Sie **Reconfigure**. Geben Sie dann das 2,4-GHz-Netz und das Passwort erneut ein.

![SolaXCloud-App: WLAN der Wallbox neu konfigurieren und Anmeldung im lokalen Modus mit der Registration No.](https://taphome.com/images/compatibility/solax-hac-cloud-api/wifi-reconfigure_hu_a2a623a4deacb2f4.jpg)

Schlägt die Neukonfiguration fehl, gibt es einen zweiten Weg. Verbinden Sie ein Smartphone oder Notebook mit dem eigenen WLAN der Wallbox, das nach ihrer Registration No. benannt ist (`Wifi_XC…`). Öffnen Sie dann `http://192.168.10.10/` im Browser und melden Sie sich als `admin` an, mit der Registration No. als Passwort. Der lokale Modus der App (**More > Local Access**, oder **Service > Application > Local Access** nach der Anmeldung) nutzt dasselbe Netz.

> [!NOTE]
> Die Wallbox schaltet ihr lokales WLAN eine Stunde nach der erfolgreichen Verbindung mit dem Netzwerk automatisch ab. Um den lokalen Zugriff später zu nutzen, schalten Sie das Netz in der App unter **Network > Local Access** wieder ein.

### Anwendungsszene und Lademodi

Die Wallbox arbeitet in einer von drei Anwendungsszenen, die Sie in der App unter **Advanced setting > Application scene** wählen:

- **Solar** (Standard): Die Lademodi Green, Eco und Fast stehen zur Verfügung. Green und Eco setzen voraus, dass die Wallbox mit dem Wechselrichter oder mit einem Stromwandler (CT) bzw. Zähler am Netzanschluss kommuniziert, damit sie den PV-Überschuss kennt.
- **Standard**: Die Wallbox startet und stoppt das Laden nur. Green und Eco gibt es in dieser Szene nicht.
- **OCPP**: Die Wallbox wird über einen OCPP-Server verwaltet, und die SolaXCloud-App blendet die Modusauswahl aus.

![Szene Solar: SolaX-Wallbox in Kommunikation mit dem Wechselrichter, WLAN/LAN-Router zur Cloud, CT/Zähler, RCBO und AC-Verteiler](https://taphome.com/images/compatibility/solax-hac-cloud-api/system-solar-scene-inverter_hu_d5e2ffa4db2be771.jpg)

Der Wechselrichter wird an den Anschluss **COM1-S-** (A1/B1) angeschlossen. Ein Zähler oder CT kommt an den Anschluss **COM2-M-** (A2/B2, CT-Eingänge auf den übrigen Pins). Die Ladestromstufe für den Modus Green (3 A oder 6 A) und für den Modus Eco (6, 10, 16, 20 oder 25 A) stellen Sie in der App unter **Details > Function Control > Charge Level** ein. Bei 11-kW-Modellen bietet Eco nur 6 A und 10 A. Laden mit Green und Eco setzt außerdem ein Fahrzeug voraus, das IEC 61851 entspricht.

## API-Zugang im SolaX Developer Portal einrichten

1. Melden Sie sich im [SolaX Developer Portal](https://developer.solaxcloud.com/home) an und öffnen Sie **Quick Start** oder **Application**.
2. Legen Sie eine Anwendung für die SolaXCloud-Anlage an, zu der die Wallbox gehört. Die Anwendung muss mindestens eine autorisierte Anlage haben.
3. Kopieren Sie auf der Registerkarte **Authorization** der Anwendung die **Client ID** und das **Client Secret**.
4. Aktivieren Sie unter **Service API > Authorize** die Monitoring-Dienste **Data Monitoring Service** (`API_Telemetry_V2`) und **Information Access Service** (`API_Info_V2`). Aktivieren Sie auch den Steuerdienst für EV-Ladestationen, den die Umschaltung des Betriebsmodus und die Service-Aktionen benötigen. Das reine Monitoring funktioniert ohne ihn.
5. Die Seriennummer der Wallbox finden Sie unter **Device > Device List**. Es ist dieselbe SN wie in der SolaXCloud-App.

> [!WARNING]
> Die Vorlage ist auf den europäischen API-Host `openapi-eu.solaxcloud.com` eingestellt. SolaX betreibt eigene Hosts für China (`openapi-cn.solaxcloud.com`) und Indien (`openapi-in.solaxcloud.com`). Die Region des Kontos wird im Developer Portal angezeigt. Mit einer Anwendung in einer anderen Region funktioniert die Vorlage im importierten Zustand nicht.

### Importparameter

Importieren Sie die Vorlage in TapHome und füllen Sie die drei folgenden Parameter aus. Alles andere (Token, Abfrage, Wiederholungen) übernimmt das Modul.

| Parameter | Beschreibung | Wo zu finden |
|-----------|--------------|--------------|
| `ClientId` | Client ID der Anwendung im Developer Portal | Application > **Authorization** |
| `ClientSecret` | Client Secret derselben Anwendung | Application > **Authorization** |
| `DeviceSN` | Seriennummer der Wallbox (nicht die Registration No.) | Developer Portal **Device > Device List** oder **Basic information** in der SolaXCloud-App |

> [!WARNING]
> Verwenden Sie ein Paar aus Client ID und Client Secret nur für einen einzigen Client. Jede Anwendung hat nur ein gültiges Zugriffstoken, eine neue Token-Anforderung macht also das vorherige ungültig. Eine zweite Instanz der TapHome-Vorlage oder ein anderes Tool, das mit denselben Zugangsdaten abfragt, macht das Token dieser Vorlage immer wieder ungültig. Legen Sie für eine zweite Wallbox oder für ein anderes System eine eigene Anwendung im Developer Portal an.

## Gerätefunktionen

Die Gerätenamen in der Vorlage sind slowakisch. Jedes Gerät ist unten mit seinem Namen in der App in Klammern aufgeführt.

### Ladeleistung und Energie

**Ladeleistung** (`Nabíjací výkon`) ist ein Stromzähler. Er zeigt die aktuelle Ladeleistung in kW und die insgesamt geladene Energie in kWh. Seine Service-Attribute zeigen die Energie der aktuellen Ladesitzung (`Energia aktuálnej relácie [kWh]`), die Phasenströme L1, L2 und L3 (`Prúd L1 [A]`, `Prúd L2 [A]`, `Prúd L3 [A]`) und den einphasigen Strom (`Jednofázový prúd [A]`).

### Ladezustand und Statuscode

- **Laden läuft** (`Nabíjanie prebieha`) ist ein Reedkontakt. Er ist nur eingeschaltet (`Nabíja`), solange die Wallbox den Status Charging meldet. In jedem anderen Status ist er ausgeschaltet (`Nenabíja`), auch bei Suspended EV und Suspended EVSE.
- **Status der Wallbox** (`Stav nabíjačky`) ist der unverarbeitete Statuscode der Wallbox:

| Code | Status | Code | 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 |

### Betriebsmodus

**Betriebsmodus** (`Pracovný režim`) ist ein Mehrfachschalter mit vier Werten: **STOP**, **FAST**, **ECO** und **GREEN**. Er liest den aktuellen Modus der Wallbox und setzt aus TapHome einen neuen. ECO und GREEN verhalten sich wie oben bei der Szene Solar beschrieben und hängen von der Kommunikation der Wallbox mit dem Wechselrichter oder dem Zähler ab.

### Service-Aktionen

Das Gerät Status der Wallbox trägt vier Service-Aktionen:

- **Laden starten** (`Spustiť nabíjanie`) und **Laden stoppen** (`Zastaviť nabíjanie`).
- **Sperren / freigeben** (`Zamknúť / sprístupniť nabíjačku`), mit den Werten Sperren (`Zamknúť`) und Freigeben (`Sprístupniť`).
- **Strombegrenzung setzen** (`Nastaviť limit prúdu`): 6–32 A bei den Modellen mit 7 kW und 22 kW, 6–16 A beim Modell mit 11 kW.

Die Befehle sind asynchron. Die Antwort „OK, príkaz odoslaný“ bedeutet, dass die SolaX-Cloud den Befehl angenommen hat, nicht dass die Wallbox ihn bereits ausgeführt hat. Das Ergebnis zeigt sich in den Messwerten der nächsten Zyklen.

### Karten- und Sitzungsverlauf in Diagrammen

- **RFID-Karte** (`RFID karta`) zeigt die Nummer der Karte, mit der die Ladesitzung gestartet wurde, oder 0, wenn keine Karte verwendet wird.
- **Ladezeit der Sitzung** (`Čas nabíjania relácie`) zeigt die Dauer der aktuellen Ladesitzung in Minuten.

Die SolaX-API liefert keinen Kartenverlauf. Sind für diese beiden Variablen Diagramme aktiviert, erstellt TapHome den Verlauf selbst: welche Karte wann und wie lange geladen hat, mit einer Auflösung von 60 Sekunden. Karten werden nur verwendet, wenn der Aktivierungsmodus der Wallbox in der SolaXCloud-App auf **RFID** steht (**Charger setting > Activation mode**). Der Standardmodus **Plug & Charge** verwendet keine Karte.

## Fehlerbehebung

### Keine Daten oder ein Authentifizierungsfehler am Modul

- Prüfen Sie, ob die Wallbox in der SolaXCloud-App online ist. Das Server-Symbol auf dem Display der Wallbox zeigt, ob sie mit SolaXCloud verbunden ist.
- Vergleichen Sie `ClientId` und `ClientSecret` mit der Registerkarte **Authorization**. Ein im Portal neu erzeugtes Secret muss erneut eingegeben werden.
- Prüfen Sie, ob `DeviceSN` die Seriennummer der Wallbox ist und nicht die Registration No.
- Prüfen Sie, ob die Anwendung eine autorisierte Anlage mit der Wallbox hat und ob die Monitoring-Dienste autorisiert sind. Der API-Code **10403** bedeutet, dass der API-Dienst keine Zugriffsrechte hat. Der Code **10500** bedeutet, dass die Anwendung keine Berechtigung für die Daten dieses Geräts hat.
- Die Codes **10400** und **10402** bedeuten, dass das Token ungültig ist. Das Modul fordert ein neues Token an und wiederholt das Auslesen im selben Zyklus. Meldet das Modul danach weiterhin einen Fehler mit dem Text „aj po obnove tokenu“ („auch nach Erneuerung des Tokens“), sind die Zugangsdaten oder die autorisierten Dienste falsch.

### Messwerte ändern sich nicht mehr

Die Codes **10405** und **10406** bedeuten, dass das Limit der API-Aufrufe erreicht ist. Das Modul zeigt eine Warnung und behält die Werte des letzten erfolgreichen Zyklus. Die Vorlage stellt eine Anfrage pro Minute. Andere Tools, die dasselbe SolaX-Konto auslesen, zählen zum selben Limit.

### Betriebsmodus oder Aktionen schlagen fehl

- Eine Service-Aktion gibt den Text `SolaX API kód <code>` zurück, wenn die Cloud den Befehl ablehnt. Der Code **10403** (keine Zugriffsrechte auf die Schnittstelle) kann bedeuten, dass der Steuerdienst für EV-Ladestationen für die Anwendung nicht autorisiert ist.
- ECO und GREEN funktionieren nur in der Szene Solar und benötigen eine funktionierende Verbindung zum Wechselrichter oder zum CT/Zähler. In der Szene Standard startet und stoppt die Wallbox das Laden nur.

### Gewerbliche Installationen

Die Vorlage liest die Wallbox als Teil einer privaten Anlage (`businessType=1`). Laut dem Autor der Vorlage benötigt eine Wallbox in einer Gewerbe- und Industrieanlage den Wert 4, und ihre Leistungswerte sind dann in kW statt in W.

## Verfügbare Geräte 6

Diese Geräte erscheinen nach dem Import in TapHome.

SolaX Cloud API Modul

Benutzerdefinierte Variablen

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

Lesen (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 Stromzähler

Serviceattribute

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

Gesamtverbrauch lesen

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

Bedarf lesen

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

Serviceattribute

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 Reed-Kontakt

Lesen

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

Serviceaktionen

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

Lesen

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

Serviceaktionen

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

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

Parameter: 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 Variable

Lesen

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

Čas nabíjania relácie Variable

Lesen

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

Pracovný režim Mehrwertschalter

Werte / Zustände: STOP · FAST · ECO · GREEN

Schaltzustand lesen

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

Schaltzustand schreiben

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

**Verbindung:** Packet Parser → HTTP

## Importparameter

Diese Werte geben Sie beim Import des XML ein.

| In der App abgefragt                                  | Standard             |
|-------------------------------------------------------|----------------------|
| ClientId: ID klienta z SolaX Developer Portálu        | Beim Import eingeben |
| ClientSecret: Client Secret z SolaX Developer Portálu | Beim Import eingeben |
| DeviceSN: Sériové číslo nabíjačky (Device SN)         | Beim Import eingeben |

## Verwandte Dokumentation

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

