HTTP API
The device host an HTTP server with an API on port 80. All requests have to be authenticated using HTTP Basic Auth. The user name will always be. The password is by default, but it is configurable using the option. The API can be disabled using the settings option.
Data is sent in a JSON format. All responses are a JSON object containing a boolean property. It is if the request succeeded, otherwise. If the request succeeded, any response data is contained in the field. If the request failed, there will be a field containing a single error message, or a list of multiple error messages.
Example of a failed request:
{
"ok": false,
"msg": "An error message"
}
Example of a successful request:
{
"ok": true,
"data": [1, 2, 3, 4]
}
HTTP Endpoints
GET /api/v1/ping
The device will respond with .
GET /api/v1/config
Get the current configuration.
POST /api/v1/config
Update the device configuration. The device will automatically reboot.
POST /api/v1/ota
Upload a firmware update to the device. The update is sent as raw octet stream in the request body. The device will automatically reboot after sending a response.
POST /api/v1/rollback
Initiate a firmware rollback. The device will automatically reboot after seding a response.
POST /api/v1/reboot
Reboot the device.
POST /api/v1/factory_reset
Reset the device configuration to factory values. The device will automatically reboot after sending a response.
POST /api/v1/counter_reset
Reset the counter values.
GET /api/v1/log
Responds with an array of the most recent logs.
GET /api/v1/meta
Responds with metadata about the device.
Example response:
{
"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
},
...
]
}
}