> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.kodelabs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# TKE Elevator

> Connect TKE Elevator to KODE OS for elevator system data

> Connect TKE Elevator to KODE OS for elevator system data integration

## Overview

Use this integration to connect TK Elevator equipment to KODE OS. You discover assets, collect performance and fault data, and retain historical readings over REST for maintenance and safety reporting.

| Property            | Value           |
| ------------------- | --------------- |
| **System Type**     | Elevator System |
| **Communication**   | REST            |
| **Collection**      | Pull            |
| **Collection Mode** | HISTORICAL      |

## Supported Capabilities

* Discover Devices & Points
* Collect Sensor Data
* Collect Non-Sensor Data

## Prerequisites

To integrate with the TKE API, ensure you have the following details:

* An active account in [https://developer.ams.tkelevator.com](https://developer.ams.tkelevator.com) with the appropriate access permissions.
* Valid username and password credentials for the TKE platform.
  If you don’t have an account, then reach out to your local contact:
  [https://www.tkelevator.com/global-en/contact/local-contact/](https://www.tkelevator.com/global-en/contact/local-contact/)
  Password
  Tenant ID\*
  Obtain by emailing [integrations@kodelabs.com](mailto:integrations@kodelabs.com)
  API Building ID\*
  Fields marked with an asterisk \* are mandatory for completing the integration.

## Generate API Credentials

Steps to Obtain URL	4

* Go to [https://developer.ams.tkelevator.com](https://developer.ams.tkelevator.com) and click **Sign In** at the top-right corner.
* Click the MAX Customer Services AD button and log in using your username and password.
* Once logged in, navigate to your Profile.
* Scroll down to the Subscriptions section.
* Under the Product Add-on IoT – 3.0 subscription, click Show next to the Primary Key, and copy your Subscription Key
  Steps to Obtain URL
* Go to tab APIs
* Click one of the options from the API dropdown menu i.e MAX Elevator Statistics API - 3.0
* Copy the base URL from the request
  After completing the steps above, your Subscription Key, and URL  will be used in the next step.

## Configure Connector in KODE OS

1. Navigate to **Data Sources** in your building
2. Click **API Catalog** and search for **TKE Elevator**
3. Click **+ Add Datasource**
4. Fill in the fields below and complete the three-page setup flow

| Field                | Required | Type     | Description                                              |
| -------------------- | -------- | -------- | -------------------------------------------------------- |
| **URL**              | Yes      | text     | The base URL or IP address of the external system        |
| **Auth URL**         | Yes      | text     | The OAuth authorization URL for token exchange           |
| **Scope**            | Yes      | text     | The OAuth scope for API access                           |
| **Subscription Key** | Yes      | password | The subscription key for the vendor's API                |
| **Tenant ID**        | Yes      | text     | The tenant identifier in the external system             |
| **Client ID**        | Yes      | password | The OAuth client ID from the vendor's developer portal   |
| **Username**         | Yes      | text     | The username for authenticating with the external system |
| **Password**         | Yes      | password | The password for authenticating with the external system |
| **API Building ID**  | Yes      | text     | The building or source identifier in the external system |

## Discover Devices and Points

After configuring the connector, click **Discover** on the connector detail page. KODE OS will query the TKE Elevator system and return a list of available devices and their data points.

Review the discovered items and select the devices you want to register in KODE OS.

For more details on the discovery process, see the [Discovery guide](/products/integrations/capabilities/discovery).

## Devices and Points

When you discover devices from TKE Elevator, KODE OS maps them to the following device types:

* **Elevator** (`elevator`)

| Point                    | Display Name           |
| ------------------------ | ---------------------- |
| `equipmentStatus`        | equipmentStatus        |
| `connectivityStatus`     | connectivityStatus     |
| `currentFloor`           | currentFloor           |
| `currentTripDirection`   | currentTripDirection   |
| `Equipment Status`       | Equipment Status       |
| `Connectivity Status`    | Connectivity Status    |
| `Current Floor`          | Current Floor          |
| `Current Trip Direction` | Current Trip Direction |
| `Relevel`                | Relevel                |

## What Data You Get

### Point History

Time-series sensor readings such as temperature, humidity, CO2, occupancy counts, energy consumption, light levels, and other measurable values from physical sensors

### Work Orders

Maintenance and service requests including title, description, status, priority, assignee, due dates, vendor response, resolution details, and cost estimates

KODE OS maps TKE Elevator data to these standard fields:

| KODE Field            | Source Field                                                                                                                                    | Notes                |
| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- |
| **id**                | `serviceRecordId`                                                                                                                               | --                   |
| **title**             | `categoryLocale`                                                                                                                                | --                   |
| **description**       | `ticketDescriptionLocale`                                                                                                                       | --                   |
| **status**            | `ticketStatus`                                                                                                                                  | --                   |
| **assignedTo**        | `technicianName`                                                                                                                                | --                   |
| **createdAt**         | `Utils.getSafe( reportedDateTimeLocal, timestamp -> DateUtils.getCollectTimeFromBuildingTz( timestamp, TkeUtils.getDateTimeFormatter(timestamp` | transformed          |
| **startedAt**         | `Utils.getSafe( startDateTimeLocal, timestamp -> DateUtils.getCollectTimeFromBuildingTz( timestamp, TkeUtils.getDateTimeFormatter(timestamp`    | transformed          |
| **completedAt**       | `Utils.getSafe( endDateTimeLocal, timestamp -> DateUtils.getCollectTimeFromBuildingTz( timestamp, TkeUtils.getDateTimeFormatter(timestamp`      | transformed          |
| **duration**          | `getCompletionTime(`                                                                                                                            | --                   |
| **resolutionDetails** | `workDescriptionLocale`                                                                                                                         | --                   |
| **assetId**           | `unitId`                                                                                                                                        | --                   |
| **customFields**      | `(custom fields)`                                                                                                                               | custom fields object |

### Polling Schedule

* **Point History** -- Default polling: 15 minutes (min: 15 minutes, max: 1 hours)
* **WorkOrder** -- Default polling: 15 minutes (min: 15 minutes, max: 1 days)

For more details on collection modes, see the [Data Collection guide](/products/integrations/capabilities/data-collection).

## Use Cases

Once connected, this integration enables you to:

* Monitor elevator call counts, wait times, and operational status
* Track elevator service intervals and maintenance needs
* Correlate elevator usage patterns with building occupancy data

## Troubleshooting

<AccordionGroup>
  <Accordion title="Authentication or connection error">
    Verify that the credentials are correct and have not expired. Check that the URL is reachable from the KODE OS environment. Ensure the Client ID and Client Secret match the values from the TKE Elevator developer portal.
  </Accordion>

  <Accordion title="Discovery returns no devices">
    Verify the connector credentials have sufficient permissions in the TKE Elevator system to list devices. Run a test connection first to confirm connectivity. Some systems require specific API scopes or roles for device enumeration.
  </Accordion>

  <Accordion title="Data collection stops or gaps appear">
    Check the connector status on the Data Sources page. If the status shows an error, review the error logs on the connector detail page. Common causes include expired credentials, network changes, or rate limiting by the TKE Elevator API.
  </Accordion>
</AccordionGroup>
