diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 98372e94..6cad3346 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -4,8 +4,8 @@ FROM mcr.microsoft.com/vscode/devcontainers/javascript-node:${VARIANT} RUN apt-get update -RUN apt-get install -y php ruby ruby-dev -RUN gem install standard -v 1.31.0 +RUN apt-get install -y php ruby ruby-dev golang-go +RUN gem install syntax_tree -v 6.2.0 RUN wget https://github.com/mvdan/sh/releases/download/v3.9.0/shfmt_v3.9.0_linux_amd64 -O shfmt \ && chmod a+x shfmt \ diff --git a/.devcontainer/seam-sdk-playground/Dockerfile b/.devcontainer/seam-sdk-playground/Dockerfile index 952bf96e..c0a449c7 100644 --- a/.devcontainer/seam-sdk-playground/Dockerfile +++ b/.devcontainer/seam-sdk-playground/Dockerfile @@ -28,7 +28,7 @@ COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer COPY --from=golang /usr/local/go /usr/local/go ENV PATH="/usr/local/go/bin:${PATH}" -RUN gem install seamapi +RUN gem install seam RUN pip install seam --break-system-packages USER node diff --git a/.devcontainer/seam-sdk-playground/devcontainer.json b/.devcontainer/seam-sdk-playground/devcontainer.json index 3a182e36..721b46d2 100644 --- a/.devcontainer/seam-sdk-playground/devcontainer.json +++ b/.devcontainer/seam-sdk-playground/devcontainer.json @@ -19,6 +19,6 @@ ] } }, - "postCreateCommand": "npm install -g seam-cli && seam config set fake-server && cd /workspaces/api-docs/seam-sdk-playground/javascript && npm i seam@latest && cd /workspaces/api-docs/seam-sdk-playground/csharp && ./init.sh && cd /workspaces/api-docs/seam-sdk-playground/go && ./init.sh && cd /workspaces/api-docs/seam-sdk-playground/php && composer update", + "postCreateCommand": "npm install -g seam-cli && seam config set fake-server && cd /workspaces/docs/seam-sdk-playground/javascript && npm i seam@latest && cd /workspaces/docs/seam-sdk-playground/csharp && ./init.sh && cd /workspaces/docs/seam-sdk-playground/go && ./init.sh && cd /workspaces/docs/seam-sdk-playground/php && composer update", "remoteUser": "node" } diff --git a/.gitbook.yaml b/.gitbook.yaml index 2c0e16ff..16bc2421 100644 --- a/.gitbook.yaml +++ b/.gitbook.yaml @@ -30,6 +30,7 @@ redirects: device-and-system-integration-guides/assa-abloy-visionline-access-control-system-in-development/special-requirements-for-android-mobile-access-sdk-development: device-and-system-integration-guides/assa-abloy-visionline-access-control-system/special-requirements-for-android-mobile-access-sdk-development.md device-and-system-integration-guides/assa-abloy-visionline-access-control-system-in-development/special-requirements-for-ios-mobile-access-sdk-development: device-and-system-integration-guides/assa-abloy-visionline-access-control-system/special-requirements-for-ios-mobile-access-sdk-development.md capability-guides/access-systems/understanding-acs-differences: capability-guides/access-systems/understanding-access-control-system-differences.md + capability-guides/thermostats/creating-and-managing-climate-schedules: capability-guides/thermostats/creating-and-managing-thermostat-schedules.md device-guides/get-started-with-schlage-locks: device-and-system-integration-guides/schlage-locks/get-started-with-schlage-locks.md api-clients/access-codes/convert-an-unmanaged-access-code: api-clients/access_codes/unmanaged/convert_to_managed.md api-clients/access-codes/create-an-access-code: api-clients/access_codes/create.md diff --git a/.github/workflows/generate.yml b/.github/workflows/generate.yml index 9132dcd8..cd675beb 100644 --- a/.github/workflows/generate.yml +++ b/.github/workflows/generate.yml @@ -44,8 +44,12 @@ jobs: uses: ruby/setup-ruby@v1 with: ruby-version: '3.3' - - name: Install standardrb - run: gem install standard -v 1.31.0 + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version: '^1.23.2' + - name: Install syntax_tree + run: gem install syntax_tree -v 6.2.0 - name: Normalize package-lock.json run: npm install - name: Generate docs diff --git a/README.md b/README.md index 4856a7f5..681259c5 100644 --- a/README.md +++ b/README.md @@ -126,7 +126,8 @@ GitHub actions will automatically ensure the formatting is applied for all pull - [shfmt](https://github.com/mvdan/sh) - [ruff](https://github.com/astral-sh/ruff) -- [standardrb](https://github.com/standardrb/standard) +- [gofmt](https://go.dev/blog/gofmt) +- [syntax_tree](https://github.com/ruby-syntax-tree/syntax_tree) ## GitHub Actions diff --git a/docs/.gitbook/assets/33-lock-logo.png b/docs/.gitbook/assets/33-lock-logo.png new file mode 100644 index 00000000..032cd2ba Binary files /dev/null and b/docs/.gitbook/assets/33-lock-logo.png differ diff --git a/docs/.gitbook/assets/33-lock_connect-flow-screens_dark.png b/docs/.gitbook/assets/33-lock_connect-flow-screens_dark.png new file mode 100644 index 00000000..039ba3a4 Binary files /dev/null and b/docs/.gitbook/assets/33-lock_connect-flow-screens_dark.png differ diff --git a/docs/.gitbook/assets/33-lock_connect-flow-screens_light.png b/docs/.gitbook/assets/33-lock_connect-flow-screens_light.png new file mode 100644 index 00000000..f7758d79 Binary files /dev/null and b/docs/.gitbook/assets/33-lock_connect-flow-screens_light.png differ diff --git a/docs/.gitbook/assets/33lock-manufacturer-page-cover-dark.png b/docs/.gitbook/assets/33lock-manufacturer-page-cover-dark.png new file mode 100644 index 00000000..d04b6ada Binary files /dev/null and b/docs/.gitbook/assets/33lock-manufacturer-page-cover-dark.png differ diff --git a/docs/.gitbook/assets/33lock-manufacturer-page-cover-light.png b/docs/.gitbook/assets/33lock-manufacturer-page-cover-light.png new file mode 100644 index 00000000..cb0a0280 Binary files /dev/null and b/docs/.gitbook/assets/33lock-manufacturer-page-cover-light.png differ diff --git a/docs/.gitbook/assets/acs-access-group_dark.png b/docs/.gitbook/assets/acs-access-group_dark.png index e635dc01..8e9dfa14 100644 Binary files a/docs/.gitbook/assets/acs-access-group_dark.png and b/docs/.gitbook/assets/acs-access-group_dark.png differ diff --git a/docs/.gitbook/assets/acs-access-group_light.png b/docs/.gitbook/assets/acs-access-group_light.png index debac5fd..b56a1501 100644 Binary files a/docs/.gitbook/assets/acs-access-group_light.png and b/docs/.gitbook/assets/acs-access-group_light.png differ diff --git a/docs/.gitbook/assets/acs-credential-types.png b/docs/.gitbook/assets/acs-credential-types.png index ab11953d..f61c9753 100644 Binary files a/docs/.gitbook/assets/acs-credential-types.png and b/docs/.gitbook/assets/acs-credential-types.png differ diff --git a/docs/.gitbook/assets/acs-credential_dark.png b/docs/.gitbook/assets/acs-credential_dark.png index d41e1025..1137d718 100644 Binary files a/docs/.gitbook/assets/acs-credential_dark.png and b/docs/.gitbook/assets/acs-credential_dark.png differ diff --git a/docs/.gitbook/assets/acs-credential_latch_dark.png b/docs/.gitbook/assets/acs-credential_latch_dark.png deleted file mode 100644 index 256cbb30..00000000 Binary files a/docs/.gitbook/assets/acs-credential_latch_dark.png and /dev/null differ diff --git a/docs/.gitbook/assets/acs-credential_latch_light.png b/docs/.gitbook/assets/acs-credential_latch_light.png deleted file mode 100644 index beac9b59..00000000 Binary files a/docs/.gitbook/assets/acs-credential_latch_light.png and /dev/null differ diff --git a/docs/.gitbook/assets/acs-credential_light.png b/docs/.gitbook/assets/acs-credential_light.png index b724f2bb..af36c62b 100644 Binary files a/docs/.gitbook/assets/acs-credential_light.png and b/docs/.gitbook/assets/acs-credential_light.png differ diff --git a/docs/.gitbook/assets/acs-entrance_dark.png b/docs/.gitbook/assets/acs-entrance_dark.png index 774f991f..426b7830 100644 Binary files a/docs/.gitbook/assets/acs-entrance_dark.png and b/docs/.gitbook/assets/acs-entrance_dark.png differ diff --git a/docs/.gitbook/assets/acs-entrance_light.png b/docs/.gitbook/assets/acs-entrance_light.png index f3c105df..4a395676 100644 Binary files a/docs/.gitbook/assets/acs-entrance_light.png and b/docs/.gitbook/assets/acs-entrance_light.png differ diff --git a/docs/.gitbook/assets/acs-schedule_dark.png b/docs/.gitbook/assets/acs-schedule_dark.png index 1134a040..ee4532d6 100644 Binary files a/docs/.gitbook/assets/acs-schedule_dark.png and b/docs/.gitbook/assets/acs-schedule_dark.png differ diff --git a/docs/.gitbook/assets/acs-system_dark.png b/docs/.gitbook/assets/acs-system_dark.png index ab189fdf..3f2d0631 100644 Binary files a/docs/.gitbook/assets/acs-system_dark.png and b/docs/.gitbook/assets/acs-system_dark.png differ diff --git a/docs/.gitbook/assets/acs-system_light.png b/docs/.gitbook/assets/acs-system_light.png index 1b53bec3..8fe76123 100644 Binary files a/docs/.gitbook/assets/acs-system_light.png and b/docs/.gitbook/assets/acs-system_light.png differ diff --git a/docs/.gitbook/assets/acs-user_dark.png b/docs/.gitbook/assets/acs-user_dark.png index d5367cd5..af40a76b 100644 Binary files a/docs/.gitbook/assets/acs-user_dark.png and b/docs/.gitbook/assets/acs-user_dark.png differ diff --git a/docs/.gitbook/assets/acs-user_light.png b/docs/.gitbook/assets/acs-user_light.png index 5af0d7e1..a5204d9a 100644 Binary files a/docs/.gitbook/assets/acs-user_light.png and b/docs/.gitbook/assets/acs-user_light.png differ diff --git a/docs/.gitbook/assets/add-devices-button.png b/docs/.gitbook/assets/add-devices-button.png index 87aa11a0..980d50d3 100644 Binary files a/docs/.gitbook/assets/add-devices-button.png and b/docs/.gitbook/assets/add-devices-button.png differ diff --git a/docs/.gitbook/assets/akiles-logo.png b/docs/.gitbook/assets/akiles-logo.png new file mode 100644 index 00000000..cca8eb4b Binary files /dev/null and b/docs/.gitbook/assets/akiles-logo.png differ diff --git a/docs/.gitbook/assets/akiles-manufacturer-page-cover-dark.png b/docs/.gitbook/assets/akiles-manufacturer-page-cover-dark.png new file mode 100644 index 00000000..8b3837b2 Binary files /dev/null and b/docs/.gitbook/assets/akiles-manufacturer-page-cover-dark.png differ diff --git a/docs/.gitbook/assets/akiles-manufacturer-page-cover-light.png b/docs/.gitbook/assets/akiles-manufacturer-page-cover-light.png new file mode 100644 index 00000000..c2e9f900 Binary files /dev/null and b/docs/.gitbook/assets/akiles-manufacturer-page-cover-light.png differ diff --git a/docs/.gitbook/assets/akiles_connect-flow-screens_dark.png b/docs/.gitbook/assets/akiles_connect-flow-screens_dark.png new file mode 100644 index 00000000..9f173d88 Binary files /dev/null and b/docs/.gitbook/assets/akiles_connect-flow-screens_dark.png differ diff --git a/docs/.gitbook/assets/akiles_connect-flow-screens_light.png b/docs/.gitbook/assets/akiles_connect-flow-screens_light.png new file mode 100644 index 00000000..a8030b30 Binary files /dev/null and b/docs/.gitbook/assets/akiles_connect-flow-screens_light.png differ diff --git a/docs/.gitbook/assets/card-scanner.png b/docs/.gitbook/assets/card-scanner.png new file mode 100644 index 00000000..d693fc67 Binary files /dev/null and b/docs/.gitbook/assets/card-scanner.png differ diff --git a/docs/.gitbook/assets/encode-card.png b/docs/.gitbook/assets/encode-card.png new file mode 100644 index 00000000..53db2a9e Binary files /dev/null and b/docs/.gitbook/assets/encode-card.png differ diff --git a/docs/.gitbook/assets/image (26).png b/docs/.gitbook/assets/image (26).png deleted file mode 100644 index 6ed1301a..00000000 Binary files a/docs/.gitbook/assets/image (26).png and /dev/null differ diff --git a/docs/.gitbook/assets/multiple-climate-schedules.png b/docs/.gitbook/assets/multiple-climate-schedules.png new file mode 100644 index 00000000..bd0a4f4a Binary files /dev/null and b/docs/.gitbook/assets/multiple-climate-schedules.png differ diff --git a/docs/.gitbook/assets/salto-ks-acs.png b/docs/.gitbook/assets/salto-ks-acs.png new file mode 100644 index 00000000..0cb585af Binary files /dev/null and b/docs/.gitbook/assets/salto-ks-acs.png differ diff --git a/docs/.gitbook/assets/salto-ks-manufacturer-page-cover-dark.png b/docs/.gitbook/assets/salto-ks-manufacturer-page-cover-dark.png new file mode 100644 index 00000000..07851777 Binary files /dev/null and b/docs/.gitbook/assets/salto-ks-manufacturer-page-cover-dark.png differ diff --git a/docs/.gitbook/assets/salto-ks-manufacturer-page-cover-light.png b/docs/.gitbook/assets/salto-ks-manufacturer-page-cover-light.png new file mode 100644 index 00000000..94d9c9e9 Binary files /dev/null and b/docs/.gitbook/assets/salto-ks-manufacturer-page-cover-light.png differ diff --git a/docs/.gitbook/assets/salto-logo.png b/docs/.gitbook/assets/salto-logo.png index a69948ae..0e117eb3 100644 Binary files a/docs/.gitbook/assets/salto-logo.png and b/docs/.gitbook/assets/salto-logo.png differ diff --git a/docs/.gitbook/assets/scan-card.png b/docs/.gitbook/assets/scan-card.png new file mode 100644 index 00000000..7adc4ffe Binary files /dev/null and b/docs/.gitbook/assets/scan-card.png differ diff --git a/docs/.gitbook/assets/thermostats-16-9.png b/docs/.gitbook/assets/thermostats-16-9.png deleted file mode 100644 index 59588903..00000000 Binary files a/docs/.gitbook/assets/thermostats-16-9.png and /dev/null differ diff --git a/docs/.gitbook/assets/thermostats-api-cover-dark.png b/docs/.gitbook/assets/thermostats-api-cover-dark.png deleted file mode 100644 index 7e6b9cc9..00000000 Binary files a/docs/.gitbook/assets/thermostats-api-cover-dark.png and /dev/null differ diff --git a/docs/.gitbook/assets/thermostats-api-cover-light (1).png b/docs/.gitbook/assets/thermostats-api-cover-light (1).png deleted file mode 100644 index baf899ef..00000000 Binary files a/docs/.gitbook/assets/thermostats-api-cover-light (1).png and /dev/null differ diff --git a/docs/.gitbook/assets/thermostats-api-cover-light (2).png b/docs/.gitbook/assets/thermostats-api-cover-light (2).png deleted file mode 100644 index baf899ef..00000000 Binary files a/docs/.gitbook/assets/thermostats-api-cover-light (2).png and /dev/null differ diff --git a/docs/.gitbook/assets/thermostats-api-cover-light.png b/docs/.gitbook/assets/thermostats-api-cover-light.png deleted file mode 100644 index abe0dd97..00000000 Binary files a/docs/.gitbook/assets/thermostats-api-cover-light.png and /dev/null differ diff --git a/docs/.gitbook/assets/thermostats-cover.png b/docs/.gitbook/assets/thermostats-cover.png new file mode 100644 index 00000000..5c94bee7 Binary files /dev/null and b/docs/.gitbook/assets/thermostats-cover.png differ diff --git a/docs/README.md b/docs/README.md index a3eb812f..6a4b7b05 100644 --- a/docs/README.md +++ b/docs/README.md @@ -12,7 +12,9 @@ To get started quickly with Seam, follow the [Quick Start](quickstart.md) to cre
Get API Key (free) | Sign up for the Seam Console and get your API keys. → | seam-api-key.png | https://console.seam.co/ | |
Quick Start (5 mins) | Learn how to connect a device and issue your first API call. → | seam-quick-start-light.png | quickstart.md |
Door Locks API | Get started → | smart-locks-16-9.png | smart-locks | |
Thermostats API | Get started → | thermostats-16-9.png | thermostats | |
Noise Sensors API | Get started → | sensors-16-9.png | noise-sensors |
Door Locks API | Get started → | smart-locks-16-9.png | smart-locks | |
Thermostats API | Get started → | thermostats | ||
Noise Sensors API | Get started → | sensors-16-9.png | noise-sensors |
Component | API Object | Description |
---|---|---|
System | acs_system | An ACS itself. You create users, access groups, and credentials in the context of an acs_system . |
User | acs_user | A user to whom to grant access to specific physical spaces. |
Entrance | acs_entrance | A secured door, gate, service, or other method of entry. |
Access group | acs_access_group | A group that defines the entrances to which a set of users has access, as well as the access schedule for these entrances and users. |
Credential | acs_credential | A means by which a user gains access at an entrance, such as access codes, key cards, and mobile passes. |
Component | API Object | Description |
---|---|---|
System | acs_system | An access control system itself. You create users, access groups, and credentials in the context of an acs_system . |
User | acs_user | A user to whom to grant access to specific physical spaces. |
Entrance | acs_entrance | A secured door, gate, service, or other method of entry. |
Access group | acs_access_group | A group that defines the entrances to which a set of users has access, as well as the access schedule for these entrances and users. |
Credential | acs_credential | A means by which a user gains access at an entrance, such as access codes, key cards, and mobile passes. |
Property | Type | Description |
---|---|---|
acs_access_group_id | String (UUID) Required | ID of the access group |
acs_system_id | String (UUID) Required | ID of the access control system that contains the access group |
workspace_id | String (UUID) Required | ID of the workspace that contains the access group |
name | String Required | Name of the access group |
external_type | String Required | Brand-specific terminology for the access group type |
external_type_display_name | String Required | Display name that corresponds to the brand-specific terminology for the access group type |
created_at | String Required | Date and time at which the access group was created |
Parameter | Type | Description |
---|---|---|
acs_access_group_id | String (UUID) Required | ID of the desired access group |
acs_user_id | String (UUID) Required | ID of the desired user |
Parameter | Type | Description |
---|---|---|
acs_access_group_id | String (UUID) Required | ID of the desired access group |
Property | Description |
---|---|
acs_access_group_id | ID of the access group |
name | Name of the access group |
display_name | Display name for the access group |
external_type | Brand-specific terminology for the access group type |
external_type_display_name | Display name that corresponds to the brand-specific terminology for the access group type |
acs_system_id | ID of the access control system that contains the access group |
workspace_id | ID of the workspace that contains the access group |
created_at | Date and time at which the access group was created |
Parameter | Type | Description |
---|---|---|
acs_system_id | String (UUID) Optional | ID of the access control system for which you want to retrieve all access groups |
acs_user_id | String (UUID) Optional | ID of the user for which you want to retrieve all access groups |
Property | Description |
---|---|
acs_access_group_id | ID of the access group |
name | Name of the access group |
display_name | Display name for the access group |
external_type | Brand-specific terminology for the access group type |
external_type_display_name | Display name that corresponds to the brand-specific terminology for the access group type |
acs_system_id | ID of the access control system that contains the access group |
workspace_id | ID of the workspace that contains the access group |
created_at | Date and time at which the access group was created |
Parameter | Type | Description |
---|---|---|
acs_access_group_id | String (UUID) Required | ID of the access group for which you want to retrieve all users |
Property | Description |
---|---|
acs_user_id | ID of the ACS user |
display_name | Display name for the ACS user |
full_name | Full name of the ACS user |
email | Email address of the ACS user (for backward compatibility) |
email_address | Email address of the ACS user |
phone_number | Phone number of the ACS user in E.164 format (for example, +15555550100 ) |
acs_system_id | ID of the access control system that contains the ACS user |
workspace_id | ID of the workspace that contains the ACS user |
created_at | Date and time at which the ACS user was created |
is_suspended | Indicates whether the ACS user is currently suspended |
access_schedule | starts_at and ends_at dates/times for the ACS user's access |
user_identity_id | ID of the user identity associated with the ACS user |
user_identity_full_name | Full name of the user identity associated with the ACS user |
user_identity_email_address | Email address of the user identity associated with the ACS user |
user_identity_phone_number | Phone number of the user identity associated with the ACS user in E.164 format (for example, +15555550100 ) |
Parameter | Type | Description |
---|---|---|
acs_access_group_id | String (UUID) Required | ID of the desired access group |
acs_user_id | String (UUID) Required | ID of the desired user |
Property | Type | Description |
---|---|---|
acs_credential_id | String (UUID) Required | ID of the credential |
acs_user_id | String (UUID) Optional | ID of the user to whom the credential belongs |
acs_system_id | String (UUID) Required | ID of the access control system that contains the credential |
parent_acs_credential_id | String (UUID) Optional | ID of the parent credential |
display_name | String Optional | Display name that corresponds to the credential type |
code | String Optional | Access (PIN) code for the credential |
access_method | Enum (string) Required | Access method for the credential. Supported values: code , card , mobile_key |
external_type | Enum (string) Optional | Brand-specific terminology for the credential type Supported values: pti_card , brivo_credential , hid_credential , visionline_card |
external_type_display_name | String Optional | Display name that corresponds to the brand-specific terminology for the credential type |
created_at | String Required | Date and time at which the credential was created |
workspace_id | String (UUID) Required | ID of the workspace that contains the credential |
starts_at | String (datetime) Optional | Date and time at which the credential validity starts, in ISO 8601 format |
ends_at | String (datetime) Optional | Date and time at which the credential validity ends, in ISO 8601 format Must be a time in the future and after starts_at . |
is_multi_phone_sync_credential | Boolean Optional | Indicates whether the credential is a multi-phone sync credential |
XXX_metadata | Object Optional | ACS manufacturer-specific metadata for the credential, where XXX is the manufacturer |
Parameter | Type | Description |
---|---|---|
acs_user_id | String (UUID) Required | ID of the desired user |
acs_credential_id | String (UUID) Required | ID of the desired credential |
Property | Description |
---|---|
acs_credential_id | ID of the credential |
acs_user_id | ID of the user to whom the credential belongs |
display_name | Display name that corresponds to the credential type |
code | Access (PIN) code for the credential |
acs_system_id | ID of the access control system that contains the credential |
access_method | Access method for the credential. Supported values: code , card , mobile_key |
external_type | Brand-specific terminology for the credential type |
external_type_display_name | Display name that corresponds to the brand-specific terminology for the credential type |
workspace_id | ID of the workspace that contains the credential |
created_at | Date and time at which the credential was created |
is_multi_phone_sync_credential | Indicates whether the credential is a multi-phone sync credential |
starts_at | Date and time at which the credential validity starts, in ISO 8601 format |
ends_at | Date and time at which the credential validity ends, in ISO 8601 format |
XXX_metadata | ACS manufacturer-specific metadata for the credential, where XXX is the manufacturer |
Parameter | Type | Description |
---|---|---|
acs_user_id | String (UUID) Required | ID of the user to whom the new credential belongs |
access_method | Enum (string) Required | Access method for the new credential. Supported values: code , card , mobile_key |
code | String Optional | Access (PIN) code for the new credential There may be manufacturer-specific code restrictions. For details, see the applicable device or system integration guide. |
is_multi_phone_sync_credential | Boolean Optional | Indicates whether the new credential is a multi-phone sync credential |
allowed_acs_entrance_ids | Array of strings (UUIDs) Optional | Set of IDs of the entrances for which the new credential grants access |
credential_manager_acs_system_id | Enum (string) Optional | ACS system ID of the credential manager for the new user |
XXX_metadata | Object Optional | ACS manufacturer-specific metadata for the new credential, where XXX is the manufacturer |
starts_at | Datetime Optional | Date and time at which the validity of the new credential starts, in ISO 8601 format. |
ends_at | Datetime Optional | Date and time at which the validity of the new credential ends, in ISO 8601 format. Must be a time in the future and after starts_at . |
Property | Description |
---|---|
acs_credential_id | ID of the credential |
acs_user_id | ID of the user to whom the credential belongs |
display_name | Display name that corresponds to the credential type |
code | Access (PIN) code for the credential |
acs_system_id | ID of the access control system that contains the credential |
access_method | Access method for the credential. Supported values: code , card , mobile_key |
external_type | Brand-specific terminology for the credential type |
external_type_display_name | Display name that corresponds to the brand-specific terminology for the credential type |
workspace_id | ID of the workspace that contains the credential |
created_at | Date and time at which the credential was created |
is_multi_phone_sync_credential | Indicates whether the credential is a multi-phone sync credential |
starts_at | Date and time at which the credential validity starts, in ISO 8601 format |
ends_at | Date and time at which the credential validity ends, in ISO 8601 format |
XXX_metadata | ACS manufacturer-specific metadata for the credential, where XXX is the manufacturer |
Parameter | Type | Description |
---|---|---|
acs_credential_id | String (UUID) Required | ID of the desired credential |
Parameter | Type | Description |
---|---|---|
acs_credential_id | String (UUID) Required | ID of the desired credential |
Property | Description |
---|---|
acs_credential_id | ID of the credential |
acs_user_id | ID of the user to whom the credential belongs |
display_name | Display name that corresponds to the credential type |
code | Access (PIN) code for the credential |
acs_system_id | ID of the access control system that contains the credential |
access_method | Access method for the credential. Supported values: code , card , mobile_key |
external_type | Brand-specific terminology for the credential type |
external_type_display_name | Display name that corresponds to the brand-specific terminology for the credential type |
workspace_id | ID of the workspace that contains the credential |
created_at | Date and time at which the credential was created |
is_multi_phone_sync_credential | Indicates whether the credential is a multi-phone sync credential |
starts_at | Date and time at which the credential validity starts, in ISO 8601 format |
ends_at | Date and time at which the credential validity ends, in ISO 8601 format |
XXX_metadata | ACS manufacturer-specific metadata for the credential, where XXX is the manufacturer |
Parameter | Type | Description |
---|---|---|
acs_user_id | String (UUID) Optional | ID of the user for which you want to retrieve all credentials |
acs_system_id | String (UUID) Optional | ID of the access control system for which you want to retrieve all credentials |
user_identity_id | String (UUID) Optional | ID of the user identity for which you want to retrieve all credentials |
is_multi_phone_sync_credential | Boolean Optional | Indicates whether you want to retrieve only multi-phone sync credentials or non-multi-phone sync credentials |
Property | Description |
---|---|
acs_credential_id | ID of the credential |
acs_user_id | ID of the user to whom the credential belongs |
display_name | Display name that corresponds to the credential type |
code | Access (PIN) code for the credential |
acs_system_id | ID of the access control system that contains the credential |
access_method | Access method for the credential. Supported values: code , card , mobile_key |
external_type | Brand-specific terminology for the credential type |
external_type_display_name | Display name that corresponds to the brand-specific terminology for the credential type |
workspace_id | ID of the workspace that contains the credential |
created_at | Date and time at which the credential was created |
is_multi_phone_sync_credential | Indicates whether the credential is a multi-phone sync credential |
starts_at | Date and time at which the credential validity starts, in ISO 8601 format |
ends_at | Date and time at which the credential validity ends, in ISO 8601 format |
XXX_metadata | ACS manufacturer-specific metadata for the credential, where XXX is the manufacturer |
[
- AcsCredential(
- acs_credential_id='99999999-9999-9999-9999-999999999999',
- acs_user_id='33333333-3333-3333-3333-333333333333',
- display_name='Multi Phone Sync Credential',
- code=null,
- acs_system_id='11111111-1111-1111-1111-111111111111',
- access_method='mobile_key',
- workspace_id='00000000-0000-0000-0000-000000000000',
- created_at='2024-04-12T03:56:22.396Z',
- is_multi_phone_sync_credential=True,
- # manufacturer-specific metadata
- ),
- ...
-]
-
-{% endtab %}
-
-{% tab title="cURL (bash)" %}
-```json
-{
- "acs_credentials": [
- {
- "acs_credential_id": "99999999-9999-9999-9999-999999999999",
- "acs_user_id": "33333333-3333-3333-3333-333333333333",
- "display_name": "Multi Phone Sync Credential",
- "code": null,
- "acs_system_id": "11111111-1111-1111-1111-111111111111",
- "access_method": "mobile_key",
- "workspace_id": "00000000-0000-0000-0000-000000000000",
- "created_at": "2024-04-12T03:56:22.396Z",
- "is_multi_phone_sync_credential": true,
- # manufacturer-specific metadata
- }
- ...
- ],
- "ok": true
-}
-```
-{% endtab %}
-
-{% tab title="JavaScript" %}
-```json
-[
- {
- acs_credential_id: '99999999-9999-9999-9999-999999999999',
- acs_user_id: '33333333-3333-3333-3333-333333333333',
- display_name: 'Multi Phone Sync Credential',
- code: null,
- acs_system_id: '11111111-1111-1111-1111-111111111111',
- access_method: 'mobile_key',
- workspace_id: '00000000-0000-0000-0000-000000000000',
- created_at: '2024-04-12T03:56:22.396Z',
- is_multi_phone_sync_credential: true,
- // manufacturer-specific metadata
- },
- ...
-]
-```
-{% endtab %}
-
-{% tab title="Ruby" %}
-```
-# Coming soon!
-```
-{% endtab %}
-
-{% tab title="PHP" %}
-```json
-[
- {
- "acs_credential_id": "99999999-9999-9999-9999-999999999999",
- "acs_user_id": "33333333-3333-3333-3333-333333333333",
- "display_name": "Multi Phone Sync Credential",
- "code": null,
- "acs_system_id": "11111111-1111-1111-1111-111111111111",
- "access_method": "mobile_key",
- "workspace_id": "00000000-0000-0000-0000-000000000000",
- "created_at": "2024-04-12T03:56:22.396Z",
- "is_multi_phone_sync_credential": true,
- // manufacturer-specific metadata
- },
- ...
-]
-```
-{% endtab %}
-
-{% tab title="C#" %}
-```json
-{
- "acs_credential_id": "99999999-9999-9999-9999-999999999999",
- "acs_user_id": "33333333-3333-3333-3333-333333333333",
- "display_name": "Multi Phone Sync Credential",
- "code": null,
- "acs_system_id": "11111111-1111-1111-1111-111111111111",
- "access_method": "mobile_key",
- "workspace_id": "00000000-0000-0000-0000-000000000000",
- "created_at": "2024-04-12T03:56:22.396Z",
- "is_multi_phone_sync_credential": true,
- // manufacturer-specific metadata
-}
-...
-```
-{% endtab %}
-
-{% tab title="Java" %}
-```json
-// Coming soon!
-```
-{% endtab %}
-
-{% tab title="Go" %}
-```json
-{
- "acs_credentials": [
- {
- "acs_credential_id": "99999999-9999-9999-9999-999999999999",
- "acs_user_id": "33333333-3333-3333-3333-333333333333",
- "display_name": "Multi Phone Sync Credential",
- "code": null,
- "acs_system_id": "11111111-1111-1111-1111-111111111111",
- "access_method": "mobile_key",
- "workspace_id": "00000000-0000-0000-0000-000000000000",
- "created_at": "2024-04-12T03:56:22.396Z",
- "is_multi_phone_sync_credential": true,
- # manufacturer-specific metadata
- }
- ...
- ],
- "ok": true
-}
-```
-{% endtab %}
-{% endtabs %}
diff --git a/docs/api-clients/acs/credentials/list_accessible_entrances.md b/docs/api-clients/acs/credentials/list_accessible_entrances.md
deleted file mode 100644
index 92bfc7c8..00000000
--- a/docs/api-clients/acs/credentials/list_accessible_entrances.md
+++ /dev/null
@@ -1,274 +0,0 @@
----
-description: Get all entrances to which a specified credential grants access
----
-
-# List Accessible Entrances
-
-Returns a list of all [entrances](../entrances/) to which a [credential](./) grants access.
-
-{% swagger src="https://connect.getseam.com/openapi.json" path="/acs/credentials/list_accessible_entrances" method="post" %}
-[https://connect.getseam.com/openapi.json](https://connect.getseam.com/openapi.json)
-{% endswagger %}
-
-## Request
-
-Specify the credential for which you want to retrieve all accessible entrances by including the corresponding `acs_credential_id` in the request body.
-
-### Request Body Parameters
-
-Parameter | Type | Description |
---|---|---|
acs_credential_id | String (UUID) Required | ID of the credential for which you want to retrieve all entrances to which this credential grants access |
Property | Description |
---|---|
acs_entrance_id | ID of the entrance |
acs_system_id | ID of the access control system that contains the entrance |
workspace_id | ID of the workspace that contains the user |
display_name | Display name for the entrance |
XXX_metadata | ACS manufacturer-specific metadata for the entrance, where XXX is the manufacturer |
created_at | Date and time at which the entrance was created |
Parameter | Type | Description |
---|---|---|
acs_user_id | String (UUID) Required | ID of the desired user |
acs_credential_id | String (UUID) Required | ID of the desired credential |
Property | Description |
---|---|
acs_credential_id | ID of the credential |
acs_user_id | ID of the user to whom the credential belongs |
display_name | Display name that corresponds to the credential type |
code | Access (PIN) code for the credential |
acs_system_id | ID of the access control system that contains the credential |
access_method | Access method for the credential. Supported values: code , card , mobile_key |
external_type | Brand-specific terminology for the credential type |
external_type_display_name | Display name that corresponds to the brand-specific terminology for the credential type |
workspace_id | ID of the workspace that contains the credential |
created_at | Date and time at which the credential was created |
is_multi_phone_sync_credential | Indicates whether the credential is a multi-phone sync credential |
starts_at | Date and time at which the credential validity starts, in ISO 8601 format |
ends_at | Date and time at which the credential validity ends, in ISO 8601 format |
XXX_metadata | ACS manufacturer-specific metadata for the credential, where XXX is the manufacturer |
Parameter | Type | Description |
---|---|---|
acs_credential_id | String (UUID) Required | ID of the desired credential. |
code | String Optional | Replacement access (PIN) code for the credential. |
ends_at | Datetime Optional | Replacement date and time at which the validity of the credential ends, in ISO 8601 format. Must be a time in the future and after the starts_at value that you set when creating the credential. |
Property | Type | Description |
---|---|---|
acs_entrance_id | String (UUID) Required | ID of the entrance |
display_name | String Required | Display name for the entrance |
acs_system_id | String (UUID) Required | ID of the access control system that contains the entrance |
created_at | String Required | Date and time at which the entrance was created |
workspace_id | String (UUID) Required | ID of the workspace that contains the entrance |
XXX_metadata | Object Optional | ACS manufacturer-specific metadata for the entrance, where XXX is the manufacturer |
Parameter | Type | Description |
---|---|---|
acs_entrance_id | String (UUID) Required | ID of the desired entrance |
Property | Description |
---|---|
acs_entrance_id | ID of the entrance |
acs_system_id | ID of the access control system that contains the entrance |
workspace_id | ID of the workspace that contains the user |
display_name | Display name for the entrance |
XXX_metadata | ACS manufacturer-specific metadata for the entrance, where XXX is the manufacturer |
created_at | Date and time at which the entrance was created |
Parameter | Type | Description |
---|---|---|
acs_system_id | String (UUID) Optional | ID of the access control system for which you want to retrieve all entrances |
Property | Description |
---|---|
acs_entrance_id | ID of the entrance |
acs_system_id | ID of the access control system that contains the entrance |
workspace_id | ID of the workspace that contains the user |
display_name | Display name for the entrance |
XXX_metadata | ACS manufacturer-specific metadata for the entrance, where XXX is the manufacturer |
created_at | Date and time at which the entrance was created |
Parameter | Type | Description |
---|---|---|
acs_entrance_id | String (UUID) Required | ID of the entrance for which you want to retrieve all credentials with access |
Property | Description |
---|---|
acs_credential_id | ID of the credential |
acs_user_id | ID of the user to whom the credential belongs |
parent_acs_credential_id | ID of the parent ACS credential |
display_name | Display name that corresponds to the credential type |
code | Access (PIN) code for the credential |
acs_system_id | ID of the access control system that contains the credential |
access_method | Access method for the credential. Supported values: code , card , mobile_key |
external_type | Brand-specific terminology for the credential type Supported values: pti_card , brivo_credential , hid_credential , visionline_card |
external_type_display_name | Display name that corresponds to the brand-specific terminology for the credential type |
workspace_id | ID of the workspace that contains the credential |
created_at | Date and time at which the credential was created |
starts_at | Date and time at which the credential validity starts, in ISO 8601 format |
ends_at | Date and time at which the credential validity ends, in ISO 8601 format |
is_multi_phone_sync_credential | Indicates whether the credential is a multi-phone sync credential |
XXX_metadata | ACS manufacturer-specific metadata for the entrance, where XXX is the manufacturer |
Property | Type | Description |
---|---|---|
acs_system_id | String (UUID) Required | ID of the access control system |
external_type | Enum (string) Required | Brand-specific terminology for the access control system type |
external_type_display_name | String Optional | Display name that corresponds to the brand-specific terminology for the access control system type |
name | String Required | Name of the access control system |
created_at | String Required | Date and time at which the access control system was created |
workspace_id | String (UUID) Required | ID of the workspace that contains the access control system |
connected_account_ids | Array of strings (UUIDs) Required | Array of connected account IDs associated with the access control system |
image_url | String Required | URL for the image that represents the access control system |
image_alt_text | String Required | Alternative text for the access control system image |
Parameter | Type | Description |
---|---|---|
acs_system_id | String (UUID) Required | ID of the desired access control system |
Property | Description |
---|---|
acs_system_id | ID of the access control system |
name | Name of the access control system |
workspace_id | ID of the workspace that contains the access control system |
created_at | Date and time at which the access control system was created |
external_type | Brand-specific terminology for the access control system type |
external_type_display_name | Display name that corresponds to the brand-specific terminology for the access control system type |
connected_account_ids | Array of connected account IDs associated with the access control system |
image_url | URL for the image that represents the access control system |
image_alt_text | Alternative text for the access control system image |
Parameter | Type | Description |
---|---|---|
connected_account_id | String (UUID) Optional | ID of the connected account |
Property | Description |
---|---|
acs_system_id | ID of the access control system |
name | Name of the access control system |
workspace_id | ID of the workspace that contains the access control system |
created_at | Date and time at which the access control system was created |
external_type | Brand-specific terminology for the access control system type |
external_type_display_name | Display name that corresponds to the brand-specific terminology for the access control system type |
connected_account_ids | Array of connected account IDs associated with the access control system |
image_url | URL for the image that represents the access control system |
image_alt_text | Alternative text for the access control system image |
Parameter | Type | Description |
---|---|---|
acs_system_id | String (UUID) Required | ID of the ACS system for which you want to retrieve all compatible credential manager ACS systems |
Property | Description |
---|---|
acs_system_id | ID of the credential manager |
name | Name of the credential manager |
workspace_id | ID of the workspace that contains the credential manager |
created_at | Date and time at which the credential manager was created |
external_type | Brand-specific terminology for the credential manager type |
external_type_display_name | Display name that corresponds to the brand-specific terminology for the credential manager type |
connected_account_ids | Array of connected account IDs associated with the credential manager |
image_url | URL for the image that represents the credential manager |
image_alt_text | Alternative text for the credential manager image |
Property | Type | Description |
---|---|---|
acs_user_id | String (UUID) Required | ID of the user |
acs_system_id | String (UUID) Required | ID of the access control system that contains the user |
workspace_id | String (UUID) Required | ID of the workspace that contains the user |
created_at | String Required | Date and time at which the user was created |
display_name | String Required | Display name for the user |
external_type | String Optional | Brand-specific terminology for the user type |
external_type_display_name | String Optional | Display name that corresponds to the brand-specific terminology for the user type |
is_suspended | Boolean Required | Indicates whether the user is currently suspended |
access_schedule | Object Optional | starts_at and ends_at dates/times for the user's access |
user_identity_id | String (UUID) Optional | ID of the user identity associated with the user |
user_identity_email_address | String Optional | Email address of the user identity associated with the user |
user_identity_phone_number | String Optional | Phone number of the user identity associated with the user in E.164 format (for example, +15555550100 ) |
full_name | String Optional | Full name of the user |
email_address | String Optional | Email address of the user |
phone_number | String Optional | Phone number of the user in E.164 format (for example, +15555550100 ) |
Parameter | Type | Description |
---|---|---|
acs_user_id | String (UUID) Required | ID of the desired ACS user |
acs_access_group_id | String (UUID) Required | ID of the desired access group |
Parameter | Type | Description |
---|---|---|
acs_system_id | String (UUID) Required | ID of the access control system to which to add the new ACS user. |
acs_access_group_ids | Array of strings (UUIDs) Optional | Array of access group IDs to indicate the access groups to which to add the new ACS user. |
user_identity_id | String (UUID) Optional | ID of the user identity with which to associate the new ACS user. |
full_name | String Optional | Full name of the new ACS user. |
email_address | String Optional | Email address of the new ACS user. |
phone_number | String Optional | Phone number of the new ACS user in E.164 format (for example, +15555550100 ). |
access_schedule | Object Optional | starts_at and ends_at timestamps for the new ACS user's access.If you specify an access_schedule , you must include both starts_at and ends_at . ends_at must be a time in the future and after starts_at .Only applicable to Salto KS access control systems. |
Property | Description |
---|---|
acs_user_id | ID of the ACS user |
display_name | Display name for the ACS user |
full_name | Full name of the ACS user |
email | Email address of the ACS user (for backward compatibility) |
email_address | Email address of the ACS user |
phone_number | Phone number of the ACS user in E.164 format (for example, +15555550100 ) |
acs_system_id | ID of the access control system that contains the ACS user |
workspace_id | ID of the workspace that contains the ACS user |
created_at | Date and time at which the ACS user was created |
is_suspended | Indicates whether the ACS user is currently suspended |
access_schedule | starts_at and ends_at timestamps for the ACS user's access |
user_identity_id | ID of the user identity associated with the ACS user |
user_identity_email_address | Email address of the user identity associated with the ACS user |
user_identity_phone_number | Phone number of the user identity associated with the ACS user in E.164 format (for example, +15555550100 ) |
Parameter | Type | Description |
---|---|---|
acs_user_id | String (UUID) Required | ID of the desired ACS user |
Parameter | Type | Description |
---|---|---|
acs_user_id | String (UUID) Required | ID of the desired ACS user |
Property | Description |
---|---|
acs_user_id | ID of the ACS user |
display_name | Display name for the ACS user |
full_name | Full name of the ACS user |
email | Email address of the ACS user (for backward compatibility) |
email_address | Email address of the ACS user |
phone_number | Phone number of the ACS user in E.164 format (for example, +15555550100 ) |
acs_system_id | ID of the access control system that contains the ACS user |
workspace_id | ID of the workspace that contains the ACS user |
created_at | Date and time at which the ACS user was created |
is_suspended | Indicates whether the ACS user is currently suspended |
access_schedule | starts_at and ends_at dates/times for the ACS user's access |
user_identity_id | ID of the user identity associated with the ACS user |
user_identity_email_address | Email address of the user identity associated with the ACS user |
user_identity_phone_number | Phone number of the user identity associated with the ACS user in E.164 format (for example, +15555550100 ) |
Parameter | Type | Description |
---|---|---|
user_identity_id | String (UUID) Optional | ID of the user identity for which you want to retrieve all ACS users |
user_identity_phone_number | String Optional | Phone number of the user identity for which you want to retrieve all ACS users, in E.164 format (for example, +15555550100 ) |
user_identity_email_address | String Optional | Email address of the user identity for which you want to retrieve all ACS users |
acs_system_id | String (UUID) Optional | ID of the access control system for which you want to retrieve all ACS users |
Property | Description |
---|---|
acs_user_id | ID of the ACS user |
display_name | Display name for the ACS user |
full_name | Full name of the ACS user |
email | Email address of the ACS user (for backward compatibility) |
email_address | Email address of the ACS user |
phone_number | Phone number of the ACS user in E.164 format (for example, +15555550100 ) |
acs_system_id | ID of the access control system that contains the ACS user |
workspace_id | ID of the workspace that contains the ACS user |
created_at | Date and time at which the ACS user was created |
is_suspended | Indicates whether the ACS user is currently suspended |
access_schedule | starts_at and ends_at dates/times for the ACS user's access |
user_identity_id | ID of the user identity associated with the ACS user |
user_identity_full_name | Full name of the user identity associated with the ACS user |
user_identity_email_address | Email address of the user identity associated with the ACS user |
user_identity_phone_number | Phone number of the user identity associated with the ACS user in E.164 format (for example, +15555550100 ) |
Parameter | Type | Description |
---|---|---|
acs_user_id | String (UUID) Required | ID of the desired ACS user |
acs_access_group_id | String (UUID) Required | ID of the desired access group |
Parameter | Type | Description |
---|---|---|
acs_user_id | String (UUID) Required | ID of the desired ACS user |
Parameter | Type | Description |
---|---|---|
acs_user_id | String (UUID) Required | ID of the desired ACS user |
Parameter | Type | Description |
---|---|---|
acs_user_id | String (UUID) Required | ID of the desired ACS user. |
full_name | String Optional | Replacement full name for the ACS user. |
email_address | String Optional | Replacement email address for the ACS user. |
phone_number | String Optional | Replacement phone number for the ACS user in E.164 format (for example, +15555550100 ). |
access_schedule | Object Optional | Replacement starts_at and ends_at dates/times for the ACS user's access.If you specify an access_schedule , you must include both starts_at and ends_at . ends_at must be a time in the future and after starts_at .Only applicable to Salto KS access control systems. |
Parameter | Type | Description |
---|---|---|
user_identifier_key | String Optional | Your own internal user ID for the user to associate with the client session (or that is already associated with the existing client session) |
connect_webview_ids | Array of strings Optional | Array of IDs of the Connect Webviews to associate with the client session (or that are already associated with the existing client session) |
connected_account_ids | Array of strings Optional | Array of IDs of the connected accounts to associate with the client session (or that are already associated with the existing client session) |
user_identity_ids | Array of strings Optional | Array of IDs of the user identities to associate with the client session (or that are already associated with the existing client session) |
expires_at | String Optional | Date and time at which the client session should expire (or at which the existing client session expires) |
Parameter | Type | Description |
---|---|---|
user_identifier_key | String Optional | Your own internal user ID for the user to associate with the client session (or that is already associated with the existing client session) |
connect_webview_ids | Array of strings Optional | Array of IDs of the Connect Webviews to associate with the client session (or that are already associated with the existing client session) |
connected_account_ids | Array of strings Optional | Array of IDs of the connected accounts to associate with the client session (or that are already associated with the existing client session) |
user_identity_ids | Array of strings Optional | Array of IDs of the user identities to associate with the client session (or that are already associated with the existing client session) |
expires_at | String Optional | Date and time at which the client session should expire (or at which the existing client session expires) |
Parameter | Type | Description |
---|---|---|
client_session_id | String Optional | ID of the desired client session |
user_identifier_key | String Optional | Your own internal user ID for the user to associate with the client session |
connected_account_ids | Array of strings Optional | Array of IDs of the connected accounts to associate with the client session |
connect_webview_ids | Array of strings Optional | Array of IDs of the Connect Webviews to associate with the client session |
user_identity_ids | Array of strings Optional | Array of IDs of the user identities to associate with the client session |
Parameter | Type | Description |
---|---|---|
client_session_id | String Optional | ID of the desired client session |
user_identifier_key | String Optional | Your own internal user ID for the user to associate with the client session |
connected_account_ids | Array of strings Optional | Array of IDs of the connected accounts to associate with the client session |
connect_webview_ids | Array of strings Optional | Array of IDs of the Connect Webviews to associate with the client session |
user_identity_ids | Array of strings Optional | Array of IDs of the user identities to associate with the client session |
JSON object
Optional
|A set of up to 50 keys, with key names up to 40 characters long. Accepts string or Boolean values. Strings are limited to 500 characters
For more information, see Attaching Custom Data to the Connect Webview.
String
Optional
| If set, the Connect Webview redirects to this URL when the user successfully pairs a device or, if the `custom_redirect_failure_url` is not set, when an unexpected error occurs | | **`custom_redirect_failure_url`** |String
Optional
| If set, the Connect Webview redirects to this URL when an unexpected error occurs | | **`status`** | String | `pending` or `authorized` | @@ -57,6 +57,7 @@ To list all provider keys, use the [List Device Providers](../devices/list_devic | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------- | | [2N](../../device-guides/2n-intercom-systems.md) | `my_2n` | | [4SUITES](../../device-and-system-integration-guides/4suites-locks/) | `four_suites` | +| [Akiles](../../device-and-system-integration-guides/akiles-locks/) | `akiles` | | [Akuvox](https://akuvox.com/) | `akuvox` | | [ASSA ABLOY Credential Service](../../device-guides/assa-abloy-credential-services-credential-manager-in-development.md) | `assa_abloy_credential_service` | | [ASSA ABLOY Visionline Access Control System](../../device-guides/assa-abloy-visionline-access-control-system-in-development/) | `visionline` | @@ -79,7 +80,8 @@ To list all provider keys, use the [List Device Providers](../devices/list_devic | [NoiseAware](../../device-guides/noiseaware-sensors.md) | `noiseaware` | | [Nuki](../../device-guides/nuki-locks.md) | `nuki` | | [PTI Storlogix Cloud](../../device-guides/pti-storlogix-cloud.md) | `pti` | -| [Salto](../../device-guides/salto-locks.md) | `salto` | +| [Salto KS ACS](../../device-and-system-integration-guides/salto-ks-access-control-system/) | `salto_ks` | +| [Salto KS Locks](../../device-guides/salto-locks.md) | `salto` | | [Schlage](https://www.schlage.com/en/home/products/products-smart-locks.html) | `schlage` | | [SmartThings](https://www.smartthings.com/) | `smartthings` | | [Tedee](../../device-and-system-integration-guides/tedee-locks/) | `tedee` | diff --git a/docs/api-clients/connect_webviews/get.md b/docs/api-clients/connect_webviews/get.md index 1ca73fd0..ec6c84db 100644 --- a/docs/api-clients/connect_webviews/get.md +++ b/docs/api-clients/connect_webviews/get.md @@ -55,7 +55,7 @@ await seam.connectWebviews.get( {% tab title="Ruby" %} ```ruby -seam.connect_webviews.get("123e4567-e89b-12d3-a456-426614174000") +seam.connect_webviews.get(connect_webview_id: "123e4567-e89b-12d3-a456-426614174000") #device_id
device_type
display_name
capabilities_supported
capabilities_supported
Values.properties
Object
Required
device.properties
Properties.location
location
Properties.connected_account_id
workspace_id
errors
Array of errors associated with the device.
Each error object within the array contains two fields: error_code
and message
.
error_code
is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue.
message
provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it.
See Device Error Types.
warnings
Array of warnings associated with the device.
Each warning object within the array contains two fields: warning_code
and message
.
warning_code
is a string that uniquely identifies the type of warning, enabling quick recognition and categorization of the issue.
message
provides a more detailed description of the warning, offering insights into the issue and potentially how to rectify it.
See Device Warning Types.
created_at
is_managed
custom_metadata
Set of custom_metadata
for the device.
Specify up to 50 keys, with key names up to 40 characters long. Accepts string or Boolean values. Strings are limited to 500 characters.
can_remotely_unlock
can_remotely_lock
can_program_online_access_codes
can_program_offline_access_codes
can_hvac_heat
can_hvac_cool
can_hvac_heat_cool
can_turn_off_hvac
Property | Type | Description |
---|---|---|
device_id | String (UUID) Required | Unique identifier for the device. |
device_type | String Required | Type of the device. |
display_name | String Required | Display name for the device. |
capabilities_supported | Array of strings Required | Collection of capabilities that the device supports when connected to Seam. See capabilities_supported Values.Important: Superseded by capability flags. |
properties | Object Required | Properties of the device. See device.properties Properties. |
location | Object Optional | Read-only location information for the device. See location Properties. |
connected_account_id | String (UUID) Required | ID of the connected account associated with the device. |
workspace_id | String (UUID) Required | ID of the workspace that contains the device. |
errors | Array of objects Required | Array of errors associated with the device. Each error object within the array contains two fields:
|
warnings | Array of objects Required | Array of warnings associated with the device. Each warning object within the array contains two fields:
|
created_at | String (datetime) Required | Date and time at which the device object was created. |
is_managed | Boolean Required | Indicates whether Seam manages the device. |
custom_metadata | JSON object Optional | Set of Specify up to 50 keys, with key names up to 40 characters long. Accepts string or Boolean values. Strings are limited to 500 characters. |
can_remotely_unlock | Boolean Optional | Indicates whether the device can perform a remote unlock operation. See Capability Flags. |
can_remotely_lock | Boolean Optional | Indicates whether the device can perform a remote lock operation. See Capability Flags. |
can_program_online_access_codes | Boolean Optional | Indicates whether the device can program online access codes. See Capability Flags. |
can_program_offline_access_codes | Boolean Optional | Indicates whether the device can program offline access codes. See Capability Flags. |
can_hvac_heat | Boolean Optional | Indicates whether the thermostat device (in conjunction with the associated HVAC system) supports heat mode. See Capability Flags. |
can_hvac_cool | Boolean Optional | Indicates whether the thermostat device (in conjunction with the associated HVAC system) supports cool mode. See Capability Flags. |
can_hvac_heat_cool | Boolean Optional | Indicates whether the thermostat device (in conjunction with the associated HVAC system) supports heat-cool (auto) mode. See Capability Flags. |
can_turn_off_hvac | Boolean Optional | Indicates whether the thermostat device (in conjunction with the associated HVAC system) supports off mode. See Capability Flags. |
can_simulate_removal | Boolean Optional | Indicates whether you can simulate removal of the sandbox device. See Testing Your App Against Device Disconnection and Removal. |
can_simulate_connection | Boolean Optional | Indicates whether you can simulate connection (or reconnection) of the sandbox device. See Testing Your App Against Device Disconnection and Removal. |
can_simulate_disconnection | Boolean Optional | Indicates whether you can simulate disconnection of the sandbox device. See Testing Your App Against Device Disconnection and Removal. |
Capability | Description |
---|---|
access_code | If present, you can set access codes on the device. |
battery | If present, you can look at the device.properties.battery.level of the device. |
health | If present, you can introspect some parameters related to the health of the device. |
lock | If present, you can lock and unlock the device. |
noise_sensor | If present, the device can issue noise alerts when noise thresholds are exceeded. |
thermostat | If present, the device can regulate the temperature of a system so that the temperature of the system is maintained near a desired set point temperature. |
Capability | Description |
---|---|
access_code | If present, the device can manage and utilize digital PIN codes for secure access. |
lock | If present, the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points. |
noise_detection | If present, the device supports monitoring and responding to ambient noise levels. |
thermostat | If present, the device can regulate and adjust indoor temperatures. |
battery | If present, the device can manage battery life and health. |
phone | If present, the device is a mobile phone. |
Property | Type | Description |
---|---|---|
online | Boolean Required | Indicates whether the device is online. |
accessory_keypad | Object Optional | Accessory keypad state. See accessory_keypad Properties. |
appearance | Object Required | Appearance-related properties, including the read-only name of the device, as seen from the provider API and application. |
model | Object Required | Device model properties. See model Properties. |
has_direct_power | Boolean Optional | Indicates whether the device has direct power. |
battery_level | Number Required | Indicates the battery level of the device as a decimal value between 0 and 1, inclusive. If the device is offline, Seam does not return this property. Deprecated. Use device.properties.battery.level instead. |
battery | Object Optional | Device battery properties. If the device is offline, Seam does not return this property. |
manufacturer | String Optional | Manufacturer of the device. See Device Manufacturers. |
image_url | String (URL) Optional | Image URL for the device or placeholder image URL if a device-specific image is unavailable. |
image_alt_text | String Optional | Alternative text for the device image. |
serial_number | String Optional | Serial number of the device. |
online_access_codes_enabled | Boolean Optional | Indicates whether it is currently possible to use online access codes for the device. Superseded by the device.properties.can_program_online_access_codes capability flag. |
offline_access_codes_enabled | Boolean Optional | Indicates whether it is currently possible to use offline access codes for the device. Superseded by the device.properties.can_program_offline_access_codes capability flag. |
locked | Boolean Optional | Indicates whether the device is locked. Applicable to locks. |
keypad_battery | Object Optional | Keypad battery properties. Applicable to locks. |
door_open | Boolean Optional | Indicates whether the door is open. Applicable to locks. |
code_constraints | Array of objects Optional | Constraints on access codes that can be set on the device. Applicable to devices that support access codes. |
supported_code_lengths | Array of numbers Optional | Supported code lengths for the device. For example, |
max_active_codes_supported | Number Optional | Maximum number of codes that can exist on the device at one time. Applicable to devices that support access codes. |
supports_backup_access_code_pool | Boolean Optional | Indicates whether the device supports backup access code pools. Applicable to devices that support access codes. |
temperature_fahrenheit | Number Required | Temperature, measured in Fahrenheit. Applicable to thermostats. |
temperature_celsius | Number Required | Temperature, measured in Celsius. Applicable to thermostats. |
relative_humidity | Number Required | Relative humidity, the amount of moisture in the air compared to the maximum amount of moisture the air can hold at a given temperature. It is a percentage expressed as a number between 0 and 1 , inclusive.Applicable to thermostats. |
available_hvac_mode_settings | Array of enums (strings) | List of the available HVAC modes for the thermostat.
Applicable to thermostats. |
is_heating | Boolean Required | Indicates whether the heating system is currently heating. Applicable to thermostats. |
is_cooling | Boolean Required | Indicates whether the cooling system is currently cooling. Applicable to thermostats. |
is_fan_running | Boolean Required | Indicates whether the fan is currently running. Applicable to thermostats. |
fan_mode_setting | Enum (string) Required | Fan mode of the thermostat.
Applicable to thermostats. |
is_temporary_manual_override_active | Boolean Required | Indicates whether the current thermostat settings differ from the configured current_climate_setting .Applicable to thermostats. |
current_climate_setting | Object Required | Current climate setting for the thermostat. Can only be overridden manually if device.properties.current_climate_setting.manual_override_allowed is true .Applicable to thermostats. See Thermostat climate_setting Properties. |
min_cooling_set_point_celsius | Number Required | Minimum cooling set point that this thermostat supports, measured in Celsius. Applicable to thermostats. |
min_cooling_set_point_fahrenheit | Number Required | Minimum cooling set point that this thermostat supports, measured in Fahrenheit. Applicable to thermostats. |
max_cooling_set_point_celsius | Number Required | Maximum cooling set point that this thermostat supports, measured in Celsius. Applicable to thermostats. |
max_cooling_set_point_fahrenheit | Number Required | Maximum cooling set point that this thermostat supports, measured in Fahrenheit. Applicable to thermostats. |
min_heating_set_point_celsius | Number Required | Minimum heating set point that this thermostat supports, measured in Celsius. Applicable to thermostats. |
min_heating_set_point_fahrenheit | Number Required | Minimum heating set point that this thermostat supports, measured in Fahrenheit. Applicable to thermostats. |
max_heating_set_point_celsius | Number Required | Maximum heating set point that this thermostat supports, measured in Celsius. Applicable to thermostats. |
max_heating_set_point_fahrenheit | Number Required | Maximum heating set point that this thermostat supports, measured in Fahrenheit. Applicable to thermostats. |
min_heating_cooling_delta_celsius | Number Required | Minimum temperature difference—that is, delta—in degrees Celsius between the cooling and heating set points when in heat-cool (auto) mode. Applicable to thermostats. |
min_heating_cooling_delta_fahrenheit | Number Required | Minimum temperature difference—that is, delta—in degrees Fahrenheit between the cooling and heating set points when in heat-cool (auto) mode. Applicable to thermostats. |
XXX_metadata | Object | Manufacturer-specific metadata for the device, where XXX is the manufacturer. |
Property | Type | Description |
---|---|---|
online | Boolean Required | Indicates whether the device is online. |
accessory_keypad | Object Optional | Accessory keypad state. See accessory_keypad Properties. |
appearance | Object Required | Appearance-related properties, including the read-only name of the device, as seen from the provider API and application. |
model | Object Required | Device model properties. See model Properties. |
has_direct_power | Boolean Optional | Indicates whether the device has direct power. |
battery_level | Number Required | Indicates the battery level of the device as a decimal value between 0 and 1 , inclusive.If the device is offline, Seam does not return this property. Deprecated. Use device.properties.battery.level instead. |
battery | Object Optional | Device battery properties. If the device is offline, Seam does not return this property. |
manufacturer | String Optional | Manufacturer of the device. See Device Manufacturers. |
image_url | String (URL) Optional | Image URL for the device or placeholder image URL if a device-specific image is unavailable. |
image_alt_text | String Optional | Alternative text for the device image. |
serial_number | String Optional | Serial number of the device. |
online_access_codes_enabled | Boolean Optional | Indicates whether it is currently possible to use online access codes for the device. Superseded by the device.properties.can_program_online_access_codes capability flag. |
offline_access_codes_enabled | Boolean Optional | Indicates whether it is currently possible to use offline access codes for the device. Superseded by the device.properties.can_program_offline_access_codes capability flag. |
noise_level_decibels | Number Optional | Current noise level in decibels, if the device supports noise detection. |
currently_triggering_noise_threshold_ids | Array of strings Optional | Array of noise threshold IDs that are currently triggering. |
code_constraints | Array of objects Optional | Constraints on access codes that can be set on the device. Applicable to devices that support access codes. |
supported_code_lengths | Array of numbers Optional | Supported code lengths for the device. For example, |
max_active_codes_supported | Number Optional | Maximum number of codes that can exist on the device at one time. Applicable to devices that support access codes. |
supports_backup_access_code_pool | Boolean Optional | Indicates whether the device supports backup access code pools. Applicable to devices that support access codes. |
has_native_entry_events | Boolean Optional | Indicates whether Seam receives lock and unlock events from the device provider. |
locked | Boolean Optional | Indicates whether the device is locked. Applicable to locks. |
keypad_battery | Object Optional | Keypad battery properties. Applicable to locks. |
door_open | Boolean Optional | Indicates whether the door is open. Applicable to locks. |
temperature_fahrenheit | Number Required | Temperature, measured in Fahrenheit. Applicable to thermostats. |
temperature_celsius | Number Required | Temperature, measured in Celsius. Applicable to thermostats. |
relative_humidity | Number Required | Relative humidity, the amount of moisture in the air compared to the maximum amount of moisture the air can hold at a given temperature. It is a percentage expressed as a number between 0 and 1 , inclusive.Applicable to thermostats. |
available_hvac_mode_settings | Array of enums (strings) | List of the available HVAC mode settings for the thermostat.
Applicable to thermostats. |
available_fan_mode_settings | Array of enums (strings) | List of the available fan mode settings for the thermostat.
Applicable to thermostats. |
is_heating | Boolean Required | Indicates whether the heating system is currently heating. Applicable to thermostats. |
is_cooling | Boolean Required | Indicates whether the cooling system is currently cooling. Applicable to thermostats. |
is_fan_running | Boolean Required | Indicates whether the fan is currently running. Applicable to thermostats. |
fan_mode_setting | Enum (string) Required | Fan mode setting of the thermostat. Deprecated. Use Applicable to thermostats. |
is_temporary_manual_override_active | Boolean Required | Indicates whether the current thermostat settings differ from the configured current_climate_setting .Applicable to thermostats. |
current_climate_setting | Object Required | Current climate setting for the thermostat. Applicable to thermostats. See current_climate_setting Properties. |
default_climate_setting | Object Required | Deprecated. Use fallback_climate_preset_key to specify a fallback climate preset instead. |
available_climate_presets | Array of objects Required | Set of climate presets that are available for the thermostat device. See available_climate_presets Properties. |
fallback_climate_preset_key | String Optional | Key that identifies the current fallback climate preset. |
active_thermostat_schedule | Object Optional | Currently active thermostat schedule. See active_thermostat_schedule Properties. |
min_cooling_set_point_celsius | Number Required | Minimum cooling set point that this thermostat supports, measured in Celsius. Applicable to thermostats. |
min_cooling_set_point_fahrenheit | Number Required | Minimum cooling set point that this thermostat supports, measured in Fahrenheit. Applicable to thermostats. |
max_cooling_set_point_celsius | Number Required | Maximum cooling set point that this thermostat supports, measured in Celsius. Applicable to thermostats. |
max_cooling_set_point_fahrenheit | Number Required | Maximum cooling set point that this thermostat supports, measured in Fahrenheit. Applicable to thermostats. |
min_heating_set_point_celsius | Number Required | Minimum heating set point that this thermostat supports, measured in Celsius. Applicable to thermostats. |
min_heating_set_point_fahrenheit | Number Required | Minimum heating set point that this thermostat supports, measured in Fahrenheit. Applicable to thermostats. |
max_heating_set_point_celsius | Number Required | Maximum heating set point that this thermostat supports, measured in Celsius. Applicable to thermostats. |
max_heating_set_point_fahrenheit | Number Required | Maximum heating set point that this thermostat supports, measured in Fahrenheit. Applicable to thermostats. |
min_heating_cooling_delta_celsius | Number Required | Minimum temperature difference—that is, delta—in degrees Celsius between the cooling and heating set points when in heat-cool (auto) mode. Applicable to thermostats. |
min_heating_cooling_delta_fahrenheit | Number Required | Minimum temperature difference—that is, delta—in degrees Fahrenheit between the cooling and heating set points when in heat-cool (auto) mode. Applicable to thermostats. |
temperature_threshold | Object Optional | Acceptable temperature bounds consisting of a temperature range or single upper or lower temperature. Seam emits a thermostat.temperature_threshold_exceeded event if the thermostat reports a temperature outside the specified threshold.See temperature_threshold Properties. |
XXX_metadata | Object | Manufacturer-specific metadata for the device, where XXX is the manufacturer. |
Property | Type | Description |
---|---|---|
level | Number Required | Indicates the battery level of the device as a decimal value between 0 and 1 , inclusive. |
status | Enum (string) Required | Represents the current status of the battery charge level. Values are:
|
Property | Type | Description |
---|---|---|
hvac_mode_setting | Enum (string) Required | HVAC mode to which the thermostat is set. Possible values:
|
cooling_set_point_celsius | Number Optional | The cooling set point, measured in Celsius, if cooling is turned on. When the ambient temperature rises above this set point, cooling turns on. |
heating_set_point_celsius | Number Optional | The heating set point, measured in Celsius, if heating is turned on. When the ambient temperature drops below this set point, heating turns on. |
cooling_set_point_fahrenheit | Number Optional | The cooling set point, measured in Fahrenheit, if cooling is turned on. When the ambient temperature rises above this set point, cooling turns on. |
heating_set_point_fahrenheit | Number Optional | The heating set point, measured in Fahrenheit, if heating is turned on. When the ambient temperature drops below this set point, heating turns on. |
manual_override_allowed | Boolean Required | Indicates whether another user can use the thermostat or API to override this climate setting. |
Property | Type | Description |
---|---|---|
climate_preset_key | String Required | Unique key to identify the current climate preset. |
can_edit | Boolean Required | Indicates whether the current climate preset can be edited. |
can_delete | Boolean Required | Indicates whether the current climate preset can be deleted. |
name | String Optional | User-friendly name to identify the current climate preset. |
display_name | String Required | Display name for the current climate preset. |
fan_mode_setting | Enum (string) Required | Current desired fan mode setting. Possible values:
|
hvac_mode_setting | Enum (string) Required | Current desired HVAC mode setting. Possible values:
|
cooling_set_point_celsius | Number Optional | Temperature to which the thermostat should currently cool (in °C). See also Set Points. |
heating_set_point_celsius | Number Optional | Temperature to which the thermostat should currently heat (in °C). |
cooling_set_point_fahrenheit | Number Optional | Temperature to which the thermostat should currently cool (in °F). |
heating_set_point_fahrenheit | Number Optional | Temperature to which the thermostat should currently heat (in °F). |
manual_override_allowed | Boolean Required | Indicates whether another user can use the thermostat or API to override this climate setting. Deprecated. Use thermostat_schedule.is_override_allowed instead. |
Property | Type | Description |
---|---|---|
climate_preset_key | String Required | Unique key to identify the climate preset. |
can_edit | Boolean Required | Indicates whether the climate preset can be edited. |
can_delete | Boolean Required | Indicates whether the climate preset can be deleted. |
name | String Optional | User-friendly name to identify the climate preset. |
display_name | String Required | Display name for the climate preset. |
fan_mode_setting | Enum (string) Required | Desired fan mode setting. Possible values:
|
hvac_mode_setting | Enum (string) Required | Desired HVAC mode setting. Possible values:
|
cooling_set_point_celsius | Number Optional | Temperature to which the thermostat should cool (in °C). See also Set Points. |
heating_set_point_celsius | Number Optional | Temperature to which the thermostat should heat (in °C). |
cooling_set_point_fahrenheit | Number Optional | Temperature to which the thermostat should cool (in °F). |
heating_set_point_fahrenheit | Number Optional | Temperature to which the thermostat should heat (in °F). |
manual_override_allowed | Boolean Required | Indicates whether another user can use the thermostat or API to override this climate setting. Deprecated. Use thermostat_schedule.is_override_allowed instead. |
Property | Type | Description |
---|---|---|
thermostat_schedule_id | String (UUID) Required | ID of the active thermostat schedule. |
device_id | String (UUID) Required | ID of the thermostat device. |
name | String Optional | User-friendly name to identify the thermostat schedule. |
climate_preset_key | String Required | Key of the climate preset to use for the thermostat schedule. |
max_override_period_minutes | Integer Required | Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled climate preset. See also Specifying Manual Override Permissions. |
starts_at | String (Datetime) Required | Date and time at which the thermostat schedule starts, in ISO 8601 format. |
is_override_allowed | Boolean Optional | Indicates whether a person at the thermostat or using the API can change the thermostat's settings. |
ends_at | String (Datetime) Required | Date and time at which the thermostat schedule ends, in ISO 8601 format. |
created_at | String (Datetime) Required | Date and time at which the thermostat schedule was created. |
errors | Array of objects Optional | Array of errors associated with the thermostat schedule. Each error object within the array contains two fields: error_code and message . error_code is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. message provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it. |
Property | Type | Description |
---|---|---|
lower_limit_celsius | Number Optional | Lower acceptable temperature bound in degrees Celsius. |
lower_limit_fahrenheit | Number Optional | Lower acceptable temperature bound in degrees Fahrenheit. |
upper_limit_celsius | Number Optional | Upper acceptable temperature bound in degrees Celsius. |
upper_limit_fahrenheit | Number Optional | Upper acceptable temperature bound in degrees Fahrenheit. |
Constraint Type | Description |
---|---|
no_zeros | 0 s cannot be used as digits in the PIN code. |
cannot_start_with_12 | The PIN code cannot start with the sequence of digits 12 . |
no_triple_consecutive_ints | No more than three digits in a row can be consecutive or the same in the PIN code. |
cannot_specify_pin_code | You cannot specify a PIN code. You must leave the code empty, and the lock provider generates a PIN code. |
pin_code_matches_existing_set | If you specify a PIN code, it must match an existing set of PIN codes used in the account. For example, the PIN code could match the code assigned to a user in the system. |
start_date_in_future | For time-bound codes, the start date must be in the future. |
no_ascending_or_descending_sequence | The PIN code cannot consist of a sequence of consecutive digits. |
at_least_three_unique_digits | The PIN must contain at least three unique digits. |
cannot_contain_089 | The PIN code cannot contain the digits For example, this restriction could apply to a cylinder lock that only includes the digits |
name_length | The name of the code has some restrictions on length. When the |
name_must_be_unique | The name of the code must be unique within the device. |
Constraint Type | Description |
---|---|
no_zeros | 0 s cannot be used as digits in the PIN code. |
cannot_start_with_12 | The PIN code cannot start with the sequence of digits 12 . |
no_triple_consecutive_ints | No more than three digits in a row can be consecutive or the same in the PIN code. |
cannot_specify_pin_code | You cannot specify a PIN code. You must leave the code empty, and the lock provider generates a PIN code. |
pin_code_matches_existing_set | If you specify a PIN code, it must match an existing set of PIN codes used in the account. For example, the PIN code could match the code assigned to a user in the system. |
start_date_in_future | For time-bound codes, the start date must be in the future. |
no_ascending_or_descending_sequence | The PIN code cannot consist of a sequence of consecutive digits. |
at_least_three_unique_digits | The PIN must contain at least three unique digits. |
cannot_contain_089 | The PIN code cannot contain the digits For example, this restriction could apply to a cylinder lock that only includes the digits |
cannot_contain_0789 | The PIN code cannot contain the digits For example, this restriction could apply to a cylinder lock that only includes the digits |
name_length | The name of the code has some restrictions on length. When the |
name_must_be_unique | The name of the code must be unique within the device. |
Present on lock.locked
and lock.unlocked
events. Specifies the method used to perform the lock or unlock action.
Supported values:
keycode
manual
unknown
seamapi
automatic
(for Kwikset lock.locked
events only)Specifies the unique identifier of the access code used to trigger this event. Seam includes this ID in the event if the affected device returns this information.
For a list of device manufacturers that send the access_code_id
in lock events, see Linking Unlock Events and Access Codes.
Present on lock.locked
and lock.unlocked
events. Specifies the method used to perform the lock or unlock action.
Supported values for lock.unlocked
:
keycode
manual
unknown
seamapi
Supported values for lock.locked
:
Specifies the unique identifier of the access code used to trigger this event. Seam includes this ID in the event if the affected device returns this information.
For a list of device manufacturers that send the access_code_id
in lock events, see Linking Unlock Events and Access Codes.
Lock a Lock | Lock a Lock |
Unlock a Lock | Unlock a Lock |
List Locks | List Locks |
method
enum
access_code_id
string
method
enum
access_code_id
string
access_code_id
string
noise_threshold_id
string
noise_threshold_name
string
auto_join
Format: boolean
card_function_type
Format: enum
card_id
Format: string
common_acs_entrance_ids
Format: list
credential_id
Format: string
guest_acs_entrance_ids
Format: list
is_valid
Format: boolean
joiner_acs_credential_ids
Format: list
door_name
Format: string
door_number
Format: number
door_type
Format: enum
pms_id
Format: string
stand_open
Format: boolean
access_point_name
Format: string
common_area_number
Format: number
accessibility_type
Format: string
door_name
Format: string
door_type
Format: string
is_connected
Format: boolean
battery_level
Format: string
door_name
Format: string
intrusion_alarm
Format: boolean
left_open_alarm
Format: boolean
lock_type
Format: string
locked_state
Format: string
online
Format: boolean
privacy_mode
Format: boolean
door_description
Format: string
door_name
Format: string
ext_door_id
Format: string
door_category
Format: enum
door_name
Format: string
profiles
Format: list
time_zone
Format: string
string
lan_address
Format: string
string
mobile_access_uuid
Format: string
string
system_id
Format: string
ends_at
Format: datetime
starts_at
Format: datetime
Creating and Encoding Card-based Credentials | creating-and-encoding-card-based-credentials.md | encode-card.png | ||
Scanning Encoded Cards | scan-card.png |
Error | Description |
---|---|
no_card_on_encoder | No card was placed on the encoder. |
incompatible_card_format | A card with an incompatible card format was placed on the encoder. |
uncategorized_error | Any other encoding error. |
Error | Description |
---|---|
no_card_on_encoder | No card was placed on the encoder. |
uncategorized_error | Any other encoding error. |
Property | Type | Description |
---|---|---|
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. |
Property | Type | Description |
---|---|---|
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. |
Device Guides | Get started → | overview.md | image (9).png |
Property | Description |
---|---|
climate_preset_key | (Required) Key to identify the climate preset. |
name | (Optional) User-friendly name to identify the climate preset. |
fan_mode_setting | Desired fan mode setting, such as on , auto , or circulate . |
hvac_mode_setting | Desired HVAC mode setting, such as heat , cool , heat_cool , or off . |
cooling_set_point_celsius | Temperature to which the thermostat should cool (in °C). See also Set Points. |
cooling_set_point_fahrenheit | Temperature to which the thermostat should cool (in °F). |
heating_set_point_celsius | Temperature to which the thermostat should heat (in °C). |
heating_set_point_fahrenheit | Temperature to which the thermostat should heat (in °F). |
manual_override_allowed | (Optional) Indicates whether a person at the thermostat or using the API can change the thermostat's settings. Deprecated. Use thermostat_schedule.is_override_allowed instead. |
Property | Description |
---|---|
name | (Optional) User-friendly name to identify the thermostat schedule. |
climate_preset_key | (Required) Key of the climate preset to use for the thermostat schedule. |
max_override_period_minutes | Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled climate preset. Default: 0 See also Specifying Manual Override Permissions. |
starts_at | (Required) Date and time at which the thermostat schedule starts, in ISO 8601 format. |
ends_at | (Required) Date and time at which the thermostat schedule ends, in ISO 8601 format. |
Parameter | Type | Description |
---|---|---|
device_id | String (UUID) | ID of the device for which you want to retrieve device.connected or device.disconnected events |
event_type | String | Event type that you want to retrieve, that is, device.connected or device.disconnected |
since | String | Desired starting event generation date and time You must include since or between . |
between | Set of two strings | Desired starting and ending event generation dates and times For example: ["2024-01-01T00:00:00Z", "2024-02-01T00:00:00Z"] You must include between or since . |
Parameter | Type | Description |
---|---|---|
device_id | String (UUID) | ID of the device for which you want to retrieve device.connected or device.disconnected events |
event_type | String | Event type that you want to retrieve, that is, device.connected or device.disconnected |
since | String | Desired starting event generation date and time You must include since or between . |
between | Set of two strings | Desired starting and ending event generation dates and times For example: ["2024-01-01T00:00:00Z", "2024-02-01T00:00:00Z"] You must include between or since . |
Command Stub | Description |
---|---|
seam | Access all Seam CLI commands in an interactive manner. |
seam access-codes | Manage access codes. |
seam acs | Manage Access Control Systems (ACSs), including associated objects, such as systems, users, access groups, and credentials. |
seam action-attempts | List and get action attempts to poll the status of attempted actions, such as unlock and create access code. |
seam client-sessions | Manage client sessions that enable you to restrict users' interactions to include only the devices that they own. |
seam connect-webviews | Manage Connect Webviews that enable users to connect their devices to Seam. |
seam connected-accounts | Manage connected accounts that represent external, third-party accounts to which users have authorized Seam to access. |
seam devices | Manage devices, including both "managed" and "unmanaged" devices. |
seam events | Retrieve events. |
seam locks | Retrieve, lock, and unlock smart locks. |
seam login | Log back in to the Seam CLI or change your authorization to use a different API key or Personal Access Token. |
seam logout | Log out of the Seam CLI. |
seam noise-sensors | Manage noise thresholds for noise sensors and simulate triggering noise threshold alerts. |
seam select | Select the desired workspace or server. |
seam thermostats | Manage thermostats, including current climate settings. |
seam user-identities | Manage user identities that enable you to issue and manage mobile credentials and access permissions for users. |
seam webhooks | Manage webhook endpoints that enable you to receive notifications of Seam-related events. |
seam workspaces | Manage your workspaces, including creating new workspaces, retrieving existing workspaces, and resetting your sandbox workspaces. |
Command Stub | Description |
---|---|
seam | Access all Seam CLI commands in an interactive manner. |
seam access-codes | Manage access codes. |
seam acs | Manage Access Control Systems (ACSs), including associated objects, such as systems, users, access groups, and credentials. |
seam action-attempts | List and get action attempts to poll the status of attempted actions, such as unlock and create access code. |
seam client-sessions | Manage client sessions that enable you to restrict users' interactions to include only the devices that they own. |
seam connect-webviews | Manage Connect Webviews that enable users to connect their devices to Seam. |
seam connected-accounts | Manage connected accounts that represent external, third-party accounts to which users have authorized Seam to access. |
seam devices | Manage devices, including both "managed" and "unmanaged" devices. |
seam events | Retrieve events. |
seam locks | Retrieve, lock, and unlock smart locks. |
seam login | Log back in to the Seam CLI or change your authorization to use a different API key or Personal Access Token. |
seam logout | Log out of the Seam CLI. |
seam noise-sensors | Manage noise thresholds for noise sensors and simulate triggering noise threshold alerts. |
seam select | Select the desired workspace or server. |
seam thermostats | Manage thermostats, including current climate settings. |
seam user-identities | Manage user identities that enable you to issue and manage mobile credentials and access permissions for users. |
seam webhooks | Manage webhook endpoints that enable you to receive notifications of Seam-related events. |
seam workspaces | Manage your workspaces, including creating new workspaces, retrieving existing workspaces, and resetting your sandbox workspaces. |
33 Lock Contact Page | https://www.33lock.com/contact | 33-lock-logo.png |
Get an API Key (free) | Sign up for the Seam Console and get your API keys. → | seam-api-key.png | https://console.seam.co/ | |
Contact Sales | Got a project or a specific question? Contact our team to get answers. → | seam-contact-us-light.png | https://www.seam.co/contact-us |
4SUITES Contact Us Form | https://www.4suiteshq.com/contact-us/ | 4suites-logo.png |
Capability | Required Accessories |
---|---|
Remote unlock |
|
Access codes |
|
Akiles Contact Page | https://akiles.app/en/contact | akiles-logo.png |
// Get the device by ID.
+const updatedFrontDoor = await seam.devices.get({device_id: frontDoor.device_id});
+
+// Inspect the locked property to confirm
+// that the unlock operation was successful.
+console.log(updatedFrontDoor.properties.locked) // false
+
+
+**Output:**
+
+```
+false
+```
+{% endtab %}
+
+{% tab title="Ruby" %}
+**Code:**
+
+```ruby
+# Get the device by ID.
+updated_front_door = seam.devices.get(device_id: front_door.device_id)
+
+# Inspect the locked property to confirm
+# that the unlock operation was successful.
+puts updated_front_door.properties.locked # false
+```
+
+**Output:**
+
+```
+false
+```
+{% endtab %}
+
+{% tab title="PHP" %}
+**Code:**
+
+```php
+// Get the device by ID.
+$updated_front_door = $seam->devices->get(device_id: $front_door->device_id);
+
+// Inspect the locked property to confirm
+// that the unlock operation was successful.
+echo $updated_front_door->properties->locked ? 'true' : 'false', "\n"; // false
+```
+
+**Output:**
+
+```
+false
+```
+{% endtab %}
+
+{% tab title="C#" %}
+**Code:**
+
+```csharp
+// Get the device by ID.
+Device updatedFrontDoor = seam.Devices.Get(
+ deviceId: frontDoor.DeviceId
+);
+
+// Inspect the locked property to confirm
+// that the unlock operation was successful.
+Console.WriteLine(updatedFrontDoor.Properties.Locked); // false
+```
+
+**Output:**
+
+```
+False
+```
+{% endtab %}
+
+{% tab title="Java" %}
+**Code:**
+
+```java
+// Get the device by ID.
+Device updatedFrontDoor = seam.devices().get(DevicesGetRequest.builder()
+ .deviceId(frontDoor.getDeviceId())
+ .build());
+
+// Inspect the locked property to confirm
+// that the unlock operation was successful.
+System.out.println(updatedFrontDoor.getProperties().getLocked()); // false
+```
+
+**Output:**
+
+```
+false
+```
+{% endtab %}
+
+{% tab title="Go" %}
+**Code:**
+
+```go
+// Get the device by ID.
+updatedFrontDoor, err := client.Devices.Get(
+ context.Background(), &api.DevicesGetRequest{
+ DeviceId: api.String(frontDoor.DeviceId),
+ },
+)
+
+if err != nil {
+ return err
+}
+
+// Inspect the locked property to confirm
+// that the unlock operation was successful.
+fmt.Println(*updatedFrontDoor.Properties.Locked) // false
+```
+
+**Output:**
+
+```
+false
+```
+{% endtab %}
+{% endtabs %}
+
+***
+
+### Program access codes on your lock
+
+You can use the Seam API to program [online access codes](../../products/smart-locks/access-codes/) on Akiles locks that have an integrated keypad or an Akiles Pinpad. Lock users can then enter these access codes using the keypad or Pinpad to unlock the lock.
+
+The Seam API makes it easy to program both [ongoing](../../products/smart-locks/access-codes/#ongoing-access-codes) and [time-bound](../../products/smart-locks/access-codes/#time-bound-access-codes) online access codes.
+
+{% tabs %}
+{% tab title="Python" %}
+**Code:**
+
+```python
+# Confirm that the device supports online access codes.
+# Here's another capability flag!
+if updated_front_door.can_program_online_access_codes:
+ # Create an ongoing online access code.
+ seam.access_codes.create(
+ device_id = updated_front_door.device_id,
+ name = "my ongoing code",
+ code = "1234"
+ )
+ # Create a time-bound online access code.
+ seam.access_codes.create(
+ device_id = updated_front_door.device_id,
+ name = "my time-bound code",
+ starts_at = "2025-01-01T16:00:00Z",
+ ends_at = "2025-01-22T12:00:00Z",
+ code = "2345"
+ )
+ # List all access codes for this device.
+ access_codes = seam.access_codes.list(
+ device_id = updated_front_door.device_id
+ )
+ pprint(access_codes)
+```
+
+**Output:**
+
+```
+[
+ AccessCode(
+ access_code_id='11111111-1111-1111-1111-555555555555',
+ device_id='11111111-1111-1111-1111-444444444444',
+ type='ongoing',
+ code='1234',
+ name='my ongoing code',
+ ...
+ )
+ AccessCode(
+ access_code_id='11111111-1111-1111-1111-666666666666',
+ device_id='11111111-1111-1111-1111-444444444444',
+ type='time_bound',
+ code='2345',
+ starts_at='2025-01-01T16:00:00.000Z',
+ ends_at='2025-01-22T12:00:00.000Z',
+ name='my time-bound code',
+ ...
+ )
+]
+```
+{% endtab %}
+
+{% tab title="cURL (bash)" %}
+**Code:**
+
+```bash
+# Confirm that the device supports online access codes.
+# Here's another capability flag!
+if $(jq -r '.device.can_program_online_access_codes' <<< ${updated_front_door}); then \
+ # Create an ongoing online access code.
+ curl -X 'POST' \
+ 'https://connect.getseam.com/access_codes/create' \
+ -H 'accept: application/json' \
+ -H "Authorization: Bearer ${SEAM_API_KEY}" \
+ -H 'Content-Type: application/json' \
+ -d "{
+ \"device_id\": \"$(jq -r '.device.device_id' <<< ${updated_front_door})\",
+ \"name\": \"my ongoing code\",
+ \"code\": \"1234\"
+ }"
+ # Create a time-bound online access code.
+ curl -X 'POST' \
+ 'https://connect.getseam.com/access_codes/create' \
+ -H 'accept: application/json' \
+ -H "Authorization: Bearer ${SEAM_API_KEY}" \
+ -H 'Content-Type: application/json' \
+ -d "{
+ \"device_id\": \"$(jq -r '.device.device_id' <<< ${updated_front_door})\",
+ \"name\": \"my time-bound code\",
+ \"starts_at\": \"2025-01-01T16:00:00Z\",
+ \"ends_at\": \"2025-01-22T12:00:00Z\",
+ \"code\": \"2345\"
+ }"
+ # List all access codes for this device.
+ access_codes=$(
+ # Use GET or POST.
+ curl -X 'GET' \
+ 'https://connect.getseam.com/access_codes/list' \
+ -H 'accept: application/json' \
+ -H "Authorization: Bearer ${SEAM_API_KEY}" \
+ -H 'Content-Type: application/json' \
+ -d "{
+ \"device_id\": \"$(jq -r '.device.device_id' <<< ${updated_front_door})\"
+ }")
+ echo ${access_codes};
+fi
+```
+
+**Output:**
+
+```json
+{
+ "access_codes": [
+ {
+ "access_code_id":"11111111-1111-1111-1111-555555555555",
+ "device_id":"11111111-1111-1111-1111-444444444444",
+ "name":"my ongoing code",
+ "code":"1234",
+ "type":"ongoing",
+ ...
+ },
+ {
+ "access_code_id": "11111111-1111-1111-1111-666666666666",
+ "device_id": "11111111-1111-1111-1111-444444444444",
+ "name": "my time-bound code",
+ "code": "2345",
+ "type": "time_bound",
+ "starts_at": "2025-01-01T16:00:00.000Z",
+ "ends_at": "2025-01-22T12:00:00.000Z",
+ ...
+ }
+ ],
+ "ok": true
+}
+```
+{% endtab %}
+
+{% tab title="JavaScript" %}
+**Code:**
+
+```javascript
+// Confirm that the device supports online access codes.
+// Here's another capability flag!
+if (updatedFrontDoor.can_program_online_access_codes) {
+ // Create an ongoing online access code.
+ await seam.accessCodes.create({
+ device_id: updatedFrontDoor.device_id,
+ name: "my ongoing code",
+ code: "1234"
+ });
+ // Create a time-bound online access code.
+ await seam.accessCodes.create({
+ device_id: updatedFrontDoor.device_id,
+ name: "my time-bound code",
+ starts_at: "2025-01-01T16:00:00Z",
+ ends_at: "2025-01-22T12:00:00Z",
+ code: "2345"
+ });
+ // List all access codes for this device.
+ const accessCodes = await seam.accessCodes.list({
+ device_id: updatedFrontDoor.device_id
+ });
+ console.log(accessCodes);
+};
+```
+
+**Output:**
+
+```json
+[
+ {
+ access_code_id: '11111111-1111-1111-1111-555555555555',
+ device_id: '11111111-1111-1111-1111-444444444444',
+ name: 'my ongoing code',
+ code: '1234',
+ type: 'ongoing',
+ ...
+ },
+ {
+ access_code_id: '11111111-1111-1111-1111-666666666666',
+ device_id: '11111111-1111-1111-1111-444444444444',
+ name: 'my time-bound code',
+ code: '2345',
+ type: 'time_bound',
+ starts_at: '2025-01-01T16:00:00.000Z',
+ ends_at: '2025-01-22T12:00:00.000Z',
+ ...
+ }
+]
+```
+{% endtab %}
+
+{% tab title="Ruby" %}
+**Code:**
+
+```ruby
+# Confirm that the device supports online access codes.
+# Here's another capability flag!
+if (updated_front_door.can_program_online_access_codes)
+ # Create an ongoing online access code.
+ seam.access_codes.create(
+ device_id: updated_front_door.device_id,
+ name: "my ongoing code",
+ code: "1234"
+ )
+ # Create a time-bound online access code.
+ seam.access_codes.create(
+ device_id: updated_front_door.device_id,
+ name: "my time-bound code",
+ starts_at: "2025-01-01T16:00:00Z",
+ ends_at: "2025-01-22T12:00:00Z",
+ code: "2345"
+ )
+ # List all access codes for this device.
+ access_codes = seam.access_codes.list(
+ device_id: updated_front_door.device_id
+ )
+ puts access_codes.inspect
+end
+```
+
+**Output:**
+
+```
+[
+ Get an API Key (free) | Sign up for the Seam Console and get your API keys. → | seam-api-key.png | https://console.seam.co/ | |
Contact Sales | Got a project or a specific question? Contact our team to get answers. → | seam-contact-us-light.png | https://www.seam.co/contact-us |
Property | Type | Description |
---|---|---|
is_multi_phone_sync_credential | Boolean Optional | Indicates whether the credential is a multi-phone sync credential. When creating a Seam mobile key for a Visionline ACS, you must set this property to true . |
allowed_acs_entrance_ids | Array of strings Optional | List of ACS entrance IDs to which you want to grant the specified ACS user access. |
starts_at | ISO 8601 format Optional | Starting timestamp for credential activation. |
ends_at | ISO 8601 format Optional | Ending timestamp for credential expiration. |
Property | Type | Description |
---|---|---|
is_multi_phone_sync_credential | Boolean Optional | Indicates whether the credential is a multi-phone sync credential. When creating a Seam mobile key for a Visionline ACS, you must set this property to true . |
allowed_acs_entrance_ids | Array of strings Optional | List of ACS entrance IDs to which you want to grant the specified ACS user access. |
starts_at | ISO 8601 format Optional | Starting timestamp for credential activation. |
ends_at | ISO 8601 format Optional | Ending timestamp for credential expiration. |
Seam Resource | Description |
---|---|
Individual who has been granted access to specific entrance within a building. A user could be a resident or temporary guest. | |
Physical points of entry within a property that are secured with Latch's smart access devices. | |
PIN codes or mobile keys. You can only assign one entrance to a key code-based credential. You can assign multiple entrances to mobile keys. |
Seam Resource | Description |
---|---|
Individual who has been granted access to specific entrances within a building. A user could be a resident or temporary guest. | |
Physical points of entry within a property that are secured with Latch's smart access devices. | |
PIN codes or mobile keys. You can only assign one entrance to a key code-based credential. You can assign multiple entrances to mobile keys. |
Lockly | https://lockly.com/collections/door-lock | lockly-logo.png |
2N Intercom Systems | 2n-logo.png | 2n-intercom-systems.md | ||
4SUITES Locks | 4suites-logo.png | 4suites-locks | ||
August Locks | august-logo.png | august-locks.md | ||
dormakaba Oracode Locks | dormakaba-logo.png | dormakaba-oracode-locks.md | ||
iglooHome Locks | igloohome-logo.png | igloohome-locks.md | ||
Kwikset Locks | kwikset-logo.png | kwikset-locks.md | ||
Lockly Locks | lockly-logo.png | lockly-locks | ||
Nuki Locks | nuki-logo.png | nuki-locks.md | ||
Salto Locks | salto-logo.png | salto-locks.md | ||
Schlage Locks | schlage-logo.png | get-started-with-schlage-locks.md | ||
SmartThings Hubs + Smart Locks | smartthings-logo.png | get-started-with-smartthings-hubs-+-smart-locks.md | ||
Tedee Locks | tedee-logo.png | tedee-locks | ||
TTLock Locks | ttlock-logo.png | ttlock-locks.md | ||
Wyze Locks | wyze-logo.png | wyze-locks.md | ||
Yale Locks | yale-logo.png | yale-locks.md |
2N Intercom Systems | 2n-logo.png | 2n-intercom-systems.md | ||
4SUITES Locks | 4suites-logo.png | 4suites-locks | ||
Akiles Locks | akiles-logo.png | akiles-locks | ||
August Locks | august-logo.png | august-locks.md | ||
dormakaba Oracode Locks | dormakaba-logo.png | dormakaba-oracode-locks.md | ||
iglooHome Locks | igloohome-logo.png | igloohome-locks.md | ||
Kwikset Locks | kwikset-logo.png | kwikset-locks.md | ||
Lockly Locks | lockly-logo.png | lockly-locks | ||
Nuki Locks | nuki-logo.png | nuki-locks.md | ||
Salto Locks | salto-logo.png | salto-locks.md | ||
Schlage Locks | schlage-logo.png | get-started-with-schlage-locks.md | ||
SmartThings Hubs + Smart Locks | smartthings-logo.png | get-started-with-smartthings-hubs-+-smart-locks.md | ||
Tedee Locks | tedee-logo.png | tedee-locks | ||
TTLock Locks | ttlock-logo.png | ttlock-locks.md | ||
Wyze Locks | wyze-logo.png | wyze-locks.md | ||
Yale Locks | yale-logo.png | yale-locks.md |
ASSA ABLOY Credential Services | assa-abloy-logo.png | assa-abloy-credential-services-credential-manager-in-development.md | ||
ASSA ABLOY Visionline Access Control System | assa-abloy-logo.png | assa-abloy-visionline-access-control-system-in-development | ||
Avigilon Alta Access System | avigilon-alta-logo.png | avigilon-alta-access-system.md | ||
Brivo Access | brivo-logo.png | brivo-access.md | ||
PTI Storlogix Cloud | pti-logo.png | pti-storlogix-cloud.md |
ASSA ABLOY Credential Services | assa-abloy-logo.png | assa-abloy-credential-services-credential-manager-in-development.md | ||
ASSA ABLOY Visionline Access Control System | assa-abloy-logo.png | assa-abloy-visionline-access-control-system-in-development | ||
Avigilon Alta Access System | avigilon-alta-logo.png | avigilon-alta-access-system.md | ||
Brivo Access | brivo-logo.png | brivo-access.md | ||
PTI Storlogix Cloud | pti-logo.png | pti-storlogix-cloud.md | ||
Salto KS | salto-logo.png | salto-ks-access-control-system |
Seam Resource | Description |
---|---|
Individual who has been granted access to specific entrances within a property. ACS users could include employees, residents, and temporary guests. You can configure access schedules for users, if desired. You assign a unique credential to each user. | |
Collection of users with shared access permissions. Instead of assigning permissions individually, users are grouped based on their access needs. Access groups streamline the management of access rights and ensure consistency. | |
| Timeframe during which access is permitted. By associating schedules with ACS users and then assigning users to access groups, property managers can control when users can enter specific areas, enhancing security and operational efficiency. If you set an access schedule for a Salto KS ACS user, the user appears as "unsubscribed" in the ACS until the starts_at time. Once the start time arrives, Seam switches the ACS user to "subscribed," which activates their access. |
Physical points of entry within a property that are secured with Salto KS smart access devices. Access permissions are assigned to these entrances through access groups and access schedules. | |
PINs, key cards or tags, or mobile keys.
|
Salto KS Sales Contact Page | https://saltosystems.com/en/contact/ | salto-logo.png |
Product Models | Compatibility |
---|---|
Schlage Encode and Encode Plus Smart Wi-Fi Deadbolt | Compatible only with the Schlage Home App. |
Schlage Connect Smart Deadbolt | Compatible only with a compatible Z-Wave hub. Seam supports integration with the SmartThings hub. |
Schlage Connected Keypad | Compatible only with a compatible Z-Wave hub. Seam supports integration with the SmartThings hub. |
Schlage Sense lock | Contact Seam Support. |
Schlage | https://www.schlage.com/en/home/products/smart-deadbolts-levers.html | schlage-logo.png | ||
Schlage Products on Amazon | https://amzn.to/3ZlSDWS | schlage-on-amazon.png |
Capability | Required Accessories |
---|---|
Remote lock/unlock |
|
Access codes |
|
Tedee Online Store | https://tedee.com/shop/ | tedee-logo.png |
Product Models | Compatibility | Accessories |
---|---|---|
Wi-Fi Smart Lock | Compatible |
|
Smart Lock Pro | Compatible only with Connect Wi-Fi Bridge |
|
Smart Lock | Compatible only with Connect Wi-Fi Bridge |
|
August | https://august.com/ | august-logo.png | ||
August Products on Amazon | https://amzn.to/3sVFNTl | august-on-amazon.png |
Avigilon Quote Request | https://www.avigilon.com/quote | avigilon-alta-logo.png |
Lock Brand | Integration Description |
---|---|
Allegion | Brivo partners with Allegion to provide AD Series, LE, NDE, and Control® wireless locks for multifamily and commercial real estate uses. |
ASSA ABLOY Aperio™ | Brivo provides a variety of ASSA ABLOY Aperio locks for small, medium, and enterprise uses. |
Z-Wave | Brivo provides a variety of Z-Wave-supported locks for multifamily residential doors connected to the Brivo Smart Home. |
Salto | Brivo supports various Salto wireless locks. |
Brivo Contact Us Page | https://www.brivo.com/about/contact-us/ | brivo-logo.png |
ecobee Online Store | https://www.ecobee.com/en-us/smart-thermostats/ | ecobee-logo.png |
Salto Locks
igloohome | https://store-us.igloohome.co/ | igloohome-logo.png |
Minut Online Store | https://store.minut.com/ | minut-logo.png |
NoiseAware Online Store | https://noiseaware.com/cart/ | noiseaware-logo.png |
Product Models | Compatibility | Accessories |
---|---|---|
Smart Lock | Compatible only with Nuki Bridge |
|
Smart Lock Pro | Compatible |
|
Opener | Compatible only with Nuki Bridge |
|
Nuki Online Store | https://shop.nuki.io/en/ | nuki-logo.png |
PTI Security Systems Sales Contact Us Page | https://ptisecurity.com/contact-us-sales/ | contact-pti-sales.png |
Salto Systems Sales Contact | https://saltosystems.com/en-us/offices/ | Broken file |
Salto Systems Sales Contact | https://saltosystems.com/en-us/offices/ | salto-logo.png |
Smart Gateway G2 | This gateway uses a Wifi connection to connect the door locks to the internet. | G2-TT-Lock-App-Gateway-Bluetooth-Smart-Electronic-Door-Lock-Wifi-Adapter-2 copy (1).png | https://amzn.to/3qBcG6H | |
Wired gateway G3/G3P (PoE power supply) | This gateway uses a wired Power-over-ethernet connection to bridge the locks to the internet. | TTLock-APP-Device-G3-Gateway-Bluetooth-compatible-To-RJ45-Ethernet-Bridge-For-Remote-Control-Lock.jpg_ copy (1).png | https://www.aliexpress.us/item/2255800336116314.html?spm=a2g0o.productlist.main.1.9cbd43b3ctHfxZ&algo_pvid=32dab18b-38f8-4119-8e58-24e42b4bc733&aem_p4p_detail=2023081416370273984849672280003173903&algo_exp_id=32dab18b-38f8-4119-8e58-24e42b4bc733-0&pdp_npi=4%40dis%21USD%2125.88%2122.0%21%21%2125.88%21%21%40210321c616920562226965846e9d3e%2112000031234243953%21sea%21US%210%21A&curPageLogUid=gVdrDzS7hmgF&search_p4p_id=2023081416370273984849672280003173903_1 |
Wyze Online Store | https://www.wyze.com/products/wyze-lock | wyze-logo.png |
ACS Resource | Description |
---|---|
The top-level object. Represents one or more buildings, residential locations, or other sites that you manage using this ACS. For more information, see Retrieving ACS System Details. | |
The set of users who access the entrances. For more information, see Managing ACS Users. | |
Some ACSs use access groups as an efficient way to grant sets of scheduled entrance access to one or more users. For more information, see Assigning ACS Users to Access Groups. | |
A digital means that authorizes a user to access one or more entrances at specific days and times. Examples of credentials include RFID cards, mobile keys, and PIN codes. For more information, see Managing Credentials. | |
The set of entrances, doors, or zones that you want to manage. You identify each entrance by the corresponding lock object. For more information, see Retrieving Entrance Details. |
ACS Resource | Description |
---|---|
The top-level object. Represents one or more buildings, residential locations, or other sites that you manage using this ACS. For more information, see Retrieving ACS System Details. | |
The set of users who access the entrances. For more information, see Managing ACS Users. | |
Some ACSs use access groups as an efficient way to grant sets of scheduled entrance access to one or more users. For more information, see Assigning ACS Users to Access Groups. | |
A digital means that authorizes a user to access one or more entrances at specific days and times. Examples of credentials include RFID cards, mobile keys, and PIN codes. For more information, see Managing Credentials. | |
The set of entrances, doors, or zones that you want to manage. You identify each entrance by the corresponding lock object. For more information, see Retrieving Entrance Details. |
ecobee Thermostats | ecobee-thermostats.md | ecobee-logo.png | |||
Google Nest Thermostats | google-nest-thermostats | nest-logo.png | |||
Honeywell Resideo Thermostats | honeywell-thermostats | honeywell_logo.png |
Fan mode | Description |
---|---|
on | The fan runs all the time, regardless of whether the HVAC system is cooling or heating. |
auto | The fan runs whenever the HVAC system is cooling or heating but does not run at other times. |
circulate | The fan runs for a specific number of minutes each hour, regardless of whether the HVAC system is cooling or heating. This setting is only supported on certain Honeywell thermostats. |
Climate Setting Request | Description |
---|---|
Heat | Set the thermostat to heat mode. |
Cool | Set the thermostat to cool mode. |
Heat-Cool | Set the thermostat to dual heat-cool (auto) mode. |
Off | Turn off the thermostat. |
Fan Mode | Set the fan mode to on or off . |
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 . |
Thermostat capability flags | Capabilities of the thermostat—at a granular level. These capability flags include the following:
|
Available climate presets | Climate presets that you can activate and schedule on the thermostat. |
Climate preset constraints | Constraints related to climate presets for the specific thermostat brand or model. For example, a thermostat might have a minimum or maximum cooling or heating set point or a minimum delta between the cooling and heating set points. |
[Device(
- device_id='518f692b-f865-4590-8c3e-3849e9984c75',
- device_type='ecobee_thermostat',
- location=None,
+```
+[
+ 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': ['off', 'cool', 'heat', 'heat_cool'],
- 'current_climate_setting': {
- '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
- },
- 'ecobee_metadata': {
- 'device_name': 'Thermostat 1',
- 'ecobee_device_id': 'a64074f3-a0aa-4dbb-bbd3-f17f61701602'
- },
- 'fan_mode_setting': 'auto',
- 'has_direct_power': True,
- 'image_alt_text': 'Ecobee 3 Lite Thermostat',
- 'image_url': 'https://connect.getseam.com/assets/images/devices/ecobee_3-lite_front.png',
- 'is_cooling': False,
- 'is_fan_running': False,
- 'is_heating': False,
- 'is_temporary_manual_override_active': False,
- 'manufacturer': 'ecobee',
- 'max_cooling_set_point_celsius': 33.333333333333336,
- 'max_cooling_set_point_fahrenheit': 92,
- 'max_heating_set_point_celsius': 26.11111111111111,
- 'max_heating_set_point_fahrenheit': 79,
- 'min_cooling_set_point_celsius': 18.333333333333336,
- 'min_cooling_set_point_fahrenheit': 65,
- 'min_heating_cooling_delta_celsius': 2.7777777777777777,
- 'min_heating_cooling_delta_fahrenheit': 5,
- 'min_heating_set_point_celsius': 7.222222222222222,
- 'min_heating_set_point_fahrenheit': 45,
- 'model': {
- 'accessory_keypad_supported': False,
- 'display_name': 'Thermostat',
- 'manufacturer_display_name': 'Ecobee',
- 'offline_access_codes_supported': False,
- 'online_access_codes_supported': True
- },
- 'name': 'Thermostat 1',
- 'online': True,
- 'relative_humidity': 0.36,
- 'temperature_celsius': 21.11111111111111,
- 'temperature_fahrenheit': 70
+ '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,
+ ...
},
- capabilities_supported=['thermostat'],
- errors=[],
- warnings=[],
- connected_account_id='2c00bc71-bca5-42c2-a1c5-74fd93ffcba1',
- workspace_id='398d80b7-3f96-47c2-b85a-6f8ba21d07be',
- created_at='2023-10-30T10:36:18.387Z',
- is_managed=True
-)]
-
+ ...
+ ),
+ ...
+]
+```
{% endtab %}
{% tab title="cURL (bash)" %}
@@ -87,9 +76,11 @@ seam.thermostats.list()
curl -X 'GET' \
'https://connect.getseam.com/thermostats/list' \
-H 'accept: application/json' \
- -H 'Authorization: Bearer ${API_KEY}' \
+ -H "Authorization: Bearer ${API_KEY}" \
-H 'Content-Type: application/json' \
- -d '{}'
+ -d '{
+ "manufacturer": "nest"
+ }'
```
**Response:**
@@ -98,69 +89,41 @@ curl -X 'GET' \
{
"thermostats": [
{
- "device_id": "518f692b-f865-4590-8c3e-3849e9984c75",
- "device_type": "ecobee_thermostat",
- "capabilities_supported": [
- "thermostat"
- ],
+ "device_id": "a4b775e3-feb2-4c6b-8e78-a73ec2d70b61",
+ "device_type": "nest_thermostat",
"properties": {
"online": true,
"is_cooling": false,
"is_heating": false,
- "manufacturer": "ecobee",
"is_fan_running": false,
- "ecobee_metadata": {
- "device_name": "Thermostat 1",
- "ecobee_device_id": "a64074f3-a0aa-4dbb-bbd3-f17f61701602"
- },
- "fan_mode_setting": "auto",
- "has_direct_power": true,
- "relative_humidity": 0.36,
- "temperature_celsius": 21.11111111111111,
- "temperature_fahrenheit": 70,
+ "manufacturer": "nest",
+ "relative_humidity": 0.46,
+ "temperature_celsius": 24.64,
+ "temperature_fahrenheit": 76.352,
"current_climate_setting": {
+ "display_name": "eco",
"hvac_mode_setting": "heat_cool",
"manual_override_allowed": true,
"cooling_set_point_celsius": 25,
- "heating_set_point_celsius": 20,
"cooling_set_point_fahrenheit": 77,
+ "heating_set_point_celsius": 20,
"heating_set_point_fahrenheit": 68
},
"available_hvac_mode_settings": [
- "off",
- "cool",
"heat",
- "heat_cool"
+ "cool",
+ "heat_cool",
+ "off"
],
- "offline_access_codes_enabled": false,
- "max_cooling_set_point_celsius": 33.333333333333336,
- "max_heating_set_point_celsius": 26.11111111111111,
- "min_cooling_set_point_celsius": 18.333333333333336,
- "min_heating_set_point_celsius": 7.222222222222222,
- "min_heating_cooling_delta_celsius": 2.7777777777777777,
- "is_temporary_manual_override_active": false,
- "name": "Thermostat 1",
- "model": {
- "display_name": "Thermostat",
- "manufacturer_display_name": "Ecobee",
- "accessory_keypad_supported": false,
- },
- "image_url": "https://connect.getseam.com/assets/images/devices/ecobee_3-lite_front.png",
- "image_alt_text": "Ecobee 3 Lite Thermostat",
- "min_heating_set_point_fahrenheit": 45,
- "max_heating_set_point_fahrenheit": 79,
- "min_cooling_set_point_fahrenheit": 65,
- "max_cooling_set_point_fahrenheit": 92,
- "min_heating_cooling_delta_fahrenheit": 5
+ ...
},
- "location": null,
- "connected_account_id": "2c00bc71-bca5-42c2-a1c5-74fd93ffcba1",
- "workspace_id": "398d80b7-3f96-47c2-b85a-6f8ba21d07be",
- "created_at": "2023-10-30T10:36:18.387Z",
- "errors": [],
- "warnings": [],
- "is_managed": true
- }
+ "can_hvac_cool": true,
+ "can_hvac_heat": true,
+ "can_turn_off_hvac": true,
+ "can_hvac_heat_cool": true,
+ ...
+ },
+ ...
],
"ok": true
}
@@ -171,7 +134,9 @@ curl -X 'GET' \
**Request:**
```javascript
-console.log(await seam.thermostats.list())
+await seam.thermostats.list({
+ manufacturer: "nest"
+});
```
**Response:**
@@ -179,135 +144,109 @@ console.log(await seam.thermostats.list())
```json
[
{
- device_id: '518f692b-f865-4590-8c3e-3849e9984c75',
- device_type: 'ecobee_thermostat',
- capabilities_supported: [ 'thermostat' ],
+ device_id: 'a4b775e3-feb2-4c6b-8e78-a73ec2d70b61',
+ device_type: 'nest_thermostat',
properties: {
online: true,
is_cooling: false,
is_heating: false,
- manufacturer: 'ecobee',
+ manufacturer: 'nest',
is_fan_running: false,
- ecobee_metadata: [Object],
- fan_mode_setting: 'auto',
- has_direct_power: true,
- relative_humidity: 0.36,
- temperature_celsius: 21.11111111111111,
- temperature_fahrenheit: 70,
+ relative_humidity: 0.46,
+ temperature_celsius: 24.64,
+ temperature_fahrenheit: 76.352,
current_climate_setting: [Object],
- available_hvac_mode_settings: [Array],
- max_cooling_set_point_celsius: 33.333333333333336,
- max_heating_set_point_celsius: 26.11111111111111,
- min_cooling_set_point_celsius: 18.333333333333336,
- min_heating_set_point_celsius: 7.222222222222222,
- min_heating_cooling_delta_celsius: 2.7777777777777777,
- is_temporary_manual_override_active: false,
- name: 'Thermostat 1',
- model: [Object],
- image_url: 'https://connect.getseam.com/assets/images/devices/ecobee_3-lite_front.png',
- image_alt_text: 'Ecobee 3 Lite Thermostat',
- min_heating_set_point_fahrenheit: 45,
- max_heating_set_point_fahrenheit: 79,
- min_cooling_set_point_fahrenheit: 65,
- max_cooling_set_point_fahrenheit: 92,
- min_heating_cooling_delta_fahrenheit: 5
+ available_hvac_mode_settings: [
+ 'heat',
+ 'cool',
+ 'heat_cool',
+ 'off'
+ ],
+ current_climate_setting: {
+ display_name: 'eco',
+ hvac_mode_setting: 'heat_cool',
+ manual_override_allowed: true,
+ cooling_set_point_celsius: 25,
+ cooling_set_point_fahrenheit: 77,
+ heating_set_point_celsius: 20,
+ heating_set_point_fahrenheit: 68
+ },
+ ...
},
- location: null,
- connected_account_id: '2c00bc71-bca5-42c2-a1c5-74fd93ffcba1',
- workspace_id: '398d80b7-3f96-47c2-b85a-6f8ba21d07be',
- created_at: '2023-10-30T10:36:18.387Z',
- errors: [],
- warnings: [],
- is_managed: true
- }
+ can_hvac_cool: true,
+ can_hvac_heat: true,
+ can_turn_off_hvac: true,
+ can_hvac_heat_cool: true,
+ ...
+ },
+ ...
]
```
{% endtab %}
+{% tab title="Ruby" %}
+**Request:**
+
+```ruby
+# Coming soon!
+```
+
+**Response:**
+
+```
+# Coming soon!
+```
+{% endtab %}
+
{% tab title="PHP" %}
**Request:**
```php
-$thermostats = $seam->thermostats->list();
-echo json_encode($thermostats, JSON_PRETTY_PRINT);
+$seam->thermostats->list(
+ manufacturer: "nest"
+);
```
**Response:**
-```
+```json
[
- {
- "device_id": "5ce2cd35-09b1-458c-bb08-51ee83c35be7",
- "device_type": "ecobee_thermostat",
- "capabilities_supported": [
- "thermostat"
- ],
- "properties": {
- "online": true,
- "name": "Thermostat_1",
- "model": {
- "display_name": "Thermostat",
- "manufacturer_display_name": "Ecobee",
- "offline_access_codes_supported": null,
- "online_access_codes_supported": null,
- "accessory_keypad_supported": false
- },
- "has_direct_power": true,
- "battery_level": null,
- "battery": null,
- "manufacturer": "ecobee",
- "image_url": "https:\/\/connect.getseam.com\/assets\/images\/devices\/ecobee_3-lite_front.png",
- "image_alt_text": "Ecobee 3 Lite Thermostat",
- "serial_number": null,
- ...
- "ecobee_metadata": {
- "ecobee_device_id": "c44f7f6a-97c6-4317-99a1-dae14fe20bb5",
- "device_name": "Thermostat_1"
- },
- ...
- "temperature_fahrenheit": 70,
- "temperature_celsius": 21.11111111111111,
- "relative_humidity": 0.36,
- "available_hvac_mode_settings": [
- "off",
- "cool",
- "heat",
- "heat_cool"
- ],
- "is_heating": false,
- "is_cooling": false,
- "is_fan_running": false,
- "fan_mode_setting": "auto",
- "is_temporary_manual_override_active": false,
- "current_climate_setting": {
- "hvac_mode_setting": "heat_cool",
- "cooling_set_point_celsius": 23.88888888888889,
- "heating_set_point_celsius": 18.333333333333336,
- "cooling_set_point_fahrenheit": 75,
- "heating_set_point_fahrenheit": 65,
- "manual_override_allowed": true
- },
- "min_cooling_set_point_celsius": 18.333333333333336,
- "min_cooling_set_point_fahrenheit": 65,
- "max_cooling_set_point_celsius": 33.333333333333336,
- "max_cooling_set_point_fahrenheit": 92,
- "min_heating_set_point_celsius": 7.222222222222222,
- "min_heating_set_point_fahrenheit": 45,
- "max_heating_set_point_celsius": 26.11111111111111,
- "max_heating_set_point_fahrenheit": 79,
- "min_heating_cooling_delta_celsius": 2.7777777777777777,
- "min_heating_cooling_delta_fahrenheit": 5,
- "assa_abloy_credential_service_metadata": null
- },
- "location": null,
- "connected_account_id": "aaf37f42-f5a1-4223-a7db-2b61700bf2a9",
- "workspace_id": "398d80b7-3f96-47c2-b85a-6f8ba21d07be",
- "errors": [],
- "warnings": [],
- "created_at": "2024-02-29T21:24:29.792Z",
- "is_managed": true,
- "custom_metadata": {}
- },...
+ {
+ "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": {
+ "manufacturer": "nest",
+ "online": true,
+ "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,
+ "relative_humidity": 0.46,
+ "temperature_celsius": 24.64,
+ "temperature_fahrenheit": 76.352,
+ ...
+ },
+ ...
+ },
+ ...
]
```
{% endtab %}
@@ -316,90 +255,27 @@ echo json_encode($thermostats, JSON_PRETTY_PRINT);
**Request:**
```csharp
-var thermostats = seam.Thermostats.List();
-foreach (var thermostat in thermostats)
-{
- Console.WriteLine(thermostat);
-}
+// Coming soon!
```
**Response:**
```json
-{
- "device_id": "518f692b-f865-4590-8c3e-3849e9984c75",
- "device_type": "ecobee_thermostat",
- "capabilities_supported": [
- "thermostat"
- ],
- "properties": {
- "online": true,
- "name": "Thermostat 1",
- "model": {
- "display_name": "Thermostat",
- "manufacturer_display_name": "Ecobee",
- "accessory_keypad_supported": false
- },
- "has_direct_power": true,
- "manufacturer": "ecobee",
- "image_url": "https://connect.getseam.com/assets/images/devices/ecobee_3-lite_front.png",
- "image_alt_text": "Ecobee 3 Lite Thermostat",
- "ecobee_metadata": {
- "ecobee_device_id": "a64074f3-a0aa-4dbb-bbd3-f17f61701602",
- "device_name": "Thermostat 1"
- }
- },
- "connected_account_id": "2c00bc71-bca5-42c2-a1c5-74fd93ffcba1",
- "workspace_id": "398d80b7-3f96-47c2-b85a-6f8ba21d07be",
- "errors": [],
- "warnings": [],
- "created_at": "2023-10-30T10:36:18.387Z",
- "is_managed": true
-}
+// Coming soon!
```
{% endtab %}
{% tab title="Java" %}
**Request:**
-```javascript
-var thermostats = seam.thermostats().list();
-System.out.println(thermostats);
+```java
+// Coming soon!
```
**Response:**
```json
-{
- "device_id": "518f692b-f865-4590-8c3e-3849e9984c75",
- "device_type": "ecobee_thermostat",
- "capabilities_supported": [
- "thermostat"
- ],
- "properties": {
- "online": true,
- "name": "Thermostat 1",
- "model": {
- "display_name": "Thermostat",
- "manufacturer_display_name": "Ecobee",
- "accessory_keypad_supported": false
- },
- "has_direct_power": true,
- "manufacturer": "ecobee",
- "image_url": "https://connect.getseam.com/assets/images/devices/ecobee_3-lite_front.png",
- "image_alt_text": "Ecobee 3 Lite Thermostat",
- "ecobee_metadata": {
- "ecobee_device_id": "a64074f3-a0aa-4dbb-bbd3-f17f61701602",
- "device_name": "Thermostat 1"
- }
- },
- "connected_account_id": "2c00bc71-bca5-42c2-a1c5-74fd93ffcba1",
- "workspace_id": "398d80b7-3f96-47c2-b85a-6f8ba21d07be",
- "errors": [],
- "warnings": [],
- "created_at": "2023-10-30T10:36:18.387Z",
- "is_managed": true
-}
+// Coming soon!
```
{% endtab %}
@@ -407,92 +283,22 @@ System.out.println(thermostats);
**Request:**
```go
-thermostats, uErr := client.Thermostats.List(context.Background(), nil)
-
-if uErr != nil {
- return uErr
-}
-
-fmt.Println(thermostats)
-return nil
+// Coming soon!
```
**Response:**
```json
-[{
- "device_id": "5ce2cd35-09b1-458c-bb08-51ee83c35be7",
- "device_type": "ecobee_thermostat",
- "capabilities_supported": [
- "thermostat"
- ],
- "properties": {
- "online": true,
- "is_cooling": false,
- "is_heating": false,
- "manufacturer": "ecobee",
- "is_fan_running": false,
- "ecobee_metadata": {
- "device_name": "Thermostat_1",
- "ecobee_device_id": "c44f7f6a-97c6-4317-99a1-dae14fe20bb5"
- },
- "fan_mode_setting": "auto",
- "has_direct_power": true,
- "relative_humidity": 0.36,
- "temperature_celsius": 21.11111111111111,
- "temperature_fahrenheit": 70,
- "current_climate_setting": {
- "hvac_mode_setting": "heat_cool",
- "manual_override_allowed": true,
- "cooling_set_point_celsius": 23.88888888888889,
- "heating_set_point_celsius": 18.333333333333336,
- "cooling_set_point_fahrenheit": 75,
- "heating_set_point_fahrenheit": 65
- },
- "available_hvac_mode_settings": [
- "off",
- "cool",
- "heat",
- "heat_cool"
- ],
- "max_cooling_set_point_celsius": 33.333333333333336,
- "max_heating_set_point_celsius": 26.11111111111111,
- "min_cooling_set_point_celsius": 18.333333333333336,
- "min_heating_set_point_celsius": 7.222222222222222,
- "min_heating_cooling_delta_celsius": 2.7777777777777777,
- "is_temporary_manual_override_active": false,
- "name": "Thermostat_1",
- "model": {
- "display_name": "Thermostat",
- "manufacturer_display_name": "Ecobee",
- "accessory_keypad_supported": false
- },
- "image_url": "https://connect.getseam.com/assets/images/devices/ecobee_3-lite_front.png",
- "image_alt_text": "Ecobee 3 Lite Thermostat",
- "min_heating_set_point_fahrenheit": 45,
- "max_heating_set_point_fahrenheit": 79,
- "min_cooling_set_point_fahrenheit": 65,
- "max_cooling_set_point_fahrenheit": 92,
- "min_heating_cooling_delta_fahrenheit": 5
- },
- "location": null,
- "connected_account_id": "aaf37f42-f5a1-4223-a7db-2b61700bf2a9",
- "workspace_id": "398d80b7-3f96-47c2-b85a-6f8ba21d07be",
- "created_at": "2024-02-29T21:24:29.792Z",
- "errors": [],
- "warnings": [],
- "is_managed": true,
- "custom_metadata": {}
-}...]
+// Coming soon!
```
{% endtab %}
{% endtabs %}
***
-## Retrieving Individual Thermostats
+## Get an Individual Thermostat
-To retrieve a specific [thermostat](./), include the desired `device_id` in the [Get Device](../../api-clients/devices/get.md) request.
+To get a specific [thermostat](./), issue a [`/devices/get`](../../api-clients/devices/get.md) request, including the desired `device_id`.
{% tabs %}
{% tab title="Python" %}
@@ -500,7 +306,7 @@ To retrieve a specific [thermostat](./), include the desired `device_id` in the
```python
seam.devices.get(
- device_id="518f692b-f865-4590-8c3e-3849e9984c75"
+ device_id = "a4b775e3-feb2-4c6b-8e78-a73ec2d70b61"
)
```
@@ -508,64 +314,40 @@ seam.devices.get(
```
Device(
- device_id='518f692b-f865-4590-8c3e-3849e9984c75',
- device_type='ecobee_thermostat',
- location=None,
- properties={
- 'available_hvac_mode_settings': ['off', 'cool', 'heat', 'heat_cool'],
- 'current_climate_setting': {
- '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
- },
- 'ecobee_metadata': {
- 'device_name': 'Thermostat 1',
- 'ecobee_device_id': 'a64074f3-a0aa-4dbb-bbd3-f17f61701602'
- },
- 'fan_mode_setting': 'auto',
- 'has_direct_power': True,
- 'image_alt_text': 'Ecobee 3 Lite Thermostat',
- 'image_url': 'https://connect.getseam.com/assets/images/devices/ecobee_3-lite_front.png',
- 'is_cooling': False,
- 'is_fan_running': False,
- 'is_heating': False,
- 'is_temporary_manual_override_active': False,
- 'manufacturer': 'ecobee',
- 'max_cooling_set_point_celsius': 33.333333333333336,
- 'max_cooling_set_point_fahrenheit': 92,
- 'max_heating_set_point_celsius': 26.11111111111111,
- 'max_heating_set_point_fahrenheit': 79,
- 'min_cooling_set_point_celsius': 18.333333333333336,
- 'min_cooling_set_point_fahrenheit': 65,
- 'min_heating_cooling_delta_celsius': 2.7777777777777777,
- 'min_heating_cooling_delta_fahrenheit': 5,
- 'min_heating_set_point_celsius': 7.222222222222222,
- 'min_heating_set_point_fahrenheit': 45,
- 'model': {
- 'accessory_keypad_supported': False,
- 'display_name': 'Thermostat',
- 'manufacturer_display_name': 'Ecobee',
- 'offline_access_codes_supported': False,
- 'online_access_codes_supported': True
- },
- 'name': 'Thermostat 1',
- 'online': True,
- 'relative_humidity': 0.36,
- 'temperature_celsius': 21.11111111111111,
- 'temperature_fahrenheit': 70
+ 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
},
- capabilities_supported=['thermostat'],
- errors=[],
- warnings=[],
- connected_account_id='2c00bc71-bca5-42c2-a1c5-74fd93ffcba1',
- workspace_id='398d80b7-3f96-47c2-b85a-6f8ba21d07be',
- created_at='2023-10-30T10:36:18.387Z',
- is_managed=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,
+ ...
+ },
+ ...
)
-
```
{% endtab %}
@@ -580,7 +362,7 @@ curl -X 'GET' \
-H 'Authorization: Bearer ${API_KEY}' \
-H 'Content-Type: application/json' \
-d '{
- "device_id": "518f692b-f865-4590-8c3e-3849e9984c75"
+ "device_id": "a4b775e3-feb2-4c6b-8e78-a73ec2d70b61"
}'
```
@@ -588,68 +370,40 @@ curl -X 'GET' \
```json
{
- "thermostat": {
- "device_id": "518f692b-f865-4590-8c3e-3849e9984c75",
- "device_type": "ecobee_thermostat",
- "capabilities_supported": [
- "thermostat"
- ],
+ "device": {
+ "device_id": "a4b775e3-feb2-4c6b-8e78-a73ec2d70b61",
+ "device_type": "nest_thermostat",
"properties": {
"online": true,
"is_cooling": false,
"is_heating": false,
- "manufacturer": "ecobee",
"is_fan_running": false,
- "ecobee_metadata": {
- "device_name": "Thermostat 1",
- "ecobee_device_id": "a64074f3-a0aa-4dbb-bbd3-f17f61701602"
- },
- "fan_mode_setting": "auto",
- "has_direct_power": true,
- "relative_humidity": 0.36,
- "temperature_celsius": 21.11111111111111,
- "temperature_fahrenheit": 70,
+ "manufacturer": "nest",
+ "relative_humidity": 0.46,
+ "temperature_celsius": 24.64,
+ "temperature_fahrenheit": 76.352,
"current_climate_setting": {
+ "display_name": "eco",
"hvac_mode_setting": "heat_cool",
"manual_override_allowed": true,
"cooling_set_point_celsius": 25,
- "heating_set_point_celsius": 20,
"cooling_set_point_fahrenheit": 77,
+ "heating_set_point_celsius": 20,
"heating_set_point_fahrenheit": 68
},
"available_hvac_mode_settings": [
- "off",
- "cool",
"heat",
- "heat_cool"
+ "cool",
+ "heat_cool",
+ "off"
],
- "max_cooling_set_point_celsius": 33.333333333333336,
- "max_heating_set_point_celsius": 26.11111111111111,
- "min_cooling_set_point_celsius": 18.333333333333336,
- "min_heating_set_point_celsius": 7.222222222222222,
- "min_heating_cooling_delta_celsius": 2.7777777777777777,
- "is_temporary_manual_override_active": false,
- "name": "Thermostat 1",
- "model": {
- "display_name": "Thermostat",
- "manufacturer_display_name": "Ecobee",
- "accessory_keypad_supported": false
- },
- "image_url": "https://connect.getseam.com/assets/images/devices/ecobee_3-lite_front.png",
- "image_alt_text": "Ecobee 3 Lite Thermostat",
- "min_heating_set_point_fahrenheit": 45,
- "max_heating_set_point_fahrenheit": 79,
- "min_cooling_set_point_fahrenheit": 65,
- "max_cooling_set_point_fahrenheit": 92,
- "min_heating_cooling_delta_fahrenheit": 5
+ ...
},
- "location": null,
- "connected_account_id": "2c00bc71-bca5-42c2-a1c5-74fd93ffcba1",
- "workspace_id": "398d80b7-3f96-47c2-b85a-6f8ba21d07be",
- "created_at": "2023-10-30T10:36:18.387Z",
- "errors": [],
- "warnings": [],
- "is_managed": true
+ "can_hvac_cool": true,
+ "can_hvac_heat": true,
+ "can_turn_off_hvac": true,
+ "can_hvac_heat_cool": true,
+ ...
},
"ok": true
}
@@ -661,7 +415,7 @@ curl -X 'GET' \
```javascript
await seam.devices.get({
- device_id: "518f692b-f865-4590-8c3e-3849e9984c75"
+ device_id: "a4b775e3-feb2-4c6b-8e78-a73ec2d70b61"
});
```
@@ -669,147 +423,104 @@ await seam.devices.get({
```json
{
- device_id: '518f692b-f865-4590-8c3e-3849e9984c75',
- device_type: 'ecobee_thermostat',
- capabilities_supported: [ 'thermostat' ],
+ device_id: 'a4b775e3-feb2-4c6b-8e78-a73ec2d70b61',
+ device_type: 'nest_thermostat',
properties: {
online: true,
is_cooling: false,
is_heating: false,
- manufacturer: 'ecobee',
+ manufacturer: 'nest',
is_fan_running: false,
- ecobee_metadata: {
- device_name: 'Thermostat 1',
- ecobee_device_id: 'a64074f3-a0aa-4dbb-bbd3-f17f61701602'
- },
- fan_mode_setting: 'auto',
- has_direct_power: true,
- relative_humidity: 0.36,
- temperature_celsius: 21.11111111111111,
- temperature_fahrenheit: 70,
+ relative_humidity: 0.46,
+ temperature_celsius: 24.64,
+ temperature_fahrenheit: 76.352,
+ current_climate_setting: [Object],
+ available_hvac_mode_settings: [
+ 'heat',
+ 'cool',
+ 'heat_cool',
+ 'off'
+ ],
current_climate_setting: {
+ display_name: 'eco',
hvac_mode_setting: 'heat_cool',
manual_override_allowed: true,
cooling_set_point_celsius: 25,
- heating_set_point_celsius: 20,
cooling_set_point_fahrenheit: 77,
+ heating_set_point_celsius: 20,
heating_set_point_fahrenheit: 68
},
- available_hvac_mode_settings: [ 'off', 'cool', 'heat', 'heat_cool' ],
- max_cooling_set_point_celsius: 33.333333333333336,
- max_heating_set_point_celsius: 26.11111111111111,
- min_cooling_set_point_celsius: 18.333333333333336,
- min_heating_set_point_celsius: 7.222222222222222,
- min_heating_cooling_delta_celsius: 2.7777777777777777,
- is_temporary_manual_override_active: false,
- name: 'Thermostat 1',
- model: {
- display_name: 'Thermostat',
- manufacturer_display_name: 'Ecobee',
- accessory_keypad_supported: false
- },
- image_url: 'https://connect.getseam.com/assets/images/devices/ecobee_3-lite_front.png',
- image_alt_text: 'Ecobee 3 Lite Thermostat',
- min_heating_set_point_fahrenheit: 45,
- max_heating_set_point_fahrenheit: 79,
- min_cooling_set_point_fahrenheit: 65,
- max_cooling_set_point_fahrenheit: 92,
- min_heating_cooling_delta_fahrenheit: 5
+ ...
},
- location: null,
- connected_account_id: '2c00bc71-bca5-42c2-a1c5-74fd93ffcba1',
- workspace_id: '398d80b7-3f96-47c2-b85a-6f8ba21d07be',
- created_at: '2023-10-30T10:36:18.387Z',
- errors: [],
- warnings: [],
- is_managed: true
+ can_hvac_cool: true,
+ can_hvac_heat: true,
+ can_turn_off_hvac: true,
+ can_hvac_heat_cool: true,
+ ...
}
```
{% endtab %}
+{% tab title="Ruby" %}
+**Request:**
+
+```ruby
+# Coming soon!
+```
+
+**Response:**
+
+```
+# Coming soon!
+```
+{% endtab %}
+
{% tab title="PHP" %}
**Request:**
```php
$seam->devices->get(
- device_id: "5ce2cd35-09b1-458c-bb08-51ee83c35be7"
+ device_id: "a4b775e3-feb2-4c6b-8e78-a73ec2d70b61"
);
```
**Response:**
-```
+```json
{
- "device_id": "5ce2cd35-09b1-458c-bb08-51ee83c35be7",
- "device_type": "ecobee_thermostat",
- "capabilities_supported": [
- "thermostat"
+ "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": {
+ "manufacturer": "nest",
+ "online": true,
+ "available_hvac_mode_settings": [
+ "heat",
+ "cool",
+ "heat_cool",
+ "off"
],
- "properties": {
- "online": true,
- "name": "Thermostat_1",
- "model": {
- "display_name": "Thermostat",
- "manufacturer_display_name": "Ecobee",
- "offline_access_codes_supported": null,
- "online_access_codes_supported": null,
- "accessory_keypad_supported": false
- },
- "has_direct_power": true,
- "battery_level": null,
- "battery": null,
- "manufacturer": "ecobee",
- "image_url": "https:\/\/connect.getseam.com\/assets\/images\/devices\/ecobee_3-lite_front.png",
- "image_alt_text": "Ecobee 3 Lite Thermostat",
- "serial_number": null,
- ...
- "ecobee_metadata": {
- "ecobee_device_id": "c44f7f6a-97c6-4317-99a1-dae14fe20bb5",
- "device_name": "Thermostat_1"
- },
- ...
- "temperature_fahrenheit": 70,
- "temperature_celsius": 21.11111111111111,
- "relative_humidity": 0.36,
- "available_hvac_mode_settings": [
- "off",
- "cool",
- "heat",
- "heat_cool"
- ],
- "is_heating": false,
- "is_cooling": false,
- "is_fan_running": false,
- "fan_mode_setting": "auto",
- "is_temporary_manual_override_active": false,
- "current_climate_setting": {
- "hvac_mode_setting": "heat_cool",
- "cooling_set_point_celsius": 23.88888888888889,
- "heating_set_point_celsius": 18.333333333333336,
- "cooling_set_point_fahrenheit": 75,
- "heating_set_point_fahrenheit": 65,
- "manual_override_allowed": true
- },
- "min_cooling_set_point_celsius": 18.333333333333336,
- "min_cooling_set_point_fahrenheit": 65,
- "max_cooling_set_point_celsius": 33.333333333333336,
- "max_cooling_set_point_fahrenheit": 92,
- "min_heating_set_point_celsius": 7.222222222222222,
- "min_heating_set_point_fahrenheit": 45,
- "max_heating_set_point_celsius": 26.11111111111111,
- "max_heating_set_point_fahrenheit": 79,
- "min_heating_cooling_delta_celsius": 2.7777777777777777,
- "min_heating_cooling_delta_fahrenheit": 5,
- "assa_abloy_credential_service_metadata": null
+ "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
},
- "location": null,
- "connected_account_id": "aaf37f42-f5a1-4223-a7db-2b61700bf2a9",
- "workspace_id": "398d80b7-3f96-47c2-b85a-6f8ba21d07be",
- "errors": [],
- "warnings": [],
- "created_at": "2024-02-29T21:24:29.792Z",
- "is_managed": true,
- "custom_metadata": {}
+ "is_cooling": false,
+ "is_fan_running": false,
+ "is_heating": false,
+ "relative_humidity": 0.46,
+ "temperature_celsius": 24.64,
+ "temperature_fahrenheit": 76.352,
+ ...
+ },
+ ...
}
```
{% endtab %}
@@ -818,44 +529,13 @@ $seam->devices->get(
**Request:**
```csharp
-seam.Devices.Get(
- deviceId: "518f692b-f865-4590-8c3e-3849e9984c75"
-);
+// Coming soon!
```
**Response:**
```
-{
- "device_id": "518f692b-f865-4590-8c3e-3849e9984c75",
- "device_type": "ecobee_thermostat",
- "capabilities_supported": [
- "thermostat"
- ],
- "properties": {
- "online": true,
- "name": "Thermostat 1",
- "model": {
- "display_name": "Thermostat",
- "manufacturer_display_name": "Ecobee",
- "accessory_keypad_supported": false
- },
- "has_direct_power": true,
- "manufacturer": "ecobee",
- "image_url": "https://connect.getseam.com/assets/images/devices/ecobee_3-lite_front.png",
- "image_alt_text": "Ecobee 3 Lite Thermostat",
- "ecobee_metadata": {
- "ecobee_device_id": "a64074f3-a0aa-4dbb-bbd3-f17f61701602",
- "device_name": "Thermostat 1"
- }
- },
- "connected_account_id": "2c00bc71-bca5-42c2-a1c5-74fd93ffcba1",
- "workspace_id": "398d80b7-3f96-47c2-b85a-6f8ba21d07be",
- "errors": [],
- "warnings": [],
- "created_at": "2023-10-30T10:36:18.387Z",
- "is_managed": true
-}
+// Coming soon!
```
{% endtab %}
@@ -863,68 +543,13 @@ seam.Devices.Get(
**Request:**
```java
-seam.devices().get(DevicesGetRequest.builder()
- .deviceId("518f692b-f865-4590-8c3e-3849e9984c75")
- .build());
+// Coming soon!
```
**Response:**
```json
-{
- "device_id" : "518f692b-f865-4590-8c3e-3849e9984c75",
- "device_type" : "ecobee_thermostat",
- "capabilities_supported" : [ "thermostat" ],
- "properties" : {
- "online" : true,
- "name" : "Thermostat 1",
- "model" : {
- "display_name" : "Thermostat",
- "online_access_codes_supported" : true,
- "accessory_keypad_supported" : false,
- "manufacturer_display_name" : "Ecobee"
- },
- "current_climate_setting" : {
- "hvac_mode_setting" : "heat_cool",
- "cooling_set_point_celsius" : 25.0,
- "heating_set_point_celsius" : 20.0,
- "cooling_set_point_fahrenheit" : 77.0,
- "heating_set_point_fahrenheit" : 68.0,
- "manual_override_allowed" : true
- },
- "temperature_celsius" : 21.11111111111111,
- "min_heating_set_point_celsius" : 7.222222222222222,
- "max_cooling_set_point_fahrenheit" : 92,
- "is_heating" : false,
- "is_cooling" : false,
- "manufacturer" : "ecobee",
- "max_heating_set_point_celsius" : 26.11111111111111,
- "max_cooling_set_point_celsius" : 33.333333333333336,
- "is_temporary_manual_override_active" : false,
- "min_heating_cooling_delta_fahrenheit" : 5,
- "available_hvac_mode_settings" : [ "off", "cool", "heat", "heat_cool" ],
- "has_direct_power" : true,
- "min_cooling_set_point_fahrenheit" : 65,
- "min_heating_cooling_delta_celsius" : 2.7777777777777777,
- "min_cooling_set_point_celsius" : 18.333333333333336,
- "max_heating_set_point_fahrenheit" : 79,
- "image_url" : "https://connect.getseam.com/assets/images/devices/ecobee_3-lite_front.png",
- "is_fan_running" : false,
- "image_alt_text" : "Ecobee 3 Lite Thermostat",
- "min_heating_set_point_fahrenheit" : 45,
- "ecobee_metadata" : {
- "device_name" : "Thermostat 1",
- "ecobee_device_id" : "a64074f3-a0aa-4dbb-bbd3-f17f61701602"
- },
- "fan_mode_setting" : "auto",
- "relative_humidity" : 0.36,
- "temperature_fahrenheit" : 70,
- },
- "connected_account_id" : "2c00bc71-bca5-42c2-a1c5-74fd93ffcba1",
- "workspace_id" : "398d80b7-3f96-47c2-b85a-6f8ba21d07be",
- "created_at" : "2023-10-30T10:36:18.387Z",
- "is_managed" : true
-}
+// Coming soon!
```
{% endtab %}
@@ -932,84 +557,13 @@ seam.devices().get(DevicesGetRequest.builder()
**Request:**
```go
-thermostat, uErr := client.Devices.Get(context.Background(), &api.DevicesGetRequest{
- DeviceId: api.String("5ce2cd35-09b1-458c-bb08-51ee83c35be7"),
- })
-
-if uErr != nil {
- return uErr
-}
-
-return nil
+// Coming soon!
```
**Response:**
```json
-{
- "device_id": "5ce2cd35-09b1-458c-bb08-51ee83c35be7",
- "device_type": "ecobee_thermostat",
- "capabilities_supported": [
- "thermostat"
- ],
- "properties": {
- "online": true,
- "is_cooling": false,
- "is_heating": false,
- "manufacturer": "ecobee",
- "is_fan_running": false,
- "ecobee_metadata": {
- "device_name": "Thermostat_1",
- "ecobee_device_id": "c44f7f6a-97c6-4317-99a1-dae14fe20bb5"
- },
- "fan_mode_setting": "auto",
- "has_direct_power": true,
- "relative_humidity": 0.36,
- "temperature_celsius": 21.11111111111111,
- "temperature_fahrenheit": 70,
- "current_climate_setting": {
- "hvac_mode_setting": "heat_cool",
- "manual_override_allowed": true,
- "cooling_set_point_celsius": 23.88888888888889,
- "heating_set_point_celsius": 18.333333333333336,
- "cooling_set_point_fahrenheit": 75,
- "heating_set_point_fahrenheit": 65
- },
- "available_hvac_mode_settings": [
- "off",
- "cool",
- "heat",
- "heat_cool"
- ],
- "max_cooling_set_point_celsius": 33.333333333333336,
- "max_heating_set_point_celsius": 26.11111111111111,
- "min_cooling_set_point_celsius": 18.333333333333336,
- "min_heating_set_point_celsius": 7.222222222222222,
- "min_heating_cooling_delta_celsius": 2.7777777777777777,
- "is_temporary_manual_override_active": false,
- "name": "Thermostat_1",
- "model": {
- "display_name": "Thermostat",
- "manufacturer_display_name": "Ecobee",
- "accessory_keypad_supported": false
- },
- "image_url": "https://connect.getseam.com/assets/images/devices/ecobee_3-lite_front.png",
- "image_alt_text": "Ecobee 3 Lite Thermostat",
- "min_heating_set_point_fahrenheit": 45,
- "max_heating_set_point_fahrenheit": 79,
- "min_cooling_set_point_fahrenheit": 65,
- "max_cooling_set_point_fahrenheit": 92,
- "min_heating_cooling_delta_fahrenheit": 5
- },
- "location": null,
- "connected_account_id": "aaf37f42-f5a1-4223-a7db-2b61700bf2a9",
- "workspace_id": "398d80b7-3f96-47c2-b85a-6f8ba21d07be",
- "created_at": "2024-02-29T21:24:29.792Z",
- "errors": [],
- "warnings": [],
- "is_managed": true,
- "custom_metadata": {}
-}
+// Coming soon!
```
{% endtab %}
{% endtabs %}
diff --git a/docs/quickstart.md b/docs/quickstart.md
index 0bd2966c..1e0a32a0 100644
--- a/docs/quickstart.md
+++ b/docs/quickstart.md
@@ -27,8 +27,6 @@ To get started with Seam, first connect a set of devices.
Once authorized, the devices associated with this test account appear in your workspace.
-{% @supademo/embed demoId="h1y5QMki-7vzlghMzobuf" url="https://app.supademo.com/demo/h1y5QMki-7vzlghMzobuf" %}
-
## Step 2 — Get an API Key and SDK
To control the devices that you connected in [Step 1](quickstart.md#step-1-connect-devices), you must create an API key and install the Seam SDK in the programming language of your choice.
@@ -40,8 +38,6 @@ To control the devices that you connected in [Step 1](quickstart.md#step-1-conne
3. In the **Add API Key** dialog, type a name for your new API key and then click **Create API Key**.
4. Copy the newly-created API key and store it for future use.
-{% @supademo/embed demoId="vLRzYM2Nwoi4j_cH9WCNQ" url="https://app.supademo.com/demo/vLRzYM2Nwoi4j_cH9WCNQ" %}
-
### Install the Seam SDK
Install one of the Seam SDKs in the programming language of your choice.
@@ -50,7 +46,7 @@ Seam provides client libraries for many languages, such as JavaScript, Python, R
* JavaScript / TypeScript ([npm](https://www.npmjs.com/package/seam), [GitHub](https://github.com/seamapi/javascript))
* Python ([pip](https://pypi.org/project/seam/), [GitHub](https://github.com/seamapi/python))
-* Ruby Gem ([rubygem](https://rubygems.org/gems/seamapi), [GitHub](https://github.com/seamapi/ruby))
+* Ruby Gem ([rubygem](https://rubygems.org/gems/seam), [GitHub](https://github.com/seamapi/ruby))
* PHP ([packagist](https://packagist.org/packages/seamapi/seam), [GitHub](https://github.com/seamapi/php))
* Java ([GitHub](https://github.com/seamapi/java))
* C# ([nuget](https://www.nuget.org/packages/Seam), [GitHub](https://github.com/seamapi/csharp))
@@ -72,7 +68,7 @@ pip install seam
{% tab title="Ruby" %}
```bash
-bundle add seamapi
+bundle add seam
```
{% endtab %}
@@ -263,9 +259,9 @@ if (frontDoor.can_remotely_unlock) {
**Code:**
```ruby
-require "seamapi"
+require "seam"
-seam = Seam::Client.new() # Seam automatically uses your exported SEAM_API_KEY.
+seam = Seam.new() # Seam automatically uses your exported SEAM_API_KEY.
# Retrieve all devices, filtered by manufacturer,
# which is one of several filters that list() supports.
@@ -279,7 +275,7 @@ front_door = all_august_locks[0]
if (front_door.can_remotely_unlock)
# Perform the unlock operation
# and return an action attempt.
- action_attempt = seam.locks.unlock_door(front_door.device_id)
+ action_attempt = seam.locks.unlock_door(device_id: front_door.device_id)
end
```
diff --git a/docs/quickstart/authentication.md b/docs/quickstart/authentication.md
index 8b48e513..1026f26e 100644
--- a/docs/quickstart/authentication.md
+++ b/docs/quickstart/authentication.md
@@ -64,9 +64,9 @@ print(workspace)
{% tab title="Ruby" %}
```ruby
-require "seamapi"
+require "seam"
-seam = Seam::Client.new(api_key: "MY_API_KEY")
+seam = Seam.new(api_key: "MY_API_KEY")
workspace = seam.workspaces.get
diff --git a/docs/seam-components/overview/get-started-with-react-components-and-client-session-tokens.md b/docs/seam-components/overview/get-started-with-react-components-and-client-session-tokens.md
index fc921f92..e53ea826 100644
--- a/docs/seam-components/overview/get-started-with-react-components-and-client-session-tokens.md
+++ b/docs/seam-components/overview/get-started-with-react-components-and-client-session-tokens.md
@@ -24,7 +24,7 @@ Seam provides client libraries for many languages such as Javascript, Python, Ru
* **Javascript:** `npm i seam` ([npm](https://www.npmjs.com/package/seam), [github](https://github.com/seamapi/javascript))
* **Python:** `pip install seam` ([pip](https://pypi.org/project/seamapi/), [github](https://github.com/seamapi/python))
-* **Ruby:** `bundle add seamapi` ([rubygem](https://rubygems.org/gems/seamapi), [github](https://github.com/seamapi/ruby))
+* **Ruby:** `bundle add seam` ([rubygem](https://rubygems.org/gems/seam), [github](https://github.com/seamapi/ruby))
* **PHP:** `composer require seamapi/seam` ([packagist](https://packagist.org/packages/seamapi/seam), [github](https://github.com/seamapi/php))
Once installed, [sign-up for Seam](https://console.seam.co/) to get your API key, and export it as an environment variable:
diff --git a/docs/seam-components/react-components/supported-devices-table.md b/docs/seam-components/react-components/supported-devices-table.md
index dc38e114..5945989a 100644
--- a/docs/seam-components/react-components/supported-devices-table.md
+++ b/docs/seam-components/react-components/supported-devices-table.md
@@ -23,12 +23,10 @@ The supported device table enables you to filter, sort, and view all the devices
{% @seam-gitbook-plugin-v2/seam-component content="Name | Type | Description |
---|---|---|
disableFilter | boolean Optional | Hide the controls to filter the table. Default: false |
manufacturers | array Optional | Only show devices from specified manufacturers. |
excludedManufacturers | array Optional | Hide devices from specified manufacturers. |
className | string Optional | Class name to add to the containing element of the rendered component. |
{{this.format}}
{{this.name}}
Format: {{this.format}}