📋Device and System Capabilities
Learn about device and system capabilities, as well as capability flags.
Last updated
Learn about device and system capabilities, as well as capability flags.
Last updated
© Seam Labs, Inc. All rights reserved.
Each device that you connect to Seam has a specific set of capabilities. These capabilities define the Seam API actions that you can use. For example, some devices support remote unlock actions, while others support programming access codes. Some devices support both of these capabilities. When developing your application, it is imperative to be able to identify the capabilities of each device.
For example, if a device supports programming online access codes, your app can present the CreateAccessCodeForm
Seam Component to your user. On the other hand, if a connected device does not support the remote unlock action, you'll likely want to disable or not display the unlock functionality for your app user.
Capability flags inform your application about what features and behaviors each device supports. That is, you can use capability flags to match devices to the requirements for operations within your app. These flags also compare the capabilities of a specific device instance with those of the device model in general.
All capability flags share the following behavior:
If true
, the device has this capability, and this capability is functional on this device instance.
If false
, the device has this capability, but the capability is not currently functional.
See the device errors and warnings for more details about the cause of this issue. You can also examine the properties of the device and events related to the device to learn more about the cause of this issue.
If not present, the device does not have this capability.
Reasons why a capability flag might be false
could include that the device is currently offline or that a required hardware accessory is not connected to the device.
Seam recommends adding capability checks before performing specific actions in your app. For example, before performing a remote unlock operation, you can check to make sure that the target device supports remote unlocking. For details and code samples, see the corresponding capability guides.
In addition to viewing the capabilities for a specific device, you can also view the capabilities for a provider using List Device Providers. If at least one supported device from a provider has a specific capability, the corresponding capability flag is true
.
device.can_remotely_unlock
Boolean Optional
Indicates whether the device can perform a remote unlock operation.
device.can_remotely_lock
Boolean Optional
Indicates whether the device can perform a remote lock operation.
device.can_program_online_access_codes
Boolean Optional
Indicates whether the device can program online access codes.
If true
, it is currently possible to create new online access codes for the device, and Seam programs the device the next time it's online.
device.can_program_offline_access_codes
Boolean Optional
Indicates whether the device can program offline access codes.
When this flag is true
, Seam can generate an offline code for this device, regardless of the current online status of the device.
device.can_hvac_heat
Boolean Optional
Indicates whether the thermostat device (in conjunction with the associated HVAC system) supports heat mode.
When this flag is true
, you can set the thermostat to heat mode.
device.can_hvac_cool
Boolean Optional
Indicates whether the thermostat device (in conjunction with the associated HVAC system) supports cool mode.
When this flag is true
, you can set the thermostat to cool mode.
device.can_hvac_heat_cool
Boolean Optional
Indicates whether the thermostat device (in conjunction with the associated HVAC system) supports heat-cool (auto) mode.
When this flag is true
, you can set the thermostat to heat-cool mode.
device.can_turn_off_hvac
Boolean Optional
Indicates whether the thermostat device (in conjunction with the associated HVAC system) supports off mode.
When this flag is true
, you can set the thermostat to "off" mode, which turns off both the heating and cooling systems for the space.
Seam is actively developing additional capability flags to provide you with even more robust capability checking abilities for your app. If you would like us to add a specific capability flag, contact support@seam.co.
To learn about the actions that you can perform using the Seam API, see the Seam capability guides. These guides provide helpful tutorials and code samples, categorized by capability types.
Smart locks, including locking/unlocking and managing access codes