Skip to content

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 }