Creating and Managing Climate Presets
Learn how to create, list, update, and delete climate presets for thermostats.
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:
climate_preset_key
(Required) Key to identify the climate preset.
name
(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.
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
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.
Request:
seam.devices.get(
device_id = "2d488679-6f07-4810-aed2-e726872c1dd5"
)
Response:
Device(
device_id='2d488679-6f07-4810-aed2-e726872c1dd5',
properties={
'available_climate_presets': [
{
'climate_preset_key': 'occupied',
'cooling_set_point_celsius': 25,
'cooling_set_point_fahrenheit': 77,
'display_name': 'Occupied',
'fan_mode_setting': 'auto',
'heating_set_point_celsius': 20,
'heating_set_point_fahrenheit': 68,
'hvac_mode_setting': 'heat_cool',
'name': 'Occupied',
...
},
{
'climate_preset_key': 'unoccupied',
'cooling_set_point_celsius': 30,
'cooling_set_point_fahrenheit': 86,
'display_name': 'Unoccupied',
'fan_mode_setting': 'auto',
'heating_set_point_celsius': 15,
'heating_set_point_fahrenheit': 59,
'hvac_mode_setting': 'heat_cool',
'name': 'Unoccupied',
...
}
],
...
},
...
)
Update a Climate Preset
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.
Request:
seam.thermostats.update_climate_preset(
device_id = "2d488679-6f07-4810-aed2-e726872c1dd5",
climate_preset_key = "occupied",
cooling_set_point_celsius = 24
)
Response:
None
Delete a Climate Preset
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.
Request:
seam.thermostats.delete_climate_preset(
device_id = "2d488679-6f07-4810-aed2-e726872c1dd5",
climate_preset_key = "occupied"
)
Response:
None
Last updated
Was this helpful?