Přeskočit na hlavní obsah

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
},
...
]
}
}