HTTP API
Zařízení na portu 80 provozuje HTTP server s API. Všechny požadavky musí být autentizovány pomocí HTTP Basic Auth. Uživatelské jméno bude vždy. Heslo je výchozí, ale lze jej nastavit pomocí volby. API lze vypnout pomocí volby v nastavení.
Data se odesílají ve formátu JSON. Všechny odpovědi jsou objekt JSON obsahující booleovskou vlastnost. Je-li požadavek úspěšný, jinak. Pokud požadavek uspěl, jsou případná data odpovědi obsažena v poli. Pokud požadavek selhal, bude přítomno pole obsahující jednu chybovou zprávu nebo seznam více chybových zpráv.
Příklad neúspěšného požadavku:
{
"ok": false,
"msg": "An error message"
}
Příklad úspěšného požadavku:
{
"ok": true,
"data": [1, 2, 3, 4]
}
HTTP endpointy
GET /api/v1/ping
Zařízení odpoví .
GET /api/v1/config
Získání aktuální konfigurace.
POST /api/v1/config
Aktualizace konfigurace zařízení. Zařízení se automaticky restartuje.
POST /api/v1/ota
Nahrání aktualizace firmwaru do zařízení. Aktualizace se posílá jako raw octet stream v těle požadavku. Po odeslání odpovědi se zařízení automaticky restartuje.
POST /api/v1/rollback
Zahájení návratu firmwaru na předchozí verzi. Po odeslání odpovědi se zařízení automaticky restartuje.
POST /api/v1/reboot
Restart zařízení.
POST /api/v1/factory_reset
Obnovení konfigurace zařízení na výchozí hodnoty. Po odeslání odpovědi se zařízení automaticky restartuje.
POST /api/v1/counter_reset
Vynulování hodnot počítadel.
GET /api/v1/log
Odpoví polem nejnovějších záznamů logu.
GET /api/v1/meta
Odpoví metadaty o zařízení.
Příklad odpovědi:
{
"ok": true,
"data": {
"name": "softli-collector-a0764e81f69a",
"device_id": "a0764e81f69a",
"uptime": 25215,
"version": "v1.2.1rc1",
"fw_name": "Default firmware",
"rollback_available": false,
"free_memory": 19.8,
"wifi_status": "Access point (0 clients)",
"wifi_ip": "192.168.254.1",
"wifi_netmask": "255.255.255.0",
"wifi_gateway": "192.168.254.1",
"wifi_mac": "a6:76:4e:81:f6:9a",
"eth_connected": true,
"eth_ip": "192.168.255.1",
"eth_netmask": "255.255.255.0",
"eth_gateway": "192.168.255.1",
"eth_mac": "a2:76:4e:81:f6:9a",
"inputs": [
{
"active_count": 35980,
"inactive_count": 35980,
"active": false
},
...
]
}
}