---
title: "Nuki Smart Lock 4 Pro (MQTT)"
description: "Nuki Smart Lock 4 Pro per MQTT: verriegeln, entriegeln, Falle ziehen, Lock 'n' Go, Türsensor, Batterie. Broker im LAN auf Port 1883, z. B. TapHome Core."
url: "https://taphome.com/de/compatibility/nuki-smart-lock-4-pro-mqtt/"
language: de
lastmod: 2026-11-13
generator: hugo
ai:
  topics: ["mqtt","smart-lock","door-lock","access-control","wifi","thread","battery-powered"]
  questions: ["Wie integriere ich das Nuki Smart Lock 4 Pro in TapHome?","Was steuert und liest die TapHome-Vorlage für das Nuki Smart Lock 4 Pro?","Wie verbinde ich ein Nuki Smart Lock ohne Nuki Bridge per MQTT mit TapHome?","Wie aktiviere ich MQTT in der Nuki App und welche Broker-Adresse gebe ich ein?","Wo finde ich die hexadezimale Nuki ID des Schlosses?","Warum zeigt das Nuki-Schloss seinen Zustand in TapHome an, reagiert aber nicht auf Befehle?","Warum verbindet sich das Nuki Smart Lock nicht mit dem MQTT-Broker?","Welche Nuki-Smart-Lock-Modelle unterstützen die MQTT API?"]
---

# Nuki Smart Lock 4 Pro (MQTT)

Kommunikation: Packet Parser → MQTT

> Netzwerkadresse
> 
> Beim in TapHome integrierten MQTT-Broker geben Sie in TapHome `127.0.0.1` als Broker-Adresse ein. Im Gerät geben Sie die IP-Adresse des TapHome Core ein und richten für den Core eine IP-Reservierung im Router ein.
> 
> [Netzwerkvorbereitung](https://taphome.com/de/docs/setup/network-preparation/)

## Integrationsanleitung

Das Nuki Smart Lock 4 Pro ist ein batteriebetriebenes Nachrüst-Smart-Lock mit integriertem WLAN und Matter over Thread. Die Vorlage bindet es über die eigene MQTT-Schnittstelle des Schlosses (Nuki MQTT API) in TapHome ein, sodass weder eine Nuki Bridge noch ein anderes Gateway nötig ist. Das Schloss arbeitet als MQTT-Client: Es verbindet sich mit einem MQTT-Broker im lokalen Netzwerk, veröffentlicht seine Zustände unter den Topics `nuki/<Nuki ID>/…` und nimmt Schließbefehle über dieselben Topics entgegen. Als Broker kann die Schnittstelle **MQTT Broker** dienen, die direkt auf dem TapHome Core läuft.

TapHome liest den Schlossstatus, den Zustand des Türsensors, den Batteriestand und die letzte Schließaktion und sendet die Befehle Verriegeln, Entriegeln, Falle ziehen und Lock 'n' Go.

Laut Nuki ist dieselbe MQTT API auf allen Smart-Lock-Modellen der 4. Generation (mit oder ohne Pro), auf dem Smart Lock 3.0 Pro (Firmware 3.5.12 oder höher) sowie auf den neuesten Modellen Smart Lock Ultra, Smart Lock Pro (5. Generation) und Smart Lock Go verfügbar. Die Vorlage ist nach dem Smart Lock 4 Pro benannt.

> [!WARNING]
> Das Schloss verbindet sich nur mit einem Broker im lokalen Netzwerk (private Adressen 10.x.x.x, 172.16.x.x – 172.31.x.x, 192.168.x.x), immer über Port 1883 und ohne Verschlüsselung — TLS wird nicht unterstützt. Die Sicherheit der Befehle hängt vollständig von der Sicherheit des WLANs bzw. LANs ab. Verwenden Sie die MQTT-Schnittstelle nur in einem vertrauenswürdigen Netzwerk.

## Netzwerkverbindung

MQTT läuft über die Netzwerkverbindung des Schlosses, daher muss sich das Schloss zuerst im selben Netzwerk wie der Broker befinden. Nuki unterstützt MQTT über WLAN oder über Thread (Matter).

- **WLAN:** Öffnen Sie in der Nuki App beim Schloss **Settings → Features & Configuration → Built-in Wi-Fi → Configure Wi-Fi**, wählen Sie das Netzwerk und geben Sie dessen Passwort ein. Das Schloss unterstützt nur 2,4-GHz-WLAN (802.11 b/g/n); 5-GHz-Netzwerke werden nicht unterstützt.
- **Thread:** Alternativ wird das Schloss über Matter over Thread mit dem Netzwerk verbunden, wie von Nuki beschrieben.

Eine Verkabelung entfällt — das Schloss läuft mit Batterien (4× AA oder das Nuki Power Pack) und wird gemäß der Nuki-Montageanleitung mechanisch an der Innenseite der Tür montiert.

## Konfiguration

### MQTT-Broker

Das Schloss benötigt einen MQTT-Broker, den es im lokalen Netzwerk erreichen kann:

| Anforderung | Wert |
|---|---|
| Broker-Adresse | private IPv4-Adresse oder ein Hostname, der zu einer privaten IP-Adresse aufgelöst wird |
| Port | 1883 (fest, nicht änderbar) |
| Verschlüsselung | keine (TLS wird nicht unterstützt) |
| Benutzername und Passwort | auf Broker-Seite optional; jeweils höchstens 32 Zeichen |
| MQTT-Protokollversion | 3.1.1 oder neuer |

Cloud-Broker im Internet funktionieren nicht. Mit der Schnittstelle **MQTT Broker** von TapHome ist die Broker-Adresse die IP-Adresse des TapHome Core. Sind am Broker ein Benutzername und ein Passwort gesetzt, geben Sie dieselben Zugangsdaten in der Nuki App ein.

### MQTT in der Nuki App aktivieren

1. Tippen Sie in der Nuki App auf das Schloss und öffnen Sie seine Einstellungen.
2. Gehen Sie zu **Features & Configuration → Smart Home → MQTT** und folgen Sie dem Aktivierungsassistenten.
3. Geben Sie den **Hostnamen oder die IPv4-Adresse des Brokers** ein (mit TapHome als Broker die IP-Adresse des Core — nicht die IP-Adresse des Schlosses) sowie **Benutzername** und **Passwort**, falls der Broker sie verlangt.
4. Lassen Sie **Allow locking** eingeschaltet (Standard). Ohne diese Option abonniert das Schloss die Befehls-Topics nicht: TapHome zeigt dann nur seine Zustände an und kann es weder verriegeln noch entriegeln.
5. **Auto discovery** (Home-Assistant-Discovery, standardmäßig eingeschaltet) wird von TapHome nicht genutzt — die Vorlage liest nur die Topics `nuki/<Nuki ID>/…`. Die Option kann eingeschaltet bleiben oder ausgeschaltet werden.
6. Prüfen Sie den Verbindungsstatus, den die Nuki App im selben MQTT-Bereich anzeigt.

### Nuki ID

Die Topics jedes Schlosses enthalten seine **Nuki ID** in hexadezimaler Form, zum Beispiel `2BB28570`. Sie ist auf dem Etikett des Schlosses aufgedruckt und wird auch in der Geräteverwaltung der Nuki App angezeigt. Die ID muss genau in dieser hexadezimalen Form eingegeben werden.

### Parameter der Vorlage

In TapHome wird die Vorlage über eine Schnittstelle **Packet Parser** mit folgenden Importparametern hinzugefügt:

| Parameter | Was eingeben | Beispiel |
|---|---|---|
| Nuki ID (hex) | hexadezimale Nuki ID des Schlosses, aus der Nuki App oder vom Etikett | `2BB28570` |
| IP-Adresse des MQTT-Brokers | Adresse des Brokers für TapHome — mit der Schnittstelle MQTT Broker von TapHome `127.0.0.1` (der Core verbindet sich mit sich selbst); das Schloss bekommt die IP-Adresse des Core, **nicht** die IP-Adresse des Schlosses | `127.0.0.1` |

## Gerätefunktionen

### Schloss

Der Schalter **Schloss** zeigt **Verriegelt** oder **Entriegelt** an. Die Nuki-Zustände Wird entriegelt, Entriegelt, Falle gezogen, Entriegelt (Lock 'n' Go) und Falle wird gezogen gelten alle als Entriegelt. Während des Verriegelns sowie bei nicht kalibriertem Schloss oder blockiertem Motor behält der Schalter seinen letzten Wert.

Die Auswahl **Verriegelt** sendet die Nuki-Schließaktion *lock*, die Auswahl **Entriegelt** sendet *unlock* — das Schloss entriegelt, ohne die Falle zu ziehen. Die Vorlage sendet einen Befehl erst, nachdem sie einen Zustand vom Schloss empfangen hat, und nur dann, wenn sich der gewünschte Wert vom aktuellen Zustand unterscheidet.

Service-Attribute des Geräts Schloss:

- **Nuki-Schlossstatus** — der genaue Zustand, einschließlich Wird verriegelt, Wird entriegelt, Falle gezogen, Falle wird gezogen, Entriegelt (Lock 'n' Go), Nicht kalibriert und Motor blockiert
- **Schlossbatterie kritisch** und **Keypad-Batterie kritisch** — ob die Batterien ersetzt werden müssen
- **Batterie wird geladen**
- **Broker-Verbindung** — ob das Schloss mit dem MQTT-Broker verbunden ist
- **Nuki-Server-Verbindung**
- **Befehlsantwort** — Erfolg oder der vom Schloss gemeldete Fehlercode des letzten Befehls
- **Letzte Aktion** — Name der letzten Schließaktion, zum Beispiel entriegeln, verriegeln, Falle ziehen oder Lock 'n' Go (derselbe Wert wie beim Gerät Letzte Schließaktion, siehe unten)
- **Letzte Aktualisierung** — Zeitpunkt der letzten Aktualisierung vom Schloss, angezeigt in der Ortszeit des TapHome Core
- **Firmwareversion**

Das Gerät Schloss hat außerdem die Service-Aktion **Lock 'n' Go**.

### Verriegeln, Falle ziehen und Lock 'n' Go

- **Verriegeln** — Taster: verriegelt das Schloss (Nuki-Schließaktion *lock*). Der Befehl wird bei jedem Drücken gesendet, unabhängig vom Zustand des Schalters Schloss.
- **Falle ziehen** — Taster: entriegelt das Schloss und zieht die Falle, sodass sich die Tür ohne Drücker öffnen lässt.
- **Lock 'n' Go** — Taster: entriegelt das Schloss und verriegelt es wieder, nachdem die Tür geschlossen wurde.

### Türsensor

Der **Türsensor** zeigt **Offen** oder **Geschlossen** an, wenn ein Nuki Door Sensor mit dem Schloss gekoppelt ist. Meldet der Türsensor eine Manipulation, zeigt das Gerät Offen an und löst eine Warnung aus. Ein deaktivierter Türsensor wird als Informationsmeldung angezeigt.

### Batteriestand

**Batteriestand** zeigt den Ladezustand der Schlossbatterien in % an.

### Letzte Schließaktion

**Letzte Schließaktion** zeigt die Nummer der letzten Schließaktion an, die das Schloss ausführen wollte — ausgelöst von TapHome, der Nuki App, der Taste am Schloss, einem Keypad oder einem Fob:

| Wert | Schließaktion |
|---|---|
| 1 | entriegeln |
| 2 | verriegeln |
| 3 | Falle ziehen |
| 4 | Lock 'n' Go |
| 5 | Lock 'n' Go mit Falle ziehen |
| 6 | vollständig verriegeln |
| 80 | Fob (ohne Aktion) |
| 90 | Taste (ohne Aktion) |

Der Wert bleibt numerisch, damit er sich als Auslöser für smart rules eignet; das Gerät Schloss zeigt den Namen derselben Aktion in seinem Service-Attribut **Letzte Aktion** an. Erfolglose Codeeingaben am Keypad und Befehle außerhalb eines erlaubten Zeitfensters meldet das Schloss nicht.

> [!NOTE]
> Nach einem Neustart des TapHome Core sendet die Vorlage **keinen Befehl** an das Schloss — der Schalter Schloss übernimmt den vom Schloss gemeldeten Zustand. Das Schloss veröffentlicht seine Zustände als Retained Messages, daher werden die Werte aus den Daten wiederhergestellt, die der Broker vorhält; ein Gerät, das nach dem Neustart keinen solchen Wert erhält, zeigt den richtigen Zustand bei der nächsten Änderung am Schloss an.

## Fehlerbehebung

- **Das Schloss verbindet sich nicht mit dem Broker:** Prüfen Sie in der Nuki App, dass die Broker-Adresse eine private IP-Adresse im selben Netzwerk ist (mit TapHome die IP-Adresse des Core), dass der Broker Verbindungen auf Port 1883 ohne TLS annimmt und dass Benutzername und Passwort mit den Broker-Einstellungen übereinstimmen. Das Service-Attribut **Broker-Verbindung** muss Verbunden anzeigen.
- **Die MQTT-Aktivierung in der Nuki App schlägt fehl:** Aktualisieren Sie die Firmware des Schlosses, prüfen Sie, dass das Schloss mit dem Netzwerk verbunden ist (2,4-GHz-WLAN oder Thread), dass die MQTT-Protokollversion 3.1.1 oder neuer ist und dass Benutzername und Passwort am Broker berechtigt sind. Meldet die App eine ungültige Client-Kennung, bittet Nuki, den Nuki-Support zu kontaktieren.
- **Zustände werden angezeigt, aber Befehle bewirken nichts:** Schalten Sie in den MQTT-Einstellungen der Nuki App **Allow locking** ein. Das Service-Attribut **Befehlsantwort** zeigt Erfolg oder den Fehlercode des Schlosses an. Das Schloss verarbeitet jeweils nur einen Befehl; werden mehrere Befehle parallel gesendet, können sich die Antworten überschneiden.
- **In TapHome wird nichts angezeigt:** Prüfen Sie die Nuki ID — sie muss in hexadezimaler Form genau so eingegeben sein, wie sie in der Nuki App oder auf dem Etikett steht.
- **Nuki-Schlossstatus zeigt Nicht kalibriert:** Schließen Sie die Kalibrierung des Schlosses in der Nuki App ab.
- **Der Türsensor ändert sich nie:** Mit dem Schloss muss ein Nuki Door Sensor gekoppelt sein; ohne ihn meldet das Schloss keinen Türzustand.

## Verfügbare Geräte 7

Diese Geräte erscheinen nach dem Import in TapHome.

Nuki Smart Lock 4 Pro Modul

Zámok Mehrwertschalter

Werte / Zustände: Zamknuté · Odomknuté

Serviceaktionen

|             |
|-------------|
| Lock 'n' Go |

Variable: `batteryCritical`, Variable: `batteryCharging`, Variable: `keypadBatteryCritical`, Variable: `nukiConnected`, Variable: `serverConnected`, Variable: `commandResponse`, Variable: `nukiTimestamp`, Variable: `nukiFirmware`, Variable: `ready`, Variable: `lastState`, Variable: `lastAction`

Schaltzustand lesen

```taphome
RETURN(Mu);
```

Schaltzustand schreiben

```taphome
IF(ready = 0 OR Mu = lastState)
    RETURN(0);
END
IF(Mu = 1)
    MQTTPUBLISH("nuki/$[NukiId]/lockAction", "2");
ELSEIF(Mu = 3)
    MQTTPUBLISH("nuki/$[NukiId]/lockAction", "1");
END
```

Listener

```taphome
IF(INDEXOF(RECEIVEDMSG.TOPIC, "nuki/$[NukiId]/") != 0)
    RETURN(0);
END
IF(RECEIVEDMSG.TOPIC = "nuki/$[NukiId]/state")
    VAR st := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
    ready := 1;
    lastState := st;
    IF(st = 1)
        Mu := 1;
    ELSEIF(st = 2 OR st = 3 OR st = 5 OR st = 6 OR st = 7)
        Mu := 3;
    END
ELSEIF(RECEIVEDMSG.TOPIC = "nuki/$[NukiId]/batteryCritical")
    batteryCritical := TOSTRING(RECEIVEDMSG.PAYLOAD);
ELSEIF(RECEIVEDMSG.TOPIC = "nuki/$[NukiId]/batteryCharging")
    batteryCharging := TOSTRING(RECEIVEDMSG.PAYLOAD);
ELSEIF(RECEIVEDMSG.TOPIC = "nuki/$[NukiId]/keypadBatteryCritical")
    keypadBatteryCritical := TOSTRING(RECEIVEDMSG.PAYLOAD);
ELSEIF(RECEIVEDMSG.TOPIC = "nuki/$[NukiId]/connected")
    nukiConnected := TOSTRING(RECEIVEDMSG.PAYLOAD);
ELSEIF(RECEIVEDMSG.TOPIC = "nuki/$[NukiId]/serverConnected")
    serverConnected := TOSTRING(RECEIVEDMSG.PAYLOAD);
ELSEIF(RECEIVEDMSG.TOPIC = "nuki/$[NukiId]/commandResponse")
    commandResponse := TOSTRING(RECEIVEDMSG.PAYLOAD);
ELSEIF(RECEIVEDMSG.TOPIC = "nuki/$[NukiId]/timestamp")
    VAR tsUtc := DATETIME(TOSTRING(RECEIVEDMSG.PAYLOAD));
    VAR tsLocal := tsUtc.LOCALDATETIME;
    nukiTimestamp := TOSTRING(tsLocal, "d.M.yyyy HH:mm:ss");
ELSEIF(RECEIVEDMSG.TOPIC = "nuki/$[NukiId]/lockActionEvent")
    lastAction := TODOUBLE(GETAT(SPLIT(TOSTRING(RECEIVEDMSG.PAYLOAD), ","), 0));
ELSEIF(RECEIVEDMSG.TOPIC = "nuki/$[NukiId]/firmware")
    nukiFirmware := TOSTRING(RECEIVEDMSG.PAYLOAD);
END
```

Serviceattribute

Stav zámku Nuki

```taphome
IF(lastState = 1, "Zamknuté", IF(lastState = 2, "Odomykanie", IF(lastState = 3, "Odomknuté", IF(lastState = 4, "Zamykanie", IF(lastState = 5, "Odblokované", IF(lastState = 6, "Odomknuté (Lock 'n' Go)", IF(lastState = 7, "Odblokovanie", IF(lastState = 0, "Nekalibrovaný", IF(lastState = 254, "Motor zablokovaný", "Neznámy (" + TOSTRING(lastState) + ")")))))))))
```

Krit. batéria zámku

```taphome
IF(batteryCritical = "true", "Áno — vymeniť batérie", "Nie")
```

Nabíjanie batérie

```taphome
IF(batteryCharging = "true", "Prebieha", "Neprebieha")
```

Krit. batéria klávesnice

```taphome
IF(keypadBatteryCritical = "true", "Áno — vymeniť batérie", "Nie")
```

Pripojenie k brokeru

```taphome
IF(nukiConnected = "true", "Pripojený", "Odpojený")
```

Pripojenie k serveru Nuki

```taphome
IF(serverConnected = "true", "Pripojený", "Odpojený")
```

Odozva na príkaz

```taphome
IF(commandResponse = "0", "Úspech", IF(LENGTH(commandResponse) = 0, "—", "Chyba zámku: " + commandResponse))
```

Posledná akcia

```taphome
IF(lastAction = 1, "Odomknutie", IF(lastAction = 2, "Zamknutie", IF(lastAction = 3, "Odblokovanie", IF(lastAction = 4, "Lock 'n' Go", IF(lastAction = 5, "Lock 'n' Go s odblokovaním", IF(lastAction = 6, "Úplné zamknutie", IF(lastAction = 80, "Kľúčenka (bez akcie)", IF(lastAction = 90, "Tlačidlo (bez akcie)", IF(lastAction = -1, "—", "Neznáma (" + TOSTRING(lastAction) + ")")))))))))
```

Posledná aktualizácia

```taphome
IF(LENGTH(nukiTimestamp) = 0, "—", nukiTimestamp)
```

Verzia firmvéru

```taphome
IF(LENGTH(nukiFirmware) = 0, "—", nukiFirmware)
```

Serviceaktionen

Lock 'n' Go

```taphome
MQTTPUBLISH("nuki/$[NukiId]/lockAction", "4");
```

Dverový senzor Reed-Kontakt

Lesen

```taphome
RETURN(Rc);
```

Listener

```taphome
IF(RECEIVEDMSG.TOPIC = "nuki/$[NukiId]/doorsensorState")
    VAR dsVal := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
    IF(dsVal = 3)
        Rc := 1;
    ELSEIF(dsVal = 2)
        Rc := 0;
    ELSEIF(dsVal = 240)
        Rc := 1;
        ADDWARNING(0, "Dverový senzor: detekovaná manipulácia (tamper)");
    ELSEIF(dsVal = 1)
        ADDINFO(0, "Dverový senzor deaktivovaný");
    END
END
```

Odblokovanie (Unlatch) Taster

Tastenstatus lesen

```taphome
Bp := 0;
```

Tastenstatus schreiben

```taphome
MQTTPUBLISH("nuki/$[NukiId]/lockAction", "3");
```

Lock 'n' Go Taster

Tastenstatus lesen

```taphome
Bp := 0;
```

Tastenstatus schreiben

```taphome
MQTTPUBLISH("nuki/$[NukiId]/lockAction", "4");
```

Úroveň batérie Analogeingang

Eingangslevel lesen

```taphome
RETURN(An);
```

Listener

```taphome
IF(RECEIVEDMSG.TOPIC = "nuki/$[NukiId]/batteryChargeState")
    An := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD)) / 100;
END
```

Posledná akcia zámku Variable

Lesen

```taphome
RETURN(Va);
```

Listener

```taphome
IF(RECEIVEDMSG.TOPIC = "nuki/$[NukiId]/lockActionEvent")
    Va := TODOUBLE(GETAT(SPLIT(TOSTRING(RECEIVEDMSG.PAYLOAD), ","), 0));
END
```

Zamknúť Taster

Tastenstatus lesen

```taphome
Bp := 0;
```

Tastenstatus schreiben

```taphome
MQTTPUBLISH("nuki/$[NukiId]/lockAction", "2");
```

**Verbindung:** Packet Parser → MQTT

## Importparameter

Diese Werte geben Sie beim Import des XML ein.

| In der App abgefragt          | Standard      |
|-------------------------------|---------------|
| Nuki ID (hex, napr. 2BB28570) | `2BB28570`    |
| IP adresa MQTT brokera        | `192.168.1.1` |

## Verwandte Dokumentation

- [MQTT Integration](https://taphome.com/de/compatibility/mqtt-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/de/docs/integration/packet-parser/)
- [Packet-Parser-Funktionen](https://taphome.com/de/docs/script/packet-parser/)
- [Parsing-Funktionen](https://taphome.com/de/docs/script/parsing-functions/)
- [MQTT-Broker](https://taphome.com/de/docs/integration/packet-parser/mqtt-broker/)
- [Listener-Skripte](https://taphome.com/de/docs/script/listener-scripts/)

