TapHome

Shelly H&T

Packet Parser → MQTT
Trimis de
Ultima actualizare: 10. 2026

Acest dispozitiv acceptă mDNS

În loc să folosiți o adresă IP, puteți accesa dispozitivul la:

shellyht-{MAC}.local

Înlocuiți {MAC} cu adresa MAC a dispozitivului dvs. (majuscule, fără două puncte).

TapHome acceptă mDNS — folosirea unui nume de gazdă este mai fiabilă decât un IP static.

Shelly H&T

Shelly H&T este un senzor Wi-Fi de temperatură și umiditate alimentat cu baterie (CR123A), din gama de produse Shelly Gen1. TapHome comunică cu dispozitivul prin MQTT — protocolul recomandat pentru senzorii Shelly cu baterii, deoarece dispozitivul se află în repaus între citiri și publică date doar la trezire.

Șablonul creează un singur dispozitiv Senzor de temperatură cu atributul de service Umiditate, care urmărește atât temperatura ambientală, cât și umiditatea relativă de la o unitate Shelly H&T.

Configurare

ID-ul dispozitivului

Shelly H&T folosește un ID de dispozitiv MQTT în formatul shellyht-<MAC6>, unde <MAC6> reprezintă ultimele 6 caractere ale adresei MAC, în hexazecimal cu litere mici (de ex. shellyht-112233).

ID-ul dispozitivului se găsește:

  • Pe eticheta dispozitivului (adresa MAC)
  • În interfața web Shelly: Settings → Device Info
  • Prin API: GET http://<device-ip>/settings → câmpul mqtt.id
Configurarea șablonului

După importul șablonului în TapHome:

  1. Deschideți modulul Shelly H&T MQTT
  2. Setați MQTT Broker IP și Port (implicit 1883)
  3. Setați variabila personalizată deviceId doar la partea hexazecimală a ID-ului dispozitivului (de ex. 112233 pentru shellyht-112233 — ultimele 6 caractere hexazecimale ale adresei MAC)

Modulul se abonează la shellies/#, iar scriptul de ascultare filtrează mesajele după ID-ul dispozitivului configurat.

Pe dispozitivele Shelly Gen1, activarea MQTT dezactivează Shelly Cloud — cele două nu pot funcționa simultan. Activați MQTT în interfața web Shelly, la Internet & Security → Advanced - Developer Settings.

Perioada de repaus implicită este de 60 de secunde. Pentru actualizări mai frecvente este disponibil un adaptor USB opțional — când senzorul este alimentat extern, modul de repaus este dezactivat și senzorul raportează continuu.

Funcțiile dispozitivului

Monitorizarea temperaturii și a umidității

Șablonul oferă un singur dispozitiv Senzor de temperatură, care citește temperatura ambientală din topicul MQTT shellies/shellyht-{deviceId}/sensor/temperature. Valorile sunt publicate ca numere zecimale (float), în grade Celsius.

Atributul de service Umiditate citește umiditatea relativă din shellies/shellyht-{deviceId}/sensor/humidity. Payloadul MQTT este publicat în intervalul 0–100 %, dar șablonul îl convertește intern în intervalul 0–1 (de ex. valoarea MQTT 45.2 este stocată în TapHome ca 0.452).

Ambele citiri se actualizează ori de câte ori senzorul se trezește din modul de repaus — implicit la fiecare 60 de secunde sau continuu când este alimentat prin USB.

Funcții suplimentare

Shelly H&T publică și nivelul bateriei (0–100 %, CR123A), starea online/offline prin MQTT Last Will and Testament și un mesaj de anunț al dispozitivului cu modelul, adresa MAC, adresa IP și versiunea de firmware (firmware >=1.6.0). Aceste funcții pot fi adăugate într-o actualizare viitoare a șablonului.

Rezolvarea problemelor

Senzorul nu raportează date
  1. Verificați dacă Shelly H&T este conectat la Wi-Fi și dacă MQTT este activat în setările dispozitivului (Internet & Security → Advanced - Developer Settings)
  2. Verificați dacă adresa și portul brokerului MQTT sunt corecte atât în interfața web Shelly, cât și în setările modulului TapHome
  3. Verificați dacă variabila personalizată deviceId corespunde exact ID-ului dispozitivului (ultimele 6 caractere hexazecimale ale adresei MAC, de ex. 112233)
  4. Folosiți un client MQTT (de ex. MQTT Explorer) pentru a vă abona la shellies/# și verificați dacă senzorul publică mesaje sub shellies/shellyht-<deviceId>/ la trezire
Valoarea umidității pare greșită

Șablonul împarte valoarea MQTT a umidității la 100 — o umiditate de 45,2 % este stocată în TapHome ca 0,452. Acesta este comportamentul așteptat, deoarece TapHome folosește intervalul 0–1 pentru valorile umidității. Interfața TapHome afișează corect valoarea în procente.

Bateria se descarcă rapid
  1. Shelly H&T este proiectat pentru o durată de viață a bateriei de până la 18 luni, cu perioada de repaus implicită de 60 de secunde
  2. Reconectările Wi-Fi frecvente (semnal slab, schimbarea canalului) cresc semnificativ consumul de energie
  3. Asigurați un semnal Wi-Fi puternic în locul în care este montat senzorul — dispozitivul are o rază de acțiune de aproximativ 30 m în interior

Dispozitivele Shelly Gen1 nu acceptă MQTT prin TLS. Comunicația dintre senzor și brokerul MQTT nu este criptată (MQTT simplu, portul 1883). Asigurați-vă că brokerul MQTT se află într-o rețea locală de încredere.

Cum se instalează în TapHome

Cerințe preliminare

  • Dispozitiv Shelly conectat la Wi-Fi (2,4 GHz), de ex. prin aplicația Shelly sau prin punctul de acces propriu al dispozitivului
  • Broker MQTT care rulează în rețeaua dvs. locală (de ex. Mosquitto, Home Assistant sau brokerul integrat TapHome)
  • TapHome CCU în aceeași rețea cu brokerul

La dispozitivele Gen1, activarea MQTT dezactivează Shelly Cloud. Cele două nu pot funcționa simultan. La dispozitivele Gen2/Plus această limitare nu se aplică.

Pasul 1 — Activați MQTT pe dispozitivul Shelly

Dispozitive Gen1 (Shelly 1, 1PM, 2.5, EM, 3EM, Plug S, RGBW2, Dimmer, TRV…)

  1. Deschideți interfața web Shelly: http://<device-ip>/
  2. Accesați Internet & Security → Advanced — MQTT
  3. Activați MQTT
  4. Setați MQTT Server: <broker-ip>:<port> (de ex. 192.168.1.10:1883)
  5. Opțional, setați MQTT User și MQTT Password, dacă brokerul dvs. necesită autentificare
  6. Faceți clic pe Save — dispozitivul repornește și se conectează la broker

Dispozitive Gen2 / Plus (Shelly Plus 1, Plus 1PM, Plus 2PM, Plus Plug S, Plus H&T, Pro 3EM…)

  1. Deschideți interfața web Shelly: http://<device-ip>/
  2. Accesați Settings → MQTT
  3. Activați MQTT
  4. Setați Server: <broker-ip>:<port> (de ex. 192.168.1.10:1883)
  5. Câmpul Client ID este precompletat cu ID-ul dispozitivului (de ex. shellyplus1pm-AABBCCDDEE) — lăsați-l neschimbat, dacă nu aveți un motiv anume să îl modificați
  6. Faceți clic pe Save și reporniți dispozitivul

Pentru a verifica funcționarea MQTT, folosiți un client MQTT (de ex. MQTT Explorer) și abonați-vă la shellies/# (Gen1) sau <device-id>/# (Gen2). Ar trebui să vedeți mesajele de stare trimise de dispozitiv.

Pasul 2 — Aflați Device ID / MQTT Client ID

Unele șabloane necesită parametrul Device ID sau MQTT Client ID. Acesta este identificatorul unic folosit în topicurile MQTT.

  • Gen1: se găsește pe etichetă, ca adresă MAC (de ex. AABBCCDDEE). Device ID = shelly<model>-<mac>, de ex. shelly1pm-AABBCCDDEE
  • Gen2/Plus: se găsește în interfața web Shelly, la Settings → Device Info → Device ID, sau pe eticheta dispozitivului

Pasul 3 — Configurați dispozitivul în TapHome

  1. În TapHome adăugați un nou modul Packet Parser (MQTT)
  2. IP Address: introduceți adresa IP a brokerului MQTT (de ex. 192.168.1.10)
  3. Port: 1883 (implicit; pentru TLS folosiți 8883)
  4. Device ID / MQTT Client ID: introduceți valoarea de la pasul 2 (dacă șablonul o necesită)
  5. Importați șablonul — TapHome se abonează automat la topicurile dispozitivului

Dispozitive disponibile

Shelly H&T MQTT Modul
Variabile personalizate
deviceId (string)ID-ul de dispozitiv MQTT al Shelly H&T — ultimele 6 caractere hexazecimale ale adresei MAC (de ex. 112233)
Senzor de temperatură Senzor de temperatură Doar citire

Temperatura ambientală și umiditatea — citește °C din MQTT, umiditatea este convertită din intervalul 0–100 % în intervalul 0–1

float Unitate: °C

Senzor de temperatură

Citirea umidității
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/getValue");
# IF response.IsSuccess
#  VAR content := response.Content;
#  VAR responseHeaders := response.Headers;
#  RETURN(PARSEXML(content, "//element1/value1"));
# ELSE
#  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
#  RETURN(NaN);
# END
Hu := listenHum;
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/getValue", "GET", "some data", "header1:value1", "header2:value2", ...);
# OR
# VAR request := HTTPREQUEST("/example/getValue", "POST", "some data");
# request.headers := { "header1:value1", "header2:value2", ...};
# request.method := "GET";
# request.data := null;
# VAR response := SENDHTTPREQUEST(request);
#
#
# Send TCP, UDP data:
# VAR data1 := BYTECOLLECTION("0a bb ea df 01");
# SENDDATA(data1);
# VAR data2 := "{\"name\":\"John\", \"age\":32}";
# SENDDATA(data2);
# VAR data3 := TOBYTES("{\"name\":\"John\", \"age\":32}", "iso-8859-1");
# SENDDATA(data3);
# Process received TCP or UDP data and set device values in the Listener script
#
#
# Download data from FTP:
# FTPDOWNLOAD("filePath");
Citirea temperaturii
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/getValue");
# IF response.IsSuccess
#  VAR content := response.Content;
#  VAR responseHeaders := response.Headers;
#  RETURN(PARSEXML(content, "//element1/value1"));
# ELSE
#  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
#  RETURN(NaN);
# END
te := listenTemp;
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/getValue", "GET", "some data", "header1:value1", "header2:value2", ...);
# OR
# VAR request := HTTPREQUEST("/example/getValue", "POST", "some data");
# request.headers := { "header1:value1", "header2:value2", ...};
# request.method := "GET";
# request.data := null;
# VAR response := SENDHTTPREQUEST(request);
#
#
# Send TCP, UDP data:
# VAR data1 := BYTECOLLECTION("0a bb ea df 01");
# SENDDATA(data1);
# VAR data2 := "{\"name\":\"John\", \"age\":32}";
# SENDDATA(data2);
# VAR data3 := TOBYTES("{\"name\":\"John\", \"age\":32}", "iso-8859-1");
# SENDDATA(data3);
# Process received TCP or UDP data and set device values in the Listener script
#
#
# Download data from FTP:
# FTPDOWNLOAD("filePath");
Ascultător
# Parse received bytes:
IF(RECEIVEDMSG.TOPIC = "shellies/shellyht-"+ deviceId +"/sensor/temperature")
 listenTemp := todouble(TOSTRING(RECEIVEDMSG.PAYLOAD));
END
IF(RECEIVEDMSG.TOPIC = "shellies/shellyht-"+ deviceId +"/sensor/humidity")
 listenHum := todouble(TOSTRING(RECEIVEDMSG.PAYLOAD))/100;
END
Conexiune: Packet Parser → MQTT • Nume gazdă: shellyht-{MAC}.local
Îmbunătățiri posibile (3)
  • Battery Level — Battery percentage (0–100%, CR123A). Available via MQTT but not parsed in template listener script.
  • Connection Status — LWT topic — true on connect, false on disconnect. Could detect offline sensor.
  • Device Announcement — JSON payload with device model, MAC, IP, firmware version. Published on connect (FW ≥1.6.0).

Surse

Ați găsit o problemă la acest șablon de dispozitiv?

Spuneți-ne ce nu funcționează, ce lipsește sau cum ar trebui să se comporte șablonul. Feedbackul dvs. ne ajută să păstrăm catalogul corect.

Verificat de TapHome

Doriți să folosiți acest șablon în TapHome Core?

Deschideți acest șablon în Customer Portal pentru a-l aplica într-una dintre locuințele dvs. sau pentru a propune o îmbunătățire și a o trimite înapoi în catalog.

Deschideți în portal