---
title: "SONOFF SNZB-02LD Waterproof Temperature Sensor with Probe"
description: "Termometr Zigbee z sondą SONOFF SNZB-02LD (-40 do 115 °C) w TapHome przez bramkę Zigbee Tasmota i MQTT: temperatura sondy, bateria i alerty offline."
url: "https://taphome.com/pl/compatibility/sonoff-snzb-02ld-zigbee2tasmota/"
language: pl
lastmod: 2026-11-12
generator: hugo
ai:
  topics: ["mqtt","sensor","zigbee","tasmota","battery-powered","temperature","waterproof"]
  questions: ["Jak zintegrować SONOFF SNZB-02LD z TapHome?","Co mierzy szablon TapHome dla SONOFF SNZB-02LD?","Jak podłączyć SONOFF SNZB-02LD do TapHome przez bramkę Zigbee Tasmota?","Jak sparować SONOFF SNZB-02LD z bramką Zigbee2Tasmota?","Jak znaleźć krótki adres Zigbee czujnika SNZB-02LD w Tasmota?","Dlaczego SNZB-02LD nie pokazuje żadnych wartości w TapHome?","Dlaczego TapHome zgłasza SNZB-02LD jako offline?","Czy sondę SNZB-02LD można użyć jako czujnika podłogowego do ogrzewania podłogowego?"]
---

# SONOFF SNZB-02LD Waterproof Temperature Sensor with Probe

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

> [!IMPORTANT]
> To urządzenie komunikuje się przez **Zigbee** za pośrednictwem bramki Tasmota. Przed zaimportowaniem tego szablonu
> upewnij się, że bramka jest połączona z Twoim brokerem MQTT, a czujnik jest z nią sparowany.
> Samą bramkę dodasz do TapHome za pomocą szablonu
> [Zigbee2Tasmota Gateway](https://taphome.com/pl/compatibility/zigbee2tasmota-gateway/).

SONOFF SNZB-02LD to bateryjny termometr Zigbee 3.0 z wyświetlaczem LCD i wodoodporną sondą temperatury na kablu o długości 1,5 m. TapHome nie komunikuje się z czujnikiem bezpośrednio: czujnik jest sparowany z koordynatorem Zigbee działającym na Tasmota (Zigbee2Tasmota), bramka publikuje każdą wiadomość Zigbee do brokera MQTT, a TapHome odczytuje wartości z tego brokera. Szablon udostępnia jedno urządzenie temperatury oraz diagnostykę baterii i Zigbee w module.

Sonda mierzy temperaturę cieczy lub zamkniętych przestrzeni, a obudowa z wyświetlaczem pozostaje na zewnątrz — na przykład w lodówce, przy basenie lub jako bezprzewodowy czujnik podłogowy do ogrzewania podłogowego, z sondą pod wykończeniem podłogi i obudową na ścianie.

## Sprzęt

![Schemat SONOFF SNZB-02LD: sonda, ikona sygnału, otwór na smycz, bateria, wyświetlacz temperatury i przycisk parowania pod pokrywą baterii.](https://taphome.com/images/compatibility/sonoff-snzb-02ld-zigbee2tasmota/device-overview_hu_68d5a766ee49e022.jpg)

| Parametr | Wartość |
|---|---|
| Zakres pomiarowy sondy | od -40 do 115 °C |
| Dokładność | ±0,5 °C |
| Kabel sondy | 1,5 m |
| Stopień ochrony | IP65 |
| Temperatura pracy obudowy | od -10 do 60 °C |
| Wilgotność pracy obudowy | 0–100 %RH |
| Bateria | CR2477, 3 V |
| Łączność bezprzewodowa | Zigbee 3.0 (IEEE 802.15.4) |

Przycisk znajduje się pod pokrywą baterii, którą otwierasz, obracając ją monetą. Przed pierwszym użyciem wyjmij folię izolacyjną baterii — w ten sposób włączasz czujnik.

| Przycisk / ikona sygnału | Znaczenie |
|---|---|
| Przytrzymaj przycisk przez 5 s | Tryb parowania, przywraca też ustawienia fabryczne |
| Podwójne naciśnięcie | Przełącza wyświetlacz między °C a °F (fabrycznie °C) |
| Ikona sygnału miga powoli | Tryb parowania, do 180 s |
| Ikona sygnału świeci stale | Sparowano |
| Ikona sygnału zgaszona | Parowanie nie powiodło się |

### Rozmieszczenie

- Sondę mocuje się dołączonym rzepem samoprzylepnym w miejscu pomiaru; obejmuje ona pełny zakres od -40 do 115 °C.
- Obudowa jest przeznaczona tylko do pracy w zakresie od -10 do 60 °C — nie umieszczaj jej w gorących ani zamarzających miejscach. Trzyma się metalowej powierzchni dzięki magnesowi lub wisi na smyczy przewleczonej przez otwór; producent podaje wysokość montażu do 2 m.
- IP65 chroni przed bryzgami wody. Nie zanurzaj obudowy i nie wystawiaj jej na strumień wody pod wysokim ciśnieniem.
- Aby sprawdzić łączność radiową w docelowym miejscu, naciśnij przycisk: jeśli ikona sygnału świeci stale, czujnik jest w zasięgu bramki lub routera Zigbee tej samej sieci.

## Konfiguracja

### Bramka

1. Wgraj Tasmota (Zigbee2Tasmota) na koordynator Zigbee, na przykład SONOFF ZBBridge Pro (ZBBridge-P).
2. W interfejsie webowym Tasmota otwórz **Configuration → MQTT** i połącz bramkę z brokerem MQTT, którego używa TapHome (host i port).
3. Na tej samej stronie zanotuj **Topic**, na przykład `tasmota_XXXXX` — to parametr importu **Gateway topic**.
4. Pozostaw `SetOption83 0` (wartość domyślna). Szablon oczekuje krótkiego adresu Zigbee jako klucza każdego urządzenia w wiadomościach `ZbReceived`; przy `SetOption83 1` kluczem staje się przyjazna nazwa (friendly name) i szablon nic nie odbiera.

### Parowanie czujnika

1. Zezwól na dołączanie urządzeń do bramki — przełącznikiem **Permit Join** szablonu bramki w TapHome lub poleceniem `ZbPermitJoin 1` w konsoli Tasmota.
2. Uruchom parowanie na czujniku:
   - **Nowy czujnik:** wyjmij folię izolacyjną baterii. Przy pierwszym włączeniu czujnik sam przechodzi w tryb parowania.
   - **Używany już czujnik:** zdejmij pokrywę baterii i przytrzymaj przycisk przez 5 sekund (szpilką do karty SIM), aż ikona sygnału zacznie powoli migać. To przywraca też ustawienia fabryczne.
3. Poczekaj, aż ikona sygnału zacznie świecić stale. Jeśli czujnik nie sparuje się w ciągu 3 minut, opuszcza tryb parowania — ponownie zezwól na dołączanie do bramki i powtórz krok 2.

> [!TIP]
> Najpierw otwórz okno parowania na bramce, a dopiero potem włącz czujnik lub przytrzymaj jego przycisk. Podczas parowania trzymaj czujnik blisko bramki.

### Jak znaleźć krótki adres

Po sparowaniu obserwuj konsolę Tasmota. Każda wiadomość z czujnika przychodzi na `tele/<gateway topic>/SENSOR` w takiej postaci:

```json
{"ZbReceived":{"0x2916":{"Device":"0x2916","Temperature":25.72,"Endpoint":1,"LinkQuality":116}}}
```

Klucz pod `ZbReceived` (tutaj `0x2916`) to krótki adres, którego potrzebuje szablon. Sparowane urządzenia i ich krótkie adresy możesz też wyświetlić poleceniem `ZbStatus` lub `ZbInfo` w konsoli Tasmota.

### Parametry importu

| Parametr | Znaczenie | Przykład |
|---|---|---|
| Mqtt Broker IP address | Adres brokera MQTT, do którego publikuje bramka | `192.168.0.1` |
| Mqtt Broker port | Port brokera, domyślnie 1883 | `1883` |
| Gateway topic | **Configuration → MQTT → Topic** bramki w Tasmota | `tasmota_XXXXX` |
| Device short address | Klucz czujnika w `ZbReceived` | `0x2916` |

W TapHome zaimportuj szablon z tymi czterema parametrami; moduł subskrybuje wtedy na brokerze `tele/<gateway topic>/#`.

## Możliwości urządzenia

### Temperatura sondy

Urządzenie **Probe Temperature** pokazuje temperaturę zmierzoną przez sondę w °C. Podczas parowania Tasmota konfiguruje czujnik tak, aby raportował przy każdej zmianie o 0,5 °C i co najmniej raz na godzinę, gdy temperatura jest stabilna. Po imporcie szablon pobiera też ostatnią znaną wartość z odpowiedzi `ZbInfo` bramki, dzięki czemu urządzenie nie pozostaje puste do następnego raportu.

### Bateria i diagnostyka

Raz na godzinę moduł pyta bramkę o informacje o czujniku (`cmnd/<gateway topic>/ZbInfo`). Tasmota odpowiada ze swojej pamięci, bez wybudzania czujnika. Moduł pokazuje te atrybuty serwisowe:

- **IEEE Address**, **Model ID**, **Manufacturer**, **Endpoints**, **Config** — identyfikacja i konfiguracja Zigbee czujnika.
- **Link Quality** — jakość sygnału ostatniej wiadomości, przeskalowana z zakresu Zigbee 0–254 na procenty.
- **Battery Percentage** i **Battery Voltage** — z raportów baterii czujnika i z cogodzinnej odpowiedzi `ZbInfo`.

Moduł zgłasza ostrzeżenie, gdy poziom baterii spadnie poniżej 30 %. Śledzi też, kiedy czujnik odezwał się ostatnio — na podstawie jego własnych wiadomości i czasu zapamiętanego przez bramkę — i zgłasza ostrzeżenie po ponad 12 godzinach ciszy, a błąd po 24 godzinach. Ponieważ czujnik raportuje co najmniej raz na godzinę, tak długa cisza oznacza rzeczywisty problem.

## Rozwiązywanie problemów

### Brak jakichkolwiek wartości

1. Sprawdź, czy **Gateway topic** odpowiada wartości Topic MQTT w Tasmota i czy adres brokera jest tym, do którego publikuje bramka.
2. Sprawdź, czy **Device short address** odpowiada kluczowi w wiadomościach `ZbReceived` tego czujnika.
3. Sprawdź, czy `SetOption83` ma wartość 0.

### Wartości przestały napływać po ponownym sparowaniu

Krótki adres może się zmienić po ponownym sparowaniu czujnika; adres IEEE pozostaje taki sam. Odszukaj nowy krótki adres w konsoli Tasmota i zaktualizuj go w module (zmienna `ID`) albo zaimportuj szablon ponownie z nowym adresem.

### Temperatura zmienia się powoli

To normalne: aby oszczędzać baterię, czujnik raportuje tylko przy zmianie o 0,5 °C lub raz na godzinę.

### Ostrzeżenie lub błąd offline

1. Sprawdź **Battery Percentage** i wymień baterię CR2477, jeśli jest słaba.
2. Naciśnij przycisk na czujniku: jeśli ikona sygnału nie świeci stale, czujnik jest poza zasięgiem bramki lub routera Zigbee. Przysuń bramkę bliżej lub dodaj router Zigbee.
3. Jeśli czujnik nadal nie raportuje, sparuj go ponownie i zaktualizuj krótki adres.

## Dostępne urządzenia 1

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

SONOFF SNZB-02LD Waterproof Temperature Sensor with Probe (Zigbee2Tasmota) Moduł

Atrybuty serwisowe

|                    |
|--------------------|
| IEEE Address       |
| Model ID           |
| Manufacturer       |
| Endpoints          |
| Config             |
| Link Quality       |
| Battery Voltage    |
| Battery Percentage |

Zmienne niestandardowe

|                               |
|-------------------------------|
| `GWname` (string)             |
| `ID` (string)                 |
| `BatteryVoltage` (numeric)    |
| `BatteryPercentage` (numeric) |
| `LastSeenEpoch` (numeric)     |

Odczyt (moduł)

```taphome
MQTTPUBLISH("cmnd/" + GWname + "/ZbInfo", ID)
```

Nasłuchiwanie

```taphome
if INDEXOF(RECEIVEDMSG.Topic, "SENSOR") > 0
    # Battery values arrive in their own ZbReceived message, cluster 0x0001
    var ZbReceived := PARSEJSON(RECEIVEDMSG.Payload, "ZbReceived." + ID, true);
    if !ISNULL(ZbReceived)
        var bat := PARSEJSON(ZbReceived, "BatteryPercentage", true);
        if(!ISNULL(bat), BatteryPercentage := bat);
        var volt := PARSEJSON(ZbReceived, "BatteryVoltage", true);
        if(!ISNULL(volt), BatteryVoltage := volt);
        # Every message of the sensor proves it is alive, ZbInfo comes only once per hour
        DATETIME received := NOW();
        LastSeenEpoch := received.UNIXTIME;
    end

    # ZbInfo answer to the hourly request of the module read script
    var deviceInfo := PARSEJSON(RECEIVEDMSG.Payload, "ZbInfo." + ID, true);
    if !ISNULL(deviceInfo)
        var seen := PARSEJSON(deviceInfo, "LastSeenEpoch", true);
        if(!ISNULL(seen), LastSeenEpoch := seen);
        var infoBat := PARSEJSON(deviceInfo, "BatteryPercentage", true);
        if(!ISNULL(infoBat), BatteryPercentage := infoBat);
        var infoVolt := PARSEJSON(deviceInfo, "BatteryVoltage", true);
        if(!ISNULL(infoVolt), BatteryVoltage := infoVolt);
        COMPLETESERVICEATTRIBUTE("IEEE Address", PARSEJSON(deviceInfo, "IEEEAddr"));
        COMPLETESERVICEATTRIBUTE("Model ID", PARSEJSON(deviceInfo, "ModelId"));
        COMPLETESERVICEATTRIBUTE("Manufacturer", PARSEJSON(deviceInfo, "Manufacturer"));
        COMPLETESERVICEATTRIBUTE("Endpoints", PARSEJSON(deviceInfo, "Endpoints"));
        COMPLETESERVICEATTRIBUTE("Config", PARSEJSON(deviceInfo, "Config"));
        var lqi := PARSEJSON(deviceInfo, "LinkQuality", true);
        if !ISNULL(lqi)
            COMPLETESERVICEATTRIBUTE("Link Quality", ROUND(LINEAR(lqi, 0, 0, 254, 100)) + "%");
        end
    end
end

# 0 = no battery report received yet
if BatteryPercentage > 0 AND BatteryPercentage < 30
    ADDWARNING(1, "Low battery (<30%)");
end

# The sensor reports at least once per hour; LastSeenEpoch comes from its messages and from ZbInfo
if LastSeenEpoch > 0
    DATETIME now := NOW();
    var secondsSeen := now.UNIXTIME - LastSeenEpoch;
    if secondsSeen > 12 * 60 * 60
        if secondsSeen > 24 * 60 * 60
            ADDERROR(3, "Device is offline > 24H");
        else
            ADDWARNING(2, "Device is offline > 12H");
        end
    end
end
```

Atrybuty serwisowe

IEEE Address

```taphome
MQTTPUBLISH("cmnd/" + GWname + "/ZbInfo", ID)
```

Model ID

```

```

Manufacturer

```

```

Endpoints

```

```

Config

```

```

Link Quality

```

```

Battery Voltage

```taphome
BatteryVoltage + " V"
```

Battery Percentage

```taphome
BatteryPercentage + "%"
```

Probe Temperature Czujnik temperatury

Nasłuchiwanie

```taphome
if INDEXOF(RECEIVEDMSG.Topic, "SENSOR") > 0
    var temp := PARSEJSON(RECEIVEDMSG.Payload, "ZbReceived." + ID + ".Temperature", true);
    if ISNULL(temp)
        # Last known value from the ZbInfo answer, e.g. right after import
        temp := PARSEJSON(RECEIVEDMSG.Payload, "ZbInfo." + ID + ".Temperature", true);
    end
    if(!ISNULL(temp), Te := temp);
end
```

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

## Parametry importu

Te wartości podajesz podczas importu pliku XML.

| Pytanie w aplikacji                                                | Domyślnie       |
|--------------------------------------------------------------------|-----------------|
| Mqtt Broker Adres IP                                               | `192.168.0.1`   |
| Mqtt Broker port                                                   | `1883`          |
| Gateway topic (Tasmota -&gt; Configuration -&gt; MQTT -&gt; Topic) | `tasmota_XXXXX` |
| Device short address (e.g. 0x2916)                                 | `0xFFFF`        |

## 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/)

