> For the complete documentation index, see [llms.txt](https://help.security.gallagher.com/knowledge-hub/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.security.gallagher.com/knowledge-hub/products/integrations/elevators/otis/otis-troubleshooting.md).

# Otis Compass HLI connection issues

Diagnose Otis Compass HLI routing, multicast, logging, and floor-selection issues.

Fault finding, log collection, and common alarm types for the Otis Compass HLI integration.

{% hint style="info" %}
For architecture, licensing, network setup, and reader support, see [Otis](/knowledge-hub/products/integrations/elevators/otis.md).
{% endhint %}

## Networking - the most common issue

Most Otis integration issues are **network routing problems**, especially when controllers are on a different subnet. The `FT Otis Compass HLI Service` communicates with the Otis Layer 3 switch using the `192.168.50.250` network interface via UDP Multicast.

![Network diagram - CC server with two NICs, directly connected to Otis Layer 3 switch, showing the Multicast traffic path](https://328339335-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6bM8WhlBE9BYizPWJaPN%2Fuploads%2Fgit-blob-13230cc84f5ecf616a3f8ed49527146085d63d76%2FSECHUB-otis-troubleshooting-01-network-diagram.png?alt=media)

> **From CC 9.10**, Otis recommends switching from Multicast to Unicast to avoid multicast routing issues.

## Check the routing table - first step

**This is the first thing to check when an Otis system is not coming online.**

Open a command prompt on the CC server and run:

```
route print
```

Verify the multicast route entry `224.0.0.0` exists and points to `192.168.50.250`:

![Routing table - working configuration showing 224.0.0.0 240.0.0.0 192.168.50.250 192.168.50.250 with metric 55](https://328339335-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6bM8WhlBE9BYizPWJaPN%2Fuploads%2Fgit-blob-9ed5016b55433c2f7e26114ccf89e8f1799fd277%2FSECHUB-otis-troubleshooting-02-routing-table-working.png?alt=media)

The highlighted entry should show: `224.0.0.0 240.0.0.0 192.168.50.250 192.168.50.250 55` (the metric value may differ, but the interface must be `192.168.50.250`).

**If the entry is wrong or missing:**

![Routing table - broken configuration showing the wrong interface assigned to the multicast route](https://328339335-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6bM8WhlBE9BYizPWJaPN%2Fuploads%2Fgit-blob-f8faeac2fabfc7c8acd5bd0e402f66beeddc5d14%2FSECHUB-otis-troubleshooting-03-routing-table-broken.png?alt=media)

Delete and recreate the route:

```
route delete 224.0.0.0
```

```
route -p add 224.0.0.0 mask 240.0.0.0 192.168.50.250 metric 30 if X
```

Where `X` = the interface number of the `192.168.50.250` NIC. Find it via `ipconfig /all`, matching the MAC address to the interface number shown in `route print`.

> This issue is commonly caused by a Channel Partner adding a new NIC and not restoring the routing table correctly.

## Check network card priority

Occasionally (reportedly after Windows updates), network card metric priorities are reversed. The `192.168.50.250` NIC's metric must be **lower than** the Controller/Internet NIC's metric.

**Example:** if the controller network NIC had metric 25 (lower than the Otis NIC at 35), increase the controller NIC's metric above 35, for example set it to 50.

![Network card metric configuration - showing the correct metric values using netsh, with the Otis NIC metric lower than the controller network NIC](https://328339335-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6bM8WhlBE9BYizPWJaPN%2Fuploads%2Fgit-blob-bab4bba348d6e48593edb8b722f0942adbe79d63%2FSECHUB-otis-troubleshooting-04-network-card-priority.png?alt=media)

**Symptom of incorrect priority:** all DECs fail to come online. The event viewer shows:

```
Group [Group number] car [Car number] default access has not been sent or acknowledged yet
```

## Enabling logging

### Log the Otis Compass HLI Service

Edit `OtisCompassHliService.exe.config` and uncomment the Debug line:

**Before:**

```xml
<!--<add name="Debug" />-->
```

**After:**

```xml
<add name="Debug" />
```

The log file is created at: `Log\OtisCompassHliService.log`

### Registry keys for logging

Registry location: `Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Gallagher\Command Centre`

Create DWORD keys as needed:

| Key                 | Value    | Purpose                                                                                |
| ------------------- | -------- | -------------------------------------------------------------------------------------- |
| `LogControllerComm` | `1`      | Log Controller to `FT Otis Compass HLI Service` communication (requires Debug enabled) |
| `LogUdpMulticast`   | Non-zero | Log UDP Multicast packets (requires Debug enabled)                                     |
| `LogUdpUnicast`     | Non-zero | Log UDP Unicast packets (requires Debug enabled)                                       |

### Controller-level logging

Add to the **Additional Configuration** field on the **Advanced tab** of the Elevator HLI:

| Parameter             | Purpose                                                  |
| --------------------- | -------------------------------------------------------- |
| `log_raw_data=1`      | Logs outgoing and incoming packets in hexadecimal format |
| `raise_debug_event=n` | Raises additional debugging alarms (n = debugging level) |

> **Note:** these parameters impact controller performance and will slow normal operation on busy sites. Controller logs are overwritten when the log reaches 1 MB. On busy sites this can be 10 minutes or less. Remove after fault-finding.

### Wireshark

Otis engineers indicate that **port 23 on their switch is configured as a mirror port**. Plug a laptop into that port to capture all traffic with Wireshark.

## Common alarms

### "Card Did Not Select a Level"

![CC event showing "card did not select a level" alarm](https://328339335-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6bM8WhlBE9BYizPWJaPN%2Fuploads%2Fgit-blob-e10e00c2543721873e278014550e968f272c9d47%2FSECHUB-otis-troubleshooting-05-card-did-not-select-level.jpg?alt=media)

**Cause:** the cardholder is attempting to badge to the floor they are **currently on**.

**Example:** cardholder is on floor 6 and badges to go to floor 6 again. No movement is needed, so the system logs "did not select a level".

### "Floor Out of Bounds"

![CC event showing "floor out of bounds" alarm](https://328339335-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6bM8WhlBE9BYizPWJaPN%2Fuploads%2Fgit-blob-7205c2ae66d83eb5777016d8ed118f14292cd657%2FSECHUB-otis-troubleshooting-06-floor-out-of-bounds.jpg?alt=media)

**Cause:** the floor being requested exceeds the configured floor count.

**Example:** the system is configured for 5 floors but the 6th floor is being selected.

**Resolution:** check the `floor_offset` setting is correct. If there are 2 basement levels, the offset is typically `-2`. **Confirm the correct offset with the Otis Technician**, do not assume.

***

🔗 **Related**

* [Otis](/knowledge-hub/products/integrations/elevators/otis.md). Architecture, licensing, and network setup.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.security.gallagher.com/knowledge-hub/products/integrations/elevators/otis/otis-troubleshooting.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
