---
title: "Nuki Smart Lock 4 Pro (MQTT)"
description: "Nuki Smart Lock 4 Pro przez MQTT: ryglowanie, odryglowanie, zapadka, Lock 'n' Go, czujnik drzwi, bateria. Broker w LAN na porcie 1883, np. TapHome Core."
url: "https://taphome.com/pl/compatibility/nuki-smart-lock-4-pro-mqtt/"
language: pl
lastmod: 2026-11-13
generator: hugo
ai:
  topics: ["mqtt","smart-lock","door-lock","access-control","wifi","thread","battery-powered"]
  questions: ["Jak zintegrować Nuki Smart Lock 4 Pro z TapHome?","Czym steruje i co odczytuje szablon TapHome dla Nuki Smart Lock 4 Pro?","Jak podłączyć Nuki Smart Lock do TapHome przez MQTT bez Nuki Bridge?","Jak włączyć MQTT w aplikacji Nuki i jaki adres brokera wpisać?","Gdzie znaleźć szesnastkowe Nuki ID zamka?","Dlaczego zamek Nuki pokazuje swój stan w TapHome, ale nie reaguje na polecenia?","Dlaczego Nuki Smart Lock nie łączy się z brokerem MQTT?","Które modele Nuki Smart Lock obsługują MQTT API?"]
---

# Nuki Smart Lock 4 Pro (MQTT)

Komunikacja: Packet Parser → MQTT

> 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](https://taphome.com/pl/docs/setup/network-preparation/)

## 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.

> [!WARNING]
> 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:

| Wymaganie | Wartość |
|---|---|
| Adres brokera | prywatny adres IPv4 lub nazwa hosta, która rozwiązuje się na prywatny adres IP |
| Port | 1883 (stały, nie można go zmienić) |
| Szyfrowanie | brak (TLS nie jest obsługiwany) |
| Nazwa użytkownika i hasło | opcjonalne po stronie brokera; każde maksymalnie 32 znaki |
| Wersja protokołu MQTT | 3.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:

| Parametr | Co wpisać | Przykład |
|---|---|---|
| Nuki ID (hex) | szesnastkowe Nuki ID zamka, z aplikacji Nuki lub z etykiety | `2BB28570` |
| Adres IP brokera MQTT | adres 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 zamka | `127.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 |
|---|---|
| 1 | odryglowanie |
| 2 | zaryglowanie |
| 3 | odciągnięcie zapadki |
| 4 | Lock 'n' Go |
| 5 | Lock 'n' Go z odciągnięciem zapadki |
| 6 | pełne zaryglowanie |
| 80 | brelok (bez akcji) |
| 90 | przycisk (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.

> [!NOTE]
> 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`

Odczyt stanu przełącznika

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

Zapis stanu przełącznika

```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
```

Nasłuchiwanie

```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
```

Atrybuty serwisowe

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)
```

Akcje serwisowe

Lock 'n' Go

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

Dverový senzor Kontakt reed

Odczyt

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

Nasłuchiwanie

```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) Przycisk

Odczyt stanu przycisku

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

Zapis stanu przycisku

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

Lock 'n' Go Przycisk

Odczyt stanu przycisku

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

Zapis stanu przycisku

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

Úroveň batérie Wejście analogowe

Odczyt poziomu wejściowego

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

Nasłuchiwanie

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

Posledná akcia zámku Zmienna

Odczyt

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

Nasłuchiwanie

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

Zamknúť Przycisk

Odczyt stanu przycisku

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

Zapis stanu przycisku

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

**Połączenie:** Packet Parser → MQTT

## Parametry importu

Te wartości podajesz podczas importu pliku XML.

| Pytanie w aplikacji           | Domyślnie     |
|-------------------------------|---------------|
| Nuki ID (hex, napr. 2BB28570) | `2BB28570`    |
| IP adresa MQTT brokera        | `192.168.1.1` |

## Powiązana dokumentacja

- [MQTT Integration](https://taphome.com/pl/compatibility/mqtt-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/pl/docs/integration/packet-parser/)
- [Funkcje Packet parser](https://taphome.com/pl/docs/script/packet-parser/)
- [Funkcje parsowania](https://taphome.com/pl/docs/script/parsing-functions/)
- [Broker MQTT](https://taphome.com/pl/docs/integration/packet-parser/mqtt-broker/)
- [Skrypty listener](https://taphome.com/pl/docs/script/listener-scripts/)

