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

# iSocket

> Connect iSocket to KODE OS for utility power status data

> Connect iSocket to KODE OS for utility power status data integration

## Overview

Use this integration to connect iSocket smart outlets to KODE OS. REST and webhooks deliver outlet state, temperature, and leak-related telemetry with historical retention where configured.

| Property            | Value                |
| ------------------- | -------------------- |
| **System Type**     | Utility Power Status |
| **Communication**   | REST + Webhook       |
| **Collection**      | Pull                 |
| **Collection Mode** | HISTORICAL           |

## Supported Capabilities

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

## Prerequisites

* An active account with iSocket and access to their API or developer portal
* API key or token from the iSocket platform
* KODE OS environment with access to Data Sources

## Generate API Credentials

1. Log in to the iSocket platform or admin console
2. Navigate to the API settings, developer section, or account settings
3. Generate a new API key or token
4. Copy the key and store it securely -- you will need it when configuring the connector in KODE OS

## 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 iSocket 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 **iSocket**
3. Click **+ Add Datasource**
4. Fill in the fields below and complete the three-page setup flow

| Field       | Required | Type     | Description                                                               |
| ----------- | -------- | -------- | ------------------------------------------------------------------------- |
| **Room**    | No       | dropdown | The specific room this connector is associated with                       |
| **API Key** | Yes      | password | The API key for authenticating with the external system                   |
| **File**    | Yes      | file     | An upload file used during discovery (e.g., device whitelist spreadsheet) |

## Discover Devices and Points

After configuring the connector, click **Discover** on the connector detail page. KODE OS will query the iSocket 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 iSocket, KODE OS maps them to the following device types and data points:

### Power Monitor

Canonical Type: `default`

| # | Point          | Description                                                                                   | Unit | Writable | Collection |
| - | -------------- | --------------------------------------------------------------------------------------------- | ---- | -------- | ---------- |
| 1 | `Power Status` | **Normal** -- operating within expected parameters / **Alarm** -- abnormal condition detected | --   | No       | Webhook    |

## What Data You Get

### Point History

Time-series readings including Power Status, collected at regular intervals from connected devices

### Alarms

Alert and fault notifications including alarm name, priority, status, timestamps, device association, and acknowledgment state

KODE OS maps iSocket data to these standard fields:

| KODE Field     | Source Field                                             | Notes       |
| -------------- | -------------------------------------------------------- | ----------- |
| **id**         | `alarmId`                                                | --          |
| **name**       | `"Power"`                                                | --          |
| **status**     | `data.alert`                                             | --          |
| **createdAt**  | `ISocketUtils.convertDateToUtcMillis(data.alertDateTime` | --          |
| **deviceName** | `device.alias`                                           | --          |
| **deviceId**   | `device.monitoringAlias`                                 | --          |
| **deviceName** | `device.alias`                                           | conditional |
| **deviceId**   | `device.monitoringAlias`                                 | conditional |

### Polling Schedule

* **Point History**
* **Alarm**

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:

* Centralize iSocket data in your building operations dashboard
* Correlate data from this system with other building systems for comprehensive analytics

## 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 API key or token is valid and has not been revoked or expired in the iSocket platform.
  </Accordion>

  <Accordion title="Webhook data not arriving">
    Verify the webhook URL is correctly registered in the iSocket platform. Check that the authentication header matches the value from the KODE OS connector detail page. Ensure the iSocket 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 iSocket 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 iSocket API.
  </Accordion>
</AccordionGroup>
