Device CoAP Command Reference
Commands are sent as JSON-over-CoAP POST requests. Each message must include a "command" field; additional fields are command-specific. The device responds with 2.05 Content on success or an appropriate error code.
Fan control
setFan
Sets a fan speed by name.
{ "command": "setFan", "fanName": "fan0", "value": 50 }
| Field | Type | Notes |
|---|---|---|
fanName |
string | "fan0" or "fan1" (also accepts legacy aliases ds3502_fan0, erv_fan0_control, etc.) |
value |
int | Speed percent, 0–100 |
Pressure control
setPressureControl / setPositivePressure
Updates pressure-control settings. Both command names are accepted.
{ "command": "setPressureControl", "settings": { ... } }
getPressureControl / getPositivePressure
Returns the current pressure-control settings. Both command names are accepted.
{ "command": "getPressureControl" }
Damper control
All damper commands address dampers by zero-based index: 0 = supply damper, 1 = exhaust damper.
setDamper
Moves a damper to a position in degrees.
{ "command": "setDamper", "index": 0, "position": 45.0 }
| Field | Type | Notes |
|---|---|---|
index |
int | 0 = supply, 1 = exhaust |
position |
float | Target position in degrees, 0–90 |
setDamperPct
Moves a damper to a position expressed as percent open. 0 = fully closed, 100 = fully open. percent is clamped to [0, 100] and converted to degrees internally (percent / 100 × 90).
{ "command": "setDamperPct", "index": 0, "percent": 50 }
| Field | Type | Notes |
|---|---|---|
index |
int | 0 = supply, 1 = exhaust |
percent |
number | Percent open, 0–100 |
homeDamper
Runs the two-phase stallGuard homing sequence for one damper. Must succeed before setDamper or setDamperPct will accept commands.
{ "command": "homeDamper", "index": 0 }
getDamper
Returns the current tracked position of one damper in degrees. Responds with 2.05 Content and a JSON body; does not use the standard command-response envelope.
{ "command": "getDamper", "index": 0 }
Response body:
{ "position": 45.0, "homed": true }
homed is false (and position is -1) if the damper has not completed homing since boot.
getDamperPct
Returns the current tracked position as percent open. Same response rules as getDamper.
{ "command": "getDamperPct", "index": 0 }
Response body:
{ "percent": 50.0, "homed": true }
homed is false (and percent is -1) if the damper has not completed homing since boot.
testDamper
Enables or disables stepper demo mode. In demo mode the firmware drives both dampers through a continuous sweep pattern for visual verification.
{ "command": "testDamper", "enable": true }
{ "command": "testDamper", "enable": false }