---
title: "Sonoff SNZB-01"
description: "Przycisk Sonoff SNZB-01 w TapHome przez Zigbee2MQTT i MQTT: pojedyncze, podwójne i długie naciśnięcie, bateria i jakość sygnału Zigbee."
url: "https://taphome.com/pl/compatibility/zigbee2mqtt-sonoffsnzb01/"
language: pl
lastmod: 2026-10-08
generator: hugo
ai:
  topics: ["mqtt","sensor","zigbee","zigbee2mqtt","battery-powered","wireless-button"]
  questions: ["Jak zintegrować Sonoff SNZB-01 z TapHome przez Zigbee2MQTT?","Jakie akcje przycisku wykrywa szablon TapHome dla Sonoff SNZB-01?","Jak skonfigurować friendly name Zigbee2MQTT dla SNZB-01 w TapHome?","Dlaczego Sonoff SNZB-01 nie zgłasza naciśnięć przycisku w TapHome?","Czy szablon SNZB-01 raportuje poziom baterii i jakość sygnału?"]
---

# Sonoff SNZB-01

Komunikacja: Packet Parser → MQTT

- [Strona produktu Sonoff SNZB-01](https://sonoff.tech/product/gateway-and-sensors/snzb-01/)

> 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

Sonoff SNZB-01 to kompaktowy, bezprzewodowy przycisk Zigbee 3.0 zasilany baterią guzikową CR2450. Komunikuje się z TapHome pośrednio — przycisk paruje się z koordynatorem Zigbee2MQTT (np. Sonoff ZBDongle-P/E lub stick oparty na CC2652), który przekazuje wiadomości Zigbee na topici MQTT. TapHome subskrybuje te topici MQTT przez moduł PacketParser MQTT.

Szablon wykrywa trzy akcje przycisku (pojedyncze naciśnięcie, podwójne naciśnięcie, długie naciśnięcie) i monitoruje procent baterii, napięcie baterii oraz jakość sygnału Zigbee.

## Konfiguracja

### Konfiguracja Zigbee2MQTT

Przed importem szablonu TapHome, SNZB-01 musi być sparowany z koordynatorem Zigbee2MQTT:

1. Otwórz interfejs webowy Zigbee2MQTT i włącz tryb parowania (**Permit join**)
2. Na SNZB-01 zdejmij tylną pokrywę i przytrzymaj przycisk reset przez 5 sekund, aż LED zamiga trzy razy
3. Urządzenie pojawi się na liście urządzeń Zigbee2MQTT z adresem IEEE (np. `0x00124b001eab21e5`) lub friendly name

### Zmienna modułu

Po imporcie szablonu w TapHome ustaw zmienną niestandardową `SonoffSNZB01` do identyfikacji urządzenia na brokerze MQTT:

| Zmienna | Opis | Jak uzyskać | Przykład |
|---------|------|-------------|---------|
| `SonoffSNZB01` | Friendly name Zigbee2MQTT lub adres IEEE SNZB-01 | Zigbee2MQTT web UI → Devices → znajdź SNZB-01 → skopiuj friendly name lub adres IEEE | `0x00124b001eab21e5` |

Zmienna jest używana jako prefiks topicu MQTT — skrypt listener subskrybuje `zigbee2mqtt/{SonoffSNZB01}` i `zigbee2mqtt/{SonoffSNZB01}/action`.

> [!TIP]
> Użycie friendly name (np. `living_room_button`) zamiast adresu IEEE sprawia, że konfiguracja jest bardziej czytelna. Friendly name można zmienić w interfejsie webowym Zigbee2MQTT w ustawieniach urządzenia.

## Funkcje urządzenia

### Wykrywanie naciśnięcia przycisku

Szablon mapuje SNZB-01 jako urządzenie Push Button w TapHome. Zdarzenia naciśnięcia przycisku przychodzą na topicu `zigbee2mqtt/{id}/action` i są mapowane na wartości numeryczne:

| Akcja fizyczna | MQTT payload | Wartość TapHome |
|---------------|-------------|-----------------|
| Pojedyncze naciśnięcie (zwolnienie + 0,6 s oczekiwanie) | `single` | 1 |
| Podwójne naciśnięcie | `double` | 3 |
| Długie naciśnięcie (przytrzymanie 2 sekundy) | `long` | 2 |

Po odczytaniu stanu przycisku wartość resetuje się do 0 — akcje przycisku są oparte na zdarzeniach i nie można ich odczytać wstecz.

### Monitoring baterii i sygnału

Każda instancja przycisku udostępnia trzy atrybuty serwisowe:

- **Battery** — pozostały procent baterii (0–100 %) z topicu JSON stanu. SNZB-01 używa baterii guzikowej CR2450 o typowej żywotności 1–2 lata.
- **BatteryVoltage** — napięcie baterii w miliwoltach z topicu JSON stanu.
- **LinkQuality** — wskaźnik jakości sygnału Zigbee (0–255 lqi) z topicu JSON stanu. Wyższe wartości oznaczają lepszy sygnał.

Wszystkie atrybuty wyświetlają `"-"` do momentu odebrania pierwszej wiadomości z urządzenia.

### Dodatkowe funkcje

Most Zigbee2MQTT udostępnia również topic do proaktywnego zapytania o stan (`zigbee2mqtt/{id}/get`), który pozwala na żądanie wartości baterii i napięcia na żądanie, oraz topic dostępności do wykrywania stanu online/offline. Te funkcje mogą zostać dodane w przyszłej aktualizacji szablonu.

## Rozwiązywanie problemów

### Naciśnięcia przycisku nie są wykrywane

1. Sprawdź, czy SNZB-01 jest sparowany z koordynatorem Zigbee2MQTT — powinien pojawiać się na liście urządzeń z zielonym statusem
2. Sprawdź, czy zmienna niestandardowa `SonoffSNZB01` dokładnie odpowiada friendly name lub adresowi IEEE urządzenia (rozróżniana jest wielkość liter)
3. Użyj klienta MQTT (np. MQTT Explorer) do subskrypcji `zigbee2mqtt/#` i naciśnij przycisk — na topicu `/action` powinna pojawić się wiadomość
4. Jeśli nie pojawiają się żadne wiadomości MQTT, urządzenie mogło utracić połączenie Zigbee — sparuj ponownie przytrzymując przycisk reset przez 5 sekund

### Nieaktualne wartości baterii lub jakości sygnału

1. Dane o baterii i sygnale aktualizują się tylko gdy urządzenie się wybudzi (przy naciśnięciu przycisku lub okresowym raportowaniu)
2. Jeśli wartości pokazują `"-"`, nie odebrano jeszcze żadnej wiadomości — naciśnij przycisk, aby wywołać aktualizację
3. Zapewnij dobry odbiór koordynatora Zigbee — zasięg SNZB-01 zależy od sieci mesh Zigbee

> [!WARNING]
> Sonoff SNZB-01 został wycofany z produkcji i zastąpiony modelem SNZB-01P. Szablon TapHome pozostaje funkcjonalny dla istniejących urządzeń SNZB-01, ale przy nowych zakupach warto rozważyć SNZB-01P, który oferuje lepszy zasięg i większą baterię guzikową CR2477.

## Dostępne urządzenia 1

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

Sonoff SNZB-01 Moduł

Zmienne niestandardowe

`SonoffSNZB01` (string) = 0x00124b001eab21e5 Friendly name Zigbee2MQTT lub adres IEEE urządzenia SNZB-01 — używany jako prefiks topicu MQTT

Open Zigbee2MQTT web UI → Devices → find SNZB-01 → copy the Friendly name (or use the IEEE address, e.g. 0x00124b001eab21e5)

Przycisk bezprzewodowy Przycisk Odczyt i zapis

Wykrywanie naciśnięcia przycisku — pojedyncze (1), podwójne (3), długie (2); resetuje się do 0 po odczycie

enum

Atrybuty serwisowe

|                |                                                                    |
|----------------|--------------------------------------------------------------------|
| Bateria        | Pozostały procent baterii (bateria guzikowa CR2450, 0–100 %)       |
| LinkQuality    | Wskaźnik jakości sygnału Zigbee — 0 (najgorszy) do 255 (najlepszy) |
| BatteryVoltage | Napięcie baterii w miliwoltach                                     |

Odczyt stanu przycisku

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

Zapis stanu przycisku

```taphome
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/set/value=" + Bp);
# IF response.IsSuccess = false
#  ADDERROR(response.StatusCode);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/setValue", "GET", "value=" + Bp, "header1:value1", "header2:value2", ...);\r
# Or VAR request := HTTPREQUEST("/example/setValue");
# request.Method := "PUT";
# VAR response := SENDHTTPREQUEST(request);
#r
#
# Send TCP, UDP data:
# VAR data1 := "{\"name\":\"John\", \"age\":" + Bp + "}";
# SENDDATA(data1);
# VAR data2 := TOBYTES("{\"name\":\"John\", \"age\":" + Bp + "}", "iso-8859-1");
# SENDDATA(data2);
# You can process received TCP or UDP data in the Listener script
#
#
# Upload data to FTP:
# FTPUPLOAD("filePath", "somedata=" + Bp, "write"); # use "append" mode to append data to existing file
```

Nasłuchiwanie

```taphome
Bp := 0;

IF (COMPARE(RECEIVEDMSG.TOPIC, "zigbee2mqtt/"+ SonoffSNZB01 +"/action", CompareOptions.IgnoreCase) = 0)
	var payloadString := TOSTRING(RECEIVEDMSG.PAYLOAD);
	
    IF (COMPARE(payloadString, "single", CompareOptions.IgnoreCase) = 0)
          Bp := 1;
        ELSEIF (COMPARE(payloadString, "long", CompareOptions.IgnoreCase) = 0)
          Bp := 2;
        ELSEIF (COMPARE(payloadString, "double", CompareOptions.IgnoreCase) = 0)
          Bp := 3;
        ELSE
          Bp := 0;
    END  
END;   

IF (COMPARE(RECEIVEDMSG.TOPIC, "zigbee2mqtt/"+ SonoffSNZB01, CompareOptions.IgnoreCase) = 0)
    battery := PARSEJSON(RECEIVEDMSG.PAYLOAD,"battery", true);
    voltage := PARSEJSON(RECEIVEDMSG.PAYLOAD,"voltage", true);
    link := PARSEJSON(RECEIVEDMSG.PAYLOAD,"linkquality", true);
    
END
```

Atrybuty serwisowe

Battery

```taphome
IF(ISNAN(battery),"-",battery+"%");
```

LinkQuality

```taphome
IF(ISNAN(link),"-",link+"lqi");
```

BatteryVoltage

```taphome
IF(ISNAN(voltage),"-",voltage+"mV");
```

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

Możliwe ulepszenia (2)

- Proactive State Request — Publish {"battery":""} or {"voltage":""} to request values on demand. Could wake sleeping device.
- Availability Status — Online/offline availability topic. Could detect unreachable devices.

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

## Źródła

- Zigbee2MQTT — SNZB-01 device page
  
  [www.zigbee2mqtt.io](https://www.zigbee2mqtt.io/devices/SNZB-01.html) 2026-03-30
- Zigbee2MQTT GitHub — SNZB-01 device definition
  
  [github.com](https://github.com/Koenkk/zigbee2mqtt.io/blob/master/docs/devices/SNZB-01.md) 2026-03-30

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

