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

# Device discovery

> Discover devices and points from your data sources and register them in Cloud BMS.

<Info>
  Device discovery is a building-level feature. Select a building from the [sites list](/products/kode-os/sites-and-map) before starting discovery.
</Info>

Device discovery identifies equipment integrated into a [data source](/products/kode-os/data-sources) and registers it in Cloud BMS. The process scans the external system, returns a list of devices and points, and lets you select which ones to add to the database.

## Start discovery

You can start discovery from two locations. Shared results and Activity Log behavior are the same for both paths.

<Tabs>
  <Tab title="All data sources" icon="layers">
    <Steps>
      <Step title="Open data sources">
        Navigate to your building and click **`Data Sources`** in the left navigation bar.
      </Step>

      <Step title="Start bulk discovery">
        Click the three-dot menu to the right of the search bar and select **`Discover`**. Select the data sources you want to discover and click **`Next`**. Wait for the discovery process to complete.
      </Step>
    </Steps>
  </Tab>

  <Tab title="Single data source" icon="database">
    On the **Data Sources** page, click the three-dot menu on the data source row and select **`Discover Devices`**. The discovery process runs against that data source only.

    <Frame caption="Select Discover Devices from the data source row menu to start discovery">
      <img src="https://mintcdn.com/kodelabs/qpy9KTqZYAZmFRi5/images/kode-os/data-sources/discovery/kode-os-discovery-datasource-menu.png?fit=max&auto=format&n=qpy9KTqZYAZmFRi5&q=85&s=b818cb7ba855fda88467a2dc3cb3d609" alt="Data Sources page showing TR Fisnik data source with row three-dot menu open, listing Discover Devices, Discover Schedules, Edit, Duplicate, and Delete options" width="1024" height="530" data-path="images/kode-os/data-sources/discovery/kode-os-discovery-datasource-menu.png" />
    </Frame>
  </Tab>
</Tabs>

After discovery starts, the **Activity Log** appears in the lower right corner. It shows the discovery job name, data source, and status. You can expand, collapse, or move the Activity Log while discovery runs. You can also navigate to other modules without interrupting progress. Wait for the status to show **Completed** before reviewing results.

<Frame caption="The Activity Log confirms when the discovery job finishes">
  <img src="https://mintcdn.com/kodelabs/qpy9KTqZYAZmFRi5/images/kode-os/data-sources/discovery/kode-os-discovery-activity-log.png?fit=max&auto=format&n=qpy9KTqZYAZmFRi5&q=85&s=0cd37e9a6b1805955562676718fe8555" alt="Activity Log panel showing one entry for TR Fisnik with a green Completed status badge and navigation arrow" width="402" height="219" data-path="images/kode-os/data-sources/discovery/kode-os-discovery-activity-log.png" />
</Frame>

## Discovery results

After discovery completes, the **Device Discovery** page displays five tabs. Each tab shows a count badge with the number of items it contains.

| Tab                     | Contents                                                                                                                                            |
| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Conflicts**           | Devices or points that exist in Cloud BMS but can no longer be found in the data source. Includes possible duplicates and unmatched points.         |
| **New Devices**         | Devices not yet registered in Cloud BMS, ready to be added. New here means new to the Cloud BMS database, not newly added on the source controller. |
| **Existing Devices**    | Devices already in Cloud BMS, including any new points discovered on them.                                                                          |
| **Point Updates**       | Existing points whose properties (facets, writability, or unit) changed since the last discovery.                                                   |
| **Device Name Updates** | Devices whose names changed in the external system since the last discovery.                                                                        |

Use **`Restart discovery`** to re-run discovery, or **`Complete Discovery`** to finalize the process. Each tab includes an **`Export`** button to download its contents.

<Warning>
  Adding devices to the database is not the final step. After you finish selecting devices, click **`Complete Discovery`**, then **`Refresh Cache`**. If you skip Refresh Cache, devices can appear in Cloud BMS while data collection never starts. You can also run Refresh Cache later from the [data source](/products/kode-os/data-sources) connector menu.
</Warning>

## New devices

The **New Devices** tab lists devices that are not yet in Cloud BMS. Filter by **All** to see every new device, or **Possible Duplicates** to see devices that may already exist under a different identifier. You can browse these devices in two views:

* **Devices List** -- shows each device as a row with its path and new point count. Click the copy icon to copy a device path. Expand a device to see its individual points.

<Frame caption="Devices List shows each device with its path and the number of new points">
  <img src="https://mintcdn.com/kodelabs/qpy9KTqZYAZmFRi5/images/kode-os/data-sources/discovery/kode-os-discovery-new-devices.png?fit=max&auto=format&n=qpy9KTqZYAZmFRi5&q=85&s=4f601b31459071fb39be5f89344b2bb7" alt="Device Discovery page on the New Devices tab in Devices List view, showing FCU devices with their BACnet paths, copy icons, and 20 new points each, with All 16 and Possible Duplicates 0 filter tabs" width="1024" height="531" data-path="images/kode-os/data-sources/discovery/kode-os-discovery-new-devices.png" />
</Frame>

* **Grouped Points** -- groups results by point name. Each row shows how many new devices and new points share that name. Expand a point name to see the individual devices.

<Frame caption="Grouped Points organizes results by point name across all discovered devices">
  <img src="https://mintcdn.com/kodelabs/qpy9KTqZYAZmFRi5/images/kode-os/data-sources/discovery/kode-os-discovery-grouped-points.png?fit=max&auto=format&n=qpy9KTqZYAZmFRi5&q=85&s=0a89d02458d6ac7ab20367d20aa4fe4d" alt="Device Discovery page in Grouped Points view showing point names like ZN_T_SP and SA_T with columns for Number of New Devices and Number of New Points" width="1024" height="536" data-path="images/kode-os/data-sources/discovery/kode-os-discovery-grouped-points.png" />
</Frame>

### Add devices to the database

<Steps>
  <Step title="Select devices and points">
    Check the devices and points you want to register. The selection count appears above the table (for example, "3 device(s) selected on this page"). Click **`Select all devices in New Devices`** to select everything across all pages.

    <Frame caption="Selected devices display a point count badge and the selection summary appears above the table">
      <img src="https://mintcdn.com/kodelabs/qpy9KTqZYAZmFRi5/images/kode-os/data-sources/discovery/kode-os-discovery-new-devices-selected.png?fit=max&auto=format&n=qpy9KTqZYAZmFRi5&q=85&s=f38dee09227d9f92794ce787cca65189" alt="Device Discovery New Devices tab with three FCU devices checked, each showing a blue 20 badge for selected points, and a message showing 3 devices selected with an option to select all devices" width="1024" height="538" data-path="images/kode-os/data-sources/discovery/kode-os-discovery-new-devices-selected.png" />
    </Frame>
  </Step>

  <Step title="Add to database">
    Click **`Add to Database`**. The selected devices and points are registered in Cloud BMS and move to the **Existing Devices** tab.
  </Step>
</Steps>

<Tip>
  You can add devices incrementally. Select a few devices, click **`Add to Database`**, then return to add more from the remaining list.
</Tip>

## Existing devices

The **Existing Devices** tab shows devices already registered in Cloud BMS. It supports both **Devices List** and **Grouped Points** views, plus **Filters** for narrowing results. It contains three sub-tabs:

| Sub-tab            | Contents                                                                                                                |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------- |
| **All**            | Every discovered device with all its points.                                                                            |
| **New Points**     | Devices that have new points not yet added to Cloud BMS.                                                                |
| **With Conflicts** | Devices with at least one unmatched point. You cannot add new points for these devices until you resolve the conflicts. |

<Frame caption="The Existing Devices tab with New Points sub-tab showing VAV devices with 16 new points each">
  <img src="https://mintcdn.com/kodelabs/qpy9KTqZYAZmFRi5/images/kode-os/data-sources/discovery/kode-os-discovery-existing-devices.png?fit=max&auto=format&n=qpy9KTqZYAZmFRi5&q=85&s=b29fa7d88c04845bcd5584301884f7c2" alt="Device Discovery Existing Devices tab with New Points sub-tab selected showing 37 devices, VAV devices listed with BACnet paths, 16 new points each, Devices List and Grouped Points toggle, Filters button, and Export button" width="1024" height="532" data-path="images/kode-os/data-sources/discovery/kode-os-discovery-existing-devices.png" />
</Frame>

Expand a device row to see its individual points. Select the device and its points, then click **`Add to Database`** to register the new points.

<Frame caption="Expand an existing device to select new points for registration">
  <img src="https://mintcdn.com/kodelabs/qpy9KTqZYAZmFRi5/images/kode-os/data-sources/discovery/kode-os-discovery-existing-expanded.png?fit=max&auto=format&n=qpy9KTqZYAZmFRi5&q=85&s=3ceb751dcd448633d97b6793075f5984" alt="Existing Devices tab with VAV_303 expanded showing four new points with BACnet paths including Htg_Cmd, HTG_Enable, HTG_PI, and Cooling_PI, all selected with checkboxes, and Add to Database button at the bottom right" width="1024" height="541" data-path="images/kode-os/data-sources/discovery/kode-os-discovery-existing-expanded.png" />
</Frame>

## Conflicts

Conflicts occur when Cloud BMS has previously discovered a device or point, but can no longer find it in the data source. Common causes include:

* Renaming a device or point in the external system
* Changing a device or point location in the external system
* Deleting and re-adding a device or point in the external system

These orphaned devices and points remain in a **Down** status because Cloud BMS cannot communicate with them. When the renamed or relocated version appears during discovery, it comes in as a new device. Adding it without resolving the conflict creates duplicate data.

Cloud BMS marks a device as a **possible duplicate** when it detects that a newly discovered device may already exist in the database under a different identifier.

The **Conflicts** tab lists devices that have been rediscovered. Each row shows the device name, path, and the number of unmatched points. Expand a device to see its unmatched points, including any virtual device references.

<Frame caption="The Conflicts tab showing a device with one unmatched point expanded to reveal the virtual device detail">
  <img src="https://mintcdn.com/kodelabs/qpy9KTqZYAZmFRi5/images/kode-os/data-sources/discovery/kode-os-discovery-conflicts-expanded.png?fit=max&auto=format&n=qpy9KTqZYAZmFRi5&q=85&s=048c8733781617598676f1e80970820c" alt="Conflicts tab showing AHU_3 edit device with 1 Unmatched Points, expanded to show HtgVlv_out Virtual point with its BACnet path, with Auto Suggest button, Filters, and Export controls" width="1024" height="404" data-path="images/kode-os/data-sources/discovery/kode-os-discovery-conflicts-expanded.png" />
</Frame>

## Merge devices

Merging resolves conflicts by pairing unmatched points from the old device record with their counterparts on the rediscovered device.

### Merge a single device

<Steps>
  <Step title="Open the matchmaking view">
    On the **Conflicts** tab, click the **`Match Points`** icon (two arrows) on the device you want to merge.

    <Frame caption="Click Match Points on a conflict row to start the merging process">
      <img src="https://mintcdn.com/kodelabs/qpy9KTqZYAZmFRi5/images/kode-os/data-sources/discovery/kode-os-discovery-conflicts-match-points.png?fit=max&auto=format&n=qpy9KTqZYAZmFRi5&q=85&s=d7da02c63ff17572ee5f3dfb0bb06101" alt="Conflicts tab showing AHU_3 edit device with 1 Unmatched Points and the Match Points button tooltip visible on the two-arrows icon" width="1024" height="253" data-path="images/kode-os/data-sources/discovery/kode-os-discovery-conflicts-match-points.png" />
    </Frame>
  </Step>

  <Step title="Match points">
    The **Matchmaking** view opens. If a match is found, **Auto Suggest Points** runs automatically and pairs the points for you. You can also drag and drop points manually into the **Paired Points** area to create or adjust pairings.

    The left panel shows the device on Cloud BMS with its **Unmatched Points**, **New Points**, and **Existing Points**. The right panel shows **Paired Points** that will be merged. Click **`Save`** to apply the merge.

    <Frame caption="The Matchmaking view shows unmatched and new points on the left, paired points on the right">
      <img src="https://mintcdn.com/kodelabs/qpy9KTqZYAZmFRi5/images/kode-os/data-sources/discovery/kode-os-discovery-matchmaking.png?fit=max&auto=format&n=qpy9KTqZYAZmFRi5&q=85&s=709ac4557e93fbd90534ed68a305bf4d" alt="Matchmaking dialog for AHU_3 edit showing Unmatched Points section with Drop all button, New Points with DX1_S and And listed, Existing Points count of 66, and Paired Points on the right with HtgVlv_out Virtual paired with HtgVlv_out, plus Show original point names, Add Device Match, How to merge, and Auto Suggest Points controls" width="1024" height="456" data-path="images/kode-os/data-sources/discovery/kode-os-discovery-matchmaking.png" />
    </Frame>
  </Step>

  <Step title="Add a device match">
    Click **`Add Device Match`**. The **Device Match Selection** dialog opens with a searchable list of devices. Select the device you want to pair with and click **`Add`**.

    <Frame caption="Search and select the device to pair with from the Device Match Selection dialog">
      <img src="https://mintcdn.com/kodelabs/qpy9KTqZYAZmFRi5/images/kode-os/data-sources/discovery/kode-os-discovery-device-match-selection.png?fit=max&auto=format&n=qpy9KTqZYAZmFRi5&q=85&s=59e1cc42ddd0ed65f0a98d0ffa37d1ca" alt="Device Match Selection dialog with search bar, device table showing IEQ_02, IEQ_05, IEQ_06, and IEQ_04 with 12 New Points each, and Cancel and Add buttons" width="1024" height="673" data-path="images/kode-os/data-sources/discovery/kode-os-discovery-device-match-selection.png" />
    </Frame>
  </Step>
</Steps>

<Info>
  Only points within created pairs are merged. No updates are applied to other points. Drag and drop points to the specified area to merge them.
</Info>

### Global auto-suggest

When many devices have conflicts, click **`Auto Suggest`** on the **Conflicts** tab to run the matching process across all unmerged devices at once. The **Devices Autosuggest** page displays results with a **Match Status** for each device. Filter by **All**, **Match Found**, or **Match Not Found**.

Click **`Step by Step Merging`** to review each device individually. Confirm or adjust the suggested pairs, then proceed to apply each merge.

<Frame caption="Devices Autosuggest shows the match status for each conflicting device with a Step by Step Merging option">
  <img src="https://mintcdn.com/kodelabs/qpy9KTqZYAZmFRi5/images/kode-os/data-sources/discovery/kode-os-discovery-autosuggest.png?fit=max&auto=format&n=qpy9KTqZYAZmFRi5&q=85&s=3df0a21b306727c64c0f0d5aba89260d" alt="Devices Autosuggest page with sub-tabs for All 1, Match Found 1, and Match Not Found 0, showing AHU_3 edit device with Match found status, and Step by Step Merging button in the upper right" width="1024" height="500" data-path="images/kode-os/data-sources/discovery/kode-os-discovery-autosuggest.png" />
</Frame>

## Point updates

The **Point Updates** tab shows existing points whose properties differ from the last discovery. Filter results using the sub-tabs:

| Sub-tab                | Contents                                                                                               |
| ---------------------- | ------------------------------------------------------------------------------------------------------ |
| **All**                | Every point with a property change.                                                                    |
| **Facet Update**       | Points with changed boolean or enum values (for example, `Occ, Unocc` becomes `Occupied, Unoccupied`). |
| **Name Update**        | Points whose name changed in the external system.                                                      |
| **Unit Update**        | Points whose unit of measurement changed (for example, `°C` becomes `°F`).                             |
| **Writability Update** | Points whose writability setting changed (for example, read-only becomes writable).                    |

The table displays **Point**, **Device**, **Update Type**, and **Update Status** columns. The **Update Status** column shows the old and new values (for example, `°F > null`).

Select the points you want to sync and click **`Update points`** to apply the changes to Cloud BMS.

<Frame caption="Point Updates shows each changed point with its update type and the old-to-new value transition">
  <img src="https://mintcdn.com/kodelabs/qpy9KTqZYAZmFRi5/images/kode-os/data-sources/discovery/kode-os-discovery-point-updates.png?fit=max&auto=format&n=qpy9KTqZYAZmFRi5&q=85&s=70086d4e190b69af731e92d2a0a30a6a" alt="Point Updates tab with sub-tabs for All 92, Facet Update 0, Name Update 2, Unit Update 80, and Writability Update 10, showing a table of points from VAV_101 with Unit Update type and Update Status showing °F to null" width="1024" height="529" data-path="images/kode-os/data-sources/discovery/kode-os-discovery-point-updates.png" />
</Frame>

## Device name updates

The **Device Name Updates** tab shows devices whose name changed in the external system since the last discovery. The table displays the **Current Name (KODEOS)** alongside the **Updated Name (Data Source)** with the device path.

Select the devices you want to update and click **`Update Devices`** to sync the names in Cloud BMS.

<Frame caption="Device Name Updates compares the current Cloud BMS name with the updated name from the data source">
  <img src="https://mintcdn.com/kodelabs/qpy9KTqZYAZmFRi5/images/kode-os/data-sources/discovery/kode-os-discovery-device-name-updates.png?fit=max&auto=format&n=qpy9KTqZYAZmFRi5&q=85&s=dc0db4f6101b90681f0f0e1792b04cae" alt="Device Name Updates tab showing three devices with Current Name KODEOS column listing FCU_304 TEST, FCU_2051, and FanCoilUnit_I05, and Updated Name Data Source column listing FCU_304, FCU_205, and FCU_105 with their BACnet paths" width="1024" height="528" data-path="images/kode-os/data-sources/discovery/kode-os-discovery-device-name-updates.png" />
</Frame>

## Export discovery results

Each tab includes an **`Export`** button. Click it to open the export dialog where you set a **File Name**, choose an **Export Type** (for example, `Export Devices`), and select which **Columns** to include. Click **`Export`** to download the file.

<Frame caption="The export dialog lets you name the file, choose the export type, and select columns">
  <img src="https://mintcdn.com/kodelabs/qpy9KTqZYAZmFRi5/images/kode-os/data-sources/discovery/kode-os-discovery-export.png?fit=max&auto=format&n=qpy9KTqZYAZmFRi5&q=85&s=e227843b935acb446f4e3ea3012b5f7a" alt="Export dialog with File Name field, Export Type dropdown set to Export Devices, Columns dropdown set to All Columns, and Cancel and Export buttons" width="470" height="435" data-path="images/kode-os/data-sources/discovery/kode-os-discovery-export.png" />
</Frame>

Each tab exports its own data:

* **Conflicts** -- devices or points with conflicts
* **New Devices** -- list of new devices or new points
* **Existing Devices** -- list of new points on existing devices
* **Point Updates** -- points with updates, including details on what changed

## Next steps

<CardGroup cols={2}>
  <Card title="Data sources" icon="database" href="/products/kode-os/data-sources" arrow={true} cta="Manage">
    Configure and monitor your data source connections.
  </Card>

  <Card title="Devices" icon="cpu" href="/products/kode-os/devices/devices" arrow={true} cta="Explore">
    View and manage the equipment registered through discovery.
  </Card>
</CardGroup>
