Controler de încărcare cFos - API HTTP

Următoarele funcții oferă o mapare a registrelor Modbus la HTTP.
Notă: Modbus nu trebuie să fie activ pentru a utiliza API-ul HTTP.

Utilizați o solicitare HTTP GET sau POST la adresa cFos Charging Controller, de ex
http://192.168.2.111/cnf?cmd=modbus&device=meter1&read=35154.
Răspunsurile sunt în JSON.

  • cmd este întotdeauna modbus
  • device = meter1 sau meter2 sau evse
  • read = adresa registrului de citit
  • write = adresa registrului de citit
  • value = valoare de scris
  • values = matrice de valori de scris, de ex. [1,2,3,4]

Adresele pot avea un sufix pentru a specifica tipul de date (implicit este 16 biți întregi):

  • d = întreg pe 32 de biți (2 registre modbus)
  • q = număr întreg pe 64 de biți (4 registre modbus)
  • s = șir
Controler de încărcare cFos - Registrele Modbus

Iată câteva exemple de utilizare a API-ului HTTP

Modbus

/cnf?cmd=modbus&device=meter1&read=8002
Raspuns:
1

/cnf?cmd=modbus&device=meter1&read=8062d
Raspuns:
-1

/cnf?cmd=modbus&device=meter1&read=8016s
Raspuns:
"cFos Power Brain"

/cnf?cmd=modbus&device=meter1&read=8002&count=10
Raspuns:
[1,257,256,0,256,0,26211,26165,11619,13366]

/cnf?cmd=modbus&device=meter2&read=all
Raspuns:
{"8000d":-821755904,"8002":1,"8003":257,"8004":16777216,"8006":256,"8007":0,"8008s":"fcf5-c46d-310c","8016s":"cFos Power Brain","8040":41,"8041":1,"8042d":1000,"8044":1,"8045":230,"8046":230,"8047":230,"8050q":0,"8054d":0,"8056":0,"8057":0,"8058q":0,"8062d":-1,"8064d":0,"8066d":0,"8068d":0,"8070":0,"8071":0,"8120d":0}

/cnf?cmd=modbus&device=evse&write=8044&value=7
Raspuns:
"ok"

/cnf?cmd=modbus&device=evse&write=8050q&value=1"
Raspuns:
"ok"

/cnf?cmd=modbus&device=evse&write=8044d&value=1"
Raspuns:
"bad modbus register size"

/cnf?cmd=modbus&device=evse&write=8044&values=[7,230,230,230 ]
Raspuns:
"ok"

Cereri generale

Solicitați starea tuturor dispozitivelor Charging Manager:
/cnf?cmd=get_dev_info

Setarea unui PIN sau RFID:
/cnf?cmd=enter_rfid&rfid=r&dev_id=d
r este codul PIN sau RFID (cifre), d este un ID de dispozitiv opțional pentru a selecta o anumită cutie de perete. Dacă nu este selectat niciun ID de dispozitiv, Managerul de încărcare încearcă să atribuie automat PIN-ul sau RFID-ul.

Suprascrieți pentru tranzacția curentă:
/cnf?cmd=override_device&dev_id=d&flags=f&rfid=id
d este ID-ul dispozitivului, ID-ul este posibil un RFID/PIN necesar, marcează după cum urmează:
„C”: dezactivați încărcarea (este necesar un administrator de administrator sau un PIN/RFID de utilizator)
„c”: dezactivați încărcarea din nou (este necesar un administrator de administrator sau un PIN/RFID de utilizator)
„E”: Dezactivați regulile de încărcare ale EVSE (este necesar un administrator de administrator)
„e”: dezactivați din nou regulile de încărcare ale EVSE (este necesar un administrator de administrator)
„U”: Dezactivați regulile de încărcare a utilizatorului (este necesar un RFID/PIN pentru utilizator)
„u”: dezactivați din nou regulile de încărcare ale utilizatorului (este necesar un RFID/PIN al utilizatorului)

Steagurile așezate în acest mod sunt păstrate până când mașina este deconectată de la EVSE.

Contoare HTTP și cutii de perete

tejghea

Puteți crea un contor (tip dispozitiv „Intrare HTTP”) care nu este citit de Charging Manager, dar ale cărui valori actuale pot fi specificate extern folosind HTTP POST:
/cnf?cmd=set_ajax_meter&dev_id=x
x este ID-ul dispozitivului așa cum se vede în configurația dispozitivului, de ex. M1.

Corpul POST conține un obiect JSON, după cum urmează:

{
   "model": string,
   "import_vah": number,
   "export_wh": number,
   "voltage": [v1, v2, v3],
   "current": [c1, c2, c3],
   "power_w": [p1, p2, p3],
   "power_va": string
}

Aici, valorile energetice sunt date în Wh sau VAh, tensiunile în V, curenții în mA și puterile în W sau VA. „model” este șirul de model așa cum se arată în dale.

Wallbox

De asemenea, puteți crea un wallbox (tip dispozitiv „Intrare HTTP”) care nu este citit sau controlat de Charging Manager, dar ale cărui valori pot fi specificate extern utilizând HTTP POST. Valorile de control sunt apoi returnate ca răspuns:
/cnf?cmd=set_ajax_evse&dev_id=x
x este ID-ul dispozitivului așa cum se vede în configurația dispozitivului, de exemplu E1.

Corpul POST conține un obiect JSON, după cum urmează:

{
   "state": number,
   "max_charging_current": number,
   "current": [c1, c2, c3],
   "total_energy": number,
   "model": string,
   "rfid": string
}

„model” este șirul de model așa cum se arată în dale. Cu „rfid” puteți adăuga un RFID la procesul de încărcare, valorile energetice sunt date în Wh, curenții în mA. „state” are următoarele valori:
1 = în așteptare (A), 2 = EV prezent (B), 3 = încărcare (C), 4 = încărcare cu ventilație (D), 5 = eroare (E)

Ca răspuns, această cerere returnează următorul obiect JSON:

{
   „device_enabled”: adevărat/fals, // dispozitivul este activat/dezactivat
   „charging_enabled”: adevărat/fals, // încărcare permisă / nepermisă
   „întrerupt”: adevărat/fals, // adevărat = dispozitivul este temporar întrerupt
   "încărcare_curent": număr // curent de încărcare specificat în mA
}

Acest obiect returnat trebuie evaluat de către apelant și EVSE trebuie setat în consecință, de exemplu curentul de încărcare trebuie schimbat în consecință.