TapHome

Sonoff SNZB-01

Packet Parser → MQTT
Autor
Posljednje ažuriranje: 10. 2026
Sonoff SNZB-01

Sonoff SNZB-01 je kompaktno bežično tipkalo Zigbee 3.0 koje se napaja gumbastom baterijom CR2450. Sa sustavom TapHome komunicira neizravno: tipkalo se uparuje s koordinatorom Zigbee2MQTT (npr. Sonoff ZBDongle-P/E ili USB stick s čipom CC2652), koji Zigbee poruke prosljeđuje na MQTT teme. TapHome se na te MQTT teme pretplaćuje preko modula PacketParser MQTT.

Predložak prepoznaje tri radnje tipke (jedan klik, dvostruki klik i dugi pritisak) i prati postotak baterije, napon baterije i kvalitetu Zigbee veze.

Konfiguracija

Postavljanje Zigbee2MQTT

Prije uvoza predloška TapHome tipkalo SNZB-01 mora biti upareno s koordinatorom Zigbee2MQTT:

  1. Otvorite web-sučelje Zigbee2MQTT i uključite način uparivanja (Permit join)
  2. Na tipkalu SNZB-01 skinite stražnji poklopac i 5 sekundi držite tipku za resetiranje dok LED dioda ne trepne tri puta
  3. Uređaj se pojavljuje na popisu uređaja Zigbee2MQTT s IEEE adresom (npr. 0x00124b001eab21e5) ili s nazivom (friendly name)
Varijabla modula

Nakon uvoza predloška u TapHome postavite korisničku varijablu SonoffSNZB01 kojom se uređaj prepoznaje na MQTT brokeru:

VarijablaOpisKako je dobitiPrimjer
SonoffSNZB01Zigbee2MQTT friendly name ili IEEE adresa tipkala SNZB-01Web-sučelje Zigbee2MQTT → Devices → pronađite SNZB-01 → kopirajte friendly name ili IEEE adresu0x00124b001eab21e5

Varijabla se koristi kao prefiks MQTT teme: skripta slušatelja pretplaćuje se na zigbee2mqtt/{SonoffSNZB01} i zigbee2mqtt/{SonoffSNZB01}/action.

Ako umjesto IEEE adrese koristite friendly name (npr. living_room_button), konfiguracija je preglednija. Friendly name može se promijeniti u web-sučelju Zigbee2MQTT u postavkama uređaja.

Mogućnosti uređaja

Prepoznavanje pritiska tipke

Predložak u sustavu TapHome prikazuje SNZB-01 kao uređaj vrste „Tipkalo” (Push Button). Događaji pritiska tipke stižu na temu zigbee2mqtt/{id}/action i preslikavaju se na brojčane vrijednosti:

Fizička radnjaSadržaj MQTT porukeVrijednost u sustavu TapHome
Jedan klik (otpuštanje + čekanje 0,6 s)single1
Dvostruki klikdouble3
Dugi pritisak (držanje 2 sekunde)long2

Nakon čitanja stanja tipke vrijednost se vraća na 0: radnje tipke temelje se na događajima i ne mogu se naknadno očitati.

Praćenje baterije i signala

Svako tipkalo ima tri servisna atributa:

  • Baterija: preostali postotak baterije (0–100 %) iz JSON poruke stanja. SNZB-01 koristi gumbastu bateriju CR2450 s uobičajenim vijekom trajanja od 1–2 godine.
  • BatteryVoltage: napon baterije u milivoltima iz JSON poruke stanja.
  • LinkQuality: pokazatelj kvalitete Zigbee signala (0–255 lqi) iz JSON poruke stanja. Veće vrijednosti znače bolji signal.

Svi atributi prikazuju "-" dok s uređaja ne stigne prva poruka.

Dodatne mogućnosti

Most Zigbee2MQTT nudi i temu za aktivni upit stanja (zigbee2mqtt/{id}/get) kojom se vrijednosti baterije i napona mogu zatražiti na zahtjev, kao i temu dostupnosti (availability) za prepoznavanje stanja na mreži / izvan mreže. Te se mogućnosti mogu dodati u budućem ažuriranju predloška.

Rješavanje problema

Pritisci tipke se ne prepoznaju
  1. Provjerite je li SNZB-01 uparen s koordinatorom Zigbee2MQTT. Na popisu uređaja treba imati zeleni status
  2. Provjerite odgovara li korisnička varijabla SonoffSNZB01 točno nazivu uređaja (friendly name) ili njegovoj IEEE adresi (razlikuju se velika i mala slova)
  3. MQTT klijentom (npr. MQTT Explorer) pretplatite se na zigbee2mqtt/# i pritisnite tipku. Na temi /action treba se pojaviti poruka
  4. Ako se MQTT poruke ne pojavljuju, uređaj je možda izgubio Zigbee vezu. Ponovno ga uparite tako da 5 sekundi držite tipku za resetiranje
Zastarjele vrijednosti baterije ili kvalitete veze
  1. Podaci o bateriji i signalu ažuriraju se samo kada se uređaj probudi (pri pritisku tipke ili periodičnom javljanju)
  2. Ako vrijednosti prikazuju "-", još nije primljena nijedna poruka. Pritisnite tipku kako biste potaknuli ažuriranje
  3. Provjerite ima li Zigbee koordinator dobar prijem. Domet tipkala SNZB-01 ovisi o Zigbee mesh mreži

Proizvodnja tipkala Sonoff SNZB-01 je obustavljena, a zamijenio ga je SNZB-01P. Predložak TapHome i dalje vrijedi za postojeće uređaje SNZB-01, ali pri novoj kupnji razmotrite SNZB-01P, koji ima bolji domet i veću gumbastu bateriju CR2477.

Dostupni uređaji

Sonoff SNZB-01 Modul
Prilagođene varijable
SonoffSNZB01 (string) = 0x00124b001eab21e5Zigbee2MQTT friendly name ili IEEE adresa uređaja SNZB-01 — koristi se kao prefiks MQTT teme
Open Zigbee2MQTT web UI → Devices → find SNZB-01 → copy the Friendly name (or use the IEEE address, e.g. 0x00124b001eab21e5)
Bežično tipkalo Tipkalo

Prepoznavanje radnji tipke — jedan klik (1), dvostruki klik (3), dugi pritisak (2); nakon čitanja vraća se na 0

enum
Servisni atributi
BaterijaPreostali postotak baterije (gumbasta baterija CR2450, 0–100 %)
LinkQualityPokazatelj kvalitete Zigbee signala — od 0 (najlošiji) do 255 (najbolji)
BatteryVoltageNapon baterije u milivoltima

Bežično tipkalo

Čitanje stanja tipke
Bp := 0;
Zapis stanja tipke
# 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
Servisni atributi
Battery
IF(ISNAN(battery),"-",battery+"%");
LinkQuality
IF(ISNAN(link),"-",link+"lqi");
BatteryVoltage
IF(ISNAN(voltage),"-",voltage+"mV");
Povezivanje: Packet Parser → MQTT
Moguća poboljšanja (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.

Izvori

Pronašli ste problem s ovim predloškom uređaja?

Recite nam što ne radi, što nedostaje ili kako bi se predložak trebao ponašati. Vaše povratne informacije pomažu nam da katalog bude točan.

Provjerio TapHome

Želite ovo koristiti u svojoj centralnoj jedinici TapHome Core?

Otvorite ovaj predložak na portalu Customer Portal kako biste ga primijenili na jedan od svojih domova ili predložili poboljšanje i poslali ga natrag u katalog.

Otvorite na portalu