TapHome
Społeczność Beta Energia i pomiar

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

Integracja ładowarki EV SolaX HAC przez API SolaX Developer Portal (OAuth2 przez HTTPS). Odczytuje moc i energię ładowania, prądy fazowe oraz stan ładowarki; przełącza tryb STOP/FAST/ECO/GREEN, uruchamia i zatrzymuje ładowanie oraz ustawia limit prądu.

Packet Parser → HTTP6 urządzeńRewizja 1.4 Ostatnia aktualizacja: 12 listopada 2026

Dodane przez Adam Tížik

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

Import do aplikacji TapHomeSprzęt › Packet Parser › Dodaj z szablonu

Pobierz szablon
Na tej stronie

Poradnik integracji

Szablon SolaX HAC Cloud API łączy TapHome z ładowarką EV SolaX X1-HAC lub X3-HAC przez API SolaX Developer Portal (OpenAPI). Autor szablonu wymienia także ładowarki A1-HAC i C1/C3-HAC. TapHome nie komunikuje się z ładowarką bezpośrednio: ładowarka przesyła dane do SolaXCloud przez Wi-Fi, LAN lub 4G, a TapHome co 60 sekund odczytuje je z chmury SolaX przez HTTPS. Polecenia zapisu (tryb pracy, start i stop, blokada, limit prądu) wracają do ładowarki tą samą drogą przez chmurę.

Przed importem szablonu muszą być spełnione dwa warunki. Ładowarka musi być online na koncie SolaXCloud, a to konto potrzebuje aplikacji w SolaX Developer Portal, która udostępnia Client ID i Client Secret. Jeśli ładowarka pracuje obok falownika solarnego SolaX, w tym samym projekcie TapHome może działać szablon SolaX Inverter (Cloud API). Korzysta on ze starszego API monitoringu SolaxCloud z własnym tokenem.

Podłączenie ładowarki do SolaXCloud

Połączenie sieciowe

Ładowarka ma trzy sposoby połączenia z internetem. Wszystkie korzystają z DHCP, więc router przydziela adres IP automatycznie.

  • Wi-Fi: tylko 2,4 GHz (802.11 b/g/n). Sieci 5 GHz nie są obsługiwane.
  • Ethernet (LAN): port RJ45 LAN (/ DI). Ethernet wykorzystuje piny 1, 2, 3 i 6 (TX+, TX−, RX+, RX−). Gdy potrzebny jest tylko Ethernet, pozostałe piny zostaw niepodłączone. Przy połączeniu LAN konfigurację Wi-Fi można pominąć.
  • 4G: tylko w modelach z „4G” w nazwie (na przykład X3-HAC-22P-B4G). Kartę nano SIM obsługującą Cat-M, NB-IoT lub GSM musi zamontować uprawniony specjalista. SolaX zaleca co najmniej 100 MB danych miesięcznie w scenach Solar i Standard.
Definicja pinów portów komunikacyjnych ładowarki EV LAN/DI, COM2-M i COM1-S z kolorami żył RJ45

Kabel Ethernet do ładowarki musi być zabezpieczony przed wyładowaniami atmosferycznymi. Jeśli potrzebne są zarówno LAN, jak i wejście sygnałowe DI, zaciśnij piny 1, 2, 3 i 6 dla Ethernetu oraz piny 4, 5 i 8 dla DI, a następnie połącz oba kable złączką RJ45 dostarczoną z ładowarką.

Połączenie 4G konfiguruje się w aplikacji SolaXCloud w trybie lokalnym: otwórz Dongle, następnie przycisk ustawień, ustaw Device Networking Mode na 4G, wpisz APN operatora i wybierz typ sieci obsługiwany przez kartę SIM.

Dodanie ładowarki w aplikacji SolaXCloud

  1. Zainstaluj aplikację SolaXCloud z App Store lub Google Play i zarejestruj konto za pomocą adresu e-mail lub numeru telefonu oraz kodu weryfikacyjnego.
  2. Przy pierwszym logowaniu utwórz instalację: zezwól na dostęp do lokalizacji, wpisz nazwę instalacji i dokończ pozostałe ustawienia.
  3. Dodaj ładowarkę, skanując lub wpisując Registration No. z jej tabliczki znamionowej. Kolejne ładowarki dodasz przez stronę Device, ikonę +, a następnie Add Device lub Scan.
  4. Wpisz nazwę i hasło sieci Wi-Fi, jeśli ładowarka łączy się przez Wi-Fi.
Aplikacja SolaXCloud: dodawanie ładowarki EV za pomocą Registration No. z tabliczki znamionowej

Na tabliczce znamionowej są dwa różne numery. Registration No. służy do dodania ładowarki w aplikacji i do lokalnego logowania. SN (numer seryjny urządzenia) to wartość, której szablon TapHome potrzebuje jako DeviceSN. Aplikacja pokazuje SN urządzenia na stronie Basic information ładowarki (stuknij górną część strony Details ładowarki). Numer jest też podany w Developer Portal w Device > Device List.

Ponowne połączenie Wi-Fi i dostęp lokalny

Jeśli ładowarka przejdzie w stan offline, otwórz w aplikacji stronę Device, stuknij kartę ładowarki oznaczoną jako offline i wybierz Reconfigure. Następnie ponownie wpisz sieć 2,4 GHz i hasło.

Aplikacja SolaXCloud: ponowna konfiguracja Wi-Fi ładowarki EV i logowanie w trybie lokalnym za pomocą Registration No.

Jeśli ponowna konfiguracja się nie powiedzie, jest drugi sposób. Połącz telefon lub laptop z własną siecią Wi-Fi ładowarki, nazwaną od jej Registration No. (Wifi_XC…). Następnie otwórz w przeglądarce http://192.168.10.10/ i zaloguj się jako admin, podając Registration No. jako hasło. Tryb lokalny w aplikacji (More > Local Access lub po zalogowaniu Service > Application > Local Access) korzysta z tej samej sieci.

Ładowarka automatycznie wyłącza swoją lokalną sieć Wi-Fi godzinę po udanym połączeniu z siecią. Aby później skorzystać z dostępu lokalnego, włącz tę sieć ponownie w aplikacji w Network > Local Access.

Scena zastosowania i tryby ładowania

Ładowarka pracuje w jednej z trzech scen zastosowania, którą wybierasz w aplikacji w Advanced setting > Application scene:

  • Solar (domyślna): dostępne są tryby ładowania Green, Eco i Fast. Green i Eco wymagają komunikacji ładowarki z falownikiem solarnym albo z przekładnikiem prądowym (CT) lub licznikiem na przyłączu sieciowym, aby ładowarka znała nadwyżkę PV.
  • Standard: ładowarka tylko uruchamia i zatrzymuje ładowanie. W tej scenie nie ma trybów Green i Eco.
  • OCPP: ładowarka jest zarządzana przez serwer OCPP, a aplikacja SolaXCloud ukrywa wybór trybu.
Scena Solar: ładowarka EV SolaX komunikująca się z falownikiem, router Wi-Fi/LAN do chmury, CT/licznik, RCBO i rozdzielnica AC

Falownik solarny podłącza się do portu COM1-S- (A1/B1). Licznik lub CT podłącza się do portu COM2-M- (A2/B2, wejścia CT na pozostałych pinach). Poziom prądu ładowania dla trybu Green (3 A lub 6 A) i dla trybu Eco (6, 10, 16, 20 lub 25 A) ustawiasz w aplikacji w Details > Function Control > Charge Level. W modelach 11 kW tryb Eco oferuje tylko 6 A i 10 A. Ładowanie w trybach Green i Eco wymaga też pojazdu zgodnego z IEC 61851.

Konfiguracja dostępu do API w SolaX Developer Portal

  1. Zaloguj się do SolaX Developer Portal i otwórz Quick Start lub Application.
  2. Utwórz aplikację dla instalacji SolaXCloud, do której należy ładowarka. Aplikacja musi mieć co najmniej jedną autoryzowaną instalację.
  3. Na karcie Authorization aplikacji skopiuj Client ID i Client Secret.
  4. W Service API > Authorize włącz usługi monitoringu Data Monitoring Service (API_Telemetry_V2) i Information Access Service (API_Info_V2). Włącz także usługę sterowania ładowarką EV, której potrzebują przełączanie trybu pracy i działania serwisowe. Sam monitoring działa bez niej.
  5. Numer seryjny ładowarki znajdziesz w Device > Device List. To ten sam SN co w aplikacji SolaXCloud.

Szablon jest ustawiony na europejski host API openapi-eu.solaxcloud.com. SolaX prowadzi osobne hosty dla Chin (openapi-cn.solaxcloud.com) i Indii (openapi-in.solaxcloud.com). Region konta jest widoczny w Developer Portal. Po imporcie, bez zmian, szablon nie działa z aplikacją z innego regionu.

Parametry importu

W TapHome zaimportuj szablon i wypełnij trzy poniższe parametry. Wszystko inne (token, odpytywanie, ponowienia) obsługuje moduł.

ParametrOpisGdzie znaleźć
ClientIdClient ID aplikacji w Developer PortalApplication > Authorization
ClientSecretClient Secret tej samej aplikacjiApplication > Authorization
DeviceSNNumer seryjny ładowarki (nie Registration No.)Developer Portal Device > Device List lub Basic information w aplikacji SolaXCloud

Jednej pary Client ID i Client Secret używaj tylko dla jednego klienta. Każda aplikacja ma tylko jeden ważny token dostępu, więc nowe żądanie tokenu unieważnia poprzedni. Druga instancja szablonu TapHome lub inne narzędzie odpytujące z tymi samymi danymi uwierzytelniającymi stale unieważnia token tego szablonu. Dla drugiej ładowarki lub dla innego systemu utwórz osobną aplikację w Developer Portal.

Możliwości urządzenia

Nazwy urządzeń w szablonie są po słowacku. Poniżej przy każdym z nich podano w nawiasie jego nazwę w aplikacji.

Moc i energia ładowania

Moc ładowania (Nabíjací výkon) to licznik elektryczny. Pokazuje bieżącą moc ładowania w kW i całkowitą energię ładowania w kWh. Jego atrybuty serwisowe pokazują energię bieżącej sesji (Energia aktuálnej relácie [kWh]), prądy fazowe L1, L2 i L3 (Prúd L1 [A], Prúd L2 [A], Prúd L3 [A]) oraz prąd jednofazowy (Jednofázový prúd [A]).

Stan ładowania i kod stanu

  • Ładowanie w toku (Nabíjanie prebieha) to kontaktron. Jest włączony (Nabíja) tylko wtedy, gdy ładowarka zgłasza stan Charging. W każdym innym stanie jest wyłączony (Nenabíja), także w stanach Suspended EV i Suspended EVSE.
  • Stan ładowarki (Stav nabíjačky) to surowy kod stanu ładowarki:
KodStanKodStan
0Available7Suspended EV
1Preparing8Suspended EVSE
2Charging9Update
3Finishing10Card Activation
4Faulted11Start Delay
5Unavailable12Charge Pause
6Reserved13Stopping

Tryb pracy

Tryb pracy (Pracovný režim) to przełącznik wielowartościowy z czterema wartościami: STOP, FAST, ECO i GREEN. Odczytuje bieżący tryb ładowarki i ustawia nowy z TapHome. ECO i GREEN działają tak, jak opisano wyżej przy scenie Solar, i zależą od komunikacji ładowarki z falownikiem solarnym lub licznikiem.

Działania serwisowe

Urządzenie stanu ładowarki ma cztery działania serwisowe:

  • Uruchom ładowanie (Spustiť nabíjanie) i Zatrzymaj ładowanie (Zastaviť nabíjanie).
  • Zablokuj / udostępnij (Zamknúť / sprístupniť nabíjačku), z wartościami Zablokuj (Zamknúť) i Udostępnij (Sprístupniť).
  • Ustaw limit prądu (Nastaviť limit prúdu): 6–32 A w modelach 7 kW i 22 kW, 6–16 A w modelu 11 kW.

Polecenia są asynchroniczne. Odpowiedź „OK, príkaz odoslaný” oznacza, że chmura SolaX przyjęła polecenie, a nie że ładowarka już je wykonała. Wynik pojawia się w odczytach kolejnych cykli.

Historia kart i sesji na wykresach

  • Karta RFID (RFID karta) pokazuje numer karty, która rozpoczęła sesję, lub 0, gdy karta nie jest używana.
  • Czas ładowania sesji (Čas nabíjania relácie) pokazuje czas trwania bieżącej sesji w minutach.

API SolaX nie udostępnia historii kart. Gdy włączysz wykresy dla tych dwóch zmiennych, TapHome sam zbuduje historię: która karta ładowała, kiedy i jak długo, z rozdzielczością 60 sekund. Karty są używane tylko wtedy, gdy tryb aktywacji ładowarki w aplikacji SolaXCloud jest ustawiony na RFID (Charger setting > Activation mode). Domyślny tryb Plug & Charge nie używa karty.

Rozwiązywanie problemów

Brak danych lub błąd uwierzytelniania na module

  • Sprawdź, czy ładowarka jest online w aplikacji SolaXCloud. Ikona serwera na wyświetlaczu ładowarki pokazuje, czy jest połączona z SolaXCloud.
  • Porównaj ClientId i ClientSecret z kartą Authorization. Secret wygenerowany ponownie w portalu trzeba wpisać od nowa.
  • Sprawdź, czy DeviceSN to numer seryjny ładowarki, a nie Registration No.
  • Sprawdź, czy aplikacja ma autoryzowaną instalację z ładowarką i czy usługi monitoringu są autoryzowane. Kod API 10403 oznacza, że usługa API nie ma praw dostępu. Kod 10500 oznacza, że aplikacja nie ma uprawnień do danych tego urządzenia.
  • Kody 10400 i 10402 oznaczają, że token jest nieważny. Moduł żąda nowego tokenu i powtarza odczyt w tym samym cyklu. Jeśli moduł nadal zgłasza błąd z tekstem „aj po obnove tokenu” („nawet po odnowieniu tokenu”), dane uwierzytelniające lub autoryzowane usługi są błędne.

Odczyty przestają się zmieniać

Kody 10405 i 10406 oznaczają, że osiągnięto limit wywołań API. Moduł wyświetla ostrzeżenie i zachowuje wartości z ostatniego udanego cyklu. Szablon wysyła jedno zapytanie na minutę. Inne narzędzia odczytujące to samo konto SolaX liczą się do tego samego limitu.

Tryb pracy lub działania serwisowe kończą się błędem

  • Działanie serwisowe zwraca tekst SolaX API kód <code>, gdy chmura odrzuci polecenie. Kod 10403 (brak praw dostępu do interfejsu) może oznaczać, że usługa sterowania ładowarką EV nie jest autoryzowana dla aplikacji.
  • ECO i GREEN działają tylko w scenie Solar i wymagają działającego połączenia z falownikiem solarnym lub z CT/licznikiem. W scenie Standard ładowarka tylko uruchamia i zatrzymuje ładowanie.

Instalacje komercyjne

Szablon odczytuje ładowarkę jako część instalacji domowej (businessType=1). Według autora szablonu ładowarka w instalacji komercyjnej i przemysłowej wymaga wartości 4, a jej wartości mocy są wtedy podawane w kW zamiast w W.

Dostępne urządzenia 6

Te urządzenia pojawią się w TapHome po imporcie.

SolaX Cloud API Moduł
Zmienne niestandardowe
AccessToken (string)
RealtimeData (string)
ClientId (string)
ClientSecret (string)
DeviceSN (string)

SolaX Cloud API

Odczyt (moduł)
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 Licznik energii
Atrybuty serwisowe
Energia aktuálnej relácie [kWh]
Prúd L1 [A]
Prúd L2 [A]
Prúd L3 [A]
Jednofázový prúd [A]

Nabíjací výkon

Odczyt całkowitego zużycia
PARSEJSON(RealtimeData, "$.result[0].totalChargeEnergy", true)
Odczyt zapotrzebowania
PARSEJSON(RealtimeData, "$.result[0].chargingPower", true) / 1000
Atrybuty serwisowe
Energia aktuálnej relácie [kWh]
PARSEJSON(RealtimeData, "$.result[0].chargingEnergyThisSession", true)
Prúd L1 [A]
PARSEJSON(RealtimeData, "$.result[0].l1Current", true)
Prúd L2 [A]
PARSEJSON(RealtimeData, "$.result[0].l2Current", true)
Prúd L3 [A]
PARSEJSON(RealtimeData, "$.result[0].l3Current", true)
Jednofázový prúd [A]
PARSEJSON(RealtimeData, "$.result[0].singlePhaseCurrent", true)
Nabíjanie prebieha Kontakt reed

Nabíjanie prebieha

Odczyt
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 Zmienna
Akcje serwisowe
Spustiť nabíjanie
Zastaviť nabíjanie
Zamknúť / sprístupniť nabíjačku
Nastaviť limit prúdu

Stav nabíjačky

Odczyt
PARSEJSON(RealtimeData, "$.result[0].deviceStatus", true)
Akcje serwisowe
Spustiť nabíjanie
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
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
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)
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 Zmienna

RFID karta

Odczyt
VAR rfid := PARSEJSON(RealtimeData, "$.result[0].rfidnumber", true);
IF ISNULL(rfid)
    RETURN(0);
END
RETURN(rfid);
Čas nabíjania relácie Zmienna

Čas nabíjania relácie

Odczyt
VAR t := PARSEJSON(RealtimeData, "$.result[0].chargingTimeThisSession", true);
IF ISNULL(t)
    RETURN(0);
END
RETURN(t / 60);
Pracovný režim Przełącznik wielowartościowy
Wartości / Stany: STOP · FAST · ECO · GREEN

Pracovný režim

Odczyt stanu przełącznika
VAR mode := PARSEJSON(RealtimeData, "$.result[0].deviceWorkingMode", true);
IF ISNULL(mode)
    RETURN(0);
END
RETURN(mode);
Zapis stanu przełącznika
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
Połączenie: Packet Parser → HTTP

Parametry importu

Te wartości podajesz podczas importu pliku XML.

Pytanie w aplikacjiDomyślnie
ClientId: ID klienta z SolaX Developer PortáluPodaj przy imporcie
ClientSecret: Client Secret z SolaX Developer PortáluPodaj przy imporcie
DeviceSN: Sériové číslo nabíjačky (Device SN)Podaj przy imporcie

Znalazłeś problem z tym szablonem urządzenia?

Napisz nam, co nie działa, czego brakuje lub jak powinien zachowywać się szablon. Twoja opinia pomaga nam utrzymać katalog dokładnym.

Szablon · portal TapHome SolaX X1/X3-HAC EV Charger (Cloud API) Otwórz ten szablon w portalu klienta, aby zastosować go w swoim domu, lub zaproponuj modyfikację i wyślij ją z powrotem do katalogu. Packet Parser → HTTP Zobacz w portalu TapHome