Documentation Index
Fetch the complete documentation index at: https://docs.nolongerevil.com/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The/command endpoint lets you control thermostat settings programmatically from the Control API (port 8082).
Endpoint
Request
Headers
Body
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
serial | string | Yes | Device serial number |
command | string | Yes | Command name (see below) |
value | varies | Yes | Command value (type depends on command) |
Supported Commands
set_temperature
Set the target temperature. Routes to the shared bucket.
| Value type | Description | Example |
|---|---|---|
number | Single temperature in °C | 21.5 |
{"high": number, "low": number} | Range mode (heat-cool) | {"high": 24, "low": 18} |
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.
| Value | Description |
|---|---|
"off" | System off |
"heat" | Heating only |
"cool" | Cooling only |
"heat-cool" | Auto (maintains temperature range) |
"emergency" | Emergency heat (requires has_emer_heat) |
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.
| Value | Description |
|---|---|
true | Enable eco/away mode |
false | Return to normal operation |
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.
| Value | Description |
|---|---|
"on" | Run fan using stored duration preference (default 60 min) |
"auto" | Turn off fan timer (auto mode) |
number | Run fan for this many seconds |
set_eco_temperatures
Set the eco mode (away) temperature bounds. Routes to the device bucket.
| Field | Description |
|---|---|
high | Upper eco temperature in °C |
low | Lower eco temperature in °C |
set_schedule
Replace the full weekly schedule. Routes to the schedule bucket (full replacement, not merge).
vermust be2schedule_mode:"HEAT","COOL", or"RANGE"- Day keys:
"0"(Monday) through"6"(Sunday) time: seconds from midnight (0–86399)type:"HEAT","COOL", or"RANGE"RANGEtype 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.
| Value | Description |
|---|---|
"HEAT" | Heat schedule |
"COOL" | Cool schedule |
"RANGE" | Heat-cool range schedule |
set_device_setting
Set one or more cloud-writable device bucket fields. Routes to the device bucket. Only fields from the whitelist are accepted.
Whitelisted device fields
Whitelisted device fields
| Category | Fields |
|---|---|
| Safety | lower_safety_temp_enabled, upper_safety_temp_enabled, lower_safety_temp, upper_safety_temp |
| Temperature lock | temp_lock_on, temp_lock_pin_hash, temp_lock_high_temp, temp_lock_low_temp |
| Learning | learning_mode, preconditioning_enabled, preconditioning_active |
| Humidity | target_humidity_enabled, target_humidity |
| Display | temperature_scale, time_to_target, time_to_target_training_status |
| Sunblock | sunlight_correction_enabled |
| Fan | fan_timer_duration_minutes, fan_duty_cycle, fan_duty_start_time, fan_duty_end_time, fan_schedule_speed |
| Heat pump | heat_pump_aux_threshold_enabled, heat_pump_aux_threshold, heat_pump_comp_threshold_enabled, heat_pump_comp_threshold |
| Wiring | equipment_type, heat_source |
| Hot water | hot_water_boost_time_to_end, hot_water_active |
| Filter | filter_reminder_enabled, filter_reminder_level |
| Locale | postal_code, country_code |
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