TapHome
Community Verificato Sicurezza

Nuki Smart Lock 4 Pro (MQTT)

Nuki Smart Lock 4 Pro in TapHome tramite la sua API MQTT nativa, senza Nuki Bridge: blocco, sblocco, apertura (unlatch) e Lock 'n' Go, più stato della serratura, sensore porta, livello batteria e ultima azione della serratura. La serratura si connette tramite Wi-Fi a 2,4 GHz o Thread a un broker MQTT nella LAN, come il TapHome Core.

NukiPacket Parser → MQTT7 dispositiviRevisione 1.3 Ultimo aggiornamento: 15 novembre 2026

Inviato da Marek Smarkoň

Importa nell'app TapHomeHardware › Packet Parser › Aggiungi da modello

Scarica template
In questa pagina

Indirizzo di rete

Con il broker MQTT integrato in TapHome, inserisci 127.0.0.1 come indirizzo del broker in TapHome. Nel dispositivo inserisci l’indirizzo IP del TapHome Core e assegna al Core una prenotazione IP nel router.

Preparazione della rete

Guida all'integrazione

Nuki Smart Lock 4 Pro è una serratura smart a batteria da installare sulla serratura esistente, con Wi-Fi integrato e Matter over Thread. Il template la collega a TapHome tramite l’interfaccia MQTT propria della serratura (Nuki MQTT API), quindi non servono né un Nuki Bridge né altri gateway. La serratura funziona come client MQTT: si connette a un broker MQTT nella rete locale, pubblica i propri stati nei topic nuki/<Nuki ID>/… e riceve i comandi di blocco negli stessi topic. Il broker può essere l’interfaccia MQTT Broker in esecuzione direttamente sul TapHome Core.

TapHome legge lo stato della serratura, lo stato del sensore porta, il livello della batteria e l’ultima azione della serratura, e invia i comandi blocco, sblocco, apertura (unlatch) e Lock ’n’ Go.

Secondo Nuki, la stessa API MQTT è disponibile su tutti i modelli Smart Lock di 4ª generazione (con o senza Pro), sullo Smart Lock 3.0 Pro (firmware 3.5.12 o superiore) e sui modelli più recenti Smart Lock Ultra, Smart Lock Pro (5ª generazione) e Smart Lock Go. Il template prende il nome dallo Smart Lock 4 Pro.

La serratura si connette solo a un broker nella rete locale (indirizzi privati 10.x.x.x, 172.16.x.x – 172.31.x.x, 192.168.x.x), sempre sulla porta 1883 e senza crittografia: TLS non è supportato. La sicurezza dei comandi dipende interamente dalla sicurezza della rete Wi-Fi o LAN. Usa l’interfaccia MQTT solo in una rete affidabile.

Connessione di rete

MQTT passa attraverso la connessione di rete della serratura, quindi la serratura deve prima trovarsi nella stessa rete del broker. Nuki supporta MQTT tramite Wi-Fi o tramite Thread (Matter).

  • Wi-Fi: nell’app Nuki apri Settings → Features & Configuration → Built-in Wi-Fi → Configure Wi-Fi della serratura, seleziona la rete e inserisci la relativa password. La serratura supporta solo Wi-Fi a 2,4 GHz (802.11 b/g/n); le reti a 5 GHz non sono supportate.
  • Thread: in alternativa, la serratura si collega alla rete tramite Matter over Thread, come descritto da Nuki.

Non ci sono collegamenti elettrici: la serratura funziona a batterie (4× AA o il Nuki Power Pack) e si monta meccanicamente sul lato interno della porta secondo la guida di installazione Nuki.

Configurazione

Broker MQTT

La serratura ha bisogno di un broker MQTT raggiungibile nella rete locale:

RequisitoValore
Indirizzo del brokerindirizzo IPv4 privato, oppure un hostname che si risolve in un indirizzo IP privato
Porta1883 (fissa, non modificabile)
Crittografianessuna (TLS non è supportato)
Nome utente e passwordfacoltativi lato broker; ciascuno al massimo 32 caratteri
Versione del protocollo MQTT3.1.1 o superiore

I broker cloud su internet non funzionano. Con l’interfaccia MQTT Broker di TapHome, l’indirizzo del broker è l’indirizzo IP del TapHome Core. Se sul broker sono impostati nome utente e password, le stesse credenziali vanno inserite nell’app Nuki.

Attivazione di MQTT nell’app Nuki

  1. Nell’app Nuki tocca la serratura e apri le sue impostazioni.
  2. Vai su Features & Configuration → Smart Home → MQTT e segui la procedura guidata di attivazione.
  3. Inserisci l’hostname o l’indirizzo IPv4 del broker (con TapHome come broker, l’indirizzo IP del Core, non quello della serratura) e, se il broker li richiede, nome utente e password.
  4. Lascia attivo Allow locking (predefinito). Senza questa opzione la serratura non si iscrive ai topic dei comandi: TapHome ne mostra solo gli stati e non può bloccarla né sbloccarla.
  5. Auto discovery (discovery di Home Assistant, attivo per impostazione predefinita) non è usato da TapHome: il template legge solo i topic nuki/<Nuki ID>/…. Puoi lasciarlo attivo o disattivarlo.
  6. Controlla lo stato della connessione, che l’app Nuki mostra nella stessa sezione MQTT.

Nuki ID

I topic di ogni serratura contengono il suo Nuki ID in forma esadecimale, per esempio 2BB28570. È stampato sull’etichetta della serratura ed è visibile anche nell’amministrazione del dispositivo nell’app Nuki. L’ID va inserito esattamente in questa forma esadecimale.

Parametri del template

In TapHome il template si aggiunge tramite un’interfaccia Packet Parser con i seguenti parametri di importazione:

ParametroCosa inserireEsempio
Nuki ID (hex)Nuki ID esadecimale della serratura, dall’app Nuki o dall’etichetta2BB28570
Indirizzo IP del broker MQTTindirizzo del broker per TapHome: con l’interfaccia TapHome MQTT Broker 127.0.0.1 (il Core si collega a se stesso); la serratura riceve l’indirizzo IP del Core, non quello della serratura127.0.0.1

Funzionalità del dispositivo

Serratura

L’interruttore Serratura mostra Bloccata o Sbloccata. Gli stati Nuki in sblocco, sbloccata, aperta, sbloccata (Lock ’n’ Go) e in apertura valgono tutti come Sbloccata. Durante il blocco, e quando la serratura non è calibrata o il motore è bloccato, l’interruttore mantiene l’ultimo valore.

Selezionando Bloccata viene inviata l’azione Nuki lock, selezionando Sbloccata l’azione unlock: la serratura si sblocca senza ritrarre lo scrocco. Il template invia un comando solo dopo aver ricevuto uno stato dalla serratura e solo quando il valore richiesto è diverso dallo stato attuale.

Attributi di servizio del dispositivo Serratura:

  • Stato serratura Nuki — lo stato esatto, compresi In blocco, In sblocco, Aperta, In apertura, Sbloccata (Lock ’n’ Go), Non calibrata e Motore bloccato
  • Batteria serratura critica e Batteria tastierino critica — se le batterie vanno sostituite
  • Batteria in carica
  • Connessione al broker — se la serratura è connessa al broker MQTT
  • Connessione al server Nuki
  • Risposta al comando — Successo, oppure il codice di errore dell’ultimo comando segnalato dalla serratura
  • Ultima azione — nome dell’ultima azione della serratura, per esempio Sblocco, Blocco, Apertura (unlatch) o Lock ’n’ Go (lo stesso valore del dispositivo Ultima azione serratura, vedi sotto)
  • Ultimo aggiornamento — ora dell’ultimo aggiornamento ricevuto dalla serratura, espressa nell’ora locale del TapHome Core
  • Versione firmware

Il dispositivo Serratura ha anche un’azione di servizio Lock ’n’ Go.

Blocco, Apertura (Unlatch) e Lock ’n’ Go

  • Blocco — pulsante: blocca la serratura (azione Nuki lock). Invia il comando a ogni pressione, indipendentemente dallo stato dell’interruttore Serratura.
  • Apertura (Unlatch) — pulsante: sblocca la serratura e ritrae lo scrocco, così la porta si apre senza usare la maniglia.
  • Lock ’n’ Go — pulsante: sblocca la serratura e la blocca di nuovo dopo la chiusura della porta.

Sensore porta

Il Sensore porta mostra Aperta o Chiusa quando un Nuki Door Sensor è associato alla serratura. Quando il sensore porta segnala una manomissione, il dispositivo mostra Aperta e genera un avviso. Un sensore porta disattivato viene segnalato con un messaggio informativo.

Livello batteria

Livello batteria mostra la carica delle batterie della serratura in %.

Ultima azione serratura

Ultima azione serratura mostra il numero dell’ultima azione che la serratura stava per eseguire, avviata da TapHome, dall’app Nuki, dal pulsante sulla serratura, da un tastierino o da un telecomando (fob):

ValoreAzione della serratura
1sblocco
2blocco
3apertura (unlatch)
4Lock ’n’ Go
5Lock ’n’ Go con apertura (unlatch)
6blocco completo
80telecomando (fob, senza azione)
90pulsante (senza azione)

Il valore resta numerico per poter essere usato come trigger per le smart rule; il dispositivo Serratura mostra la stessa azione per nome nell’attributo di servizio Ultima azione. I codici errati inseriti sul tastierino e i comandi fuori da una fascia oraria consentita non vengono segnalati dalla serratura.

Dopo un riavvio del TapHome Core il template non invia alcun comando alla serratura: l’interruttore Serratura assume lo stato segnalato dalla serratura. La serratura pubblica i propri stati come messaggi retained, quindi i valori vengono ripristinati da ciò che il broker conserva; un dispositivo che dopo il riavvio non riceve un tale valore mostra lo stato corretto alla successiva variazione sulla serratura.

Risoluzione dei problemi

  • La serratura non si connette al broker: nell’app Nuki verifica che l’indirizzo del broker sia un indirizzo IP privato nella stessa rete (con TapHome, l’indirizzo IP del Core), che il broker accetti connessioni sulla porta 1883 senza TLS e che nome utente e password corrispondano alle impostazioni del broker. L’attributo di servizio Connessione al broker deve mostrare Connesso.
  • L’attivazione di MQTT nell’app Nuki non riesce: aggiorna il firmware della serratura, verifica che la serratura sia connessa alla rete (Wi-Fi a 2,4 GHz o Thread), che la versione del protocollo MQTT sia 3.1.1 o superiore e che nome utente e password siano autorizzati sul broker. Se l’app segnala un identificativo client non valido, Nuki chiede di contattare il proprio supporto.
  • Gli stati vengono mostrati, ma i comandi non hanno effetto: attiva Allow locking nelle impostazioni MQTT dell’app Nuki. L’attributo di servizio Risposta al comando mostra Successo o il codice di errore della serratura. La serratura elabora un solo comando alla volta; se vengono inviati più comandi in parallelo, le risposte possono sovrapporsi.
  • In TapHome non viene mostrato nulla: controlla il Nuki ID: deve essere in forma esadecimale, esattamente come appare nell’app Nuki o sull’etichetta.
  • Stato serratura Nuki mostra Non calibrata: completa la calibrazione della serratura nell’app Nuki.
  • Il Sensore porta non cambia mai: alla serratura deve essere associato un Nuki Door Sensor; senza di esso la serratura non segnala lo stato della porta.

Dispositivi disponibili 7

Questi dispositivi compaiono in TapHome dopo l'importazione.

Nuki Smart Lock 4 Pro Modulo
Zámok Interruttore multivalore
Valori / Stati: Zamknuté · Odomknuté
Azioni di servizio
Lock 'n' Go
Variabile: batteryCritical, Variabile: batteryCharging, Variabile: keypadBatteryCritical, Variabile: nukiConnected, Variabile: serverConnected, Variabile: commandResponse, Variabile: nukiTimestamp, Variabile: nukiFirmware, Variabile: ready, Variabile: lastState, Variabile: lastAction

Zámok

Lettura stato interruttore
RETURN(Mu);
Scrittura stato interruttore
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
Attributi di servizio
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)
Azioni di servizio
Lock 'n' Go
MQTTPUBLISH("nuki/$[NukiId]/lockAction", "4");
Dverový senzor Contatto reed

Dverový senzor

Lettura
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) Pulsante

Odblokovanie (Unlatch)

Lettura stato pulsante
Bp := 0;
Scrittura stato pulsante
MQTTPUBLISH("nuki/$[NukiId]/lockAction", "3");
Lock 'n' Go Pulsante

Lock 'n' Go

Lettura stato pulsante
Bp := 0;
Scrittura stato pulsante
MQTTPUBLISH("nuki/$[NukiId]/lockAction", "4");
Úroveň batérie Ingresso analogico

Úroveň batérie

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

Posledná akcia zámku

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

Zamknúť

Lettura stato pulsante
Bp := 0;
Scrittura stato pulsante
MQTTPUBLISH("nuki/$[NukiId]/lockAction", "2");
Connessione: Packet Parser → MQTT

Parametri di importazione

Inserisci questi valori quando importi l'XML.

Richiesto nell'appPredefinito
Nuki ID (hex, napr. 2BB28570)2BB28570
IP adresa MQTT brokera192.168.1.1

Hai trovato un problema con questo template?

Dicci cosa non funziona, cosa manca o come dovrebbe comportarsi il template. Il tuo feedback ci aiuta a mantenere il catalogo accurato.

Modello · portale TapHome Nuki Smart Lock 4 Pro (MQTT) Apri questo template nel Customer Portal per applicarlo a una delle tue case, o crea una proposta di modifica e inviala al catalogo. Packet Parser → MQTT Vedi nel portale TapHome