cFos Şarj Kontrol Cihazı - HTTP API

Aşağıdaki işlevler, Modbus Kayıtlarının HTTP'ye eşlenmesini sağlar.
Not: HTTP API'yi kullanmak için Modbus'ın aktif olması gerekmez.

cFos Charging Controller adresine bir HTTP GET veya POST isteği kullanın, örn.
http://192.168.2.111/cnf?cmd=modbus&device=meter1&read=35154.
Yanıtlar JSON biçimindedir.

  • cmd her zaman modbus'tır
  • device = meter1 veya meter2 veya evse
  • read = read kaydın adresi
  • write = okunacak kaydın adresi
  • value = yazılacak değer
  • values = yazılacak değerler dizisi, ör. [1,2,3,4]

Adresler, veri türünü belirtmek için bir son eke sahip olabilir (varsayılan 16 bitlik tam sayıdır):

  • d = 32 bit tam sayı (2 modbus kaydı)
  • q = 64 bit tam sayı (4 modbus kaydı)
  • s = string
cFos Şarj Kontrol Cihazı - Modbus Kayıtları

İşte bazı örnekler, HTTP API'nin nasıl kullanılacağı

Modbus

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

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

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

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

/cnf?cmd=modbus&device=meter2&read=all
Tepki:
{"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
Tepki:
"ok"

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

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

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

Genel istekler

Tüm Şarj Yöneticisi cihazlarının durumunu isteyin:
/cnf?cmd=get_dev_info

PIN veya RFID ayarlama:
/cnf?cmd=enter_rfid&rfid=r&dev_id=d
r, PIN veya RFID'dir (rakamlar), d, belirli bir duvar kutusunu seçmek için isteğe bağlı bir cihaz kimliğidir. Cihaz kimliği seçilmemişse, Şarj Yöneticisi PIN veya RFID'yi otomatik olarak atamaya çalışır.

Geçerli işlem için üzerine yaz:
/cnf?cmd=override_device&dev_id=d&flags=f&rfid=id
d cihaz kimliğidir, kimlik muhtemelen gerekli bir RFID/PIN'dir, aşağıdaki gibi işaretler:
'C': Yüklemeyi devre dışı bırakın (Yönetici şifresi veya kullanıcı PIN'i/RFID gerekli)
'c': Yüklemeyi tekrar devre dışı bırakın (Yönetici şifresi veya kullanıcı PIN'i/RFID gerekli)
'E': EVSE'nin ücretlendirme kurallarını devre dışı bırakın (yönetici şifresi gereklidir)
'e': EVSE'nin ücretlendirme kurallarını tekrar devre dışı bırakın (yönetici şifresi gereklidir)
'U': Kullanıcı ücretlendirme kurallarını devre dışı bırakın (kullanıcı RFID/PIN gerekli)
'u': Kullanıcının ücretlendirme kurallarını tekrar devre dışı bırakın (kullanıcı RFID/PIN gerekli)

Bu şekilde ayarlanan bayraklar, araç EVSE'den ayrılana kadar korunur.

HTTP sayaçları ve duvar kutuları

sayaç

Şarj Yöneticisi tarafından okunmayan ancak mevcut değerleri HTTP POST kullanılarak harici olarak belirtilebilen bir sayaç (cihaz tipi 'HTTP Girişi') oluşturabilirsiniz:
/cnf?cmd=set_ajax_meter&dev_id=x
x, cihaz konfigürasyonunda görülen cihaz kimliğidir, örneğin M1.

POST gövdesi, aşağıdaki gibi bir JSON nesnesi içerir:

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

Burada enerji değerleri Wh veya VAh cinsinden, gerilimler V cinsinden, akımlar mA cinsinden ve güçler W veya VA cinsinden verilmiştir. "model", kutucuklarda gösterilen model dizesidir.

duvar kutusu

Ayrıca, Ücretlendirme Yöneticisi tarafından okunmayan veya kontrol edilmeyen, ancak değerleri HTTP POST kullanılarak harici olarak belirlenebilen bir duvar kutusu (cihaz tipi 'HTTP Girişi') oluşturabilirsiniz. Kontrol değerleri daha sonra yanıt olarak döndürülür:
/cnf?cmd=set_ajax_evse&dev_id=x
x, cihaz konfigürasyonunda görülen cihaz kimliğidir, örneğin E1.

POST gövdesi, aşağıdaki gibi bir JSON nesnesi içerir:

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

"model", kutucuklarda gösterilen model dizesidir. "Rfid" ile şarj sürecine bir RFID ekleyebilirsiniz, enerji değerleri Wh, akımlar mA olarak verilir. "durum" aşağıdaki değerlere sahiptir:
1 = beklemede (A), 2 = EV mevcut (B), 3 = şarj oluyor (C), 4 = havalandırma ile şarj (D), 5 = hata (E)

Yanıt olarak, bu istek aşağıdaki JSON nesnesini döndürür:

{
   "device_enabled": true/false, // cihaz etkinleştirildi/devre dışı bırakıldı
   "Charging_enabled": true/false, // şarja izin veriliyor / izin verilmiyor
   "duraklatıldı": doğru/yanlış, // doğru = cihaz geçici olarak duraklatıldı
   "Charging_current": sayı // mA cinsinden belirtilen şarj akımı
}

Bu dönüş nesnesi arayan tarafından değerlendirilmeli ve EVSE buna göre ayarlanmalıdır, örneğin şarj akımı buna göre değiştirilmelidir.