Retrieving Thermostats

Learn how to retrieve all thermostats or a specific thermostat by ID.

When you use the /thermostats/list and /devices/get endpoints to retrieve information about your connected thermostats, the Seam API returns the following categories of information:

Category
Details

Current conditions

Current temperature in Fahrenheit and Celsius, current relative humidity, and so on.

Current operational status

Whether the associated HVAC system is currently heating or cooling, whether the fan is currently running.

Available HVAC modes for the thermostat

heat, cool, heat_cool, and off.

Available fan modes for the thermostat

on, auto, and circulate.

Capabilities of the thermostat—at a granular level.

These capability flags include the following:

  • device.can_hvac_heat

  • device.can_hvac_cool

  • device.can_hvac_heat_cool

  • device.can_turn_off_hvac

Available climate presets

Climate presets that you can activate and schedule on the thermostat.

Climate preset constraints

List All Thermostats

To retrieve all thermostats, issue a /thermostats/list request. You can filter by a variety of criteria, including connected_account_id, connect_webview_id, manufacturer, user_identifier_key, and so on.

The following example retrieves all Google Nest thermostats:

Request:

seam.thermostats.list(
  manufacturer = "nest"
)

Response:

[
  Device(
    can_hvac_cool=True,
    can_hvac_heat=True,
    can_hvac_heat_cool=True,
    can_turn_off_hvac=True,
    device_id='a4b775e3-feb2-4c6b-8e78-a73ec2d70b61',
    device_type='nest_thermostat',
    properties={
      'available_hvac_mode_settings': [
        'heat',
        'cool',
        'heat_cool',
        'off'
      ],
      'current_climate_setting': {
        'display_name': 'eco',
        'cooling_set_point_celsius': 25,
        'cooling_set_point_fahrenheit': 77,
        'heating_set_point_celsius': 20,
        'heating_set_point_fahrenheit': 68,
        'hvac_mode_setting': 'heat_cool',
        'manual_override_allowed': True
      },
      'is_cooling': False,
      'is_fan_running': False,
      'is_heating': False,
      'manufacturer': 'nest',
      'online': True,
      'relative_humidity': 0.46,
      'temperature_celsius': 24.64,
      'temperature_fahrenheit': 76.352,
      ...
    },
    ...
  ),
  ...
]

Get an Individual Thermostat

To get a specific thermostat, issue a /devices/get request, including the desired device_id.

Request:

seam.devices.get(
  device_id = "a4b775e3-feb2-4c6b-8e78-a73ec2d70b61"
)

Response:

Device(
  can_hvac_cool=True,
  can_hvac_heat=True,
  can_hvac_heat_cool=True,
  can_turn_off_hvac=True,
  device_id='a4b775e3-feb2-4c6b-8e78-a73ec2d70b61',
  device_type='nest_thermostat',
  properties={
    'available_hvac_mode_settings': [
      'heat',
      'cool',
      'heat_cool',
      'off'
    ],
    'current_climate_setting': {
      'display_name': 'eco',
      'cooling_set_point_celsius': 25,
      'cooling_set_point_fahrenheit': 77,
      'heating_set_point_celsius': 20,
      'heating_set_point_fahrenheit': 68,
      'hvac_mode_setting': 'heat_cool',
      'manual_override_allowed': True
    },
    'is_cooling': False,
    'is_fan_running': False,
    'is_heating': False,
    'manufacturer': 'nest',
    'online': True,
    'relative_humidity': 0.46,
    'temperature_celsius': 24.64,
    'temperature_fahrenheit': 76.352,
    ...
  },
  ...
)

Last updated

Logo

© Seam Labs, Inc. All rights reserved.