Setting and Monitoring Temperature Thresholds
Learn how to use temperature thresholds to monitor your thermostat for potential HVAC system misuse or malfunctioning.
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_celsiusorlower_limit_fahrenheitupper_limit_celsiusorupper_limit_fahrenheit
Request:
seam.thermostats.set_temperature_threshold(
device_id = "2d488679-6f07-4810-aed2-e726872c1dd5",
lower_limit_celsius = 4,
upper_limit_celsius = 30
)Response:
NoneRequest:
curl -X 'POST' \
'https://connect.getseam.com/thermostats/set_temperature_threshold' \
-H 'accept: application/json' \
-H "Authorization: Bearer ${SEAM_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"device_id": "2d488679-6f07-4810-aed2-e726872c1dd5",
"lower_limit_celsius": 4,
"upper_limit_celsius": 30
}'Response:
{
"ok": true
}Request:
await seam.thermostats.setTemperatureThreshold({
device_id: "2d488679-6f07-4810-aed2-e726872c1dd5",
lower_limit_celsius: 4,
upper_limit_celsius: 30
});Response:
voidRequest:
# Coming soon!Response:
# Coming soon!Request:
$seam->thermostats->set_temperature_threshold(
device_id: "2d488679-6f07-4810-aed2-e726872c1dd5",
lower_limit_celsius: 4,
upper_limit_celsius: 30
);Response:
voidRequest:
// Coming soon!Response:
// Coming soon!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:
seam.devices.get(
device_id = "a4b775e3-feb2-4c6b-8e78-a73ec2d70b61"
)Response:
Device(
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
},
...
)Request:
# Use GET or POST.
curl -X 'GET' \
'https://connect.getseam.com/devices/get' \
-H 'accept: application/json' \
-H 'Authorization: Bearer ${API_KEY}' \
-H 'Content-Type: application/json' \
-d '{
"device_id": "a4b775e3-feb2-4c6b-8e78-a73ec2d70b61"
}'Response:
{
"device": {
"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
},
...
},
"ok": true
}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
},
...
}Request:
# Coming soon!Response:
# Coming soon!Request:
$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
},
...
}Request:
// Coming soon!Response:
// Coming soon!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_idof the desired thermostat.Provide the
device_idof the desired thermostat and set the following parameters to null:lower_limit_celsiusorlower_limit_fahrenheitupper_limit_celsiusorupper_limit_fahrenheit
Request:
seam.thermostats.set_temperature_threshold(
device_id = "2d488679-6f07-4810-aed2-e726872c1dd5"
)or
seam.thermostats.set_temperature_threshold(
device_id = "2d488679-6f07-4810-aed2-e726872c1dd5",
lower_limit_celsius = None,
upper_limit_celsius = None
)Response:
NoneRequest:
curl -X 'POST' \
'https://connect.getseam.com/thermostats/set_temperature_threshold' \
-H 'accept: application/json' \
-H "Authorization: Bearer ${SEAM_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"device_id": "2d488679-6f07-4810-aed2-e726872c1dd5"
}'or
curl -X 'POST' \
'https://connect.getseam.com/thermostats/set_temperature_threshold' \
-H 'accept: application/json' \
-H "Authorization: Bearer ${SEAM_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"device_id": "2d488679-6f07-4810-aed2-e726872c1dd5",
"lower_limit_celsius": null,
"upper_limit_celsius": null
}'Response:
{
"ok": true
}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:
voidRequest:
# Coming soon!Response:
# Coming soon!Request:
$seam->thermostats->set_temperature_threshold(
device_id: "2d488679-6f07-4810-aed2-e726872c1dd5"
);or
$seam->thermostats->set_temperature_threshold(
device_id: "2d488679-6f07-4810-aed2-e726872c1dd5",
lower_limit_celsius: null,
upper_limit_celsius: null
);Response:
voidRequest:
// Coming soon!Response:
// Coming soon!Last updated
Was this helpful?

