TapHome

Sonoff SNZB-01

Packet Parser → MQTT
Přidal
Poslední aktualizace: 06. 2026
Sonoff SNZB-01

Sonoff SNZB-01 je kompaktní bezdrátové Zigbee 3.0 tlačítko napájené knoflíkovou baterií CR2450. S TapHome komunikuje nepřímo — tlačítko se spáruje se Zigbee2MQTT koordinátorem (např. Sonoff ZBDongle-P/E nebo CC2652-based stick), který přemosťuje Zigbee zprávy na MQTT topicy. TapHome se přihlašuje k těmto MQTT topicům přes PacketParser MQTT modul.

Šablona rozpoznává tři akce tlačítka (jednoduché stisknutí, dvojité stisknutí, dlouhé stisknutí) a monitoruje procentuální stav baterie, napětí baterie a kvalitu Zigbee signálu.

Konfigurace

Nastavení Zigbee2MQTT

Před importem TapHome šablony musí být SNZB-01 spárován se Zigbee2MQTT koordinátorem:

  1. Otevřete webové rozhraní Zigbee2MQTT a povolte párovací režim (Permit join)
  2. Na SNZB-01 odstraňte zadní kryt a dlouze stiskněte reset tlačítko na 5 sekund, dokud LED třikrát zabliká
  3. Zařízení se objeví v seznamu zařízení Zigbee2MQTT s IEEE adresou (např. 0x00124b001eab21e5) nebo friendly name
Proměnná modulu

Po importu šablony v TapHome nastavte vlastní proměnnou SonoffSNZB01 pro identifikaci zařízení na MQTT brokeru:

ProměnnáPopisJak získatPříklad
SonoffSNZB01Zigbee2MQTT friendly name nebo IEEE adresa SNZB-01Zigbee2MQTT web UI → Devices → najděte SNZB-01 → zkopírujte friendly name nebo IEEE adresu0x00124b001eab21e5

Proměnná se používá jako prefix MQTT topicu — listener skript se přihlašuje k zigbee2mqtt/{SonoffSNZB01} a zigbee2mqtt/{SonoffSNZB01}/action.

Použití friendly name (např. living_room_button) místo IEEE adresy činí konfiguraci čitelnější. Friendly name lze změnit ve webovém rozhraní Zigbee2MQTT v nastavení zařízení.

Funkce zařízení

Detekce stisknutí tlačítka

Šablona mapuje SNZB-01 jako Push Button zařízení v TapHome. Události stisknutí přicházejí na topic zigbee2mqtt/{id}/action a jsou mapovány na číselné hodnoty:

Fyzická akceMQTT payloadHodnota v TapHome
Jednoduché stisknutí (uvolnění + 0,6 s čekání)single1
Dvojité stisknutídouble3
Dlouhé stisknutí (podržení 2 sekundy)long2

Po přečtení stavu tlačítka se hodnota resetuje na 0 — akce tlačítka jsou založeny na událostech a nelze je zpětně číst.

Monitoring baterie a signálu

Každá instance tlačítka poskytuje tři servisní atributy:

  • Battery — zbývající procento baterie (0–100 %) ze stavového JSON topicu. SNZB-01 používá knoflíkovou baterii CR2450 s typickou životností 1–2 roky.
  • BatteryVoltage — napětí baterie v milivoltech ze stavového JSON topicu.
  • LinkQuality — indikátor kvality Zigbee signálu (0–255 lqi) ze stavového JSON topicu. Vyšší hodnoty znamenají lepší signál.

Všechny atributy zobrazují "-" dokud není přijata první zpráva ze zařízení.

Další funkce

Zigbee2MQTT bridge také poskytuje topic pro proaktivní vyžádání stavu (zigbee2mqtt/{id}/get), který umožňuje vyžádat hodnoty baterie a napětí na vyžádání, a topic dostupnosti pro detekci online/offline stavu. Tyto funkce mohou být přidány v budoucí aktualizaci šablony.

Řešení problémů

Stisknutí tlačítka nejsou detekována
  1. Ověřte, že SNZB-01 je spárován se Zigbee2MQTT koordinátorem — měl by se zobrazovat v seznamu zařízení se zeleným stavem
  2. Zkontrolujte, zda vlastní proměnná SonoffSNZB01 přesně odpovídá friendly name nebo IEEE adrese zařízení (rozlišují se velká a malá písmena)
  3. Použijte MQTT klienta (např. MQTT Explorer) pro přihlášení k zigbee2mqtt/# a stiskněte tlačítko — na topicu /action by se měla objevit zpráva
  4. Pokud se neobjevují žádné MQTT zprávy, zařízení mohlo ztratit Zigbee spojení — znovu spárujte dlouhým stisknutím reset tlačítka na 5 sekund
Neaktuální hodnoty baterie nebo kvality signálu
  1. Údaje o baterii a signálu se aktualizují pouze když se zařízení probudí (při stisknutí tlačítka nebo periodickém hlášení)
  2. Pokud hodnoty zobrazují "-", dosud nebyla přijata žádná zpráva — stiskněte tlačítko pro vyvolání aktualizace
  3. Zajistěte dobrý příjem Zigbee koordinátora — dosah SNZB-01 závisí na Zigbee mesh síti

Sonoff SNZB-01 byl ukončen a nahrazen modelem SNZB-01P. TapHome šablona zůstává funkční pro stávající zařízení SNZB-01, ale při novém nákupu zvažte SNZB-01P, který nabízí vylepšený dosah a dobíjecí baterii přes USB-C.

Dostupná zařízení

Sonoff SNZB-01 Modul
Vlastní proměnné
SonoffSNZB01 (string) = 0x00124b001eab21e5Zigbee2MQTT friendly name nebo IEEE adresa zařízení SNZB-01 — používá se jako prefix MQTT topicu
Open Zigbee2MQTT web UI → Devices → find SNZB-01 → copy the Friendly name (or use the IEEE address, e.g. 0x00124b001eab21e5)
Bezdrátové tlačítko Tlačítko

Detekce stisknutí tlačítka — jednoduché (1), dvojité (3), dlouhé (2); po přečtení se resetuje na 0

enum
Servisní atributy
BaterieZbývající procento baterie (knoflíková baterie CR2450, 0–100 %)
LinkQualityIndikátor kvality Zigbee signálu — 0 (nejhorší) až 255 (nejlepší)
BatteryVoltageNapětí baterie v milivoltech

Bezdrátové tlačítko

Čtení stavu tlačítka
Bp := 0;
Zápis stavu tlačítka
# 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
Listener
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
Servisní atributy
Battery
IF(ISNAN(battery),"-",battery+"%");
LinkQuality
IF(ISNAN(link),"-",link+"lqi");
BatteryVoltage
IF(ISNAN(voltage),"-",voltage+"mV");
Připojení: Packet Parser → MQTT
Možná vylepšení (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.

Zdroje

Našli jste problém s touto šablonou zařízení?

Napište nám, co nefunguje, co chybí, nebo jak by se měla šablona chovat. Vaše zpětná vazba nám pomáhá udržet katalog přesný.

Ověřeno TapHome

Chcete to použít ve svém TapHome jádře?

Otevřete tuto šablonu v zákaznickém portálu a použijte ji ve svém domově, nebo navrhněte úpravu a odešlete ji zpět do katalogu.

Otevřít v portálu