Thermostats
The device Object for Thermostats
Represents a thermostat.
You can use the Seam API to perform the following management and monitoring actions for thermostats:
Monitor current thermostat settings and readings.
Configure temperature thresholds. If the thermostat reports a temperature outside these thresholds, Seam automatically alerts you.
Make immediate changes to thermostat climate settings, such as the HVAC mode and fan mode.
Create daily and weekly thermostat programs.
The Seam API represents a thermostat as a device
resource that includes both basic device properties and thermostat-specific properties.
A thermostat device resource.
{
"can_hvac_cool": true,
"can_hvac_heat": true,
"can_hvac_heat_cool": true,
"can_turn_off_hvac": true,
"capabilities_supported": ["thermostat"],
"connected_account_id": "a0b1c2d3-e4f5-6a7b-8c9d-0e1f2a3b4c5d",
"created_at": "2024-10-03T22:12:15.666Z",
"custom_metadata": { "id": "internalId1" },
"device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0",
"device_type": "ecobee_thermostat",
"display_name": "Living Room",
"errors": [],
"is_managed": true,
"location": {
"location_name": "2948 20th St, San Francisco, CA, 94110, US",
"timezone": "America/Los_Angeles"
},
"nickname": "Living Room",
"properties": {
"active_climate_preset": {
"can_delete": true,
"can_edit": true,
"climate_preset_key": "sleep",
"cooling_set_point_celsius": 23.88888888888889,
"display_name": "Sleep",
"fan_mode_setting": "auto",
"heating_set_point_celsius": 17.77777777777778,
"hvac_mode_setting": "heat_cool",
"manual_override_allowed": true
},
"appearance": { "name": "Living Room" },
"available_climate_presets": [
{
"climate_preset_key": "sleep",
"can_edit": true,
"can_delete": true,
"can_program": false,
"name": "Sleep",
"display_name": "Sleep",
"fan_mode_setting": "auto",
"hvac_mode_setting": "heat_cool",
"manual_override_allowed": true,
"cooling_set_point_celsius": 23.88888888888889,
"heating_set_point_celsius": 17.77777777777778,
"cooling_set_point_fahrenheit": 75,
"heating_set_point_fahrenheit": 64
},
{
"climate_preset_key": "home",
"can_edit": true,
"can_delete": true,
"can_program": false,
"name": "Home",
"display_name": "Home",
"fan_mode_setting": "auto",
"hvac_mode_setting": "heat_cool",
"manual_override_allowed": false,
"cooling_set_point_celsius": 23.88888888888889,
"heating_set_point_celsius": 17.77777777777778,
"cooling_set_point_fahrenheit": 75,
"heating_set_point_fahrenheit": 64
},
{
"climate_preset_key": "work",
"can_edit": true,
"can_delete": true,
"can_program": false,
"name": "Work",
"display_name": "Work",
"fan_mode_setting": "auto",
"hvac_mode_setting": "heat_cool",
"manual_override_allowed": false,
"cooling_set_point_celsius": 23.88888888888889,
"heating_set_point_celsius": 17.77777777777778,
"cooling_set_point_fahrenheit": 75,
"heating_set_point_fahrenheit": 64
}
],
"available_fan_mode_settings": ["auto", "on"],
"available_hvac_mode_settings": ["cool", "heat", "heat_cool", "off"],
"current_climate_setting": {
"display_name": "Manual Setting",
"fan_mode_setting": "auto",
"heating_set_point_celsius": 25,
"heating_set_point_fahrenheit": 77,
"hvac_mode_setting": "heat",
"manual_override_allowed": true
},
"ecobee_metadata": {
"device_name": "Living Room",
"ecobee_device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0"
},
"fallback_climate_preset_key": "eco",
"fan_mode_setting": "auto",
"has_direct_power": true,
"image_alt_text": "Ecobee 3 Lite Thermostat",
"image_url": "https://connect.getseam.com/_next/image?url=https://connect.getseam.com/assets/images/devices/ecobee_3-lite_front.png&q=75&w=128",
"is_cooling": false,
"is_fan_running": false,
"is_heating": false,
"is_temporary_manual_override_active": false,
"manufacturer": "ecobee",
"max_cooling_set_point_celsius": 33.333333333333336,
"max_cooling_set_point_fahrenheit": 92,
"max_heating_set_point_celsius": 26.11111111111111,
"max_heating_set_point_fahrenheit": 79,
"min_cooling_set_point_celsius": 18.333333333333336,
"min_cooling_set_point_fahrenheit": 65,
"min_heating_cooling_delta_celsius": 2.7777777777777777,
"min_heating_cooling_delta_fahrenheit": 5,
"min_heating_set_point_celsius": 7.222222222222222,
"min_heating_set_point_fahrenheit": 45,
"model": {
"display_name": "Thermostat",
"manufacturer_display_name": "Ecobee"
},
"name": "Living Room",
"online": true,
"relative_humidity": 0.36,
"temperature_celsius": 21.11111111111111,
"temperature_fahrenheit": 70,
"temperature_threshold": {
"lower_limit_celsius": 16.66666666666667,
"lower_limit_fahrenheit": 62,
"upper_limit_celsius": 26.66666666666667,
"upper_limit_fahrenheit": 80
},
"thermostat_daily_programs": [
{
"thermostat_daily_program_id": "1a2b3c4d-5e6f-7890-1234-56789abcdef1",
"device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0",
"name": "Weekday Program",
"periods": [
{ "starts_at_time": "00:00:00", "climate_preset_key": "sleep" },
{ "starts_at_time": "07:00:00", "climate_preset_key": "home" },
{ "starts_at_time": "09:00:00", "climate_preset_key": "work" },
{ "starts_at_time": "18:00:00", "climate_preset_key": "home" },
{ "starts_at_time": "22:00:00", "climate_preset_key": "sleep" }
],
"workspace_id": "9f8e7d6c-5b4a-3c2d-1e0f-9876543210ab",
"created_at": "2025-05-30T04:01:25.455Z"
},
{
"thermostat_daily_program_id": "d4e5f6a7-8b9c-0d1e-2f3a-4b5c6d7e8f90",
"device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0",
"name": "Weekend Program",
"periods": [
{ "starts_at_time": "00:00:00", "climate_preset_key": "sleep" },
{ "starts_at_time": "08:00:00", "climate_preset_key": "home" },
{ "starts_at_time": "23:00:00", "climate_preset_key": "sleep" }
],
"workspace_id": "9f8e7d6c-5b4a-3c2d-1e0f-9876543210ab",
"created_at": "2025-05-30T04:02:19.952Z"
}
],
"thermostat_weekly_program": null
},
"warnings": [],
"workspace_id": "9f8e7d6c-5b4a-3c2d-1e0f-9876543210ab"
}
Properties
can_hvac_cool
Boolean
can_hvac_heat
Boolean
can_hvac_heat_cool
Boolean
can_program_offline_access_codes
Boolean
can_program_online_access_codes
Boolean
can_remotely_lock
Boolean
can_remotely_unlock
Boolean
can_run_thermostat_programs
Boolean
can_simulate_connection
Boolean
can_simulate_disconnection
Boolean
can_simulate_hub_connection
Boolean
can_simulate_hub_disconnection
Boolean
can_simulate_paid_subscription
Boolean
can_simulate_removal
Boolean
can_turn_off_hvac
Boolean
can_unlock_with_code
Boolean
capabilities_supported
List of Enums
Collection of capabilities that the device supports when connected to Seam. Values are access_code
, which indicates that the device can manage and utilize digital PIN codes for secure access; lock
, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; noise_detection
, which indicates that the device supports monitoring and responding to ambient noise levels; thermostat
, which indicates that the device can regulate and adjust indoor temperatures; battery
, which indicates that the device can manage battery life and health; and phone
, which indicates that the device is a mobile device, such as a smartphone. Important: Superseded by capability flags.
connected_account_id
UUID
Unique identifier for the account associated with the device.
created_at
Datetime
Date and time at which the device object was created.
custom_metadata
Record
Set of key:value pairs. Adding custom metadata to a resource, such as a Connect Webview, connected account, or device, enables you to store custom information, like customer details or internal IDs from your application.
device_id
UUID
ID of the device.
device_type
Enum
Type of the device.
display_name
String
Display name of the device, defaults to nickname (if it is set) or properties.appearance.name
, otherwise. Enables administrators and users to identify the device easily, especially when there are numerous devices.
errors
List of Objects
Array of errors associated with the device. Each error object within the array contains two fields: error_code
and message
. error_code
is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. message
provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it.
The specific structure of each object in this list depends on the value of its error_code
field.
Variants:
is_managed
Boolean
Indicates whether Seam manages the device. See also Managed and Unmanaged Devices.
nickname
String
Optional nickname to describe the device, settable through Seam.
warnings
List of Objects
Array of warnings associated with the device. Each warning object within the array contains two fields: warning_code
and message
. warning_code
is a string that uniquely identifies the type of warning, enabling quick recognition and categorization of the issue. message
provides a more detailed description of the warning, offering insights into the issue and potentially how to rectify it.
The specific structure of each object in this list depends on the value of its warning_code
field.
Variants:
workspace_id
UUID
Unique identifier for the Seam workspace associated with the device.
device.properties
active_thermostat_schedule
Object
Active thermostat schedule.
Deprecated. Use active_thermostat_schedule_id
with /thermostats/schedules/get
instead.
active_thermostat_schedule_id
UUID
ID of the active thermostat schedule.
akiles_metadata
Object
Metadata for an Akiles device.
assa_abloy_credential_service_metadata
Object
ASSA ABLOY Credential Service metadata for the phone.
assa_abloy_vostio_metadata
Object
Metadata for an ASSA ABLOY Vostio system.
august_metadata
Object
Metadata for an August device.
available_climate_preset_modes
List of Enums
Climate preset modes that the thermostat supports, such as "home", "away", "wake", "sleep", "occupied", and "unoccupied".
available_climate_presets
List of Objects
Available climate presets for the thermostat.
available_fan_mode_settings
List of Enums
Fan mode settings that the thermostat supports.
available_hvac_mode_settings
List of Enums
HVAC mode settings that the thermostat supports.
avigilon_alta_metadata
Object
Metadata for an Avigilon Alta system.
brivo_metadata
Object
Metadata for a Brivo device.
controlbyweb_metadata
Object
Metadata for a ControlByWeb device.
current_climate_setting
Object
Current climate setting.
default_climate_setting
Object
Deprecated. use fallback_climate_preset_key to specify a fallback climate preset instead.
dormakaba_oracode_metadata
Object
Metadata for a dormakaba Oracode device.
ecobee_metadata
Object
Metadata for an ecobee device.
fallback_climate_preset_key
String
Key of the fallback climate preset for the thermostat.
fan_mode_setting
Enum
Deprecated. Use current_climate_setting.fan_mode_setting
instead.
four_suites_metadata
Object
Metadata for a 4SUITES device.
genie_metadata
Object
Metadata for a Genie device.
honeywell_resideo_metadata
Object
Metadata for a Honeywell Resideo device.
hubitat_metadata
Object
Metadata for a Hubitat device.
igloo_metadata
Object
Metadata for an igloo device.
igloohome_metadata
Object
Metadata for an igloohome device.
is_cooling
Boolean
Indicates whether the connected HVAC system is currently cooling, as reported by the thermostat.
is_fan_running
Boolean
Indicates whether the fan in the connected HVAC system is currently running, as reported by the thermostat.
is_heating
Boolean
Indicates whether the connected HVAC system is currently heating, as reported by the thermostat.
is_temporary_manual_override_active
Boolean
Indicates whether the current thermostat settings differ from the most recent active program or schedule that Seam activated. For this condition to occur, current_climate_setting.manual_override_allowed
must also be true
.
keynest_metadata
Object
Metadata for a KeyNest device.
kwikset_metadata
Object
Metadata for a Kwikset device.
lockly_metadata
Object
Metadata for a Lockly device.
max_cooling_set_point_celsius
Number
Maximum cooling set point in °C.
max_cooling_set_point_fahrenheit
Number
Maximum cooling set point in °F.
max_heating_set_point_celsius
Number
Maximum heating set point in °C.
max_heating_set_point_fahrenheit
Number
Maximum heating set point in °F.
max_thermostat_daily_program_periods_per_day
Number
Maximum number of periods that the thermostat can support per day. For example, if the thermostat supports 4 periods per day, this value is 4.
min_cooling_set_point_celsius
Number
Minimum cooling set point in °C.
min_cooling_set_point_fahrenheit
Number
Minimum cooling set point in °F.
min_heating_cooling_delta_celsius
Number
Minimum temperature difference in °C between the cooling and heating set points when in heat-cool (auto) mode.
min_heating_cooling_delta_fahrenheit
Number
Minimum temperature difference in °F between the cooling and heating set points when in heat-cool (auto) mode.
min_heating_set_point_celsius
Number
Minimum heating set point in °C.
min_heating_set_point_fahrenheit
Number
Minimum heating set point in °F.
minut_metadata
Object
Metadata for a Minut device.
model
Object
Device model-related properties.
name
String
Name of the device.
Deprecated. use device.display_name instead
nest_metadata
Object
Metadata for a Google Nest device.
noiseaware_metadata
Object
Metadata for a NoiseAware device.
nuki_metadata
Object
Metadata for a Nuki device.
online
Boolean
Indicates whether the device is online.
relative_humidity
Number
Reported relative humidity, as a value between 0 and 1, inclusive.
salto_ks_metadata
Object
Metadata for a Salto KS device.
salto_metadata
Object
Metada for a Salto device.
Deprecated. Use salto_ks_metadata
instead.
salto_space_credential_service_metadata
Object
Salto Space credential service metadata for the phone.
schlage_metadata
Object
Metadata for a Schlage device.
seam_bridge_metadata
Object
Metadata for Seam Bridge.
sensi_metadata
Object
Metadata for a Sensi device.
smartthings_metadata
Object
Metadata for a SmartThings device.
tado_metadata
Object
Metadata for a tado° device.
tedee_metadata
Object
Metadata for a Tedee device.
temperature_celsius
Number
Reported temperature in °C.
temperature_fahrenheit
Number
Reported temperature in °F.
temperature_threshold
Object
Current temperature threshold set for the thermostat.
thermostat_daily_program_period_precision_minutes
Number
Precision of the thermostat's period in minutes. For example, if the thermostat supports 15-minute periods, this value is 15. All values are relative to the top of the hour, so for 15 minutes, the periods would be 0, 15, 30, and 45 minutes past the hour.
thermostat_daily_programs
List of Objects
Configured daily programs for the thermostat.
thermostat_weekly_program
Object
Current weekly program for the thermostat.
ttlock_metadata
Object
Metadata for a TTLock device.
two_n_metadata
Object
Metadata for a 2N device.
visionline_metadata
Object
Metadata for an ASSA ABLOY Visionline system.
wyze_metadata
Object
Metadata for a Wyze device.
Errors
auxiliary_heat_running
Indicates that the auxiliary heat is running.
ttlock_lock_not_paired_to_gateway
Indicates that the lock is not paired with a gateway.
subscription_required
Indicates that a subscription is required to connect.
missing_device_credentials
Indicates that device credentials are missing.
lockly_missing_wifi_bridge
Indicates that the Lockly lock is not connected to a Wi-Fi bridge.
hub_disconnected
Indicates that the hub is disconnected.
device_removed
Indicates that the device has been removed.
device_offline
Indicates that the device is offline.
device_disconnected
Indicates that the device is disconnected.
account_disconnected
Indicates that the account is disconnected.
bridge_disconnected
Indicates that the Seam API cannot communicate with Seam Bridge, for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also Troubleshooting Your Access Control System.
invalid_credentials
Indicates that the credentials provided were invalid.
Warnings
device_communication_degraded
Indicates that the device appears to be unresponsive.
device_has_flaky_connection
Indicates that the device has a flaky connection.
functional_offline_device
Indicates that the device is offline but has some functionality available.
lockly_time_zone_not_configured
Indicates that Seam detected that the Lockly device does not have a time zone configured. Time-bound codes may not work as expected.
salto_ks_subscription_limit_almost_reached
Indicates that the Salto KS site has exceeded 80% of the maximum number of allowed users. Increase your subscription limit or delete some users from your site.
scheduled_maintenance_window
Indicates that a scheduled maintenance window has been detected.
temperature_threshold_exceeded
Indicates that the temperature threshold has been exceeded.
third_party_integration_detected
Indicates that a third-party integration has been detected.
ttlock_weak_gateway_signal
Indicates that the gateway signal is weak.
wyze_device_missing_gateway
Indicates that the Wyze Lock is not connected to a gateway.
Events
thermostat.climate_preset_activated
A thermostat climate preset was activated.
thermostat.manually_adjusted
A thermostat was adjusted manually.
thermostat.temperature_threshold_exceeded
A thermostat's temperature reading exceeded the set threshold.
thermostat.temperature_threshold_no_longer_exceeded
A thermostat's temperature reading no longer exceeds the set threshold.
thermostat.temperature_reached_set_point
A thermostat's temperature reading is within 1 °C of the configured cooling or heating set point.
thermostat.temperature_changed
A thermostat's reported temperature changed by at least 1 °C.
Endpoints
/thermostats/activate_climate_preset
Activates a specified climate preset for a specified thermostat.
Sets a specified thermostat to cool mode.
/thermostats/create_climate_preset
Creates a climate preset for a specified thermostat.
/thermostats/delete_climate_preset
Deletes a specified climate preset for a specified thermostat.
Sets a specified thermostat to heat mode.
Sets a specified thermostat to heat-cool ("auto") mode.
Returns a list of all thermostats.
Sets a specified thermostat to "off" mode.
/thermostats/set_fallback_climate_preset
Sets a specified climate preset as the "fallback" preset for a specified thermostat.
Sets the fan mode setting for a specified thermostat.
Sets the HVAC mode for a specified thermostat.
/thermostats/set_temperature_threshold
Sets a temperature threshold for a specified thermostat. Seam emits a thermostat.temperature_threshold_exceeded
event and adds a warning on a thermostat if it reports a temperature outside the threshold range.
/thermostats/update_climate_preset
Updates a specified climate preset for a specified thermostat.
/thermostats/update_weekly_program
Updates the thermostat weekly program for a thermostat device. To configure a weekly program, specify the ID of the daily program that you want to use for each day of the week. When you update a weekly program, the set of programs that you specify overwrites any previous weekly program for the thermostat.
Last updated
Was this helpful?