From 2f0f9e1ea93802e7611dd0e720a2bf1e66e50a62 Mon Sep 17 00:00:00 2001 From: Evan Sosenko Date: Tue, 24 Jun 2025 17:07:07 -0700 Subject: [PATCH 01/13] Hide preamble for resources on secondary route --- src/layouts/partials/api-resource.hbs | 2 ++ src/lib/layout/api-route.ts | 3 +++ 2 files changed, 5 insertions(+) diff --git a/src/layouts/partials/api-resource.hbs b/src/layouts/partials/api-resource.hbs index b90d0ac9b..6f88817f9 100644 --- a/src/layouts/partials/api-resource.hbs +++ b/src/layouts/partials/api-resource.hbs @@ -1,3 +1,4 @@ +{{#unless hidePreamble}} ## The {{name}} Object - [Properties](./#properties) @@ -13,6 +14,7 @@ {{description}} {{/if}} +{{/unless}} {{#if resourceSamples.length}} {% tabs %} diff --git a/src/lib/layout/api-route.ts b/src/lib/layout/api-route.ts index 48aef14a2..2ac4e431d 100644 --- a/src/lib/layout/api-route.ts +++ b/src/lib/layout/api-route.ts @@ -75,6 +75,7 @@ export interface ApiRouteResource { propertyGroups: ApiRoutePropertyGroup[] legacyPropertyGroups?: ApiRoutePropertyGroup[] events: ApiRouteEvent[] + hidePreamble: boolean } interface ApiRouteVariantGroup { @@ -190,6 +191,8 @@ export function setApiRouteLayoutContext( ...(legacyPropertyGroups == null ? {} : { legacyPropertyGroups }), errorGroups, warningGroups, + hidePreamble: + groupOptions.include != null || groupOptions.exclude != null, events: eventsByRoutePath.get(resource.routePath) ?? [], resourceSamples: resource.resourceSamples.map(mapResourceSample), }) From 65ea99953758df1a1d8ca543b1bc966861588e31 Mon Sep 17 00:00:00 2001 From: Evan Sosenko Date: Tue, 24 Jun 2025 17:18:52 -0700 Subject: [PATCH 02/13] Filter resource samples that don't match filters --- src/lib/layout/api-route.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/lib/layout/api-route.ts b/src/lib/layout/api-route.ts index 2ac4e431d..7c1dfe26c 100644 --- a/src/lib/layout/api-route.ts +++ b/src/lib/layout/api-route.ts @@ -194,7 +194,21 @@ export function setApiRouteLayoutContext( hidePreamble: groupOptions.include != null || groupOptions.exclude != null, events: eventsByRoutePath.get(resource.routePath) ?? [], - resourceSamples: resource.resourceSamples.map(mapResourceSample), + resourceSamples: resource.resourceSamples + .filter(({ title }) => { + if (groupOptions.include != null) { + return groupOptions.include.some((x) => + title.toLowerCase().includes(x.split('_')[0]?.slice(0, -1) ?? ''), + ) + } + if (groupOptions.exclude != null) { + return !groupOptions.exclude.some((x) => + title.toLowerCase().includes(x.split('_')[0]?.slice(0, -1) ?? ''), + ) + } + return true + }) + .map(mapResourceSample), }) } } From ad928f6a0d880d1c4826ad581856591a177b703a Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Wed, 25 Jun 2025 00:21:04 +0000 Subject: [PATCH 03/13] ci: Generate docs --- docs/api/access_codes/README.md | 16 --- docs/api/access_codes/unmanaged/README.md | 20 --- docs/api/thermostats/README.md | 146 ---------------------- 3 files changed, 182 deletions(-) diff --git a/docs/api/access_codes/README.md b/docs/api/access_codes/README.md index f58d8241c..b72efebda 100644 --- a/docs/api/access_codes/README.md +++ b/docs/api/access_codes/README.md @@ -1,21 +1,5 @@ # Access Codes -## The access_code Object - -- [Properties](./#properties) -- [Errors](./#errors) -- [Warnings](./#warnings) -- [Events](./#events) -- [Endpoints](./#endpoints) - - -Represents a smart lock [access code](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes). - -An access code is a code used for a keypad or pinpad device. Unlike physical keys, which can easily be lost or duplicated, PIN codes can be customized, tracked, and altered on the fly. Using the Seam Access Code API, you can easily generate access codes on the hundreds of door lock models with which we integrate. - -Seam supports programming two types of access codes: [ongoing](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes#ongoing-access-codes) and [time-bound](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes#time-bound-access-codes). To differentiate between the two, refer to the `type` property of the access code. Ongoing codes display as `ongoing`, whereas time-bound codes are labeled `time_bound`. An ongoing access code is active, until it has been removed from the device. To specify an ongoing access code, leave both `starts_at` and `ends_at` empty. A time-bound access code will be programmed at the `starts_at` time and removed at the `ends_at` time. - -In addition, for certain devices, Seam also supports [offline access codes](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes#offline-access-codes). Offline access (PIN) codes are designed for door locks that might not always maintain an internet connection. For this type of access code, the device manufacturer uses encryption keys (tokens) to create server-based registries of algorithmically-generated offline PIN codes. Because the tokens remain synchronized with the managed devices, the locks do not require an active internet connection—and you do not need to be near the locks—to create an offline access code. Then, owners or managers can share these offline codes with users through a variety of mechanisms, such as messaging applications. That is, lock users do not need to install a smartphone application to receive an offline access code. {% tabs %} {% tab title="One-Time-Use Offline Access Code" %} diff --git a/docs/api/access_codes/unmanaged/README.md b/docs/api/access_codes/unmanaged/README.md index fa710ea15..1fbc68a9b 100644 --- a/docs/api/access_codes/unmanaged/README.md +++ b/docs/api/access_codes/unmanaged/README.md @@ -1,25 +1,5 @@ # Unmanaged Access Codes -## The unmanaged_access_code Object - -- [Properties](./#properties) -- [Errors](./#errors) -- [Warnings](./#warnings) -- [Events](./#events) -- [Endpoints](./#endpoints) - - -Represents an [unmanaged smart lock access code](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes/migrating-existing-access-codes). - -An access code is a code used for a keypad or pinpad device. Unlike physical keys, which can easily be lost or duplicated, PIN codes can be customized, tracked, and altered on the fly. - -When you create an access code on a device in Seam, it is created as a managed access code. Access codes that exist on a device that were not created through Seam are considered unmanaged codes. We strictly limit the operations that can be performed on unmanaged codes. - -Prior to using Seam to manage your devices, you may have used another lock management system to manage the access codes on your devices. Where possible, we help you keep any existing access codes on devices and transition those codes to ones managed by your Seam workspace. - -Not all providers support unmanaged access codes. The following providers do not support unmanaged access codes: - -- [Kwikset](https://docs.seam.co/latest/device-and-system-integration-guides/kwikset-locks) {% tabs %} {% tab title="Unmanaged Access Code" %} diff --git a/docs/api/thermostats/README.md b/docs/api/thermostats/README.md index 49a066cea..faf57f494 100644 --- a/docs/api/thermostats/README.md +++ b/docs/api/thermostats/README.md @@ -23,154 +23,8 @@ The Seam API represents a thermostat as a `device` resource that includes both b --- -## The device Object - -- [Properties](./#properties) -- [device.properties](./#device.properties) -- [Errors](./#errors) -- [Warnings](./#warnings) -- [Events](./#events) -- [Endpoints](./#endpoints) - - -Represents a [device](../../core-concepts/devices/README.md) that has been connected to Seam. {% tabs %} -{% tab title="Lock Device" %} - -A lock device resource. - -```json -{ - "can_program_online_access_codes": true, - "can_remotely_lock": true, - "can_remotely_unlock": true, - "capabilities_supported": ["access_code", "lock"], - "connected_account_id": "8e3a4f1b-2c7d-4a9e-8b5f-3d2c1a0b9e8f", - "created_at": "2025-03-27T02:08:16.418Z", - "custom_metadata": { "id": "internalId1" }, - "device_id": "a69569e1-133b-4a9d-b883-018641bfe543", - "device_type": "schlage_lock", - "display_name": "FRONT DOOR", - "errors": [], - "is_managed": true, - "location": { "location_name": "Front Door", "timezone": "America/New_York" }, - "nickname": "Front Door", - "properties": { - "appearance": { "name": "FRONT DOOR" }, - "battery": { "level": 0.48, "status": "good" }, - "battery_level": 0.48, - "code_constraints": [{ "constraint_type": "name_length", "max_length": 9 }], - "has_native_entry_events": true, - "image_alt_text": "Schlage Sense Smart Deadbolt with Camelot Trim, Front", - "image_url": "https://connect.getseam.com/_next/image?url=https://connect.getseam.com/assets/images/devices/schlage_sense-smart-deadbolt-with-camelot-trim_front.png&q=75&w=128", - "locked": false, - "manufacturer": "schlage", - "model": { - "accessory_keypad_supported": false, - "can_connect_accessory_keypad": false, - "display_name": "Encode", - "has_built_in_keypad": true, - "manufacturer_display_name": "Schlage", - "offline_access_codes_supported": false, - "online_access_codes_supported": true - }, - "name": "FRONT DOOR", - "offline_access_codes_enabled": false, - "online": true, - "online_access_codes_enabled": true, - "schlage_metadata": { - "device_id": "a69569e1-133b-4a9d-b883-018641bfe543", - "device_name": "FRONT DOOR", - "model": "Encode" - }, - "serial_number": "34000000000531e0", - "supported_code_lengths": [4, 5, 6, 7, 8], - "supports_backup_access_code_pool": true, - "supports_offline_access_codes": false - }, - "warnings": [], - "workspace_id": "5d7f2e1a-9c8b-4f3e-8d2c-1a0b9e8f7c6d" -} -``` -{% endtab %} -{% tab title="Noise Sensor Device" %} - -A noise sensor device resource. - -```json -{ - "capabilities_supported": ["noise_detection"], - "connected_account_id": "9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d", - "created_at": "2025-05-16T16:54:17.946049Z", - "custom_metadata": { "id": "internalId1" }, - "device_id": "f1e2d3c4-b5a6-4d7c-8e9f-0a1b2c3d4e5f", - "device_type": "minut_sensor", - "display_name": "Living Room", - "errors": [], - "is_managed": true, - "location": { - "location_name": "Jane's Test Home", - "timezone": "America/Los_Angeles" - }, - "nickname": "Living Room", - "properties": { - "appearance": { "name": "Living Room" }, - "battery": { "level": 1, "status": "full" }, - "battery_level": 1, - "currently_triggering_noise_threshold_ids": [], - "image_alt_text": "Minut Sensor", - "image_url": "https://connect.getseam.com/_next/image?url=https://connect.getseam.com/assets/images/devices/minut_gen-3_front.png&q=75&w=128", - "manufacturer": "minut", - "minut_metadata": { - "device_id": "770cd3153deca3dee0fe0614", - "device_location": { "latitude": 0, "longitude": 0 }, - "device_name": "Living Room", - "home_address": { - "city": "San Francisco", - "country": "US", - "notes": "string", - "post_code": "44210", - "region": "San Francisco County", - "street_name1": "2258 24th Street", - "street_name2": "" - }, - "home_id": "2978b6d5dba395ec08300e46", - "home_location": { "latitude": 0, "longitude": 0 }, - "home_name": "Jane's Test Home", - "latest_sensor_values": { - "accelerometer_z": { - "time": "2025-06-16T16:54:17.946049Z", - "value": -1.00390625 - }, - "humidity": { - "time": "2025-06-16T16:54:17.946049Z", - "value": 31.110000610351562 - }, - "pressure": { "time": "2025-06-16T16:54:17.946049Z", "value": 101923 }, - "sound": { - "time": "2025-06-16T16:54:17.946049Z", - "value": 47.7117919921875 - }, - "temperature": { - "time": "2025-06-16T16:54:17.946049Z", - "value": 21.270000457763672 - } - } - }, - "model": { - "display_name": "Noise Sensor", - "manufacturer_display_name": "Minut" - }, - "name": "Living Room", - "noise_level_decibels": 47.7117919921875, - "online": true - }, - "warnings": [], - "workspace_id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d" -} -``` -{% endtab %} {% tab title="Thermostat Device" %} A thermostat device resource. From a564a641c65bbfc581a880594873888bbdb9ab7f Mon Sep 17 00:00:00 2001 From: Evan Sosenko Date: Tue, 24 Jun 2025 17:23:10 -0700 Subject: [PATCH 04/13] Fix type error --- src/lib/layout/api-endpoint.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/layout/api-endpoint.ts b/src/lib/layout/api-endpoint.ts index 4a364f79d..c1000f0dc 100644 --- a/src/lib/layout/api-endpoint.ts +++ b/src/lib/layout/api-endpoint.ts @@ -168,6 +168,7 @@ export function setEndpointLayoutContext( file.response.actionAttempt = { name: actionAttempt.actionAttemptType, description: actionAttempt.description, + hidePreamble: false, propertyGroups: groupProperties( actionAttempt.properties.filter( ({ isUndocumented }) => !isUndocumented, From 007df825d240582e4cb32291ca805d8f2d25d163 Mon Sep 17 00:00:00 2001 From: Evan Sosenko Date: Tue, 24 Jun 2025 17:32:12 -0700 Subject: [PATCH 05/13] Flatten properties when include is used --- src/lib/layout/api-route.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/lib/layout/api-route.ts b/src/lib/layout/api-route.ts index 7c1dfe26c..545ebc934 100644 --- a/src/lib/layout/api-route.ts +++ b/src/lib/layout/api-route.ts @@ -240,7 +240,7 @@ const groupVariants = ( }) } - return property.variantGroups + const groups = property.variantGroups .reduce( (groups, variantGroup) => [ ...groups, @@ -273,6 +273,20 @@ const groupVariants = ( if (a.variantGroupKey === null || b.name == null) return 1 return a.name.localeCompare(b.name) }) + + if (include != null) { + const variants = groups + .flatMap((g) => g.variants) + .sort((a, b) => a.name.localeCompare(b.name)) + return [ + { + variantGroupKey: null, + variants, + }, + ] + } + + return groups } const isDiscriminatedListProperty = ( From 0ca92cce675c921ef0467cfeccee361eb2facd50 Mon Sep 17 00:00:00 2001 From: Evan Sosenko Date: Tue, 24 Jun 2025 17:33:53 -0700 Subject: [PATCH 06/13] Flatten property groups when using include --- src/lib/layout/api-route.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/lib/layout/api-route.ts b/src/lib/layout/api-route.ts index 545ebc934..6cebe99a3 100644 --- a/src/lib/layout/api-route.ts +++ b/src/lib/layout/api-route.ts @@ -341,7 +341,7 @@ export const groupProperties = ( return a.name.localeCompare(b.name) }) - return propertyGroups + const groups = propertyGroups .reduce( (groups, propertyGroup) => [ ...groups, @@ -374,6 +374,20 @@ export const groupProperties = ( if (b.name == null) return 1 return a.name.localeCompare(b.name) }) + + if (include != null) { + const properties = groups + .flatMap((g) => g.properties) + .sort((a, b) => a.name.localeCompare(b.name)) + return [ + { + propertyGroupKey: null, + properties, + }, + ] + } + + return groups } const groupEventsByRoutePath = ( From aeabcae2b9055b591944cba473e773772f44805b Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Wed, 25 Jun 2025 00:35:50 +0000 Subject: [PATCH 07/13] ci: Generate docs --- docs/api/access_codes/README.md | 50 +- docs/api/access_codes/unmanaged/README.md | 50 +- docs/api/thermostats/README.md | 1601 ++++++++++----------- 3 files changed, 847 insertions(+), 854 deletions(-) diff --git a/docs/api/access_codes/README.md b/docs/api/access_codes/README.md index b72efebda..187a19885 100644 --- a/docs/api/access_codes/README.md +++ b/docs/api/access_codes/README.md @@ -2422,12 +2422,24 @@ Invalid code length for August lock. --- +**`august_lock_missing_bridge`** + +Indicates that the lock is not connected to a bridge. + +--- + **`august_lock_missing_keypad`** August lock is missing a keypad. --- +**`august_lock_not_authorized`** + +Indicates that the user is not authorized to use the August lock. + +--- + **`august_lock_temporarily_offline`** August lock is temporarily offline. @@ -2482,6 +2494,12 @@ Duplicate access code detected on device. --- +**`empty_backup_access_code_pool`** + +Indicates that the [backup access code pool](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes/backup-access-codes) is empty. + +--- + **`failed_to_remove_from_device`** Failed to remove code from device. @@ -2566,6 +2584,12 @@ No space for access code on device. --- +**`salto_ks_subscription_limit_exceeded`** + +Indicates that the Salto site user limit has been reached. + +--- + **`salto_ks_user_not_subscribed`** Salto site user is not subscribed. @@ -2614,32 +2638,6 @@ Potential duplicate access code detected. --- -### Access Codes -**`empty_backup_access_code_pool`** - -Indicates that the [backup access code pool](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes/backup-access-codes) is empty. - ---- - -### Locks -**`august_lock_missing_bridge`** - -Indicates that the lock is not connected to a bridge. - ---- - -**`august_lock_not_authorized`** - -Indicates that the user is not authorized to use the August lock. - ---- - -**`salto_ks_subscription_limit_exceeded`** - -Indicates that the Salto site user limit has been reached. - ---- - ## Warnings diff --git a/docs/api/access_codes/unmanaged/README.md b/docs/api/access_codes/unmanaged/README.md index 1fbc68a9b..efdb960d3 100644 --- a/docs/api/access_codes/unmanaged/README.md +++ b/docs/api/access_codes/unmanaged/README.md @@ -2238,12 +2238,24 @@ Invalid code length for August lock. --- +**`august_lock_missing_bridge`** + +Indicates that the lock is not connected to a bridge. + +--- + **`august_lock_missing_keypad`** August lock is missing a keypad. --- +**`august_lock_not_authorized`** + +Indicates that the user is not authorized to use the August lock. + +--- + **`august_lock_temporarily_offline`** August lock is temporarily offline. @@ -2298,6 +2310,12 @@ Duplicate access code detected on device. --- +**`empty_backup_access_code_pool`** + +Indicates that the [backup access code pool](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes/backup-access-codes) is empty. + +--- + **`failed_to_remove_from_device`** Failed to remove code from device. @@ -2382,6 +2400,12 @@ No space for access code on device. --- +**`salto_ks_subscription_limit_exceeded`** + +Indicates that the Salto site user limit has been reached. + +--- + **`salto_ks_user_not_subscribed`** Salto site user is not subscribed. @@ -2430,32 +2454,6 @@ Potential duplicate access code detected. --- -### Access Codes -**`empty_backup_access_code_pool`** - -Indicates that the [backup access code pool](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes/backup-access-codes) is empty. - ---- - -### Locks -**`august_lock_missing_bridge`** - -Indicates that the lock is not connected to a bridge. - ---- - -**`august_lock_not_authorized`** - -Indicates that the user is not authorized to use the August lock. - ---- - -**`salto_ks_subscription_limit_exceeded`** - -Indicates that the Salto site user limit has been reached. - ---- - ## Warnings diff --git a/docs/api/thermostats/README.md b/docs/api/thermostats/README.md index faf57f494..0c185e57b 100644 --- a/docs/api/thermostats/README.md +++ b/docs/api/thermostats/README.md @@ -1700,6 +1700,73 @@ Unique identifier for the Seam workspace associated with the device. +--- + +**`active_thermostat_schedule`** *Object* + +Active [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md). + + + +
+ Child Properties + + - climate_preset_key String + + Key of the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) to use for the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md). + + - created_at Datetime + + Date and time at which the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md) was created. + + - device_id UUID + + ID of the desired [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) device. + + - ends_at Datetime + + Date and time at which the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + + - errors List of Objects + + Errors associated with the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md). + +- error_code String + + Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + + +- message String + + Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + - is_override_allowed Boolean + + Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md) starts. + + - max_override_period_minutes Number + + Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). See also [Specifying Manual Override Permissions](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md#specifying-manual-override-permissions). + + - name String + + User-friendly name to identify the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md). + + - starts_at Datetime + + Date and time at which the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + + - thermostat_schedule_id UUID + + ID of the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md). + + - workspace_id UUID + + ID of the [workspace](../../core-concepts/workspaces/README.md) that contains the thermostat schedule. + +
+ --- **`akiles_metadata`** *Object* @@ -1818,6 +1885,107 @@ Metadata for an August device. +--- + +**`available_climate_presets`** *List* *of Objects* + +Available [climate presets](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) for the thermostat. + + + +
+ Child Object Properties + + can_delete Boolean + + Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be deleted. + + can_edit Boolean + + Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be edited. + + can_program Boolean + + Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be programmed in a thermostat daily program. + + climate_preset_key String + + Unique key to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). + + cooling_set_point_celsius Number + + Temperature to which the thermostat should cool (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). + + cooling_set_point_fahrenheit Number + + Temperature to which the thermostat should cool (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). + + display_name String + + Display name for the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). + + fan_mode_setting Enum + + Desired [fan mode setting](https://docs.seam.co/latest/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. +
+ Enum values: + + - auto + - on + - circulate +
+ + heating_set_point_celsius Number + + Temperature to which the thermostat should heat (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). + + heating_set_point_fahrenheit Number + + Temperature to which the thermostat should heat (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). + + hvac_mode_setting Enum + + Desired [HVAC mode](../../capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode.md) setting, such as `heat`, `cool`, `heat_cool`, or `off`. +
+ Enum values: + + - off + - heat + - cool + - heat_cool +
+ + manual_override_allowed Boolean + + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md#specifying-manual-override-permissions). + + {% hint style="warning" %} + **Deprecated**. Use 'thermostat_schedule.is_override_allowed' + {% endhint %} + + name String + + User-friendly name to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). +
+ +--- + +**`available_fan_mode_settings`** *List* *of Enums* + +Fan mode settings that the thermostat supports. + + + + +--- + +**`available_hvac_mode_settings`** *List* *of Enums* + +HVAC mode settings that the thermostat supports. + + + + --- **`avigilon_alta_metadata`** *Object* @@ -1903,65 +2071,235 @@ Metadata for a ControlByWeb device. --- -**`dormakaba_oracode_metadata`** *Object* +**`current_climate_setting`** *Object* -Metadata for a dormakaba Oracode device. +Current climate setting.
Child Properties - - device_id Object + - can_delete Boolean - Device ID for a dormakaba Oracode device. + Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be deleted. - - door_id Number + - can_edit Boolean - Door ID for a dormakaba Oracode device. + Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be edited. - - door_is_wireless Boolean + - can_program Boolean - Indicates whether a door is wireless for a dormakaba Oracode device. + Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be programmed in a thermostat daily program. - - door_name String + - climate_preset_key String - Door name for a dormakaba Oracode device. + Unique key to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). - - iana_timezone String + - cooling_set_point_celsius Number - IANA time zone for a dormakaba Oracode device. + Temperature to which the thermostat should cool (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - - predefined_time_slots List of Objects + - cooling_set_point_fahrenheit Number - Predefined time slots for a dormakaba Oracode device. - -- check_in_time String + Temperature to which the thermostat should cool (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - Check in time for a time slot for a dormakaba Oracode device. + - display_name String + + Display name for the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). + - fan_mode_setting Enum + + Desired [fan mode setting](https://docs.seam.co/latest/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. +
+ Enum values: + + - auto + - on + - circulate +
-- check_out_time String + - heating_set_point_celsius Number + + Temperature to which the thermostat should heat (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - Checkout time for a time slot for a dormakaba Oracode device. + - heating_set_point_fahrenheit Number + + Temperature to which the thermostat should heat (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). + - hvac_mode_setting Enum + + Desired [HVAC mode](../../capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode.md) setting, such as `heat`, `cool`, `heat_cool`, or `off`. +
+ Enum values: + + - off + - heat + - cool + - heat_cool +
-- dormakaba_oracode_user_level_id UUID + - manual_override_allowed Boolean + + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md#specifying-manual-override-permissions). + + {% hint style="warning" %} + **Deprecated**. Use 'thermostat_schedule.is_override_allowed' + {% endhint %} - ID of a user level for a dormakaba Oracode device. + - name String + + User-friendly name to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). +
-- ext_dormakaba_oracode_user_level_prefix Number +--- - Prefix for a user level for a dormakaba Oracode device. +**`default_climate_setting`** *Object* -- is_24_hour Boolean +{% hint style="warning" %} +**Deprecated**. use fallback_climate_preset_key to specify a fallback climate preset instead. +{% endhint %} - Indicates whether a time slot for a dormakaba Oracode device is a 24-hour time slot. +
+ Child Properties + + - can_delete Boolean + + Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be deleted. + + - can_edit Boolean + + Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be edited. + + - can_program Boolean + + Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be programmed in a thermostat daily program. + + - climate_preset_key String + + Unique key to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). + + - cooling_set_point_celsius Number + + Temperature to which the thermostat should cool (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). + + - cooling_set_point_fahrenheit Number + + Temperature to which the thermostat should cool (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). + + - display_name String + + Display name for the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). + + - fan_mode_setting Enum + + Desired [fan mode setting](https://docs.seam.co/latest/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. +
+ Enum values: + + - auto + - on + - circulate +
+ + - heating_set_point_celsius Number + + Temperature to which the thermostat should heat (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). + + - heating_set_point_fahrenheit Number + + Temperature to which the thermostat should heat (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). + + - hvac_mode_setting Enum + + Desired [HVAC mode](../../capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode.md) setting, such as `heat`, `cool`, `heat_cool`, or `off`. +
+ Enum values: + + - off + - heat + - cool + - heat_cool +
+ + - manual_override_allowed Boolean + + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md#specifying-manual-override-permissions). + + {% hint style="warning" %} + **Deprecated**. Use 'thermostat_schedule.is_override_allowed' + {% endhint %} + + - name String + + User-friendly name to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). + +
+ +--- + +**`dormakaba_oracode_metadata`** *Object* + +Metadata for a dormakaba Oracode device. + + + +
+ Child Properties + + - device_id Object + + Device ID for a dormakaba Oracode device. + + - door_id Number + + Door ID for a dormakaba Oracode device. + + - door_is_wireless Boolean + + Indicates whether a door is wireless for a dormakaba Oracode device. + + - door_name String + + Door name for a dormakaba Oracode device. + + - iana_timezone String + + IANA time zone for a dormakaba Oracode device. + + - predefined_time_slots List of Objects + + Predefined time slots for a dormakaba Oracode device. + +- check_in_time String + + Check in time for a time slot for a dormakaba Oracode device. + + +- check_out_time String + + Checkout time for a time slot for a dormakaba Oracode device. + + +- dormakaba_oracode_user_level_id UUID + + ID of a user level for a dormakaba Oracode device. + + +- ext_dormakaba_oracode_user_level_prefix Number + + Prefix for a user level for a dormakaba Oracode device. + + +- is_24_hour Boolean + + Indicates whether a time slot for a dormakaba Oracode device is a 24-hour time slot. -- is_biweekly_mode Boolean + +- is_biweekly_mode Boolean Indicates whether a time slot for a dormakaba Oracode device is in biweekly mode. @@ -2021,6 +2359,33 @@ Metadata for an ecobee device.
+--- + +**`fallback_climate_preset_key`** *String* + +Key of the [fallback climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset.md) for the thermostat. + + + + +--- + +**`fan_mode_setting`** *Enum* + + +{% hint style="warning" %} +**Deprecated**. Use `current_climate_setting.fan_mode_setting` instead. +{% endhint %} + +
+Enum values + +- auto +- on +- circulate +
+ + --- **`four_suites_metadata`** *Object* @@ -2171,6 +2536,42 @@ Metadata for an igloohome device. +--- + +**`is_cooling`** *Boolean* + +Indicates whether the connected HVAC system is currently cooling, as reported by the thermostat. + + + + +--- + +**`is_fan_running`** *Boolean* + +Indicates whether the fan in the connected HVAC system is currently running, as reported by the thermostat. + + + + +--- + +**`is_heating`** *Boolean* + +Indicates whether the connected HVAC system is currently heating, as reported by the thermostat. + + + + +--- + +**`is_temporary_manual_override_active`** *Boolean* + +Indicates whether the current thermostat settings differ from the most recent active program or schedule that Seam activated. For this condition to occur, `current_climate_setting.manual_override_allowed` must also be `true`. + + + + --- **`kwikset_metadata`** *Object* @@ -2223,74 +2624,164 @@ Metadata for a Lockly device. --- -**`minut_metadata`** *Object* +**`max_cooling_set_point_celsius`** *Number* -Metadata for a Minut device. +Maximum [cooling set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#cooling-set-point) in °C. -
- Child Properties - - device_id String - - Device ID for a Minut device. +--- - - device_name String - - Device name for a Minut device. +**`max_cooling_set_point_fahrenheit`** *Number* - - latest_sensor_values Object - - Latest sensor values for a Minut device. +Maximum [cooling set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#cooling-set-point) in °F. - - latest_sensor_values.accelerometer_z Object - - Latest accelerometer Z-axis reading for a Minut device. - - latest_sensor_values.accelerometer_z.time String - - Time of latest accelerometer Z-axis reading for a Minut device. - - latest_sensor_values.accelerometer_z.value Number - - Value of latest accelerometer Z-axis reading for a Minut device. - - latest_sensor_values.humidity Object - - Latest humidity reading for a Minut device. +--- - - latest_sensor_values.humidity.time String - - Time of latest humidity reading for a Minut device. +**`max_heating_set_point_celsius`** *Number* - - latest_sensor_values.humidity.value Number - - Value of latest humidity reading for a Minut device. +Maximum [heating set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#heating-set-point) in °C. - - latest_sensor_values.pressure Object - - Latest pressure reading for a Minut device. - - latest_sensor_values.pressure.time String - - Time of latest pressure reading for a Minut device. - - latest_sensor_values.pressure.value Number - - Value of latest pressure reading for a Minut device. - - latest_sensor_values.sound Object - - Latest sound reading for a Minut device. +--- - - latest_sensor_values.sound.time String - - Time of latest sound reading for a Minut device. +**`max_heating_set_point_fahrenheit`** *Number* - - latest_sensor_values.sound.value Number - - Value of latest sound reading for a Minut device. +Maximum [heating set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#heating-set-point) in °F. + + + + +--- + +**`min_cooling_set_point_celsius`** *Number* + +Minimum [cooling set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#cooling-set-point) in °C. + + + + +--- + +**`min_cooling_set_point_fahrenheit`** *Number* + +Minimum [cooling set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#cooling-set-point) in °F. + + + + +--- + +**`min_heating_cooling_delta_celsius`** *Number* + +Minimum [temperature difference](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. + + + + +--- + +**`min_heating_cooling_delta_fahrenheit`** *Number* + +Minimum [temperature difference](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. + + + + +--- + +**`min_heating_set_point_celsius`** *Number* + +Minimum [heating set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#heating-set-point) in °C. + + + + +--- + +**`min_heating_set_point_fahrenheit`** *Number* + +Minimum [heating set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#heating-set-point) in °F. + + + + +--- + +**`minut_metadata`** *Object* + +Metadata for a Minut device. + + + +
+ Child Properties + + - device_id String + + Device ID for a Minut device. + + - device_name String + + Device name for a Minut device. + + - latest_sensor_values Object + + Latest sensor values for a Minut device. + + - latest_sensor_values.accelerometer_z Object + + Latest accelerometer Z-axis reading for a Minut device. + + - latest_sensor_values.accelerometer_z.time String + + Time of latest accelerometer Z-axis reading for a Minut device. + + - latest_sensor_values.accelerometer_z.value Number + + Value of latest accelerometer Z-axis reading for a Minut device. + + - latest_sensor_values.humidity Object + + Latest humidity reading for a Minut device. + + - latest_sensor_values.humidity.time String + + Time of latest humidity reading for a Minut device. + + - latest_sensor_values.humidity.value Number + + Value of latest humidity reading for a Minut device. + + - latest_sensor_values.pressure Object + + Latest pressure reading for a Minut device. + + - latest_sensor_values.pressure.time String + + Time of latest pressure reading for a Minut device. + + - latest_sensor_values.pressure.value Number + + Value of latest pressure reading for a Minut device. + + - latest_sensor_values.sound Object + + Latest sound reading for a Minut device. + + - latest_sensor_values.sound.time String + + Time of latest sound reading for a Minut device. + + - latest_sensor_values.sound.value Number + + Value of latest sound reading for a Minut device. - latest_sensor_values.temperature Object @@ -2475,6 +2966,15 @@ Indicates whether the device is online. +--- + +**`relative_humidity`** *Number* + +Reported relative humidity, as a value between 0 and 1, inclusive. + + + + --- **`salto_ks_metadata`** *Object* @@ -2659,742 +3159,87 @@ Metadata for a SmartThings device.
- Child Properties - - - device_id String - - Device ID for a SmartThings device. - - - device_name String - - Device name for a SmartThings device. - - - location_id String - - Location ID for a SmartThings device. - - - model String - - Model for a SmartThings device. - -
- ---- - -**`tado_metadata`** *Object* - -Metadata for a tado° device. - - - -
- Child Properties - - - device_type String - - Device type for a tado° device. - - - serial_no String - - Serial number for a tado° device. - -
- ---- - -**`tedee_metadata`** *Object* - -Metadata for a Tedee device. - - - -
- Child Properties - - - bridge_id Number - - Bridge ID for a Tedee device. - - - bridge_name String - - Bridge name for a Tedee device. - - - device_id Number - - Device ID for a Tedee device. - - - device_model String - - Device model for a Tedee device. - - - device_name String - - Device name for a Tedee device. - - - keypad_id Number - - Keypad ID for a Tedee device. - - - serial_number String - - Serial number for a Tedee device. - -
- ---- - -**`ttlock_metadata`** *Object* - -Metadata for a TTLock device. - - - -
- Child Properties - - - feature_value String - - Feature value for a TTLock device. - - - features Object - - Features for a TTLock device. - - - features.incomplete_keyboard_passcode Boolean - - Indicates whether a TTLock device supports an incomplete keyboard passcode. - - - features.lock_command Boolean - - Indicates whether a TTLock device supports the lock command. - - - features.passcode Boolean - - Indicates whether a TTLock device supports a passcode. - - - features.passcode_management Boolean - - Indicates whether a TTLock device supports passcode management. - - - features.unlock_via_gateway Boolean - - Indicates whether a TTLock device supports unlock via gateway. - - - features.wifi Boolean - - Indicates whether a TTLock device supports Wi-Fi. - - - has_gateway Boolean - - Indicates whether a TTLock device has a gateway. - - - lock_alias String - - Lock alias for a TTLock device. - - - lock_id Number - - Lock ID for a TTLock device. - - - wireless_keypads List of Objects - - Wireless keypads for a TTLock device. - -- wireless_keypad_id Number - - ID for a wireless keypad for a TTLock device. - - -- wireless_keypad_name String - - Name for a wireless keypad for a TTLock device. - - -
- ---- - -**`two_n_metadata`** *Object* - -Metadata for a 2N device. - - - -
- Child Properties - - - device_id Number - - Device ID for a 2N device. - - - device_name String - - Device name for a 2N device. - -
- ---- - -**`visionline_metadata`** *Object* - -Metadata for an ASSA ABLOY Visionline system. - - - -
- Child Properties - - - encoder_id String - - Encoder ID for an ASSA ABLOY Visionline system. - -
- ---- - -**`wyze_metadata`** *Object* - -Metadata for a Wyze device. - - - -
- Child Properties - - - device_id String - - Device ID for a Wyze device. - - - device_info_model String - - Device information model for a Wyze device. - - - device_name String - - Device name for a Wyze device. - - - keypad_uuid String - - Keypad UUID for a Wyze device. - - - locker_status_hardlock Number - - Locker status (hardlock) for a Wyze device. - - - product_model String - - Product model for a Wyze device. - - - product_name String - - Product name for a Wyze device. - - - product_type String - - Product type for a Wyze device. - -
- ---- - -## Thermostats -**`active_thermostat_schedule`** *Object* - -Active [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md). - - - -
- Child Properties - - - climate_preset_key String - - Key of the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) to use for the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md). - - - created_at Datetime - - Date and time at which the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md) was created. - - - device_id UUID - - ID of the desired [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) device. - - - ends_at Datetime - - Date and time at which the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - - - errors List of Objects - - Errors associated with the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md). - -- error_code String - - Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - - -- message String - - Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - is_override_allowed Boolean - - Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md) starts. - - - max_override_period_minutes Number - - Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). See also [Specifying Manual Override Permissions](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md#specifying-manual-override-permissions). - - - name String - - User-friendly name to identify the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md). - - - starts_at Datetime - - Date and time at which the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - - - thermostat_schedule_id UUID - - ID of the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md). - - - workspace_id UUID - - ID of the [workspace](../../core-concepts/workspaces/README.md) that contains the thermostat schedule. - -
- ---- - -**`available_climate_presets`** *List* *of Objects* - -Available [climate presets](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) for the thermostat. - - - -
- Child Object Properties - - can_delete Boolean - - Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be deleted. - - can_edit Boolean - - Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be edited. - - can_program Boolean - - Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be programmed in a thermostat daily program. - - climate_preset_key String - - Unique key to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). - - cooling_set_point_celsius Number - - Temperature to which the thermostat should cool (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - - cooling_set_point_fahrenheit Number - - Temperature to which the thermostat should cool (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - - display_name String - - Display name for the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). - - fan_mode_setting Enum - - Desired [fan mode setting](https://docs.seam.co/latest/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. -
- Enum values: - - - auto - - on - - circulate -
- - heating_set_point_celsius Number - - Temperature to which the thermostat should heat (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - - heating_set_point_fahrenheit Number - - Temperature to which the thermostat should heat (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - - hvac_mode_setting Enum - - Desired [HVAC mode](../../capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode.md) setting, such as `heat`, `cool`, `heat_cool`, or `off`. -
- Enum values: - - - off - - heat - - cool - - heat_cool -
- - manual_override_allowed Boolean - - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md#specifying-manual-override-permissions). - - {% hint style="warning" %} - **Deprecated**. Use 'thermostat_schedule.is_override_allowed' - {% endhint %} - - name String - - User-friendly name to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). -
- ---- - -**`available_fan_mode_settings`** *List* *of Enums* - -Fan mode settings that the thermostat supports. - - - - ---- - -**`available_hvac_mode_settings`** *List* *of Enums* - -HVAC mode settings that the thermostat supports. - - - - ---- - -**`current_climate_setting`** *Object* - -Current climate setting. - - - -
- Child Properties - - - can_delete Boolean - - Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be deleted. - - - can_edit Boolean - - Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be edited. - - - can_program Boolean - - Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be programmed in a thermostat daily program. - - - climate_preset_key String - - Unique key to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). - - - cooling_set_point_celsius Number - - Temperature to which the thermostat should cool (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - - - cooling_set_point_fahrenheit Number - - Temperature to which the thermostat should cool (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - - - display_name String - - Display name for the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). - - - fan_mode_setting Enum - - Desired [fan mode setting](https://docs.seam.co/latest/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. -
- Enum values: - - - auto - - on - - circulate -
- - - heating_set_point_celsius Number - - Temperature to which the thermostat should heat (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - - - heating_set_point_fahrenheit Number - - Temperature to which the thermostat should heat (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - - - hvac_mode_setting Enum - - Desired [HVAC mode](../../capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode.md) setting, such as `heat`, `cool`, `heat_cool`, or `off`. -
- Enum values: - - - off - - heat - - cool - - heat_cool -
- - - manual_override_allowed Boolean - - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md#specifying-manual-override-permissions). - - {% hint style="warning" %} - **Deprecated**. Use 'thermostat_schedule.is_override_allowed' - {% endhint %} - - - name String - - User-friendly name to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). - -
- ---- - -**`default_climate_setting`** *Object* - - -{% hint style="warning" %} -**Deprecated**. use fallback_climate_preset_key to specify a fallback climate preset instead. -{% endhint %} - - -
- Child Properties - - - can_delete Boolean - - Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be deleted. - - - can_edit Boolean - - Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be edited. - - - can_program Boolean - - Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be programmed in a thermostat daily program. - - - climate_preset_key String - - Unique key to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). - - - cooling_set_point_celsius Number - - Temperature to which the thermostat should cool (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - - - cooling_set_point_fahrenheit Number - - Temperature to which the thermostat should cool (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - - - display_name String - - Display name for the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). - - - fan_mode_setting Enum - - Desired [fan mode setting](https://docs.seam.co/latest/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. -
- Enum values: - - - auto - - on - - circulate -
- - - heating_set_point_celsius Number - - Temperature to which the thermostat should heat (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - - - heating_set_point_fahrenheit Number - - Temperature to which the thermostat should heat (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - - - hvac_mode_setting Enum - - Desired [HVAC mode](../../capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode.md) setting, such as `heat`, `cool`, `heat_cool`, or `off`. -
- Enum values: - - - off - - heat - - cool - - heat_cool -
- - - manual_override_allowed Boolean - - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md#specifying-manual-override-permissions). - - {% hint style="warning" %} - **Deprecated**. Use 'thermostat_schedule.is_override_allowed' - {% endhint %} - - - name String - - User-friendly name to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). - -
- ---- - -**`fallback_climate_preset_key`** *String* - -Key of the [fallback climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset.md) for the thermostat. - - - - ---- - -**`fan_mode_setting`** *Enum* - - -{% hint style="warning" %} -**Deprecated**. Use `current_climate_setting.fan_mode_setting` instead. -{% endhint %} - -
-Enum values - -- auto -- on -- circulate -
- - ---- - -**`is_cooling`** *Boolean* - -Indicates whether the connected HVAC system is currently cooling, as reported by the thermostat. - - - - ---- - -**`is_fan_running`** *Boolean* - -Indicates whether the fan in the connected HVAC system is currently running, as reported by the thermostat. - - - - ---- - -**`is_heating`** *Boolean* - -Indicates whether the connected HVAC system is currently heating, as reported by the thermostat. - - - - ---- - -**`is_temporary_manual_override_active`** *Boolean* - -Indicates whether the current thermostat settings differ from the most recent active program or schedule that Seam activated. For this condition to occur, `current_climate_setting.manual_override_allowed` must also be `true`. - - - - ---- - -**`max_cooling_set_point_celsius`** *Number* - -Maximum [cooling set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#cooling-set-point) in °C. - - - - ---- - -**`max_cooling_set_point_fahrenheit`** *Number* - -Maximum [cooling set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#cooling-set-point) in °F. - - - - ---- - -**`max_heating_set_point_celsius`** *Number* - -Maximum [heating set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#heating-set-point) in °C. - - - - ---- - -**`max_heating_set_point_fahrenheit`** *Number* - -Maximum [heating set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#heating-set-point) in °F. - - - - ---- - -**`min_cooling_set_point_celsius`** *Number* - -Minimum [cooling set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#cooling-set-point) in °C. - - - - ---- - -**`min_cooling_set_point_fahrenheit`** *Number* - -Minimum [cooling set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#cooling-set-point) in °F. - - - - ---- + Child Properties -**`min_heating_cooling_delta_celsius`** *Number* + - device_id String + + Device ID for a SmartThings device. -Minimum [temperature difference](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. + - device_name String + + Device name for a SmartThings device. + - location_id String + + Location ID for a SmartThings device. + - model String + + Model for a SmartThings device. +
--- -**`min_heating_cooling_delta_fahrenheit`** *Number* - -Minimum [temperature difference](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. +**`tado_metadata`** *Object* +Metadata for a tado° device. ---- +
+ Child Properties -**`min_heating_set_point_celsius`** *Number* + - device_type String + + Device type for a tado° device. -Minimum [heating set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#heating-set-point) in °C. + - serial_no String + + Serial number for a tado° device. +
+--- +**`tedee_metadata`** *Object* ---- +Metadata for a Tedee device. -**`min_heating_set_point_fahrenheit`** *Number* -Minimum [heating set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#heating-set-point) in °F. +
+ Child Properties + - bridge_id Number + + Bridge ID for a Tedee device. + - bridge_name String + + Bridge name for a Tedee device. ---- + - device_id Number + + Device ID for a Tedee device. -**`relative_humidity`** *Number* + - device_model String + + Device model for a Tedee device. -Reported relative humidity, as a value between 0 and 1, inclusive. + - device_name String + + Device name for a Tedee device. + - keypad_id Number + + Keypad ID for a Tedee device. + - serial_number String + + Serial number for a Tedee device. +
--- @@ -3536,6 +3381,160 @@ Current [weekly program](../../capability-guides/thermostats/creating-and-managi --- +**`ttlock_metadata`** *Object* + +Metadata for a TTLock device. + + + +
+ Child Properties + + - feature_value String + + Feature value for a TTLock device. + + - features Object + + Features for a TTLock device. + + - features.incomplete_keyboard_passcode Boolean + + Indicates whether a TTLock device supports an incomplete keyboard passcode. + + - features.lock_command Boolean + + Indicates whether a TTLock device supports the lock command. + + - features.passcode Boolean + + Indicates whether a TTLock device supports a passcode. + + - features.passcode_management Boolean + + Indicates whether a TTLock device supports passcode management. + + - features.unlock_via_gateway Boolean + + Indicates whether a TTLock device supports unlock via gateway. + + - features.wifi Boolean + + Indicates whether a TTLock device supports Wi-Fi. + + - has_gateway Boolean + + Indicates whether a TTLock device has a gateway. + + - lock_alias String + + Lock alias for a TTLock device. + + - lock_id Number + + Lock ID for a TTLock device. + + - wireless_keypads List of Objects + + Wireless keypads for a TTLock device. + +- wireless_keypad_id Number + + ID for a wireless keypad for a TTLock device. + + +- wireless_keypad_name String + + Name for a wireless keypad for a TTLock device. + + +
+ +--- + +**`two_n_metadata`** *Object* + +Metadata for a 2N device. + + + +
+ Child Properties + + - device_id Number + + Device ID for a 2N device. + + - device_name String + + Device name for a 2N device. + +
+ +--- + +**`visionline_metadata`** *Object* + +Metadata for an ASSA ABLOY Visionline system. + + + +
+ Child Properties + + - encoder_id String + + Encoder ID for an ASSA ABLOY Visionline system. + +
+ +--- + +**`wyze_metadata`** *Object* + +Metadata for a Wyze device. + + + +
+ Child Properties + + - device_id String + + Device ID for a Wyze device. + + - device_info_model String + + Device information model for a Wyze device. + + - device_name String + + Device name for a Wyze device. + + - keypad_uuid String + + Keypad UUID for a Wyze device. + + - locker_status_hardlock Number + + Locker status (hardlock) for a Wyze device. + + - product_model String + + Product model for a Wyze device. + + - product_name String + + Product name for a Wyze device. + + - product_type String + + Product type for a Wyze device. + +
+ +--- + ## Errors @@ -3545,6 +3544,12 @@ Indicates that the account is disconnected. --- +**`auxiliary_heat_running`** + +Indicates that the auxiliary heat is running. + +--- + **`bridge_disconnected`** Indicates that the Seam API cannot communicate with [Seam Bridge](../../capability-guides/seam-bridge.md), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](../../capability-guides/access-systems/troubleshooting-your-access-control-system.md#acs_system.errors.seam_bridge_disconnected). @@ -3605,13 +3610,6 @@ Indicates that the lock is not paired with a gateway. --- -### Thermostats -**`auxiliary_heat_running`** - -Indicates that the auxiliary heat is running. - ---- - ## Warnings @@ -3639,6 +3637,12 @@ Indicates that Seam detected that the Lockly device does not have a time zone co --- +**`nest_thermostat_in_manual_eco_mode`** + +Indicates that the Nest thermostat is in manual eco mode. + +--- + **`salto_ks_office_mode`** Indicates that the Salto KS lock is in Office Mode. Access Codes will not unlock doors. @@ -3663,6 +3667,12 @@ Indicates that a scheduled maintenance window has been detected. --- +**`temperature_threshold_exceeded`** + +Indicates that the temperature threshold has been exceeded. + +--- + **`third_party_integration_detected`** Indicates that a third-party integration has been detected. @@ -3681,19 +3691,6 @@ Indicates that the Wyze Lock is not connected to a gateway. --- -### Thermostats -**`nest_thermostat_in_manual_eco_mode`** - -Indicates that the Nest thermostat is in manual eco mode. - ---- - -**`temperature_threshold_exceeded`** - -Indicates that the temperature threshold has been exceeded. - ---- - ## Events From 3f281d36028a87e43c91f002061c6d23d9d3beb6 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Wed, 25 Jun 2025 02:41:23 +0000 Subject: [PATCH 08/13] ci: Generate docs --- docs/api/thermostats/README.md | 1681 +++++++++++++++----------------- 1 file changed, 766 insertions(+), 915 deletions(-) diff --git a/docs/api/thermostats/README.md b/docs/api/thermostats/README.md index 4b249c94e..fd1fa2ab2 100644 --- a/docs/api/thermostats/README.md +++ b/docs/api/thermostats/README.md @@ -23,154 +23,8 @@ The Seam API represents a thermostat as a `device` resource that includes both b --- -## The device Object - -- [Properties](./#properties) -- [device.properties](./#device.properties) -- [Errors](./#errors) -- [Warnings](./#warnings) -- [Events](./#events) -- [Endpoints](./#endpoints) - - -Represents a [device](../../core-concepts/devices/README.md) that has been connected to Seam. {% tabs %} -{% tab title="Lock Device" %} - -A lock device resource. - -```json -{ - "can_program_online_access_codes": true, - "can_remotely_lock": true, - "can_remotely_unlock": true, - "capabilities_supported": ["access_code", "lock"], - "connected_account_id": "8e3a4f1b-2c7d-4a9e-8b5f-3d2c1a0b9e8f", - "created_at": "2025-03-27T02:08:16.418Z", - "custom_metadata": { "id": "internalId1" }, - "device_id": "a69569e1-133b-4a9d-b883-018641bfe543", - "device_type": "schlage_lock", - "display_name": "FRONT DOOR", - "errors": [], - "is_managed": true, - "location": { "location_name": "Front Door", "timezone": "America/New_York" }, - "nickname": "Front Door", - "properties": { - "appearance": { "name": "FRONT DOOR" }, - "battery": { "level": 0.48, "status": "good" }, - "battery_level": 0.48, - "code_constraints": [{ "constraint_type": "name_length", "max_length": 9 }], - "has_native_entry_events": true, - "image_alt_text": "Schlage Sense Smart Deadbolt with Camelot Trim, Front", - "image_url": "https://connect.getseam.com/_next/image?url=https://connect.getseam.com/assets/images/devices/schlage_sense-smart-deadbolt-with-camelot-trim_front.png&q=75&w=128", - "locked": false, - "manufacturer": "schlage", - "model": { - "accessory_keypad_supported": false, - "can_connect_accessory_keypad": false, - "display_name": "Encode", - "has_built_in_keypad": true, - "manufacturer_display_name": "Schlage", - "offline_access_codes_supported": false, - "online_access_codes_supported": true - }, - "name": "FRONT DOOR", - "offline_access_codes_enabled": false, - "online": true, - "online_access_codes_enabled": true, - "schlage_metadata": { - "device_id": "a69569e1-133b-4a9d-b883-018641bfe543", - "device_name": "FRONT DOOR", - "model": "Encode" - }, - "serial_number": "34000000000531e0", - "supported_code_lengths": [4, 5, 6, 7, 8], - "supports_backup_access_code_pool": true, - "supports_offline_access_codes": false - }, - "warnings": [], - "workspace_id": "5d7f2e1a-9c8b-4f3e-8d2c-1a0b9e8f7c6d" -} -``` -{% endtab %} -{% tab title="Noise Sensor Device" %} - -A noise sensor device resource. - -```json -{ - "capabilities_supported": ["noise_detection"], - "connected_account_id": "9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d", - "created_at": "2025-05-16T16:54:17.946049Z", - "custom_metadata": { "id": "internalId1" }, - "device_id": "f1e2d3c4-b5a6-4d7c-8e9f-0a1b2c3d4e5f", - "device_type": "minut_sensor", - "display_name": "Living Room", - "errors": [], - "is_managed": true, - "location": { - "location_name": "Jane's Test Home", - "timezone": "America/Los_Angeles" - }, - "nickname": "Living Room", - "properties": { - "appearance": { "name": "Living Room" }, - "battery": { "level": 1, "status": "full" }, - "battery_level": 1, - "currently_triggering_noise_threshold_ids": [], - "image_alt_text": "Minut Sensor", - "image_url": "https://connect.getseam.com/_next/image?url=https://connect.getseam.com/assets/images/devices/minut_gen-3_front.png&q=75&w=128", - "manufacturer": "minut", - "minut_metadata": { - "device_id": "770cd3153deca3dee0fe0614", - "device_location": { "latitude": 0, "longitude": 0 }, - "device_name": "Living Room", - "home_address": { - "city": "San Francisco", - "country": "US", - "notes": "string", - "post_code": "44210", - "region": "San Francisco County", - "street_name1": "2258 24th Street", - "street_name2": "" - }, - "home_id": "2978b6d5dba395ec08300e46", - "home_location": { "latitude": 0, "longitude": 0 }, - "home_name": "Jane's Test Home", - "latest_sensor_values": { - "accelerometer_z": { - "time": "2025-06-16T16:54:17.946049Z", - "value": -1.00390625 - }, - "humidity": { - "time": "2025-06-16T16:54:17.946049Z", - "value": 31.110000610351562 - }, - "pressure": { "time": "2025-06-16T16:54:17.946049Z", "value": 101923 }, - "sound": { - "time": "2025-06-16T16:54:17.946049Z", - "value": 47.7117919921875 - }, - "temperature": { - "time": "2025-06-16T16:54:17.946049Z", - "value": 21.270000457763672 - } - } - }, - "model": { - "display_name": "Noise Sensor", - "manufacturer_display_name": "Minut" - }, - "name": "Living Room", - "noise_level_decibels": 47.7117919921875, - "online": true - }, - "warnings": [], - "workspace_id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d" -} -``` -{% endtab %} {% tab title="Thermostat Device" %} A thermostat device resource. @@ -1846,6 +1700,85 @@ Unique identifier for the Seam workspace associated with the device. +--- + +**`active_thermostat_schedule`** *Object* + +Active [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md). + +{% hint style="warning" %} +**Deprecated**. Use `active_thermostat_schedule_id` with `/thermostats/schedules/get` instead. +{% endhint %} + + +
+ Child Properties + + - climate_preset_key String + + Key of the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) to use for the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md). + + - created_at Datetime + + Date and time at which the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md) was created. + + - device_id UUID + + ID of the desired [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) device. + + - ends_at Datetime + + Date and time at which the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + + - errors List of Objects + + Errors associated with the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md). + +- error_code String + + Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + + +- message String + + Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + - is_override_allowed Boolean + + Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md) starts. + + - max_override_period_minutes Number + + Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). See also [Specifying Manual Override Permissions](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md#specifying-manual-override-permissions). + + - name String + + User-friendly name to identify the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md). + + - starts_at Datetime + + Date and time at which the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + + - thermostat_schedule_id UUID + + ID of the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md). + + - workspace_id UUID + + ID of the [workspace](../../core-concepts/workspaces/README.md) that contains the thermostat schedule. + +
+ +--- + +**`active_thermostat_schedule_id`** *UUID* + +ID of the active [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md). + + + + --- **`akiles_metadata`** *Object* @@ -1964,6 +1897,107 @@ Metadata for an August device.
+--- + +**`available_climate_presets`** *List* *of Objects* + +Available [climate presets](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) for the thermostat. + + + +
+ Child Object Properties + + can_delete Boolean + + Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be deleted. + + can_edit Boolean + + Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be edited. + + can_program Boolean + + Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be programmed in a thermostat daily program. + + climate_preset_key String + + Unique key to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). + + cooling_set_point_celsius Number + + Temperature to which the thermostat should cool (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). + + cooling_set_point_fahrenheit Number + + Temperature to which the thermostat should cool (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). + + display_name String + + Display name for the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). + + fan_mode_setting Enum + + Desired [fan mode setting](https://docs.seam.co/latest/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. +
+ Enum values: + + - auto + - on + - circulate +
+ + heating_set_point_celsius Number + + Temperature to which the thermostat should heat (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). + + heating_set_point_fahrenheit Number + + Temperature to which the thermostat should heat (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). + + hvac_mode_setting Enum + + Desired [HVAC mode](../../capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode.md) setting, such as `heat`, `cool`, `heat_cool`, or `off`. +
+ Enum values: + + - off + - heat + - cool + - heat_cool +
+ + manual_override_allowed Boolean + + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md#specifying-manual-override-permissions). + + {% hint style="warning" %} + **Deprecated**. Use 'thermostat_schedule.is_override_allowed' + {% endhint %} + + name String + + User-friendly name to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). +
+ +--- + +**`available_fan_mode_settings`** *List* *of Enums* + +Fan mode settings that the thermostat supports. + + + + +--- + +**`available_hvac_mode_settings`** *List* *of Enums* + +HVAC mode settings that the thermostat supports. + + + + --- **`avigilon_alta_metadata`** *Object* @@ -2049,36 +2083,206 @@ Metadata for a ControlByWeb device. --- -**`dormakaba_oracode_metadata`** *Object* +**`current_climate_setting`** *Object* -Metadata for a dormakaba Oracode device. +Current climate setting.
Child Properties - - device_id Object + - can_delete Boolean - Device ID for a dormakaba Oracode device. + Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be deleted. - - door_id Number + - can_edit Boolean - Door ID for a dormakaba Oracode device. + Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be edited. - - door_is_wireless Boolean + - can_program Boolean - Indicates whether a door is wireless for a dormakaba Oracode device. + Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be programmed in a thermostat daily program. - - door_name String + - climate_preset_key String - Door name for a dormakaba Oracode device. + Unique key to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). - - iana_timezone String + - cooling_set_point_celsius Number - IANA time zone for a dormakaba Oracode device. + Temperature to which the thermostat should cool (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - - predefined_time_slots List of Objects + - cooling_set_point_fahrenheit Number + + Temperature to which the thermostat should cool (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). + + - display_name String + + Display name for the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). + + - fan_mode_setting Enum + + Desired [fan mode setting](https://docs.seam.co/latest/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. +
+ Enum values: + + - auto + - on + - circulate +
+ + - heating_set_point_celsius Number + + Temperature to which the thermostat should heat (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). + + - heating_set_point_fahrenheit Number + + Temperature to which the thermostat should heat (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). + + - hvac_mode_setting Enum + + Desired [HVAC mode](../../capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode.md) setting, such as `heat`, `cool`, `heat_cool`, or `off`. +
+ Enum values: + + - off + - heat + - cool + - heat_cool +
+ + - manual_override_allowed Boolean + + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md#specifying-manual-override-permissions). + + {% hint style="warning" %} + **Deprecated**. Use 'thermostat_schedule.is_override_allowed' + {% endhint %} + + - name String + + User-friendly name to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). + +
+ +--- + +**`default_climate_setting`** *Object* + + +{% hint style="warning" %} +**Deprecated**. use fallback_climate_preset_key to specify a fallback climate preset instead. +{% endhint %} + + +
+ Child Properties + + - can_delete Boolean + + Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be deleted. + + - can_edit Boolean + + Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be edited. + + - can_program Boolean + + Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be programmed in a thermostat daily program. + + - climate_preset_key String + + Unique key to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). + + - cooling_set_point_celsius Number + + Temperature to which the thermostat should cool (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). + + - cooling_set_point_fahrenheit Number + + Temperature to which the thermostat should cool (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). + + - display_name String + + Display name for the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). + + - fan_mode_setting Enum + + Desired [fan mode setting](https://docs.seam.co/latest/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. +
+ Enum values: + + - auto + - on + - circulate +
+ + - heating_set_point_celsius Number + + Temperature to which the thermostat should heat (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). + + - heating_set_point_fahrenheit Number + + Temperature to which the thermostat should heat (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). + + - hvac_mode_setting Enum + + Desired [HVAC mode](../../capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode.md) setting, such as `heat`, `cool`, `heat_cool`, or `off`. +
+ Enum values: + + - off + - heat + - cool + - heat_cool +
+ + - manual_override_allowed Boolean + + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md#specifying-manual-override-permissions). + + {% hint style="warning" %} + **Deprecated**. Use 'thermostat_schedule.is_override_allowed' + {% endhint %} + + - name String + + User-friendly name to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). + +
+ +--- + +**`dormakaba_oracode_metadata`** *Object* + +Metadata for a dormakaba Oracode device. + + + +
+ Child Properties + + - device_id Object + + Device ID for a dormakaba Oracode device. + + - door_id Number + + Door ID for a dormakaba Oracode device. + + - door_is_wireless Boolean + + Indicates whether a door is wireless for a dormakaba Oracode device. + + - door_name String + + Door name for a dormakaba Oracode device. + + - iana_timezone String + + IANA time zone for a dormakaba Oracode device. + + - predefined_time_slots List of Objects Predefined time slots for a dormakaba Oracode device. @@ -2167,6 +2371,33 @@ Metadata for an ecobee device.
+--- + +**`fallback_climate_preset_key`** *String* + +Key of the [fallback climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset.md) for the thermostat. + + + + +--- + +**`fan_mode_setting`** *Enum* + + +{% hint style="warning" %} +**Deprecated**. Use `current_climate_setting.fan_mode_setting` instead. +{% endhint %} + +
+Enum values + +- auto +- on +- circulate +
+ + --- **`four_suites_metadata`** *Object* @@ -2317,6 +2548,42 @@ Metadata for an igloohome device. +--- + +**`is_cooling`** *Boolean* + +Indicates whether the connected HVAC system is currently cooling, as reported by the thermostat. + + + + +--- + +**`is_fan_running`** *Boolean* + +Indicates whether the fan in the connected HVAC system is currently running, as reported by the thermostat. + + + + +--- + +**`is_heating`** *Boolean* + +Indicates whether the connected HVAC system is currently heating, as reported by the thermostat. + + + + +--- + +**`is_temporary_manual_override_active`** *Boolean* + +Indicates whether the current thermostat settings differ from the most recent active program or schedule that Seam activated. For this condition to occur, `current_climate_setting.manual_override_allowed` must also be `true`. + + + + --- **`kwikset_metadata`** *Object* @@ -2369,32 +2636,122 @@ Metadata for a Lockly device. --- -**`minut_metadata`** *Object* +**`max_cooling_set_point_celsius`** *Number* -Metadata for a Minut device. +Maximum [cooling set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#cooling-set-point) in °C. -
- Child Properties - - device_id String - - Device ID for a Minut device. +--- - - device_name String - - Device name for a Minut device. +**`max_cooling_set_point_fahrenheit`** *Number* - - latest_sensor_values Object - - Latest sensor values for a Minut device. +Maximum [cooling set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#cooling-set-point) in °F. - - latest_sensor_values.accelerometer_z Object - - Latest accelerometer Z-axis reading for a Minut device. - - latest_sensor_values.accelerometer_z.time String + + +--- + +**`max_heating_set_point_celsius`** *Number* + +Maximum [heating set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#heating-set-point) in °C. + + + + +--- + +**`max_heating_set_point_fahrenheit`** *Number* + +Maximum [heating set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#heating-set-point) in °F. + + + + +--- + +**`min_cooling_set_point_celsius`** *Number* + +Minimum [cooling set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#cooling-set-point) in °C. + + + + +--- + +**`min_cooling_set_point_fahrenheit`** *Number* + +Minimum [cooling set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#cooling-set-point) in °F. + + + + +--- + +**`min_heating_cooling_delta_celsius`** *Number* + +Minimum [temperature difference](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. + + + + +--- + +**`min_heating_cooling_delta_fahrenheit`** *Number* + +Minimum [temperature difference](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. + + + + +--- + +**`min_heating_set_point_celsius`** *Number* + +Minimum [heating set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#heating-set-point) in °C. + + + + +--- + +**`min_heating_set_point_fahrenheit`** *Number* + +Minimum [heating set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#heating-set-point) in °F. + + + + +--- + +**`minut_metadata`** *Object* + +Metadata for a Minut device. + + + +
+ Child Properties + + - device_id String + + Device ID for a Minut device. + + - device_name String + + Device name for a Minut device. + + - latest_sensor_values Object + + Latest sensor values for a Minut device. + + - latest_sensor_values.accelerometer_z Object + + Latest accelerometer Z-axis reading for a Minut device. + + - latest_sensor_values.accelerometer_z.time String Time of latest accelerometer Z-axis reading for a Minut device. @@ -2621,6 +2978,15 @@ Indicates whether the device is online. +--- + +**`relative_humidity`** *Number* + +Reported relative humidity, as a value between 0 and 1, inclusive. + + + + --- **`salto_ks_metadata`** *Object* @@ -2805,754 +3171,87 @@ Metadata for a SmartThings device.
- Child Properties - - - device_id String - - Device ID for a SmartThings device. - - - device_name String - - Device name for a SmartThings device. - - - location_id String - - Location ID for a SmartThings device. - - - model String - - Model for a SmartThings device. - -
- ---- - -**`tado_metadata`** *Object* - -Metadata for a tado° device. - - - -
- Child Properties - - - device_type String - - Device type for a tado° device. - - - serial_no String - - Serial number for a tado° device. - -
- ---- - -**`tedee_metadata`** *Object* - -Metadata for a Tedee device. - - - -
- Child Properties - - - bridge_id Number - - Bridge ID for a Tedee device. - - - bridge_name String - - Bridge name for a Tedee device. - - - device_id Number - - Device ID for a Tedee device. - - - device_model String - - Device model for a Tedee device. - - - device_name String - - Device name for a Tedee device. - - - keypad_id Number - - Keypad ID for a Tedee device. - - - serial_number String - - Serial number for a Tedee device. - -
- ---- - -**`ttlock_metadata`** *Object* - -Metadata for a TTLock device. - - - -
- Child Properties - - - feature_value String - - Feature value for a TTLock device. - - - features Object - - Features for a TTLock device. - - - features.incomplete_keyboard_passcode Boolean - - Indicates whether a TTLock device supports an incomplete keyboard passcode. - - - features.lock_command Boolean - - Indicates whether a TTLock device supports the lock command. - - - features.passcode Boolean - - Indicates whether a TTLock device supports a passcode. - - - features.passcode_management Boolean - - Indicates whether a TTLock device supports passcode management. - - - features.unlock_via_gateway Boolean - - Indicates whether a TTLock device supports unlock via gateway. - - - features.wifi Boolean - - Indicates whether a TTLock device supports Wi-Fi. - - - has_gateway Boolean - - Indicates whether a TTLock device has a gateway. - - - lock_alias String - - Lock alias for a TTLock device. - - - lock_id Number - - Lock ID for a TTLock device. - - - wireless_keypads List of Objects - - Wireless keypads for a TTLock device. - -- wireless_keypad_id Number - - ID for a wireless keypad for a TTLock device. - - -- wireless_keypad_name String - - Name for a wireless keypad for a TTLock device. - - -
- ---- - -**`two_n_metadata`** *Object* - -Metadata for a 2N device. - - - -
- Child Properties - - - device_id Number - - Device ID for a 2N device. - - - device_name String - - Device name for a 2N device. - -
- ---- - -**`visionline_metadata`** *Object* - -Metadata for an ASSA ABLOY Visionline system. - - - -
- Child Properties - - - encoder_id String - - Encoder ID for an ASSA ABLOY Visionline system. - -
- ---- - -**`wyze_metadata`** *Object* - -Metadata for a Wyze device. - - - -
- Child Properties - - - device_id String - - Device ID for a Wyze device. - - - device_info_model String - - Device information model for a Wyze device. - - - device_name String - - Device name for a Wyze device. - - - keypad_uuid String - - Keypad UUID for a Wyze device. - - - locker_status_hardlock Number - - Locker status (hardlock) for a Wyze device. - - - product_model String - - Product model for a Wyze device. - - - product_name String - - Product name for a Wyze device. - - - product_type String - - Product type for a Wyze device. - -
- ---- - -## Thermostats -**`active_thermostat_schedule`** *Object* - -Active [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md). - -{% hint style="warning" %} -**Deprecated**. Use `active_thermostat_schedule_id` with `/thermostats/schedules/get` instead. -{% endhint %} - - -
- Child Properties - - - climate_preset_key String - - Key of the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) to use for the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md). - - - created_at Datetime - - Date and time at which the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md) was created. - - - device_id UUID - - ID of the desired [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) device. - - - ends_at Datetime - - Date and time at which the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - - - errors List of Objects - - Errors associated with the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md). - -- error_code String - - Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - - -- message String - - Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - is_override_allowed Boolean - - Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md) starts. - - - max_override_period_minutes Number - - Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). See also [Specifying Manual Override Permissions](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md#specifying-manual-override-permissions). - - - name String - - User-friendly name to identify the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md). - - - starts_at Datetime - - Date and time at which the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - - - thermostat_schedule_id UUID - - ID of the [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md). - - - workspace_id UUID - - ID of the [workspace](../../core-concepts/workspaces/README.md) that contains the thermostat schedule. - -
- ---- - -**`active_thermostat_schedule_id`** *UUID* - -ID of the active [thermostat schedule](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md). - - - - ---- - -**`available_climate_presets`** *List* *of Objects* - -Available [climate presets](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) for the thermostat. - - - -
- Child Object Properties - - can_delete Boolean - - Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be deleted. - - can_edit Boolean - - Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be edited. - - can_program Boolean - - Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be programmed in a thermostat daily program. - - climate_preset_key String - - Unique key to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). - - cooling_set_point_celsius Number - - Temperature to which the thermostat should cool (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - - cooling_set_point_fahrenheit Number - - Temperature to which the thermostat should cool (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - - display_name String - - Display name for the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). - - fan_mode_setting Enum - - Desired [fan mode setting](https://docs.seam.co/latest/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. -
- Enum values: - - - auto - - on - - circulate -
- - heating_set_point_celsius Number - - Temperature to which the thermostat should heat (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - - heating_set_point_fahrenheit Number - - Temperature to which the thermostat should heat (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - - hvac_mode_setting Enum - - Desired [HVAC mode](../../capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode.md) setting, such as `heat`, `cool`, `heat_cool`, or `off`. -
- Enum values: - - - off - - heat - - cool - - heat_cool -
- - manual_override_allowed Boolean - - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md#specifying-manual-override-permissions). - - {% hint style="warning" %} - **Deprecated**. Use 'thermostat_schedule.is_override_allowed' - {% endhint %} - - name String - - User-friendly name to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). -
- ---- - -**`available_fan_mode_settings`** *List* *of Enums* - -Fan mode settings that the thermostat supports. - - - - ---- - -**`available_hvac_mode_settings`** *List* *of Enums* - -HVAC mode settings that the thermostat supports. - - - - ---- - -**`current_climate_setting`** *Object* - -Current climate setting. - - - -
- Child Properties - - - can_delete Boolean - - Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be deleted. - - - can_edit Boolean - - Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be edited. - - - can_program Boolean - - Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be programmed in a thermostat daily program. - - - climate_preset_key String - - Unique key to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). - - - cooling_set_point_celsius Number - - Temperature to which the thermostat should cool (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - - - cooling_set_point_fahrenheit Number - - Temperature to which the thermostat should cool (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - - - display_name String - - Display name for the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). - - - fan_mode_setting Enum - - Desired [fan mode setting](https://docs.seam.co/latest/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. -
- Enum values: - - - auto - - on - - circulate -
- - - heating_set_point_celsius Number - - Temperature to which the thermostat should heat (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - - - heating_set_point_fahrenheit Number - - Temperature to which the thermostat should heat (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - - - hvac_mode_setting Enum - - Desired [HVAC mode](../../capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode.md) setting, such as `heat`, `cool`, `heat_cool`, or `off`. -
- Enum values: - - - off - - heat - - cool - - heat_cool -
- - - manual_override_allowed Boolean - - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md#specifying-manual-override-permissions). - - {% hint style="warning" %} - **Deprecated**. Use 'thermostat_schedule.is_override_allowed' - {% endhint %} - - - name String - - User-friendly name to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). - -
- ---- - -**`default_climate_setting`** *Object* - - -{% hint style="warning" %} -**Deprecated**. use fallback_climate_preset_key to specify a fallback climate preset instead. -{% endhint %} - - -
- Child Properties - - - can_delete Boolean - - Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be deleted. - - - can_edit Boolean - - Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be edited. - - - can_program Boolean - - Indicates whether the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md) key can be programmed in a thermostat daily program. - - - climate_preset_key String - - Unique key to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). - - - cooling_set_point_celsius Number - - Temperature to which the thermostat should cool (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - - - cooling_set_point_fahrenheit Number - - Temperature to which the thermostat should cool (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - - - display_name String - - Display name for the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). - - - fan_mode_setting Enum - - Desired [fan mode setting](https://docs.seam.co/latest/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. -
- Enum values: - - - auto - - on - - circulate -
- - - heating_set_point_celsius Number - - Temperature to which the thermostat should heat (in °C). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - - - heating_set_point_fahrenheit Number - - Temperature to which the thermostat should heat (in °F). See also [Set Points](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md). - - - hvac_mode_setting Enum - - Desired [HVAC mode](../../capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode.md) setting, such as `heat`, `cool`, `heat_cool`, or `off`. -
- Enum values: - - - off - - heat - - cool - - heat_cool -
- - - manual_override_allowed Boolean - - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](../../capability-guides/thermostats/creating-and-managing-thermostat-schedules.md#specifying-manual-override-permissions). - - {% hint style="warning" %} - **Deprecated**. Use 'thermostat_schedule.is_override_allowed' - {% endhint %} - - - name String - - User-friendly name to identify the [climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/README.md). - -
- ---- - -**`fallback_climate_preset_key`** *String* - -Key of the [fallback climate preset](../../capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset.md) for the thermostat. - - - - ---- - -**`fan_mode_setting`** *Enum* - - -{% hint style="warning" %} -**Deprecated**. Use `current_climate_setting.fan_mode_setting` instead. -{% endhint %} - -
-Enum values - -- auto -- on -- circulate -
- - ---- - -**`is_cooling`** *Boolean* - -Indicates whether the connected HVAC system is currently cooling, as reported by the thermostat. - - - - ---- - -**`is_fan_running`** *Boolean* - -Indicates whether the fan in the connected HVAC system is currently running, as reported by the thermostat. - - - - ---- - -**`is_heating`** *Boolean* - -Indicates whether the connected HVAC system is currently heating, as reported by the thermostat. - - - - ---- - -**`is_temporary_manual_override_active`** *Boolean* - -Indicates whether the current thermostat settings differ from the most recent active program or schedule that Seam activated. For this condition to occur, `current_climate_setting.manual_override_allowed` must also be `true`. - - - - ---- - -**`max_cooling_set_point_celsius`** *Number* - -Maximum [cooling set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#cooling-set-point) in °C. - - - - ---- - -**`max_cooling_set_point_fahrenheit`** *Number* - -Maximum [cooling set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#cooling-set-point) in °F. - - - - ---- - -**`max_heating_set_point_celsius`** *Number* - -Maximum [heating set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#heating-set-point) in °C. - - - - ---- - -**`max_heating_set_point_fahrenheit`** *Number* - -Maximum [heating set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#heating-set-point) in °F. - - - - ---- - -**`min_cooling_set_point_celsius`** *Number* - -Minimum [cooling set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#cooling-set-point) in °C. - - - - ---- - -**`min_cooling_set_point_fahrenheit`** *Number* - -Minimum [cooling set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#cooling-set-point) in °F. - - - - ---- + Child Properties -**`min_heating_cooling_delta_celsius`** *Number* + - device_id String + + Device ID for a SmartThings device. -Minimum [temperature difference](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. + - device_name String + + Device name for a SmartThings device. + - location_id String + + Location ID for a SmartThings device. + - model String + + Model for a SmartThings device. +
--- -**`min_heating_cooling_delta_fahrenheit`** *Number* - -Minimum [temperature difference](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. +**`tado_metadata`** *Object* +Metadata for a tado° device. ---- +
+ Child Properties -**`min_heating_set_point_celsius`** *Number* + - device_type String + + Device type for a tado° device. -Minimum [heating set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#heating-set-point) in °C. + - serial_no String + + Serial number for a tado° device. +
+--- +**`tedee_metadata`** *Object* ---- +Metadata for a Tedee device. -**`min_heating_set_point_fahrenheit`** *Number* -Minimum [heating set point](../../capability-guides/thermostats/understanding-thermostat-concepts/set-points.md#heating-set-point) in °F. +
+ Child Properties + - bridge_id Number + + Bridge ID for a Tedee device. + - bridge_name String + + Bridge name for a Tedee device. ---- + - device_id Number + + Device ID for a Tedee device. -**`relative_humidity`** *Number* + - device_model String + + Device model for a Tedee device. -Reported relative humidity, as a value between 0 and 1, inclusive. + - device_name String + + Device name for a Tedee device. + - keypad_id Number + + Keypad ID for a Tedee device. + - serial_number String + + Serial number for a Tedee device. +
--- @@ -3694,6 +3393,160 @@ Current [weekly program](../../capability-guides/thermostats/creating-and-managi --- +**`ttlock_metadata`** *Object* + +Metadata for a TTLock device. + + + +
+ Child Properties + + - feature_value String + + Feature value for a TTLock device. + + - features Object + + Features for a TTLock device. + + - features.incomplete_keyboard_passcode Boolean + + Indicates whether a TTLock device supports an incomplete keyboard passcode. + + - features.lock_command Boolean + + Indicates whether a TTLock device supports the lock command. + + - features.passcode Boolean + + Indicates whether a TTLock device supports a passcode. + + - features.passcode_management Boolean + + Indicates whether a TTLock device supports passcode management. + + - features.unlock_via_gateway Boolean + + Indicates whether a TTLock device supports unlock via gateway. + + - features.wifi Boolean + + Indicates whether a TTLock device supports Wi-Fi. + + - has_gateway Boolean + + Indicates whether a TTLock device has a gateway. + + - lock_alias String + + Lock alias for a TTLock device. + + - lock_id Number + + Lock ID for a TTLock device. + + - wireless_keypads List of Objects + + Wireless keypads for a TTLock device. + +- wireless_keypad_id Number + + ID for a wireless keypad for a TTLock device. + + +- wireless_keypad_name String + + Name for a wireless keypad for a TTLock device. + + +
+ +--- + +**`two_n_metadata`** *Object* + +Metadata for a 2N device. + + + +
+ Child Properties + + - device_id Number + + Device ID for a 2N device. + + - device_name String + + Device name for a 2N device. + +
+ +--- + +**`visionline_metadata`** *Object* + +Metadata for an ASSA ABLOY Visionline system. + + + +
+ Child Properties + + - encoder_id String + + Encoder ID for an ASSA ABLOY Visionline system. + +
+ +--- + +**`wyze_metadata`** *Object* + +Metadata for a Wyze device. + + + +
+ Child Properties + + - device_id String + + Device ID for a Wyze device. + + - device_info_model String + + Device information model for a Wyze device. + + - device_name String + + Device name for a Wyze device. + + - keypad_uuid String + + Keypad UUID for a Wyze device. + + - locker_status_hardlock Number + + Locker status (hardlock) for a Wyze device. + + - product_model String + + Product model for a Wyze device. + + - product_name String + + Product name for a Wyze device. + + - product_type String + + Product type for a Wyze device. + +
+ +--- + ## Errors @@ -3703,6 +3556,12 @@ Indicates that the account is disconnected. --- +**`auxiliary_heat_running`** + +Indicates that the auxiliary heat is running. + +--- + **`bridge_disconnected`** Indicates that the Seam API cannot communicate with [Seam Bridge](../../capability-guides/seam-bridge.md), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](../../capability-guides/access-systems/troubleshooting-your-access-control-system.md#acs_system.errors.seam_bridge_disconnected). @@ -3763,13 +3622,6 @@ Indicates that the lock is not paired with a gateway. --- -### Thermostats -**`auxiliary_heat_running`** - -Indicates that the auxiliary heat is running. - ---- - ## Warnings @@ -3797,6 +3649,12 @@ Indicates that Seam detected that the Lockly device does not have a time zone co --- +**`nest_thermostat_in_manual_eco_mode`** + +Indicates that the Nest thermostat is in manual eco mode. + +--- + **`salto_ks_office_mode`** Indicates that the Salto KS lock is in Office Mode. Access Codes will not unlock doors. @@ -3821,6 +3679,12 @@ Indicates that a scheduled maintenance window has been detected. --- +**`temperature_threshold_exceeded`** + +Indicates that the temperature threshold has been exceeded. + +--- + **`third_party_integration_detected`** Indicates that a third-party integration has been detected. @@ -3839,19 +3703,6 @@ Indicates that the Wyze Lock is not connected to a gateway. --- -### Thermostats -**`nest_thermostat_in_manual_eco_mode`** - -Indicates that the Nest thermostat is in manual eco mode. - ---- - -**`temperature_threshold_exceeded`** - -Indicates that the temperature threshold has been exceeded. - ---- - ## Events From 9889b5ad399951022149b731da98ee9313c47e6c Mon Sep 17 00:00:00 2001 From: Evan Sosenko Date: Tue, 24 Jun 2025 19:42:31 -0700 Subject: [PATCH 09/13] Use arrow function --- src/lib/layout/api-route.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/lib/layout/api-route.ts b/src/lib/layout/api-route.ts index 6cebe99a3..3cb790046 100644 --- a/src/lib/layout/api-route.ts +++ b/src/lib/layout/api-route.ts @@ -91,12 +91,12 @@ interface ApiRouteVariant { type ApiRouteEndpoint = Pick -export function setApiRouteLayoutContext( +export const setApiRouteLayoutContext = ( file: Partial, route: Route, blueprint: Blueprint, pathMetadata: PathMetadata, -): void { +): void => { const metadata = pathMetadata[route.path] if (metadata == null) { throw new Error(`Missing path metadata for ${route.path}`) @@ -416,10 +416,10 @@ const groupEventsByRoutePath = ( const getFirstParagraph = (text: string): string => text.split('\n\n').at(0) ?? text -function findEnumProperty( +const findEnumProperty = ( properties: Property[], name: string, -): EnumProperty | null { +): EnumProperty | null => { const prop = properties.find( (p) => p.name === name && p.format === 'enum', ) as EnumProperty | undefined @@ -536,10 +536,10 @@ const flattenObjectProperties = ( return results } -function addLinkTargetsToProperties( +const addLinkTargetsToProperties = ( properties: ApiRouteProperty[] | undefined, sections: { hasErrors: boolean; hasWarnings: boolean }, -): void { +): void => { if (properties == null) return const linkableProperties: Record = { errors: sections.hasErrors ? './#errors' : undefined, From ddcf8e278ee2f233d204b7a7dbf88b7b0bedc306 Mon Sep 17 00:00:00 2001 From: Evan Sosenko Date: Tue, 24 Jun 2025 20:08:54 -0700 Subject: [PATCH 10/13] Sort errors by parentResouceType --- src/lib/layout/api-route.ts | 65 ++++++++++++++++++++++++++++++++----- 1 file changed, 56 insertions(+), 9 deletions(-) diff --git a/src/lib/layout/api-route.ts b/src/lib/layout/api-route.ts index 3cb790046..d498dbe88 100644 --- a/src/lib/layout/api-route.ts +++ b/src/lib/layout/api-route.ts @@ -87,6 +87,7 @@ interface ApiRouteVariantGroup { interface ApiRouteVariant { name: string description: string + parentResouceType: string | null } type ApiRouteEndpoint = Pick @@ -147,9 +148,13 @@ export const setApiRouteLayoutContext = ( const warningsProp = resource.properties.find((p) => p.name === 'warnings') const errorsProp = resource.properties.find((p) => p.name === 'errors') const warningGroups = - warningsProp != null ? groupVariants(warningsProp, groupOptions) : [] + warningsProp != null + ? groupVariants(warningsProp, groupOptions, resourceType, resourceTypes) + : [] const errorGroups = - errorsProp != null ? groupVariants(errorsProp, groupOptions) : [] + errorsProp != null + ? groupVariants(errorsProp, groupOptions, resourceType, resourceTypes) + : [] const allProperties = resource.properties.filter( ({ isUndocumented }) => !isUndocumented, @@ -222,6 +227,8 @@ const groupVariants = ( include?: string[] | undefined exclude?: string[] | undefined }, + resourceType: string, + resourceTypes: string[], ): ApiRouteVariantGroup[] => { if (!isDiscriminatedListProperty(property)) { return [] @@ -230,12 +237,15 @@ const groupVariants = ( const getApiRouteVariants = ( variantGroupKey: string | null, ): ApiRouteVariant[] => { - return collectResourceVariants({ - ...property, - variants: property.variants.filter( - (v) => v.variantGroupKey === variantGroupKey, - ), - }).sort((a, b) => { + return collectResourceVariants( + { + ...property, + variants: property.variants.filter( + (v) => v.variantGroupKey === variantGroupKey, + ), + }, + resourceTypes, + ).sort((a, b) => { return a.name.localeCompare(b.name) }) } @@ -277,7 +287,27 @@ const groupVariants = ( if (include != null) { const variants = groups .flatMap((g) => g.variants) - .sort((a, b) => a.name.localeCompare(b.name)) + .sort((a, b) => { + if (a.parentResouceType === null && b.parentResouceType === null) { + return a.name.localeCompare(b.name) + } + if (a.parentResouceType === resourceType) { + return -1 + } + if (b.parentResouceType === resourceType) { + return 1 + } + if (a.parentResouceType === null) { + return -1 + } + if (b.parentResouceType === null) { + return 1 + } + if (a.parentResouceType !== b.parentResouceType) { + return a.parentResouceType.localeCompare(b.parentResouceType) + } + return a.name.localeCompare(b.name) + }) return [ { variantGroupKey: null, @@ -301,6 +331,7 @@ const isDiscriminatedListProperty = ( const collectResourceVariants = ( property: DiscriminatedListProperty, + resourceTypes: string[], ): ApiRouteVariant[] => { return property.variants .map((variant) => { @@ -315,6 +346,10 @@ const collectResourceVariants = ( return { name: discriminator.values[0].name, description: variant.description, + parentResouceType: getParentVariantResourceType( + variant.properties.map(({ name }) => name), + resourceTypes, + ), } }) .filter((variant): variant is ApiRouteVariant => variant !== null) @@ -572,3 +607,15 @@ const mapResourceSample = (sample: ResourceSample): ResourceSampleContext => { resourceDataSyntax: jsonSample.resource_data_syntax, } } + +const getParentVariantResourceType = ( + propertyKeys: string[], + resourceTypes: string[], +): string | null => { + const keyMap = Object.fromEntries( + resourceTypes.map((k) => [`is_${k}_error`, k]), + ) + const key = propertyKeys.find((k) => Object.keys(keyMap).includes(k)) + if (key == null) return null + return keyMap[key] ?? null +} From 0d794a5bc96ff591c2ee5dae99837386f55dc893 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Wed, 25 Jun 2025 03:11:20 +0000 Subject: [PATCH 11/13] ci: Generate docs --- docs/api/access_codes/README.md | 160 ++++++++++++++++---------------- docs/api/thermostats/README.md | 48 +++++----- 2 files changed, 104 insertions(+), 104 deletions(-) diff --git a/docs/api/access_codes/README.md b/docs/api/access_codes/README.md index 187a19885..7b64b8c3c 100644 --- a/docs/api/access_codes/README.md +++ b/docs/api/access_codes/README.md @@ -2398,243 +2398,243 @@ Unable to confirm that the access code is set on Kwikset device. ## Errors -**`account_disconnected`** +**`wyze_potential_duplicate_code`** -Indicates that the account is disconnected. +Potential duplicate access code detected. --- -**`august_device_programming_delay`** +**`wyze_duplicate_code_name`** -Access code has not yet been fully moved to the device. +Duplicate access code name detected. --- -**`august_device_slots_full`** +**`smartthings_no_free_slots_available`** -All access code slots on the device are full. +No free slots available on the device. --- -**`august_lock_invalid_code_length`** +**`smartthings_failed_to_set_after_multiple_retries`** -Invalid code length for August lock. +Failed to set code after multiple retries. --- -**`august_lock_missing_bridge`** +**`smartthings_failed_to_set_access_code`** -Indicates that the lock is not connected to a bridge. +Failed to set code on SmartThings device. --- -**`august_lock_missing_keypad`** +**`salto_ks_user_not_subscribed`** -August lock is missing a keypad. +Salto site user is not subscribed. --- -**`august_lock_not_authorized`** +**`no_space_for_access_code_on_device`** -Indicates that the user is not authorized to use the August lock. +No space for access code on device. --- -**`august_lock_temporarily_offline`** +**`kwikset_unable_to_confirm_deletion`** -August lock is temporarily offline. +Unable to confirm the deletion of the access code on Kwikset device. --- -**`bridge_disconnected`** +**`kwikset_unable_to_confirm_code`** -Indicates that the Seam API cannot communicate with [Seam Bridge](../../capability-guides/seam-bridge.md), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](../../capability-guides/access-systems/troubleshooting-your-access-control-system.md#acs_system.errors.seam_bridge_disconnected). +Unable to confirm that the access code is set on Kwikset device. --- -**`code_modified_external_to_seam`** +**`igloohome_offline_access_code_no_variance_available`** -Code was modified or removed externally after Seam successfully set it on the device. +Lock has reached maximum amount of codes. --- -**`device_disconnected`** +**`igloohome_bridge_too_many_pending_jobs`** -Indicates that the device is disconnected. +Igloohome bridge has too many pending jobs in the queue. --- -**`device_offline`** +**`igloohome_bridge_offline`** -Indicates that the device is offline. +Igloohome bridge is offline. --- -**`device_removed`** +**`hubitat_no_free_positions_available`** -Indicates that the device has been removed. +No free positions available on the device. --- -**`dormakaba_oracode_no_valid_user_level`** +**`hubitat_device_programming_delay`** -No valid user level for Oracode. +Access code has not yet been fully moved to the device. --- -**`duplicate_code_attempt_prevented`** +**`failed_to_set_on_device`** -An attempt to modify this access code was prevented. +Failed to set code on device. --- -**`duplicate_code_on_device`** +**`failed_to_remove_from_device`** -Duplicate access code detected on device. +Failed to remove code from device. --- -**`empty_backup_access_code_pool`** +**`duplicate_code_on_device`** -Indicates that the [backup access code pool](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes/backup-access-codes) is empty. +Duplicate access code detected on device. --- -**`failed_to_remove_from_device`** +**`duplicate_code_attempt_prevented`** -Failed to remove code from device. +An attempt to modify this access code was prevented. --- -**`failed_to_set_on_device`** +**`dormakaba_oracode_no_valid_user_level`** -Failed to set code on device. +No valid user level for Oracode. --- -**`hub_disconnected`** +**`code_modified_external_to_seam`** -Indicates that the hub is disconnected. +Code was modified or removed externally after Seam successfully set it on the device. --- -**`hubitat_device_programming_delay`** +**`august_lock_temporarily_offline`** -Access code has not yet been fully moved to the device. +August lock is temporarily offline. --- -**`hubitat_no_free_positions_available`** +**`august_lock_missing_keypad`** -No free positions available on the device. +August lock is missing a keypad. --- -**`igloohome_bridge_offline`** +**`august_lock_invalid_code_length`** -Igloohome bridge is offline. +Invalid code length for August lock. --- -**`igloohome_bridge_too_many_pending_jobs`** +**`august_device_slots_full`** -Igloohome bridge has too many pending jobs in the queue. +All access code slots on the device are full. --- -**`igloohome_offline_access_code_no_variance_available`** +**`august_device_programming_delay`** -Lock has reached maximum amount of codes. +Access code has not yet been fully moved to the device. --- -**`invalid_credentials`** +**`account_disconnected`** -Indicates that the credentials provided were invalid. +Indicates that the account is disconnected. --- -**`kwikset_unable_to_confirm_code`** +**`august_lock_missing_bridge`** -Unable to confirm that the access code is set on Kwikset device. +Indicates that the lock is not connected to a bridge. --- -**`kwikset_unable_to_confirm_deletion`** +**`august_lock_not_authorized`** -Unable to confirm the deletion of the access code on Kwikset device. +Indicates that the user is not authorized to use the August lock. --- -**`lockly_missing_wifi_bridge`** +**`bridge_disconnected`** -Indicates that the Lockly lock is not connected to a Wi-Fi bridge. +Indicates that the Seam API cannot communicate with [Seam Bridge](../../capability-guides/seam-bridge.md), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](../../capability-guides/access-systems/troubleshooting-your-access-control-system.md#acs_system.errors.seam_bridge_disconnected). --- -**`missing_device_credentials`** +**`device_disconnected`** -Indicates that device credentials are missing. +Indicates that the device is disconnected. --- -**`no_space_for_access_code_on_device`** +**`device_offline`** -No space for access code on device. +Indicates that the device is offline. --- -**`salto_ks_subscription_limit_exceeded`** +**`device_removed`** -Indicates that the Salto site user limit has been reached. +Indicates that the device has been removed. --- -**`salto_ks_user_not_subscribed`** +**`empty_backup_access_code_pool`** -Salto site user is not subscribed. +Indicates that the [backup access code pool](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes/backup-access-codes) is empty. --- -**`smartthings_failed_to_set_access_code`** +**`hub_disconnected`** -Failed to set code on SmartThings device. +Indicates that the hub is disconnected. --- -**`smartthings_failed_to_set_after_multiple_retries`** +**`invalid_credentials`** -Failed to set code after multiple retries. +Indicates that the credentials provided were invalid. --- -**`smartthings_no_free_slots_available`** +**`lockly_missing_wifi_bridge`** -No free slots available on the device. +Indicates that the Lockly lock is not connected to a Wi-Fi bridge. --- -**`subscription_required`** +**`missing_device_credentials`** -Indicates that a subscription is required to connect. +Indicates that device credentials are missing. --- -**`ttlock_lock_not_paired_to_gateway`** +**`salto_ks_subscription_limit_exceeded`** -Indicates that the lock is not paired with a gateway. +Indicates that the Salto site user limit has been reached. --- -**`wyze_duplicate_code_name`** +**`subscription_required`** -Duplicate access code name detected. +Indicates that a subscription is required to connect. --- -**`wyze_potential_duplicate_code`** +**`ttlock_lock_not_paired_to_gateway`** -Potential duplicate access code detected. +Indicates that the lock is not paired with a gateway. --- diff --git a/docs/api/thermostats/README.md b/docs/api/thermostats/README.md index fd1fa2ab2..9d4a8c69b 100644 --- a/docs/api/thermostats/README.md +++ b/docs/api/thermostats/README.md @@ -3550,39 +3550,33 @@ Metadata for a Wyze device. ## Errors -**`account_disconnected`** - -Indicates that the account is disconnected. - ---- - **`auxiliary_heat_running`** Indicates that the auxiliary heat is running. --- -**`bridge_disconnected`** +**`ttlock_lock_not_paired_to_gateway`** -Indicates that the Seam API cannot communicate with [Seam Bridge](../../capability-guides/seam-bridge.md), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](../../capability-guides/access-systems/troubleshooting-your-access-control-system.md#acs_system.errors.seam_bridge_disconnected). +Indicates that the lock is not paired with a gateway. --- -**`device_disconnected`** +**`subscription_required`** -Indicates that the device is disconnected. +Indicates that a subscription is required to connect. --- -**`device_offline`** +**`missing_device_credentials`** -Indicates that the device is offline. +Indicates that device credentials are missing. --- -**`device_removed`** +**`lockly_missing_wifi_bridge`** -Indicates that the device has been removed. +Indicates that the Lockly lock is not connected to a Wi-Fi bridge. --- @@ -3592,33 +3586,39 @@ Indicates that the hub is disconnected. --- -**`invalid_credentials`** +**`device_removed`** -Indicates that the credentials provided were invalid. +Indicates that the device has been removed. --- -**`lockly_missing_wifi_bridge`** +**`device_offline`** -Indicates that the Lockly lock is not connected to a Wi-Fi bridge. +Indicates that the device is offline. --- -**`missing_device_credentials`** +**`device_disconnected`** -Indicates that device credentials are missing. +Indicates that the device is disconnected. --- -**`subscription_required`** +**`account_disconnected`** -Indicates that a subscription is required to connect. +Indicates that the account is disconnected. --- -**`ttlock_lock_not_paired_to_gateway`** +**`bridge_disconnected`** -Indicates that the lock is not paired with a gateway. +Indicates that the Seam API cannot communicate with [Seam Bridge](../../capability-guides/seam-bridge.md), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](../../capability-guides/access-systems/troubleshooting-your-access-control-system.md#acs_system.errors.seam_bridge_disconnected). + +--- + +**`invalid_credentials`** + +Indicates that the credentials provided were invalid. --- From 73b512b945cad2ed93b5229a67ff27d139da7821 Mon Sep 17 00:00:00 2001 From: Evan Sosenko Date: Wed, 25 Jun 2025 12:39:51 -0700 Subject: [PATCH 12/13] Hide hidePreamble for alt route paths --- src/lib/layout/api-route.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/lib/layout/api-route.ts b/src/lib/layout/api-route.ts index d498dbe88..c15d0ff51 100644 --- a/src/lib/layout/api-route.ts +++ b/src/lib/layout/api-route.ts @@ -196,8 +196,7 @@ export const setApiRouteLayoutContext = ( ...(legacyPropertyGroups == null ? {} : { legacyPropertyGroups }), errorGroups, warningGroups, - hidePreamble: - groupOptions.include != null || groupOptions.exclude != null, + hidePreamble: route.path !== resource.routePath, events: eventsByRoutePath.get(resource.routePath) ?? [], resourceSamples: resource.resourceSamples .filter(({ title }) => { From da66e1348eeb0033c6e2a85a677a17c47d50f790 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Wed, 25 Jun 2025 19:41:59 +0000 Subject: [PATCH 13/13] ci: Generate docs --- docs/api/access_codes/README.md | 16 ++++++++++++++++ docs/api/access_codes/unmanaged/README.md | 20 ++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/docs/api/access_codes/README.md b/docs/api/access_codes/README.md index 7b64b8c3c..d46204f60 100644 --- a/docs/api/access_codes/README.md +++ b/docs/api/access_codes/README.md @@ -1,5 +1,21 @@ # Access Codes +## The access_code Object + +- [Properties](./#properties) +- [Errors](./#errors) +- [Warnings](./#warnings) +- [Events](./#events) +- [Endpoints](./#endpoints) + + +Represents a smart lock [access code](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes). + +An access code is a code used for a keypad or pinpad device. Unlike physical keys, which can easily be lost or duplicated, PIN codes can be customized, tracked, and altered on the fly. Using the Seam Access Code API, you can easily generate access codes on the hundreds of door lock models with which we integrate. + +Seam supports programming two types of access codes: [ongoing](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes#ongoing-access-codes) and [time-bound](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes#time-bound-access-codes). To differentiate between the two, refer to the `type` property of the access code. Ongoing codes display as `ongoing`, whereas time-bound codes are labeled `time_bound`. An ongoing access code is active, until it has been removed from the device. To specify an ongoing access code, leave both `starts_at` and `ends_at` empty. A time-bound access code will be programmed at the `starts_at` time and removed at the `ends_at` time. + +In addition, for certain devices, Seam also supports [offline access codes](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes#offline-access-codes). Offline access (PIN) codes are designed for door locks that might not always maintain an internet connection. For this type of access code, the device manufacturer uses encryption keys (tokens) to create server-based registries of algorithmically-generated offline PIN codes. Because the tokens remain synchronized with the managed devices, the locks do not require an active internet connection—and you do not need to be near the locks—to create an offline access code. Then, owners or managers can share these offline codes with users through a variety of mechanisms, such as messaging applications. That is, lock users do not need to install a smartphone application to receive an offline access code. {% tabs %} {% tab title="One-Time-Use Offline Access Code" %} diff --git a/docs/api/access_codes/unmanaged/README.md b/docs/api/access_codes/unmanaged/README.md index efdb960d3..da07450db 100644 --- a/docs/api/access_codes/unmanaged/README.md +++ b/docs/api/access_codes/unmanaged/README.md @@ -1,5 +1,25 @@ # Unmanaged Access Codes +## The unmanaged_access_code Object + +- [Properties](./#properties) +- [Errors](./#errors) +- [Warnings](./#warnings) +- [Events](./#events) +- [Endpoints](./#endpoints) + + +Represents an [unmanaged smart lock access code](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes/migrating-existing-access-codes). + +An access code is a code used for a keypad or pinpad device. Unlike physical keys, which can easily be lost or duplicated, PIN codes can be customized, tracked, and altered on the fly. + +When you create an access code on a device in Seam, it is created as a managed access code. Access codes that exist on a device that were not created through Seam are considered unmanaged codes. We strictly limit the operations that can be performed on unmanaged codes. + +Prior to using Seam to manage your devices, you may have used another lock management system to manage the access codes on your devices. Where possible, we help you keep any existing access codes on devices and transition those codes to ones managed by your Seam workspace. + +Not all providers support unmanaged access codes. The following providers do not support unmanaged access codes: + +- [Kwikset](https://docs.seam.co/latest/device-and-system-integration-guides/kwikset-locks) {% tabs %} {% tab title="Unmanaged Access Code" %}