TapHome

Shelly H&T Gen3

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:

shellyhtg3-{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 Gen3

Shelly H&T Gen3 este un senzor Wi-Fi de temperatură și umiditate alimentat cu baterii (4x AA), cu un afișaj e-paper mare. TapHome comunică cu dispozitivul prin MQTT, folosind notificările RPC Gen2+ din topicul events/rpc. Acesta este protocolul recomandat pentru dispozitivele Shelly Gen3 cu baterii, deoarece senzorul se află în repaus cea mai mare parte a timpului și publică date doar la trezire.

Șablonul creează un singur dispozitiv Senzor de temperatură și umiditate și un atribut de service Baterie la nivelul modulului. Un mecanism de detectare offline monitorizează marcajul de timp al ultimului mesaj primit și generează avertizări sau erori atunci când dispozitivul nu a raportat o perioadă mai lungă.

Configurare

ID-ul de client MQTT

Fiecare Shelly H&T Gen3 are un ID de client MQTT unic în formatul shellyhtg3-<MAC12>, unde <MAC12> reprezintă adresa MAC completă de 12 caractere, în hexazecimal cu litere mari (de ex. shellyhtg3-AABBCCDDEEFF). Acest ID servește și ca prefix implicit al topicului MQTT.

ID-ul de client se găsește:

  • Pe eticheta dispozitivului (adresa MAC)
  • În interfața web Shelly: Settings → MQTT → Client ID
  • Prin API: GET http://<device-ip>/rpc/Mqtt.GetConfig → câmpul client_id
Configurarea șablonului

După importul șablonului în TapHome:

  1. Deschideți modulul Shelly H&T Gen3 MQTT
  2. Setați MQTT Broker IP la adresa brokerului MQTT
  3. Setați Port (implicit 1883)
  4. Setați parametrul de import MQTT ID la ID-ul de client al dispozitivului (de ex. shellyhtg3-AABBCCDDEEFF)

Modulul se abonează la <device-id>/#, iar scripturile de ascultare analizează evenimentele JSON-RPC NotifyStatus din topicul events/rpc.

Asigurați-vă că MQTT este activat pe Shelly H&T Gen3 și că rpc_ntf (notificările RPC) este setat la true (valoarea implicită). Șablonul se bazează pe notificările din events/rpc, nu pe topicurile de stare individuale.

Comportamentul de măsurare și raportare

Shelly H&T Gen3 funcționează diferit în funcție de sursa de alimentare:

  • Mod baterie — se trezește la fiecare minut pentru măsurare. Raportează în MQTT dacă temperatura se modifică cu mai mult de 0,5 °C sau umiditatea cu mai mult de 5 %. Dacă nu s-a declanșat nicio raportare pe baza pragurilor, la fiecare 2 ore se trimite necondiționat un raport de stare.
  • Mod de alimentare prin USB — se trezește la fiecare 5 minute; la fiecare ciclu măsoară, actualizează afișajul și raportează.

Afișajul e-paper se actualizează când temperatura se modifică cu mai mult de 0,2 °C sau umiditatea cu mai mult de 3 %.

Dispozitivul funcționează cu baterii și nu este conectat permanent la brokerul MQTT. Așteptați-vă la pauze între citiri, în special în modul baterie. Dacă în locul în care se află senzorul semnalul Wi-Fi este slab, încercările frecvente de reconectare pot reduce durata de viață a bateriilor.

Funcțiile dispozitivului

Temperatura și umiditatea

Dispozitivul de tip senzor citește temperatura și umiditatea din evenimentele NotifyStatus din topicul events/rpc:

  • Temperatură — temperatura ambientală în grade Celsius, citită din params['temperature:0'].tC
  • Umiditate — umiditatea relativă în procente, citită din params['humidity:0'].rh (scriptul de ascultare împarte valoarea la 100 pentru a o converti în intervalul 0–1 așteptat de TapHome)

Ambele valori sunt doar pentru citire și se actualizează ori de câte ori senzorul se trezește și publică date.

Pragul de raportare a temperaturii se poate configura pe dispozitiv (implicit 0,5 °C, interval 0,5–5,0 °C). Pragul de raportare a umidității este implicit de 5 % (interval 1–20 %). Aceste praguri pot fi ajustate din interfața web Shelly sau prin API, pentru a echilibra frecvența raportării cu durata de viață a bateriilor.

Monitorizarea bateriei

Modulul oferă atributul de service Baterie (%), care citește procentul de încărcare a bateriei din params['devicepower:0'].battery.percent din evenimentul NotifyStatus. Avertizarea de baterie descărcată se declanșează când nivelul scade sub 30 %.

Nivelul bateriei se actualizează la fiecare raport al senzorului. Cu 4 baterii AA, durata de viață estimată a bateriilor este de aproximativ 1 an în condiții normale.

Detectarea stării offline

Șablonul monitorizează conectivitatea dispozitivului printr-un mecanism bazat pe marcajul de timp. Scriptul de ascultare al modulului stochează marcajul de timp Unix din fiecare eveniment NotifyStatus în variabila personalizată timestamp. Scriptul de citire compară apoi marcajul de timp stocat cu ora curentă:

  • Offline > 12 ore — WARNING: „Device is offline > 12H”
  • Offline > 24 de ore — ERROR: „Device is offline > 24H”

Acest lucru este util în special pentru dispozitivele cu baterii, care pot înceta să mai raporteze din cauza bateriilor descărcate sau a pierderii conectivității Wi-Fi.

Funcții suplimentare

Shelly H&T Gen3 publică și starea online/offline prin topicul MQTT Last Will and Testament (LWT), tensiunea bateriei în volți și starea alimentării externe (dacă este conectat USB Type-C). Topicurile de stare ale componentelor individuale (status/temperature:0, status/humidity:0, status/devicepower:0) sunt disponibile când este activat status_ntf, iar temperatura este disponibilă și în grade Fahrenheit. Dispozitivul are un afișaj e-paper cu unitate de temperatură și format al ceasului configurabile. 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 Gen3 este conectat la Wi-Fi și dacă MQTT este activat în setările dispozitivului (Settings → MQTT → Enable)
  2. Verificați dacă rpc_ntf este setat la true (implicit) — șablonul necesită notificările RPC din events/rpc
  3. Verificați dacă parametrul de import MQTT ID corespunde exact ID-ului de client al dispozitivului (de ex. shellyhtg3-AABBCCDDEEFF)
  4. Folosiți un client MQTT (de ex. MQTT Explorer) pentru a vă abona la <device-id>/# și verificați dacă senzorul publică mesaje NotifyStatus la trezire
  5. Verificați nivelul bateriei dispozitivului — bateriile descărcate împiedică conectarea senzorului la Wi-Fi
Valoarea umidității pare incorectă
  1. Șablonul TapHome împarte valoarea brută a umidității la 100 (de ex. rh: 55.3 devine 0.553 în TapHome). Acesta este comportamentul așteptat — TapHome folosește intern intervalul 0–1
  2. Senzorul are un offset de umiditate configurabil (Humidity.SetConfig → offset) — verificați dacă nu este setat la o valoare greșită
  3. Intervalul de umiditate de funcționare al senzorului este 30–70 % RH. Citirile din afara acestui interval pot fi mai puțin precise
Avertizări offline deși senzorul funcționează
  1. Detectarea stării offline compară marcajul de timp stocat cu ora curentă. Dacă ceasul unității TapHome Core este semnificativ decalat, pot apărea avertizări false
  2. La alimentarea cu baterii, senzorul raportează doar la depășirea pragurilor sau necondiționat la fiecare 2 ore — pauzele de până la 2 ore între rapoarte sunt normale
  3. Dacă senzorul se află într-un loc cu semnal Wi-Fi instabil, poate rata unele rapoarte. Verificați puterea semnalului Wi-Fi în locul în care se află senzorul

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 Gen3 MQTT Modul
Atribute de service
BaterieProcentul de încărcare a bateriei — avertizare de baterie descărcată sub 30 %
Variabile personalizate

Shelly H&T Gen3 MQTT

Citire (modul)
if !ISNAN(timestamp)
	DATETIME now := NOW();
	var secondsSeen := now.UNIXTIME - timestamp;
	if secondsSeen > 12 * 60 * 60
		if secondsSeen > 24 * 60 * 60
			ADDERROR("Device is offline > 24H");
		else
			ADDWARNING("Device is offline > 12H");        
		end
	end
end
Ascultător
if INDEXOF(RECEIVEDMSG.Topic, "events/rpc") > 0
	var ts := PARSEJSON(RECEIVEDMSG.Payload, "params.ts", true);
	if(!ISNULL(ts), timestamp := ts);
    var bat := PARSEJSON(RECEIVEDMSG.Payload, "params['devicepower:0'].battery.percent", true);
	if(!ISNULL(bat), BatteryPercentage := bat);
end

if BatteryPercentage < 30
	ADDWARNING("Low battery (<30%)");
end
Atribute de service
Battery [%]
BatteryPercentage
Senzor de temperatură și umiditate Senzor de temperatură Doar citire

Temperatura ambientală (°C) și umiditatea relativă din evenimentele NotifyStatus — umiditatea este convertită în intervalul 0–1 pentru TapHome

json Unitate: °C / %RH json_path

Senzor de temperatură și umiditate

Ascultător
if INDEXOF(RECEIVEDMSG.Topic, "events/rpc") > 0
	var temperature := PARSEJSON(RECEIVEDMSG.Payload, "params['temperature:0'].tC", true);
    if(!ISNULL(temperature), Te := temperature);
    var humidity := PARSEJSON(RECEIVEDMSG.Payload, "params['humidity:0'].rh", true);
    if(!ISNULL(humidity), Hu := humidity / 100);
end
Conexiune: Packet Parser → MQTT • Nume gazdă: shellyhtg3-{MAC}.local
Îmbunătățiri posibile (8)
  • Temperature Status Topic — Individual status topic (when status_ntf: true). Template uses events/rpc instead — functionally equivalent.
  • Humidity Status Topic — Individual status topic (when status_ntf: true). Template uses events/rpc instead — functionally equivalent.
  • DevicePower Status Topic — Individual status topic with battery.V (voltage). Template already reads battery.percent from events/rpc.
  • Connection Status (LWT) — Last Will and Testament topic — true on connect, false on disconnect. Template uses timestamp-based offline detection instead.
  • Temperature in Fahrenheit — Temperature also available in Fahrenheit (tF field). Template uses tC only.
  • E-Paper Display Configuration — Temperature unit (C/F) and clock format (12/24/disabled) — display-only configuration, not sensor data.
  • Battery Voltage — Battery voltage in Volts. Template reads only percent, not voltage.
  • External Power Status — Whether USB Type-C power is connected. Could distinguish battery vs USB power mode.

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