TapHome

SolaX Inverter (Cloud API)

Packet Parser → HTTP
Trimis de
Ultima actualizare: 03. 2026
SolaX Inverter (Cloud API)

Șablonul SolaX Cloud API conectează TapHome la orice invertor SolaX prin platforma de monitorizare SolaxCloud. Spre deosebire de șablonul SolaX Hybrid X1/X3 Gen 4, care folosește Modbus RTU pe RS-485, această integrare prin cloud nu necesită nicio cablare fizică la invertor. TapHome interoghează serverele SolaX Cloud prin HTTPS și primește date în timp real în format JSON.

Șablonul acceptă toate tipurile de invertoare SolaX (23 de modele din seriile X1, X3, A1 și J1) și oferă 11 dispozitive de monitorizare pentru ieșirea AC, starea bateriei, fluxul de putere al rețelei și producția PV pe fiecare MPPT. Singurele cerințe sunt un cont SolaxCloud, un dongle de comunicație conectat la internet (Pocket WiFi, LAN sau 4G) și tokenul API.

Configurare

Configurarea contului SolaxCloud

Invertorul trebuie să fie înregistrat și online în SolaxCloud. Pe invertor trebuie să fie instalat un modul de comunicație (dongle Pocket WiFi, LAN sau 4G) conectat la internet.

Obținerea tokenului API (tokenID)
  1. Autentificați-vă în SolaxCloud la www.solaxcloud.com
  2. În bara laterală din stânga mergeți la Service > Third-party ecosystem (sau la secțiunea API)
  3. Copiați tokenID-ul afișat pe pagină — este un șir de 23 sau 24 de caractere

Tokenul este gratuit pentru toți utilizatorii înregistrați în SolaxCloud.

Găsirea numărului de înregistrare (sn)

Parametrul sn este numărul de înregistrare (Registration Number) al dongle-ului de comunicație, nu numărul de serie al invertorului. Aceasta este o sursă frecventă de confuzie.

Unde îl găsiți:

  • Pe dongle — tipărit pe eticheta modulului Pocket WiFi / LAN / 4G (cod de bare sau cod QR)
  • În SolaxCloud — mergeți la Device > Inverter și căutați coloana Registration No. din tabel
Parametrii de import

La importul șablonului în TapHome introduceți:

  • Token ID — tokenID-ul din SolaxCloud
  • Registration No. — numărul de serie de 10 caractere al dongle-ului de comunicație
Dependența de internet

Aceasta este o integrare exclusiv prin cloud. Toate datele trec prin serverele SolaX Cloud (www.solaxcloud.com:9443). Șablonul nu va funcționa fără o conexiune activă la internet atât a unității TapHome CCU, cât și a dongle-ului de comunicație al invertorului.

Pentru utilizatorii care preferă comunicația locală fără dependență de cloud, șablonul SolaX Hybrid X1/X3 Gen 4 (Modbus RTU) oferă comunicație directă prin RS-485 cu invertoarele hibride Gen 4.

Funcțiile dispozitivului

Ieșirea AC și producția de energie

Contorul electric Ieșire AC citește producția totală de energie AC (yieldtotal în kWh) și puterea AC la ieșire în timp real (acpower în W, convertită în kW). Un atribut de service raportează producția zilnică (yieldtoday în kWh), care se resetează la miezul nopții.

Monitorizarea bateriei
  • SOC baterie — citește starea de încărcare a bateriei în procente din câmpul soc. Valoarea se împarte la 100 pentru intervalul intrării analogice TapHome 0–1 (de ex. 85% devine 0,85). Acesta este dispozitivul interogat cel mai des, la intervale de 2,5 secunde
  • Puterea bateriei — puterea instantanee de încărcare/descărcare a bateriei, în wați. Valorile pozitive indică încărcarea (din PV sau din rețea), cele negative descărcarea către consumatori
Puterea rețelei și măsurarea energiei

Trei dispozitive acoperă fluxul de putere al rețelei:

  • Putere rețea — puterea bidirecțională brută a rețelei, în wați. Pozitivă = export în rețea, negativă = import din rețea
  • Consum din rețea — contor electric care urmărește energia consumată din rețea. Consumul total (consumeenergy în kWh) și puterea importată în timp real (extrasă din feedinpower când este negativă, convertită în kW)
  • Injectare în rețea — contor electric care urmărește energia exportată în rețea. Energia totală exportată (feedinenergy în kWh) și puterea exportată în timp real (extrasă din feedinpower când este pozitivă, convertită în kW)
Monitorizarea producției PV

Șablonul oferă cinci dispozitive pentru producția PV:

  • Producție PV (total) — senzor calculat care însumează puterea DC de la toate cele 4 intrări MPPT. Valorile null sunt tratate corect: invertoarele cu mai puțin de 4 stringuri returnează null pentru MPPT-urile neutilizate, iar formula le tratează ca zero
  • Producție PV (MPPT 1–4) — valorile individuale ale puterii DC pentru fiecare intrare de string PV, în wați
Diagnosticare la nivelul modulului

Readscript-ul modulului verifică starea invertorului la fiecare ciclu de interogare și raportează problemele:

  • Starea 100 (Wait Mode) și 110 (Standby) declanșează avertismente în TapHome
  • Starea 103 (Fault Mode) și 104 (Permanent Fault Mode) declanșează erori
  • Dacă răspunsul API indică un eșec, se raportează mesajul de eroare din câmpul exception

Pe modul sunt disponibile două atribute de service:

  • Stare invertor — asociază codurile de stare 100–113 cu denumiri lizibile (Wait Mode, Check Mode, Normal Mode, Fault Mode, Permanent Fault Mode, Update Mode, EPS Check Mode, EPS Mode, Self-Test Mode, Idle Mode, Standby Mode, Pv Wake Up Bat Mode, Gen Check Mode, Gen Run Mode)
  • Tip invertor — asociază codurile de tip 1–23 cu denumirile modelelor (X1-LX, X-Hybrid, X1-Boost/Air/Mini, X3-Hybrid-G4 etc.)
Funcții suplimentare

SolaX Cloud API pune la dispoziție și puterea AC a contorului 2 (feedinpowerM2), puterea EPS (Emergency Power Supply) pe fiecare dintre cele trei faze (peps1–peps3), marcajul de timp al trimiterii datelor, numărul de serie al invertorului și starea bateriei. Acestea pot fi adăugate într-o actualizare viitoare a șablonului.

Rezolvarea problemelor

API-ul returnează o eroare sau nu returnează date
  1. Verificați dacă invertorul este online în SolaxCloud: autentificați-vă în portalul web și verificați starea dispozitivului
  2. Confirmați că tokenID-ul este corect și nu a fost regenerat (tokenurile vechi devin invalide)
  3. Asigurați-vă că parametrul sn este numărul de înregistrare (Registration Number) al dongle-ului de comunicație, nu numărul de serie al invertorului
  4. Verificați dacă dongle-ul de comunicație are o conexiune activă la internet
Valori învechite sau întârziate

SolaX Cloud API returnează cele mai recente date trimise de dongle-ul de comunicație. Actualitatea datelor depinde de intervalul la care dongle-ul trimite datele (de obicei la fiecare 5 minute). Șablonul interoghează API-ul la fiecare 20 de secunde, dar datele din cloud se pot actualiza mai rar.

Erori de depășire a limitei de solicitări

API-ul permite maximum 10 solicitări pe minut și 10.000 de solicitări pe zi. Șablonul interoghează la intervale de 20 de secunde (aproximativ 3 solicitări pe minut), ceea ce se încadrează în limite. Dacă mai multe sisteme (TapHome, Home Assistant, alte instrumente) folosesc același tokenID, rata combinată a solicitărilor poate depăși limita.

SolaX Cloud API necesită o conexiune activă la internet și depinde de disponibilitatea serverelor SolaX Cloud. În timpul întreruperilor serviciului cloud sau ale conexiunii la internet, șablonul nu va primi date actualizate. Pentru instalațiile care necesită un control local garantat, luați în considerare șablonul Modbus RTU.

Dispozitive disponibile

Invertor SolaX Modul
Atribute de service
Stare invertorModul de funcționare actual — Wait, Check, Normal, Fault, Permanent Fault, Update, EPS Check, EPS, Self-Test, Idle, Standby, Pv Wake Up Bat, Gen Check, Gen Run
Tip invertorModelul invertorului conectat — identifică seria SolaX (X1, X3, A1, J1) și generația instalată
Variabile personalizate
tokenID (string)Token ID pentru SolaX Cloud API (îl obțineți de pe pagina API a contului dvs. SolaX Cloud)
sn (string)Numărul de serie al modulului de comunicație SolaX (Registration No.)

Solax Inverter

Citire (modul)
var response := sendhttprequest("/proxy/api/getRealtimeInfo.do?tokenId="+tokenID+"&sn="+sn);

if parsejson(response.Content, "success")
	json := parsejson(response.Content, "result", 1);
	
	var statusCode := parsejson(json,"inverterStatus");
	if statusCode = "100"
	  addwarning("Inverter in waiting - Check DC");
	end
	if statusCode =  "103"
	  adderror("Inverter in fault mode");
	end
	if statusCode = "104"
	  adderror("Inverter in permanent fault mode");
	end
	if statusCode = "110"
	  addwarning("Inverter in standby mode");
	end
else
 	adderror(parsejson(response.Content, "exception"));
end
Atribute de service
Inverter status
var statusCode := parsejson(json,"inverterStatus");

IF(statusCode = "100",return("Wait Mode"));
IF(statusCode = "101",return("Check Mode"));
IF(statusCode = "102",return("Normal Mode"));
IF(statusCode = "103",return("Fault Mode"));
IF(statusCode = "104",return("Permanent Fault Mode"));
IF(statusCode = "105",return("Update Mode"));
IF(statusCode = "106",return("EPS Check Mode"));
IF(statusCode = "107",return("EPS Mode"));
IF(statusCode = "108",return("Self-Test Mode"));
IF(statusCode = "109",return("Idle Mode"));
IF(statusCode = "110",return("Standby Mode"));
IF(statusCode = "111",return("Pv Wake Up Bat Mode"));
IF(statusCode = "112",return("Gen Check Mode"));
IF(statusCode = "113",return("Gen Run Mode"));
Inverter type
var type := parsejson(json,"inverterType");

IF(type = "1",return("X1-LX"));
IF(type = "2",return("X-Hybrid"));
IF(type = "3",return("X1-Hybiyd/Fit"));
IF(type = "4",return("X1-Boost/Air/Mini"));
IF(type = "5",return("X3-Hybiyd/Fit"));
IF(type = "6",return("X3-20K/30K"));
IF(type = "7",return("X3-MIC/PRO"));
IF(type = "8",return("X1-Smart"));
IF(type = "9",return("X1-AC"));
IF(type = "10",return("A1-Hybrid"));
IF(type = "11",return("A1-Fit"));
IF(type = "12",return("A1-Grid"));
IF(type = "13",return("J1-ESS"));
IF(type = "14",return("X3-Hybrid-G4"));
IF(type = "15",return("X1-Hybrid-G4"));
IF(type = "16",return("X3-MIC/PRO-G2"));
IF(type = "17",return("X1-SPT"));
IF(type = "18",return("X1-Boost/Mini-G4"));
IF(type = "19",return("A1-HYB-G2"));
IF(type = "20",return("A1-AC-G2"));
IF(type = "21",return("A1-SMT-G2"));
IF(type = "22",return("X3-FTH"));
IF(type = "23",return("X3-MGA-G2"));
Ieșire AC Contor electric Doar citire

Producția totală și zilnică de energie AC (kWh) și puterea la ieșire în timp real (kW)

numeric Unitate: kWh / kW JSON parsejson()
Atribute de service
Inverter.AC.energy.out.daily [kWh]Producția zilnică de energie AC — se resetează la miezul nopții

Ieșire AC

Citirea consumului total
parsejson(json, "yieldtotal", 1)
Citirea cererii
parsejson(json, "acpower", 1) / 1000
Atribute de service
Inverter.AC.energy.out.daily [kWh]
parsejson(json, "yieldtoday", 1)
SOC baterie Intrare analogică Doar citire

Starea de încărcare a bateriei în procente — 0% (descărcată) până la 100% (încărcată complet)

numeric Unitate: % JSON parsejson()

SOC baterie

Citirea nivelului de intrare
parsejson(json, "soc", 1) / 100
Puterea bateriei Variabilă Doar citire

Puterea instantanee a bateriei în wați — pozitivă la încărcare, negativă la descărcare

numeric Unitate: W JSON parsejson()

Puterea bateriei

Citire
parsejson(json,"batPower",1)
Consum din rețea Contor electric Doar citire

Energia consumată din rețea — consumul total (kWh) și puterea importată în timp real (kW)

numeric Unitate: kWh / kW JSON parsejson()

Consum din rețea

Citirea consumului total
parsejson(json, "consumeenergy", 1)
Citirea cererii
var power := parsejson(json, "feedinpower", 1);
if(power < 0, power * -1, 0) / 1000
Putere rețea Variabilă Doar citire

Puterea bidirecțională a rețelei în wați — pozitivă la export, negativă la import

numeric Unitate: W JSON parsejson()

Putere rețea

Citire
parsejson(json, "feedinpower", 1)
Producție PV (total) Variabilă Doar citire

Puterea DC combinată de la toate intrările MPPT — însumează automat stringurile disponibile

numeric Unitate: W JSON parsejson()

Producție PV (total)

Citire
var PV1 := parsejson(json,"powerdc1",1);
var PV2 := parsejson(json,"powerdc2",1);
var PV3 := parsejson(json,"powerdc3",1);
var PV4 := parsejson(json,"powerdc4",1);

if(isnull(PV1), 0, PV1) +
if(isnull(PV2), 0, PV2) +
if(isnull(PV3), 0, PV3) +
if(isnull(PV4), 0, PV4)
Producție PV (MPPT 1) Variabilă Doar citire
numeric Unitate: W JSON parsejson()

Producție PV (MPPT 1)

Citire
parsejson(json,"powerdc1",1)
Producție PV (MPPT 2) Variabilă Doar citire
numeric Unitate: W JSON parsejson()

Producție PV (MPPT 2)

Citire
parsejson(json,"powerdc2",1)
Producție PV (MPPT 3) Variabilă Doar citire
numeric Unitate: W JSON parsejson()

Producție PV (MPPT 3)

Citire (modul)
parsejson(json,"powerdc3",1)
Producție PV (MPPT 4) Variabilă Doar citire
numeric Unitate: W JSON parsejson()

Producție PV (MPPT 4)

Citire (modul)
parsejson(json,"powerdc4",1)
Injectare în rețea Contor electric Doar citire

Energia exportată în rețea — energia totală injectată (kWh) și puterea exportată în timp real (kW)

numeric Unitate: kWh / kW JSON parsejson()

Injectare în rețea

Citirea consumului total
parsejson(json, "feedinenergy", 1)
Citirea cererii
var power := parsejson(json, "feedinpower", 1);
if(power > 0, power, 0) / 1000
Conexiune: Packet Parser → HTTP
Îmbunătățiri posibile (7)
  • Meter 2 AC Power — Inverter.Meter2.AC.power.total, 1 W. Secondary meter power reading — available for dual-meter setups
  • EPS Phase 1 Power — Inverter.AC.EPS.power.R, 1 W. Emergency Power Supply output phase R
  • EPS Phase 2 Power — Inverter.AC.EPS.power.S, 1 W. Emergency Power Supply output phase S
  • EPS Phase 3 Power — Inverter.AC.EPS.power.T, 1 W. Emergency Power Supply output phase T
  • Upload Time — Last data upload timestamp from inverter to SolaX Cloud. Useful for stale-data detection
  • Inverter Serial Number — Serial number of the inverter hardware (different from communication module SN)
  • Battery Status — Battery status code with mapped states. Documented in HA integration but not in official API V6.1 PDF

Surse

Ați găsit o problemă la acest șablon de dispozitiv?

Spuneți-ne ce nu funcționează, ce lipsește sau cum ar trebui să se comporte șablonul. Feedbackul dvs. ne ajută să păstrăm catalogul corect.

Verificat de TapHome

Doriți să folosiți acest șablon în TapHome Core?

Deschideți acest șablon în Customer Portal pentru a-l aplica într-una dintre locuințele dvs. sau pentru a propune o îmbunătățire și a o trimite înapoi în catalog.

Deschideți în portal