Push HVAC action
Send a command to an HVAC device. The action is processed asynchronously and a webhook is sent on completion.
Authorizations
Path Parameters
The unique identifier for the HVAC device
"device_abc123"
Body
The action to perform on the HVAC device
A single HVAC action plus optional onConflict strategy and sandbox controls.
Action variants describe what the API accepts. Per-device support varies; the commands map on GET /hvac/{deviceId} shows which actions a specific device handles.
A canonical HVAC command. heat/cool hold a target temperature; auto maintains a comfort band between heatSetpoint and coolSetpoint; idle pauses; follow_schedule resumes the device’s native program.
{
"command": "heat",
"parameters": {
"target": { "value": 21, "unit": "celsius" }
}
}{
"command": "auto",
"parameters": {
"heatSetpoint": { "value": 20, "unit": "celsius" },
"coolSetpoint": { "value": 24, "unit": "celsius" }
}
}{ "command": "follow_schedule" }cancel_and_replace cancels the active action before running this one; queue_after defers this one until the active action completes. Omit to receive 409 on conflict.
cancel_and_replace, queue_after Sandbox controls for testing error paths. Ignored in live environments.
Response
Action acknowledged and queued for processing
Always true for success responses.
Result of a push. Mirrors the dispatch (command + parameters + deviceType) and carries links.self to track the action. For immediate actions, state reflects the dispatch outcome. For deferred actions, state is scheduled, start carries the fire time, and end the window close when a window was requested.
Metadata attached to every response: the request identifier, the serving environment, the build timestamp, and the server-side latency.