TapHome
Comunitate Verificat Securitate

Nuki Smart Lock 4 Pro (MQTT)

Nuki Smart Lock 4 Pro în TapHome prin MQTT API nativ, fără Nuki Bridge: încuiere, descuiere, retragerea limbii yalei și Lock 'n' Go, plus starea încuietorii, senzorul de ușă, nivelul bateriei și ultima acțiune a încuietorii. Încuietoarea se conectează prin Wi-Fi de 2,4 GHz sau prin Thread la un broker MQTT din rețeaua locală, de exemplu TapHome Core.

NukiPacket Parser → MQTT7 dispozitiveRevizia 1.3 Ultima actualizare: 15 noiembrie 2026

Trimis de Marek Smarkoň

Import în aplicația TapHomeHardware › Packet Parser › Adăugați din șablon

Descărcați șablon
Pe această pagină

Adresa în rețea

Pentru brokerul MQTT integrat în TapHome, introduceți în TapHome 127.0.0.1 ca adresă a brokerului. În dispozitiv introduceți adresa IP a unității TapHome Core și atribuiți unității Core o rezervare IP în router.

Pregătirea rețelei

Ghid de integrare

Nuki Smart Lock 4 Pro este o încuietoare inteligentă alimentată cu baterii, care se montează pe yala existentă, cu Wi-Fi integrat și Matter over Thread. Șablonul o conectează la TapHome prin interfața MQTT proprie a încuietorii (Nuki MQTT API), deci nu este necesar nici Nuki Bridge, nici alt gateway. Încuietoarea funcționează ca client MQTT: se conectează la un broker MQTT din rețeaua locală, își publică stările în topicurile nuki/<Nuki ID>/… și acceptă comenzile de încuiere pe aceleași topicuri. Brokerul poate fi interfața MQTT Broker, care rulează direct pe TapHome Core.

TapHome citește starea încuietorii, starea senzorului de ușă, nivelul bateriei și ultima acțiune a încuietorii și trimite comenzile de încuiere, descuiere, retragere a limbii yalei și Lock ’n’ Go.

Conform Nuki, același MQTT API este disponibil pe toate modelele Smart Lock din generația a 4-a (cu sau fără Pro), pe Smart Lock 3.0 Pro (firmware 3.5.12 sau mai nou) și pe cele mai noi modele Smart Lock Ultra, Smart Lock Pro (generația a 5-a) și Smart Lock Go. Șablonul poartă numele Smart Lock 4 Pro.

Încuietoarea se conectează doar la un broker din rețeaua locală (adrese private 10.x.x.x, 172.16.x.x – 172.31.x.x, 192.168.x.x), întotdeauna pe portul 1883 și fără criptare — TLS nu este acceptat. Securitatea comenzilor depinde în întregime de securitatea rețelei Wi-Fi sau LAN. Folosiți interfața MQTT doar într-o rețea de încredere.

Conexiunea la rețea

MQTT funcționează prin conexiunea la rețea a încuietorii, așa că încuietoarea trebuie mai întâi să fie în aceeași rețea cu brokerul. Nuki acceptă MQTT prin Wi-Fi sau prin Thread (Matter).

  • Wi-Fi: în aplicația Nuki, deschideți la încuietoare Settings → Features & Configuration → Built-in Wi-Fi → Configure Wi-Fi, selectați rețeaua și introduceți parola acesteia. Încuietoarea acceptă doar Wi-Fi de 2,4 GHz (802.11 b/g/n); rețelele de 5 GHz nu sunt acceptate.
  • Thread: alternativ, încuietoarea se conectează la rețea prin Matter over Thread, conform descrierii Nuki.

Nu este necesară nicio cablare — încuietoarea funcționează cu baterii (4× AA sau Nuki Power Pack) și se montează mecanic pe partea interioară a ușii, conform ghidului de instalare Nuki.

Configurare

Broker MQTT

Încuietoarea are nevoie de un broker MQTT pe care îl poate accesa în rețeaua locală:

CerințăValoare
Adresa brokeruluiadresă IPv4 privată sau un nume de gazdă care se rezolvă într-o adresă IP privată
Port1883 (fix, nu se poate modifica)
Criptareniciuna (TLS nu este acceptat)
Nume de utilizator și parolăopționale pe partea brokerului; fiecare de maximum 32 de caractere
Versiunea protocolului MQTT3.1.1 sau mai nouă

Brokerele cloud de pe internet nu funcționează. Cu interfața MQTT Broker din TapHome, adresa brokerului este adresa IP a TapHome Core. Dacă pe broker sunt setate un nume de utilizator și o parolă, aceleași date de autentificare se introduc în aplicația Nuki.

Activarea MQTT în aplicația Nuki

  1. În aplicația Nuki, atingeți încuietoarea și deschideți setările acesteia.
  2. Accesați Features & Configuration → Smart Home → MQTT și urmați asistentul de activare.
  3. Introduceți numele de gazdă sau adresa IPv4 a brokerului (cu TapHome ca broker, adresa IP a TapHome Core — nu adresa IP a încuietorii), precum și numele de utilizator și parola, dacă brokerul le solicită.
  4. Lăsați Allow locking activat (implicit). Fără această opțiune, încuietoarea nu se abonează la topicurile de comandă: TapHome afișează atunci doar stările ei și nu o poate încuia sau descuia.
  5. Auto discovery (Home Assistant discovery, activat implicit) nu este folosit de TapHome — șablonul citește doar topicurile nuki/<Nuki ID>/…. Opțiunea poate rămâne activată sau poate fi dezactivată.
  6. Verificați starea conexiunii, pe care aplicația Nuki o afișează în aceeași secțiune MQTT.

Nuki ID

Topicurile fiecărei încuietori conțin Nuki ID-ul acesteia în formă hexazecimală, de exemplu 2BB28570. Este tipărit pe eticheta încuietorii și apare și în administrarea dispozitivelor din aplicația Nuki. ID-ul trebuie introdus exact în această formă hexazecimală.

Parametrii șablonului

În TapHome, șablonul se adaugă printr-o interfață Packet Parser, cu următorii parametri de import:

ParametruCe se introduceExemplu
Nuki ID (hex)Nuki ID-ul hexazecimal al încuietorii, din aplicația Nuki sau de pe etichetă2BB28570
Adresa IP a brokerului MQTTadresa brokerului pentru TapHome — cu interfața MQTT Broker din TapHome, 127.0.0.1 (TapHome Core se conectează la el însuși); încuietoarea primește adresa IP a TapHome Core, nu adresa IP a încuietorii127.0.0.1

Funcțiile dispozitivului

Încuietoare

Comutatorul Încuietoare afișează Încuiat sau Descuiat. Stările Nuki descuiere în curs, descuiat, limbă retrasă, descuiat (Lock ’n’ Go) și retragere limbă în curs sunt considerate toate Descuiat. În timpul încuierii, precum și când încuietoarea este necalibrată sau motorul este blocat, comutatorul își păstrează ultima valoare.

Selectarea Încuiat trimite acțiunea Nuki lock (încuiere), selectarea Descuiat trimite unlock (descuiere) — încuietoarea se descuie fără a retrage limba yalei. Șablonul trimite o comandă doar după ce a primit o stare de la încuietoare și doar atunci când valoarea cerută diferă de starea curentă.

Atributele de service ale dispozitivului Încuietoare:

  • Stare încuietoare Nuki — starea exactă, inclusiv Încuiere în curs, Descuiere în curs, Limbă retrasă, Retragere limbă în curs, Descuiat (Lock ’n’ Go), Necalibrat și Motor blocat
  • Baterie încuietoare critică și Baterie tastatură critică — dacă bateriile trebuie înlocuite
  • Încărcare baterie
  • Conexiune broker — dacă încuietoarea este conectată la brokerul MQTT
  • Conexiune server Nuki
  • Răspuns la comandă — Succes sau codul de eroare al ultimei comenzi, raportat de încuietoare
  • Ultima acțiune — numele ultimei acțiuni a încuietorii, de exemplu descuiere, încuiere, retragere limbă sau Lock ’n’ Go (aceeași valoare ca la dispozitivul Ultima acțiune a încuietorii, consultați mai jos)
  • Ultima actualizare — momentul ultimei actualizări primite de la încuietoare, afișat în ora locală a TapHome Core
  • Versiune firmware

Dispozitivul Încuietoare are și acțiunea de service Lock ’n’ Go.

Încuiere, retragere limbă și Lock ’n’ Go

  • Încuiere — buton: încuie încuietoarea (acțiunea Nuki lock). Trimite comanda la fiecare apăsare, indiferent de starea comutatorului Încuietoare.
  • Retragere limbă — buton: descuie încuietoarea și retrage limba yalei, astfel încât ușa se poate deschide fără clanță.
  • Lock ’n’ Go — buton: descuie încuietoarea și o încuie din nou după închiderea ușii.

Senzor de ușă

Dispozitivul Senzor de ușă afișează Deschisă sau Închisă când un Nuki Door Sensor este asociat cu încuietoarea. Când senzorul de ușă raportează o manipulare neautorizată (tamper), dispozitivul afișează Deschisă și generează un avertisment. Un senzor de ușă dezactivat este semnalat printr-un mesaj informativ.

Nivel baterie

Dispozitivul Nivel baterie afișează nivelul de încărcare al bateriilor încuietorii, în %.

Ultima acțiune a încuietorii

Dispozitivul Ultima acțiune a încuietorii afișează numărul ultimei acțiuni pe care încuietoarea urma să o execute — din TapHome, din aplicația Nuki, de la butonul încuietorii, de la o tastatură sau de la un fob:

ValoareAcțiunea încuietorii
1descuiere
2încuiere
3retragere limbă
4Lock ’n’ Go
5Lock ’n’ Go cu retragere limbă
6încuiere completă
80fob (fără acțiune)
90buton (fără acțiune)

Valoarea rămâne numerică pentru a putea fi folosită ca declanșator pentru smart rules; dispozitivul Încuietoare afișează aceeași acțiune prin numele ei în atributul de service Ultima acțiune. Introducerile nereușite de cod pe tastatură și comenzile din afara unei ferestre de timp permise nu sunt raportate de încuietoare.

După o repornire a TapHome Core, șablonul nu trimite nicio comandă încuietorii — comutatorul Încuietoare preia starea raportată de încuietoare. Încuietoarea își publică stările ca mesaje reținute (retained), așa că valorile se restabilesc din ceea ce păstrează brokerul; un dispozitiv care nu primește o astfel de valoare după repornire afișează starea corectă la următoarea schimbare a încuietorii.

Depanare

  • Încuietoarea nu se conectează la broker: verificați în aplicația Nuki că adresa brokerului este o adresă IP privată din aceeași rețea (cu TapHome, adresa IP a TapHome Core), că brokerul acceptă conexiuni pe portul 1883 fără TLS și că numele de utilizator și parola corespund setărilor brokerului. Atributul de service Conexiune broker trebuie să afișeze Conectat.
  • Activarea MQTT eșuează în aplicația Nuki: actualizați firmware-ul încuietorii, verificați că încuietoarea este conectată la rețea (Wi-Fi de 2,4 GHz sau Thread), că versiunea protocolului MQTT este 3.1.1 sau mai nouă și că numele de utilizator și parola sunt autorizate pe broker. Dacă aplicația raportează un identificator de client incorect, Nuki solicită contactarea suportului său.
  • Stările se afișează, dar comenzile nu au niciun efect: activați Allow locking în setările MQTT ale aplicației Nuki. Atributul de service Răspuns la comandă afișează Succes sau codul de eroare al încuietorii. Încuietoarea procesează o singură comandă o dată; când se trimit mai multe comenzi în paralel, răspunsurile se pot suprapune.
  • În TapHome nu se afișează nimic: verificați Nuki ID-ul — trebuie să fie în formă hexazecimală, exact cum apare în aplicația Nuki sau pe etichetă.
  • Atributul Stare încuietoare Nuki afișează Necalibrat: finalizați calibrarea încuietorii în aplicația Nuki.
  • Dispozitivul Senzor de ușă nu se schimbă niciodată: cu încuietoarea trebuie asociat un Nuki Door Sensor; fără acesta, încuietoarea nu raportează starea ușii.

Dispozitive disponibile 7

Aceste dispozitive apar în TapHome după import.

Nuki Smart Lock 4 Pro Modul
Zámok Comutator cu mai multe valori
Valori / Stări: Zamknuté · Odomknuté
Acțiuni de service
Lock 'n' Go
Variabilă: batteryCritical, Variabilă: batteryCharging, Variabilă: keypadBatteryCritical, Variabilă: nukiConnected, Variabilă: serverConnected, Variabilă: commandResponse, Variabilă: nukiTimestamp, Variabilă: nukiFirmware, Variabilă: ready, Variabilă: lastState, Variabilă: lastAction

Zámok

Citirea stării comutatorului
RETURN(Mu);
Scrierea stării comutatorului
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
Ascultător
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
Atribute de service
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)
Acțiuni de service
Lock 'n' Go
MQTTPUBLISH("nuki/$[NukiId]/lockAction", "4");
Dverový senzor Contact reed

Dverový senzor

Citire
RETURN(Rc);
Ascultător
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) Buton

Odblokovanie (Unlatch)

Citirea stării butonului
Bp := 0;
Scrierea stării butonului
MQTTPUBLISH("nuki/$[NukiId]/lockAction", "3");
Lock 'n' Go Buton

Lock 'n' Go

Citirea stării butonului
Bp := 0;
Scrierea stării butonului
MQTTPUBLISH("nuki/$[NukiId]/lockAction", "4");
Úroveň batérie Intrare analogică

Úroveň batérie

Citirea nivelului de intrare
RETURN(An);
Ascultător
IF(RECEIVEDMSG.TOPIC = "nuki/$[NukiId]/batteryChargeState")
    An := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD)) / 100;
END
Posledná akcia zámku Variabilă

Posledná akcia zámku

Citire
RETURN(Va);
Ascultător
IF(RECEIVEDMSG.TOPIC = "nuki/$[NukiId]/lockActionEvent")
    Va := TODOUBLE(GETAT(SPLIT(TOSTRING(RECEIVEDMSG.PAYLOAD), ","), 0));
END
Zamknúť Buton

Zamknúť

Citirea stării butonului
Bp := 0;
Scrierea stării butonului
MQTTPUBLISH("nuki/$[NukiId]/lockAction", "2");
Conexiune: Packet Parser → MQTT

Parametri de import

Introduceți aceste valori când importați XML-ul.

Solicitat în aplicațieImplicit
Nuki ID (hex, napr. 2BB28570)2BB28570
IP adresa MQTT brokera192.168.1.1

Ați găsit o problemă la acest șablon de dispozitiv?

Spuneți-ne ce nu funcționează, ce lipsește sau cum ar trebui să se comporte șablonul. Feedbackul dvs. ne ajută să păstrăm catalogul corect.

Șablon · portalul TapHome Nuki Smart Lock 4 Pro (MQTT) Deschideți acest șablon în Customer Portal pentru a-l aplica într-una dintre locuințele dvs. sau pentru a propune o îmbunătățire și a o trimite înapoi în catalog. Packet Parser → MQTT Vezi în portalul TapHome