Configuration -- GPIO & SpeedFusion Connect Protect
POST /api/config.gpio
⚠️ Beta API
Obtain and update the GPIO configuration. Returns the updated config. Passing an empty list returns the current config without making changes.
Available in 8.1.1 or later
Input Parameters
| Field | Type | Required | Description |
|---|---|---|---|
list | array | optional | List of GPIO config objects |
reference | boolean | optional | Include GPIO reference info |
GPIO Config Object:
| Field | Type | Required | Description |
|---|---|---|---|
id | integer | ✅ | GPIO ID |
enable | boolean | optional | Enable GPIO |
name | string | optional | Custom name |
type | string | optional | digital_input, digital_output, analog_input |
mode | string | optional | See mode table below |
customStates | object | optional | Custom input states: high (string), low (string) |
delay | number | optional | Delay 1--3600 (input type only) |
GPIO Modes by Type:
| Type | Available Modes |
|---|---|
digital_input | input_sensing, ignition_sensing |
digital_output | wan_status |
analog_input | input_sensing, voltage_measurement, analog_testing |
Response
Returns GPIO config objects keyed by GPIO ID, plus:
| Field | Type | Description |
|---|---|---|
order | array | Ordered list of GPIO IDs |
reference | object | Support type and mode for each GPIO (if reference=true) |
Reference Object:
| Field | Type | Description |
|---|---|---|
<gpio_id> | object | Supported name, type (array), and mode (object with arrays per type) |
cURL Example
curl -b cookies.txt -H "Content-Type: application/json" \
-X POST -d '{"list":[{"id":1,"enable":true,"type":"digital_output","mode":"toggle_high"},{"id":2,"enable":true,"name":"PowerInput","type":"digital_input","mode":"input_sensing","customStates":{"high":"Battery Backup","low":"Grid"},"delay":3}]}' \
http://192.168.1.1/api/config.gpio
{
"stat": "ok",
"response": {
"1": {
"enable": true,
"type": "digital_output",
"mode": "toggle_high"
},
"2": {
"enable": true,
"name": "PowerInput",
"type": "digital_input",
"mode": "input_sensing",
"customStates": {
"high": "Battery Backup",
"low": "Grid"
},
"delay": 3
},
"order": [1, 2]
}
}
GET /api/config.speedfusionConnectProtect
Obtain the SpeedFusion Connect Protect config for clients (by MAC address) and access points (by SSID).
Available in 8.3.0 or later
Input Parameters
| Field | Type | Required | Description |
|---|---|---|---|
infoType | array | optional | Filter: client, accessPoint |
Response
| Field | Type | Description |
|---|---|---|
client | array | List of client objects |
accessPoint | array | List of SSID profile objects |
SFC_Client Object:
| Field | Type | Description |
|---|---|---|
mac | string (MAC) | MAC address using SpeedFusion Connect Protect |
cityCode | string | SpeedFusion Cloud location city code (empty string = auto) |
SFC_SSID_Profile Object:
| Field | Type | Description |
|---|---|---|
ssid | string | SSID connected to the Cloud Location |
referenceSsid | string | Name of the reference SSID profile |
cityCode | string | SpeedFusion Cloud location city code |
cURL Example
curl -b cookies.txt http://192.168.1.1/api/config.speedfusionConnectProtect
{
"stat": "ok",
"response": {
"client": [
{
"mac": "00:11:6E:44:44:EE",
"cityCode": "FRA"
}
],
"accessPoint": [
{
"referenceSsid": "Balance_SSID_1",
"cityCode": "FRA",
"ssid": "Balance_SSID_1_Germany_FRA"
},
{
"referenceSsid": "Balance_SSID",
"cityCode": "FRA",
"ssid": "Balance_SSID_Germany_FRA"
}
]
}
}
POST /api/config.speedfusionConnectProtect
Update client/SSID connection to SpeedFusion Connect Protect.
Available in 8.3.0 or later
Input Parameters
| Field | Type | Required | Description |
|---|---|---|---|
action | string | ✅ | update, remove, or replace |
client | array | optional | Client objects to update/remove/replace |
accessPoint | array | optional | Access point objects to update/remove/replace |
Action Behavior:
| Action | Description |
|---|---|
update | When MAC/SSID matches, the profile is updated. When not found, a new profile is added. |
remove | Remove the item by MAC/SSID. |
replace | Entire client/accessPoint array is removed and replaced with the provided array. |
Client Object:
| Field | Type | Required | Description |
|---|---|---|---|
mac | string (MAC) | optional | MAC address |
cityCode | string | optional | Cloud location (not needed for remove) |
Access Point Object:
| Field | Type | Required | Description |
|---|---|---|---|
ssid | string | optional | SSID |
referenceSsid | string | optional | Base SSID profile name (not needed for remove) |
cityCode | string | optional | Cloud location (not needed for remove) |
cURL Example
curl -b cookies.txt -H "Content-Type: application/json" \
-X POST -d '{"action":"replace","client":[{"mac":"DD:11:6E:44:44:EE","cityCode":"FRA"},{"mac":"CC:11:6E:44:44:EE","cityCode":"FRA"}],"accessPoint":[{"referenceSsid":"Balance_SSID","cityCode":"FRA","ssid":"Balance_SSID_Germany_FRA"}]}' \
http://192.168.1.1/api/config.speedfusionConnectProtect
{
"stat": "ok",
"response": {
"client": [
{
"mac": "DD:11:6E:44:44:EE",
"cloudLocation": "FRA"
},
{
"mac": "CC:11:6E:44:44:EE",
"cloudLocation": "FRA"
}
],
"accessPoint": [
{
"referenceSsid": "Balance_SSID",
"cityCode": "FRA",
"ssid": "Balance_SSID_Germany_FRA"
}
]
}
}