> For the complete documentation index, see [llms.txt](https://docs.kiloiot.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kiloiot.io/kilo-docs-de/kilo-center/kilo-mioty-service-center/onboarding/verify-the-first-downlink.md).

# Den ersten Downlink überprüfen

Senden und überprüfen Sie den ersten MIOTY-Downlink in KiloCenter — stellen Sie einen Befehl an einen bidirektionalen Endpunkt in die Warteschlange und bestätigen Sie die Zustellung.

### Ziel

Stellen Sie einen Downlink-Befehl für einen Endpunkt in die Warteschlange und überprüfen Sie das Ergebnis.

### Voraussetzungen

* Endpunkt registriert mit **bidirektional** Flag aktiviert
* Basisstation verbunden und unterstützt bidirektionale Kommunikation
* Mindestens ein erfolgreicher Uplink bestätigt (siehe Ersten Uplink überprüfen)

Sowohl der Endpunkt als auch die Basisstation müssen bidirektionale Funktionalität haben, damit Downlinks funktionieren.

### Senden Sie einen Downlink über KC-Web

1. Öffne KC-Web unter `http://localhost/` (Container) oder `http://localhost:5173` (Source-Dev).
2. Navigieren Sie zu **Endpunkte** und wählen Sie Ihren bidirektionalen Endpunkt aus.
3. Verwenden Sie die Downlink-Oberfläche, um eine Nachricht in die Warteschlange zu stellen:
   * **Nutzlast**: base64-kodierte Daten (z. B., `AQIDBA==` für Bytes `01 02 03 04`)
   * **Bestätigt**: ob eine Zustellbestätigung angefordert werden soll
4. Senden Sie den Downlink ab.

### Senden Sie einen Downlink über gRPC (Alternative)

```bash
grpcurl -plaintext -d '{
  "endpoint_eui": "<EP_EUI_HEX>",
  "data": "AQIDBA==",
  "confirmed": false
}' localhost:9090 kilocenter.api.v1.KiloCenterService/SendDownlink
```

### Ergebnis überprüfen

#### In KC-Web

Überprüfen Sie die Downlink-Ergebnisansicht des Endpunkts auf Statusaktualisierungen. Ein erfolgreicher Downlink zeigt den Zustellstatus und jede Bestätigung vom Endpunkt an.

#### In den Protokollen

```bash
tail -f kilocenter-modules/logs/runtime/kc-core.log
```

Suche nach `dlDataQue`, `dlDataQueRsp`, und `dlDataQueCmp` Einträge -- diese stellen den Drei-Wege-Handshake des Downlink-Vorgangs dar.

### Fehlerbehebung

| Symptom                              | Wahrscheinliche Ursache                                                       |
| ------------------------------------ | ----------------------------------------------------------------------------- |
| Downlink bleibt in der Warteschlange | Endpunkt nicht zugeordnet oder nicht bidirektional                            |
| "Nicht bidirektional"-Fehler         | Endpunkt oder Basisstation `bidi` Flag nicht gesetzt                          |
| Kein Ergebnis zurückgegeben          | Basisstation hat den Downlink-Handshake nicht abgeschlossen                   |
| Nutzlast abgelehnt                   | Daten sind kein gültiges Base64 oder überschreiten die maximale Nutzlastgröße |


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.kiloiot.io/kilo-docs-de/kilo-center/kilo-mioty-service-center/onboarding/verify-the-first-downlink.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
