You create a set of climate presets for each thermostat, customized for your—and your users'—needs. Each climate preset is a predefined configuration for a thermostat that specifies settings, such as HVAC mode, fan mode, and temperature set points. These presets make it quick and efficient for users to apply consistent climate settings tailored to different scenarios, enhancing both comfort and energy efficiency.
Each climate preset can contain the following properties, depending on the capabilities of the thermostat:
Property
Description
Create a Climate Preset
To create a climate preset, issue a /thermostats/create_climate_preset request, providing the device_id of the desired thermostat. Also, include the desired settings for the climate preset and, optionally, a name. Note that manual_override_allowed is required.
The following example creates two climate presets with the keys occupied and unoccupied:
Request:
# Get the thermostat.thermostat = seam.devices.get( device_id ="2d488679-6f07-4810-aed2-e726872c1dd5")# Confirm that the thermostat supports heat_cool mode# so that the climate presets can use this mode.if thermostat.can_hvac_heat_cool:# Create the climate presets. seam.thermostats.create_climate_preset( device_id = thermostat.device_id, climate_preset_key ="occupied", name ="Occupied", fan_mode_setting ="auto", hvac_mode_setting ="heat_cool", cooling_set_point_celsius =25, heating_set_point_celsius =20 ) seam.thermostats.create_climate_preset( device_id: thermostat.device_id, climate_preset_key ="unoccupied", name ="Unoccupied", fan_mode_setting ="auto", hvac_mode_setting ="heat_cool", cooling_set_point_celsius =30, heating_set_point_celsius =15 )
Response:
None
Request:
# Get the thermostat.thermostat=$(# Use GET or POST.curl-X'GET' \'https://connect.getseam.com/devices/get' \-H'accept: application/json' \-H"Authorization: Bearer ${SEAM_API_KEY}" \-H'Content-Type: application/json' \-d'{ "device_id": "2d488679-6f07-4810-aed2-e726872c1dd5" }')# Confirm that the thermostat supports heat_cool mode# so that the climate presets can use this mode.if$(jq-r'.device.can_hvac_heat_cool'<<<${thermostat}); then \# Create the climate presets.curl-X'POST' \'https://connect.getseam.com/thermostats/create_climate_preset' \-H'accept: application/json' \-H"Authorization: Bearer ${SEAM_API_KEY}" \-H'Content-Type: application/json' \-d"{ \"device_id\": \"$(jq-r '.device.device_id' <<<${thermostat})\", \"climate_preset_key\": \"occupied\", \"name\": \"Occupied\", \"fan_mode_setting\": \"auto\", \"hvac_mode_setting\": \"heat_cool\", \"cooling_set_point_celsius\": 25, \"heating_set_point_celsius\": 20 }";curl-X'POST' \'https://connect.getseam.com/thermostats/create_climate_preset' \-H'accept: application/json' \-H"Authorization: Bearer ${SEAM_API_KEY}" \-H'Content-Type: application/json' \-d"{ \"device_id\": \"$(jq-r '.device.device_id' <<<${thermostat})\", \"climate_preset_key\": \"unoccupied\", \"name\": \"Unoccupied\", \"fan_mode_setting\": \"auto\", \"hvac_mode_setting\": \"heat_cool\", \"cooling_set_point_celsius\": 30, \"heating_set_point_celsius\": 15 }";fi
Response:
{"ok":true}
Request:
// Get the thermostat.constthermostat=awaitseam.devices.get({ device_id:"2d488679-6f07-4810-aed2-e726872c1dd5"});// Confirm that the thermostat supports heat_cool mode// so that the climate presets can use this mode.if (thermostat.can_hvac_heat_cool) {// Create the climate presets.awaitseam.thermostats.createClimatePreset({ device_id:thermostat.device_id, climate_preset_key:"occupied", name:"Occupied", fan_mode_setting:"auto", hvac_mode_setting:"heat_cool", cooling_set_point_celsius:25, heating_set_point_celsius:20 });awaitseam.thermostats.createClimatePreset({ device_id:thermostat.device_id, climate_preset_key:"unoccupied", name:"Unoccupied", fan_mode_setting:"auto", hvac_mode_setting:"heat_cool", cooling_set_point_celsius:30, heating_set_point_celsius:15 });};
Response:
void
Request:
# Coming soon!
Response:
# Coming soon!
Request:
// Get the thermostat.$thermostat = $seam->devices->get( device_id:"2d488679-6f07-4810-aed2-e726872c1dd5");// Confirm that the thermostat supports heat_cool mode// so that the climate presets can use this mode.if ($thermostat->can_hvac_heat_cool) {// Create the climate presets. $seam->thermostats->create_climate_preset( device_id: $thermostat->device_id, climate_preset_key:"occupied", name:"Occupied", fan_mode_setting:"auto", hvac_mode_setting:"heat_cool", cooling_set_point_celsius:25, heating_set_point_celsius:20); $seam->thermostats->create_climate_preset( device_id: $thermostat->device_id, climate_preset_key:"unoccupied", name:"Unoccupied", fan_mode_setting:"auto", hvac_mode_setting:"heat_cool", cooling_set_point_celsius:30, heating_set_point_celsius:15); }
Response:
void
Request:
// Coming soon!
Response:
// Coming soon!
Request:
// Coming soon!
Response:
// Coming soon!
Request:
// Coming soon!
Response:
// Coming soon!
List All Climate Presets for a Thermostat
To list climate presets for a thermostat, issue a /devices/get request, providing the device_id of the desired thermostat. Then, inspect the available_climate_presets property.
To update a climate preset, issue a /thermostats/update_climate_preset request, providing the device_id of the thermostat and the climate_preset_key of the desired climate preset. Also, include the desired updated settings for the climate preset. Note that manual_override_allowed is required.
To delete a climate preset, issue a /thermostats/delete_climate_preset request, providing the device_id of the thermostat and the climate_preset_key of the desired climate preset.
(Optional) User-friendly name to identify the climate preset.
fan_mode_setting
Desired fan mode setting, such as on, auto, or circulate.
hvac_mode_setting
Desired HVAC mode setting, such as heat, cool, heat_cool, or off.
cooling_set_point_celsius
Temperature to which the thermostat should cool (in °C). See also Set Points.
cooling_set_point_fahrenheit
Temperature to which the thermostat should cool (in °F).
heating_set_point_celsius
Temperature to which the thermostat should heat (in °C).
heating_set_point_fahrenheit
Temperature to which the thermostat should heat (in °F).
manual_override_allowed
(Optional) Indicates whether a person at the thermostat or using the API can change the thermostat's settings.
Deprecated. Use thermostat_schedule.is_override_allowed instead.