Skip to main content

Overview

The /command endpoint lets you control thermostat settings programmatically from the Control API (port 8082).

Endpoint

This endpoint has no authentication by default. Secure it with a reverse proxy if exposing publicly.

Request

Headers

Body

Parameters


Supported Commands

set_temperature

Set the target temperature. Routes to the shared bucket.
Temperatures are always in Celsius (4.5–32°C). The thermostat displays them in the user’s preferred scale. Temperature changes also set target_change_pending: true to wake the display.

set_mode

Set the HVAC mode. Routes to the shared bucket.
The server checks device capabilities before applying the mode. Requesting heat on a cooling-only device returns a 400 error."eco" is not a valid mode here — use set_away instead to engage eco mode.

set_away

Enable or disable eco (away) mode via manual_eco_all in the structure bucket.
This uses manual_eco_all rather than the away field, because the firmware’s schedule preconditioning can revert away-triggered eco but respects manual eco. A manual_eco_timestamp is automatically set to the current time.

set_fan

Control the fan. Routes to the device bucket. Requires has_fan: true.

set_eco_temperatures

Set the eco mode (away) temperature bounds. Routes to the device bucket.

set_schedule

Replace the full weekly schedule. Routes to the schedule bucket (full replacement, not merge).
Schedule format requirements:
  • ver must be 2
  • schedule_mode: "HEAT", "COOL", or "RANGE"
  • Day keys: "0" (Monday) through "6" (Sunday)
  • time: seconds from midnight (0–86399)
  • type: "HEAT", "COOL", or "RANGE"
  • RANGE type requires "temp-min" and "temp-max" instead of "temp"

set_schedule_mode

Change the active schedule mode without replacing the schedule. Routes to the shared bucket.

set_device_setting

Set one or more cloud-writable device bucket fields. Routes to the device bucket. Only fields from the whitelist are accepted.

Response

Success (200 OK)

Error (400 Bad Request)

Error (500 Internal Server Error)


Examples


Next Steps

GET /status

Query current device state

GET /api/devices

List all connected devices