> ## 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.

# Sembient

> Connect Sembient to KODE OS for occupancy, indoor environmental quality data

> Connect Sembient to KODE OS for occupancy, indoor environmental quality data integration

## Overview

Use this integration to connect Sembient to KODE OS. You can discover occupancy and environmental devices, collect snapshot readings on your polling cadence, and receive webhook payloads for faster operational response alongside IEQ context.

| Property            | Value                                   |
| ------------------- | --------------------------------------- |
| **System Type**     | Occupancy, Indoor Environmental Quality |
| **Communication**   | REST + Webhook                          |
| **Collection**      | Pull                                    |
| **Collection Mode** | SNAPSHOT                                |

## Supported Capabilities

* Discover Devices & Points
* Collect Sensor Data
* Receive Webhook Data

## Prerequisites

* An active account with Sembient and access to their API or developer portal
* Username and password credentials for the Sembient system
* KODE OS environment with access to Data Sources

## Configure Webhook

This integration uses webhooks for real-time data delivery. After creating the connector in KODE OS:

1. Copy the webhook URL provided on the connector detail page
2. In the Sembient platform, navigate to the webhook or notification settings
3. Add a new webhook endpoint using the KODE OS URL
4. Configure the authentication header as specified on the connector detail page
5. Save and enable the webhook

## Configure Connector in KODE OS

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

| Field               | Required | Type     | Description                                              |
| ------------------- | -------- | -------- | -------------------------------------------------------- |
| **Room**            | No       | text     | The specific room this connector is associated with      |
| **URL**             | Yes      | text     | The base URL or IP address of the external system        |
| **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      | password | 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 Sembient 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 Sembient, KODE OS maps them to the following device types and data points:

### Air Quality Sensor

Canonical Type: `airQuality`

| # | Point                         | Description                                                   | Unit | Writable | Collection |
| - | ----------------------------- | ------------------------------------------------------------- | ---- | -------- | ---------- |
| 1 | `motion_detection_sensor`     | **True** -- motion detected / **False** -- no motion detected | --   | No       | Webhook    |
| 2 | `occupancy_count`             | Cumulative count of events                                    | --   | No       | Webhook    |
| 3 | `zone_air_temperature_sensor` | Current temperature reading (°F)                              | °F   | No       | Webhook    |
| 4 | `zone_air_humidity_sensor`    | Relative humidity level (%RH)                                 | %RH  | No       | Webhook    |

## What Data You Get

### Point History

Time-series readings including motion\_detection\_sensor, occupancy\_count, zone\_air\_temperature\_sensor, zone\_air\_humidity\_sensor, collected at regular intervals from connected devices

### Polling Schedule

* **Point History** -- Default polling: 30 minutes (min: 30 minutes, max: 1 hours)

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:

* Track real-time space utilization rates across floors and zones
* Optimize HVAC and lighting schedules based on actual occupancy patterns
* Generate utilization reports to inform space planning and real estate decisions
* Monitor air quality metrics (CO2, VOC, humidity, temperature) across all occupied spaces

## 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. Verify the username and password are correct and the account has not been locked in the Sembient system.
  </Accordion>

  <Accordion title="Webhook data not arriving">
    Verify the webhook URL is correctly registered in the Sembient platform. Check that the authentication header matches the value from the KODE OS connector detail page. Ensure the Sembient system can reach the KODE OS webhook endpoint over the network.
  </Accordion>

  <Accordion title="Discovery returns no devices">
    Verify the connector credentials have sufficient permissions in the Sembient 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 Sembient API.
  </Accordion>
</AccordionGroup>
