Skip to main content
You can configure Seam to emit a thermostat.temperature_threshold_exceeded event if a thermostat reports a temperature outside a specific threshold range. This capability helps you to monitor your thermostats proactively, alerting you to potential HVAC system misuse or malfunctioning. Use the /thermostats/set_temperature_threshold endpoint to set upper and lower acceptable temperature bounds. Then, you can use a webhook to monitor for thermostat.temperature_threshold_exceeded events. When the thermostat reports a temperature outside the threshold range, Seam also adds a warning on the thermostat. You can use the /devices/get endpoint to get the thermostat and then inspect its device.warnings property.

Set a Temperature Threshold

To set a temperature threshold for a thermostat, issue a /thermostats/set_temperature_threshold request, providing the device_id of the desired thermostat. Also, include the following parameters:
  • lower_limit_celsius or lower_limit_fahrenheit
  • upper_limit_celsius or upper_limit_fahrenheit
Request:
await seam.thermostats.setTemperatureThreshold({
  device_id: '2d488679-6f07-4810-aed2-e726872c1dd5',
  lower_limit_celsius: 4,
  upper_limit_celsius: 30,
})
Response:
void

View a Temperature Threshold

The temperature threshold range that you set for a thermostat is a property of the thermostat resource itself. To view the threshold values, use the /devices/get endpoint and inspect the thermostat.temperature_threshold.
Request:
await seam.devices.get({
  device_id: 'a4b775e3-feb2-4c6b-8e78-a73ec2d70b61',
})
Response:
{
  device_id: 'a4b775e3-feb2-4c6b-8e78-a73ec2d70b61',
  temperature_threshold: {
    lower_limit_celsius: 4,
    lower_limit_fahrenheit: 39.2,
    upper_limit_celsius: 30,
    upper_limit_fahrenheit: 86
  },
  ...
}

Change a Temperature Threshold

To change the temperature threshold range for a thermostat, issue a new /thermostats/set_temperature_threshold request. The new threshold values replace the previous ones.

Monitor a Temperature Threshold

To monitor a thermostat for temperatures outside the bounds of the configured threshold range, you can configure a webhook to receive thermostat.temperature_threshold_exceeded events. This event includes the device_id of the affected thermostat, as well as the configured threshold values and the reported temperature that exceeded this threshold range. When the reported temperature for a thermostat returns to within the configured threshold range, Seam emits a thermostat.temperature_threshold_no_longer_exceeded event.

Delete a Temperature Threshold

To delete the temperature threshold range for a thermostat, issue a /thermostats/set_temperature_threshold request, providing either of the following parameter combinations:
  • Provide only the device_id of the desired thermostat.
  • Provide the device_id of the desired thermostat and set the following parameters to null:
    • lower_limit_celsius or lower_limit_fahrenheit
    • upper_limit_celsius or upper_limit_fahrenheit
Request:
await seam.thermostats.setTemperatureThreshold({
  device_id: '2d488679-6f07-4810-aed2-e726872c1dd5',
})
or
await seam.thermostats.setTemperatureThreshold({
  device_id: '2d488679-6f07-4810-aed2-e726872c1dd5',
  lower_limit_celsius: null,
  upper_limit_celsius: null,
})
Response:
void