TapHome
Community Verifiziert Sicherheit

Nuki Smart Lock 4 Pro (MQTT)

Nuki Smart Lock 4 Pro in TapHome über die native MQTT API, ohne Nuki Bridge: verriegeln, entriegeln, Falle ziehen und Lock 'n' Go, dazu Schlossstatus, Türsensor, Batteriestand und letzte Schließaktion. Das Schloss verbindet sich über 2,4-GHz-WLAN oder Thread mit einem MQTT-Broker im LAN, etwa dem TapHome Core.

NukiPacket Parser → MQTT7 GeräteRevision 1.3 Zuletzt aktualisiert: 15. November 2026

Eingereicht von Marek Smarkoň

Import in die TapHome AppHardware › Packet Parser › Aus Vorlage hinzufügen

Vorlage herunterladen
Auf dieser Seite

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

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.

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:

AnforderungWert
Broker-Adresseprivate IPv4-Adresse oder ein Hostname, der zu einer privaten IP-Adresse aufgelöst wird
Port1883 (fest, nicht änderbar)
Verschlüsselungkeine (TLS wird nicht unterstützt)
Benutzername und Passwortauf Broker-Seite optional; jeweils höchstens 32 Zeichen
MQTT-Protokollversion3.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:

ParameterWas eingebenBeispiel
Nuki ID (hex)hexadezimale Nuki ID des Schlosses, aus der Nuki App oder vom Etikett2BB28570
IP-Adresse des MQTT-BrokersAdresse 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 Schlosses127.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:

WertSchließaktion
1entriegeln
2verriegeln
3Falle ziehen
4Lock ’n’ Go
5Lock ’n’ Go mit Falle ziehen
6vollständig verriegeln
80Fob (ohne Aktion)
90Taste (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.

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

Zámok

Schaltzustand lesen
RETURN(Mu);
Schaltzustand schreiben
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
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
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
IF(batteryCritical = "true", "Áno — vymeniť batérie", "Nie")
Nabíjanie batérie
IF(batteryCharging = "true", "Prebieha", "Neprebieha")
Krit. batéria klávesnice
IF(keypadBatteryCritical = "true", "Áno — vymeniť batérie", "Nie")
Pripojenie k brokeru
IF(nukiConnected = "true", "Pripojený", "Odpojený")
Pripojenie k serveru Nuki
IF(serverConnected = "true", "Pripojený", "Odpojený")
Odozva na príkaz
IF(commandResponse = "0", "Úspech", IF(LENGTH(commandResponse) = 0, "—", "Chyba zámku: " + commandResponse))
Posledná akcia
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
IF(LENGTH(nukiTimestamp) = 0, "—", nukiTimestamp)
Verzia firmvéru
IF(LENGTH(nukiFirmware) = 0, "—", nukiFirmware)
Serviceaktionen
Lock 'n' Go
MQTTPUBLISH("nuki/$[NukiId]/lockAction", "4");
Dverový senzor Reed-Kontakt

Dverový senzor

Lesen
RETURN(Rc);
Listener
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

Odblokovanie (Unlatch)

Tastenstatus lesen
Bp := 0;
Tastenstatus schreiben
MQTTPUBLISH("nuki/$[NukiId]/lockAction", "3");
Lock 'n' Go Taster

Lock 'n' Go

Tastenstatus lesen
Bp := 0;
Tastenstatus schreiben
MQTTPUBLISH("nuki/$[NukiId]/lockAction", "4");
Úroveň batérie Analogeingang

Úroveň batérie

Eingangslevel lesen
RETURN(An);
Listener
IF(RECEIVEDMSG.TOPIC = "nuki/$[NukiId]/batteryChargeState")
    An := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD)) / 100;
END
Posledná akcia zámku Variable

Posledná akcia zámku

Lesen
RETURN(Va);
Listener
IF(RECEIVEDMSG.TOPIC = "nuki/$[NukiId]/lockActionEvent")
    Va := TODOUBLE(GETAT(SPLIT(TOSTRING(RECEIVEDMSG.PAYLOAD), ","), 0));
END
Zamknúť Taster

Zamknúť

Tastenstatus lesen
Bp := 0;
Tastenstatus schreiben
MQTTPUBLISH("nuki/$[NukiId]/lockAction", "2");
Verbindung: Packet Parser → MQTT

Importparameter

Diese Werte geben Sie beim Import des XML ein.

In der App abgefragtStandard
Nuki ID (hex, napr. 2BB28570)2BB28570
IP adresa MQTT brokera192.168.1.1

Haben Sie ein Problem mit dieser Gerätevorlage gefunden?

Sagen Sie uns, was nicht funktioniert, was fehlt oder wie sich die Vorlage verhalten sollte. Ihr Feedback hilft uns, den Katalog genau zu halten.

Vorlage · TapHome-Portal Nuki Smart Lock 4 Pro (MQTT) Öffne diese Vorlage im Kundenportal, um sie auf eine deiner Wohnungen anzuwenden, oder entwirf eine Anpassung und reiche sie an den Katalog ein. Packet Parser → MQTT Im TapHome-Portal ansehen