Testing Your Thermostat App with Simulate Endpoints
Learn how to use the Seam suite of simulate endpoints to test your thermostat app.
Seam's suite of simulate
endpoints help you to test your thermostat app against events that can be difficult to orchestrate in your quality assurance (QA) environment using real devices. Seam provides the following thermostat-related simulate
endpoints that you can use in a sandbox workspace:
Seam supports these endpoints for all thermostat sandbox devices.
Checking Capability Flags
Before using the simulate
endpoints, check the relevant capabilities of the sandbox thermostat that you want to test. For example, if you want to use /thermostats/simulate/hvac_mode_adjusted
to simulate having set the HVAC mode on a thermostat to heat
, you must first make sure that the thermostat supports heat mode.
The following device properties show the relevant capabilities of a thermostat:
device.can_hvac_heat
device.can_hvac_cool
device.can_hvac_heat_cool
device.can_turn_off_hvac
For more information, see Thermostat Capabilities.
Simulate Adjusting the HVAC Mode
The /thermostats/simulate/hvac_mode_adjusted
endpoint enables you to simulate having adjusted the HVAC mode for a thermostat. This simulation is helpful for testing that your app is receiving thermostat events correctly, such as thermostat.manually_adjusted
.
You can simulate having set the HVAC mode to any of the following settings:
heat
cool
heat_cool
off
When you set the HVAC mode to heat
, cool
, or heat_cool
, you must also set the following applicable set points to the desired degrees Fahrenheit or Celsius:
heat
heating_set_point_fahrenheit
orheating_set_point_celsius
cool
cooling_set_point_fahrenheit
orcooling_set_point_celsius
heat_cool
heating_set_point_fahrenheit
orheating_set_point_celsius
cooling_set_point_fahrenheit
orcooling_set_point_celsius
off
None
To simulate having adjusted the HVAC mode for a thermostat:
Code:
# Get the device.
thermostat = seam.devices.get(
device_id="11111111-1111-1111-2222-444444444444"
)
# Confirm that Seam supports the desired HVAC mode for the thermostat.
# In this example, we're simulating having set the thermostat to heat mode.
if thermostat.can_hvac_heat:
# Perform the simulated HVAC mode adjustment.
seam.thermostats.simulate.hvac_mode_adjusted(
device_id = thermostat.device_id,
hvac_mode = "heat",
heating_set_point_fahrenheit = 68
)
Output:
None
Simulate Reaching a Desired Temperature
The /thermostats/simulate/temperature_reached
endpoint enables you to simulate the thermostat reaching a specified temperature. This simulation is helpful for testing that your app is receiving thermostat events correctly, such as thermostat.temperature_changed
and thermostat.temperature_reached_set_point
.
Specify the desired temperature that you want to simulate the thermostat reaching using either of the following parameters:
temperature_celsius
temperature_fahrenheit
To simulate reaching a desired temperature:
Code:
# Get the device.
thermostat = seam.devices.get(
device_id="11111111-1111-1111-2222-444444444444"
)
# Simulate reaching the specified temperature.
seam.thermostats.simulate.temperature_reached(
device_id = thermostat.device_id,
temperature_celsius = 25
)
Output:
None
Last updated
Was this helpful?