TapHome
Społeczność Zweryfikowany Bezpieczeństwo

Nuki Smart Lock 4 Pro (MQTT)

Nuki Smart Lock 4 Pro w TapHome przez natywne MQTT API, bez Nuki Bridge: zaryglowanie, odryglowanie, odciągnięcie zapadki i Lock 'n' Go oraz stan zamka, czujnik drzwi, poziom baterii i ostatnia akcja zamka. Zamek łączy się przez Wi-Fi 2,4 GHz lub Thread z brokerem MQTT w sieci LAN, np. z TapHome Core.

NukiPacket Parser → MQTT7 urządzeńRewizja 1.3 Ostatnia aktualizacja: 15 listopada 2026

Dodane przez Marek Smarkoň

Import do aplikacji TapHomeSprzęt › Packet Parser › Dodaj z szablonu

Pobierz szablon
Na tej stronie

Adres w sieci

Przy brokerze MQTT wbudowanym w TapHome wpisz w TapHome jako adres brokera 127.0.0.1. W urządzeniu wpisz adres IP TapHome Core i nadaj jednostce Core rezerwację IP w routerze.

Przygotowanie sieci

Poradnik integracji

Nuki Smart Lock 4 Pro to zasilany bateryjnie inteligentny zamek montowany na istniejącej wkładce, z wbudowanym Wi-Fi i Matter over Thread. Szablon łączy go z TapHome przez własny interfejs MQTT zamka (Nuki MQTT API), więc nie jest potrzebny ani Nuki Bridge, ani żadna inna bramka. Zamek działa jako klient MQTT: łączy się z brokerem MQTT w sieci lokalnej, publikuje swoje stany w tematach nuki/<Nuki ID>/… i przyjmuje polecenia zamka w tych samych tematach. Brokerem może być interfejs MQTT Broker działający bezpośrednio na TapHome Core.

TapHome odczytuje stan zamka, stan czujnika drzwi, poziom baterii i ostatnią akcję zamka oraz wysyła polecenia zaryglowania, odryglowania, odciągnięcia zapadki i Lock ’n’ Go.

Według Nuki to samo MQTT API jest dostępne we wszystkich modelach Smart Lock 4. generacji (z Pro lub bez), w Smart Lock 3.0 Pro (firmware 3.5.12 lub nowszy) oraz w najnowszych modelach Smart Lock Ultra, Smart Lock Pro (5. generacja) i Smart Lock Go. Nazwa szablonu pochodzi od Smart Lock 4 Pro.

Zamek łączy się tylko z brokerem w sieci lokalnej (adresy prywatne 10.x.x.x, 172.16.x.x – 172.31.x.x, 192.168.x.x), zawsze na porcie 1883 i bez szyfrowania — TLS nie jest obsługiwany. Bezpieczeństwo poleceń zależy całkowicie od bezpieczeństwa sieci Wi-Fi lub LAN. Używaj interfejsu MQTT tylko w zaufanej sieci.

Połączenie sieciowe

MQTT działa przez połączenie sieciowe zamka, dlatego zamek musi najpierw znaleźć się w tej samej sieci co broker. Nuki obsługuje MQTT przez Wi-Fi lub przez Thread (Matter).

  • Wi-Fi: w aplikacji Nuki otwórz w zamku Settings → Features & Configuration → Built-in Wi-Fi → Configure Wi-Fi, wybierz sieć i wpisz jej hasło. Zamek obsługuje tylko Wi-Fi 2,4 GHz (802.11 b/g/n); sieci 5 GHz nie są obsługiwane.
  • Thread: alternatywnie zamek łączy się z siecią przez Matter over Thread, zgodnie z opisem Nuki.

Okablowanie nie jest potrzebne — zamek działa na baterie (4× AA lub Nuki Power Pack) i montuje się go mechanicznie po wewnętrznej stronie drzwi zgodnie z instrukcją montażu Nuki.

Konfiguracja

Broker MQTT

Zamek potrzebuje brokera MQTT, do którego ma dostęp w sieci lokalnej:

WymaganieWartość
Adres brokeraprywatny adres IPv4 lub nazwa hosta, która rozwiązuje się na prywatny adres IP
Port1883 (stały, nie można go zmienić)
Szyfrowaniebrak (TLS nie jest obsługiwany)
Nazwa użytkownika i hasłoopcjonalne po stronie brokera; każde maksymalnie 32 znaki
Wersja protokołu MQTT3.1.1 lub nowsza

Brokery chmurowe w internecie nie działają. Z interfejsem MQTT Broker w TapHome adresem brokera jest adres IP TapHome Core. Jeśli na brokerze ustawiono nazwę użytkownika i hasło, w aplikacji Nuki wpisz te same dane logowania.

Włączenie MQTT w aplikacji Nuki

  1. W aplikacji Nuki stuknij zamek i otwórz jego ustawienia.
  2. Przejdź do Features & Configuration → Smart Home → MQTT i postępuj zgodnie z kreatorem aktywacji.
  3. Wpisz nazwę hosta lub adres IPv4 brokera (gdy brokerem jest TapHome — adres IP Core, a nie adres IP zamka) oraz nazwę użytkownika i hasło, jeśli broker ich wymaga.
  4. Pozostaw włączoną opcję Allow locking (domyślnie). Bez niej zamek nie subskrybuje tematów poleceń: TapHome wtedy tylko wyświetla jego stany i nie może go zaryglować ani odryglować.
  5. Auto discovery (wykrywanie Home Assistant, domyślnie włączone) nie jest używane przez TapHome — szablon odczytuje tylko tematy nuki/<Nuki ID>/…. Opcja może pozostać włączona lub możesz ją wyłączyć.
  6. Sprawdź stan połączenia, który aplikacja Nuki pokazuje w tej samej sekcji MQTT.

Nuki ID

Tematy każdego zamka zawierają jego Nuki ID w postaci szesnastkowej, na przykład 2BB28570. Jest ono wydrukowane na etykiecie zamka, a także widoczne w zarządzaniu urządzeniem w aplikacji Nuki. ID trzeba wpisać dokładnie w tej postaci szesnastkowej.

Parametry szablonu

W TapHome szablon dodaje się przez interfejs Packet Parser z następującymi parametrami importu:

ParametrCo wpisaćPrzykład
Nuki ID (hex)szesnastkowe Nuki ID zamka, z aplikacji Nuki lub z etykiety2BB28570
Adres IP brokera MQTTadres brokera dla TapHome — z interfejsem MQTT Broker w TapHome 127.0.0.1 (Core łączy się sam ze sobą); zamek dostaje adres IP Core, nie adres IP zamka127.0.0.1

Funkcje urządzenia

Zamek

Przełącznik Zamek pokazuje Zaryglowany lub Odryglowany. Stany Nuki Odryglowywanie, Odryglowany, Zapadka odciągnięta, Odryglowany (Lock ’n’ Go) i Odciąganie zapadki są traktowane jako Odryglowany. Podczas ryglowania oraz gdy zamek jest nieskalibrowany lub silnik jest zablokowany, przełącznik zachowuje ostatnią wartość.

Wybranie Zaryglowany wysyła akcję zamka Nuki lock, wybranie Odryglowany wysyła unlock — zamek odrygluje się bez odciągania zapadki. Szablon wysyła polecenie dopiero po otrzymaniu stanu od zamka i tylko wtedy, gdy żądana wartość różni się od bieżącego stanu.

Atrybuty serwisowe urządzenia Zamek:

  • Stan zamka Nuki — dokładny stan, w tym Ryglowanie, Odryglowywanie, Zapadka odciągnięta, Odciąganie zapadki, Odryglowany (Lock ’n’ Go), Nieskalibrowany i Silnik zablokowany
  • Krytyczny stan baterii zamka i Krytyczny stan baterii klawiatury — czy baterie wymagają wymiany
  • Ładowanie baterii
  • Połączenie z brokerem — czy zamek jest połączony z brokerem MQTT
  • Połączenie z serwerem Nuki
  • Odpowiedź na polecenie — Sukces lub kod błędu ostatniego polecenia zgłoszony przez zamek
  • Ostatnia akcja — nazwa ostatniej akcji zamka, na przykład odryglowanie, zaryglowanie, odciągnięcie zapadki lub Lock ’n’ Go (ta sama wartość co w urządzeniu Ostatnia akcja zamka, patrz niżej)
  • Ostatnia aktualizacja — czas ostatniej aktualizacji od zamka, pokazywany w czasie lokalnym TapHome Core
  • Wersja firmware

Urządzenie Zamek ma też akcję serwisową Lock ’n’ Go.

Zaryglowanie, odciągnięcie zapadki i Lock ’n’ Go

  • Zaryglowanie — przycisk: rygluje zamek (akcja zamka Nuki lock). Wysyła polecenie przy każdym naciśnięciu, niezależnie od stanu przełącznika Zamek.
  • Odciągnięcie zapadki — przycisk: odrygluje zamek i odciąga zapadkę, dzięki czemu drzwi można otworzyć bez klamki.
  • Lock ’n’ Go — przycisk: odrygluje zamek i ponownie go rygluje po zamknięciu drzwi.

Czujnik drzwi

Czujnik drzwi pokazuje Otwarte lub Zamknięte, gdy z zamkiem sparowany jest Nuki Door Sensor. Gdy czujnik drzwi zgłasza sabotaż, urządzenie pokazuje Otwarte i generuje ostrzeżenie. Wyłączony czujnik drzwi jest zgłaszany jako komunikat informacyjny.

Poziom baterii

Poziom baterii pokazuje stan naładowania baterii zamka w %.

Ostatnia akcja zamka

Ostatnia akcja zamka pokazuje numer ostatniej akcji, którą zamek miał wykonać — z TapHome, aplikacji Nuki, przycisku na zamku, klawiatury lub breloka:

WartośćAkcja zamka
1odryglowanie
2zaryglowanie
3odciągnięcie zapadki
4Lock ’n’ Go
5Lock ’n’ Go z odciągnięciem zapadki
6pełne zaryglowanie
80brelok (bez akcji)
90przycisk (bez akcji)

Wartość pozostaje liczbowa, aby można było jej używać jako wyzwalacza dla smart rules; urządzenie Zamek pokazuje nazwę tej samej akcji w swoim atrybucie serwisowym Ostatnia akcja. Nieudanych prób wpisania kodu na klawiaturze ani poleceń poza dozwolonym oknem czasowym zamek nie zgłasza.

Po ponownym uruchomieniu TapHome Core szablon nie wysyła żadnego polecenia do zamka — przełącznik Zamek przejmuje stan zgłoszony przez zamek. Zamek publikuje swoje stany jako wiadomości retained, więc wartości są odtwarzane z tego, co przechowuje broker; urządzenie, które po ponownym uruchomieniu nie otrzyma takiej wartości, pokaże prawidłowy stan przy następnej zmianie na zamku.

Rozwiązywanie problemów

  • Zamek nie łączy się z brokerem: sprawdź w aplikacji Nuki, czy adres brokera jest prywatnym adresem IP w tej samej sieci (z TapHome adres IP Core), czy broker przyjmuje połączenia na porcie 1883 bez TLS oraz czy nazwa użytkownika i hasło są zgodne z ustawieniami brokera. Atrybut serwisowy Połączenie z brokerem musi pokazywać Połączono.
  • Aktywacja MQTT w aplikacji Nuki się nie udaje: zaktualizuj firmware zamka, sprawdź, czy zamek jest połączony z siecią (Wi-Fi 2,4 GHz lub Thread), czy wersja protokołu MQTT to 3.1.1 lub nowsza oraz czy nazwa użytkownika i hasło mają uprawnienia na brokerze. Jeśli aplikacja zgłasza nieprawidłowy identyfikator klienta, Nuki prosi o kontakt ze swoim działem wsparcia.
  • Stany są wyświetlane, ale polecenia nic nie robią: włącz Allow locking w ustawieniach MQTT aplikacji Nuki. Atrybut serwisowy Odpowiedź na polecenie pokazuje Sukces lub kod błędu zamka. Zamek przetwarza tylko jedno polecenie naraz; gdy kilka poleceń zostanie wysłanych równolegle, odpowiedzi mogą się nakładać.
  • W TapHome nic się nie wyświetla: sprawdź Nuki ID — musi być w postaci szesnastkowej dokładnie tak, jak pokazuje je aplikacja Nuki lub etykieta.
  • Stan zamka Nuki pokazuje Nieskalibrowany: dokończ kalibrację zamka w aplikacji Nuki.
  • Czujnik drzwi nigdy się nie zmienia: z zamkiem musi być sparowany Nuki Door Sensor; bez niego zamek nie zgłasza stanu drzwi.

Dostępne urządzenia 7

Te urządzenia pojawią się w TapHome po imporcie.

Nuki Smart Lock 4 Pro Moduł
Zámok Przełącznik wielowartościowy
Wartości / Stany: Zamknuté · Odomknuté
Akcje serwisowe
Lock 'n' Go
Zmienna: batteryCritical, Zmienna: batteryCharging, Zmienna: keypadBatteryCritical, Zmienna: nukiConnected, Zmienna: serverConnected, Zmienna: commandResponse, Zmienna: nukiTimestamp, Zmienna: nukiFirmware, Zmienna: ready, Zmienna: lastState, Zmienna: lastAction

Zámok

Odczyt stanu przełącznika
RETURN(Mu);
Zapis stanu przełącznika
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
Nasłuchiwanie
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
Atrybuty serwisowe
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)
Akcje serwisowe
Lock 'n' Go
MQTTPUBLISH("nuki/$[NukiId]/lockAction", "4");
Dverový senzor Kontakt reed

Dverový senzor

Odczyt
RETURN(Rc);
Nasłuchiwanie
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) Przycisk

Odblokovanie (Unlatch)

Odczyt stanu przycisku
Bp := 0;
Zapis stanu przycisku
MQTTPUBLISH("nuki/$[NukiId]/lockAction", "3");
Lock 'n' Go Przycisk

Lock 'n' Go

Odczyt stanu przycisku
Bp := 0;
Zapis stanu przycisku
MQTTPUBLISH("nuki/$[NukiId]/lockAction", "4");
Úroveň batérie Wejście analogowe

Úroveň batérie

Odczyt poziomu wejściowego
RETURN(An);
Nasłuchiwanie
IF(RECEIVEDMSG.TOPIC = "nuki/$[NukiId]/batteryChargeState")
    An := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD)) / 100;
END
Posledná akcia zámku Zmienna

Posledná akcia zámku

Odczyt
RETURN(Va);
Nasłuchiwanie
IF(RECEIVEDMSG.TOPIC = "nuki/$[NukiId]/lockActionEvent")
    Va := TODOUBLE(GETAT(SPLIT(TOSTRING(RECEIVEDMSG.PAYLOAD), ","), 0));
END
Zamknúť Przycisk

Zamknúť

Odczyt stanu przycisku
Bp := 0;
Zapis stanu przycisku
MQTTPUBLISH("nuki/$[NukiId]/lockAction", "2");
Połączenie: Packet Parser → MQTT

Parametry importu

Te wartości podajesz podczas importu pliku XML.

Pytanie w aplikacjiDomyślnie
Nuki ID (hex, napr. 2BB28570)2BB28570
IP adresa MQTT brokera192.168.1.1

Znalazłeś problem z tym szablonem urządzenia?

Napisz nam, co nie działa, czego brakuje lub jak powinien zachowywać się szablon. Twoja opinia pomaga nam utrzymać katalog dokładnym.

Szablon · portal TapHome Nuki Smart Lock 4 Pro (MQTT) Otwórz ten szablon w portalu klienta, aby zastosować go w swoim domu, lub zaproponuj modyfikację i wyślij ją z powrotem do katalogu. Packet Parser → MQTT Zobacz w portalu TapHome