TapHome

Shelly Gas

Packet Parser → HTTP
Trimis de
Ultima actualizare: 03. 2026

Acest dispozitiv acceptă mDNS

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

shellygas-{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 Gas

Shelly Gas (model SHGS-1) este un detector de gaz Wi-Fi alimentat de la rețea, disponibil în două variante — CNG (gaz natural / metan) și GPL (propan / butan). Ambele variante folosesc același API și același șablon TapHome. Dispozitivul se conectează direct la o priză și monitorizează continuu concentrația gazului, declanșând o alarmă sonoră și luminoasă la depășirea pragurilor.

TapHome comunică cu dispozitivul prin HTTP în rețeaua locală — nu este necesară conexiunea la cloud. Șablonul interoghează endpointul /status pentru starea alarmei și concentrația gazului și oferă comenzi pentru oprirea sunetului alarmei și pornirea autotestului senzorului.

Este disponibilă și o variantă MQTT a acestui șablon (Shelly GAS MQTT). Folosiți șablonul MQTT dacă dispozitivul este configurat să comunice printr-un broker MQTT în loc de HTTP.

Configurare

Shelly Gas se conectează prin Wi-Fi. La importul șablonului în TapHome, introduceți adresa IP a dispozitivului (valoarea implicită: 192.168.0.1).

Variantele CNG și GPL se configurează identic — senzorul fizic diferă, dar API-ul și șablonul sunt aceleași.

Funcțiile dispozitivului

Monitorizarea alarmei de gaz

Șablonul oferă un comutator cu mai multe valori care citește starea curentă a alarmei din răspunsul /status (gas_sensor.alarm_state). Dispozitivul raportează una dintre următoarele stări:

StareSemnificație
No alarmFuncționare normală — nu s-a detectat gaz
Mild gas leakConcentrația gazului >= 1800 ppm
Heavy gas leakConcentrația gazului >= 3000 ppm
Self TestAutodiagnosticarea senzorului este în curs
Alarm state is unknownStare nerecunoscută (valoare de rezervă)

Pragurile de alarmă sunt fixate la nivelul dispozitivului și nu pot fi modificate din TapHome sau prin API.

Concentrația gazului

Un dispozitiv de tip senzor citește concentrația curentă a gazului în părți per milion (ppm) din răspunsul /status (concentration.ppm). Valoarea se actualizează la fiecare 15 secunde. În timpul încălzirii senzorului după pornire, citirea poate fi invalidă.

Oprirea sunetului alarmei active

Un dispozitiv de tip buton trimite o cerere GET /mute care oprește sunetul buzzerului de alarmă fără a anula starea de alarmă. Starea de alarmă rămâne activă până când concentrația gazului scade sub prag.

Diagnosticare de service

Șablonul oferă 9 atribute de service pentru monitorizarea dispozitivului:

  • Informații despre dispozitiv — nume de gazdă, adresă MAC, ora dispozitivului, timp de funcționare, utilizarea RAM
  • Conectivitate — cloud activat/conectat, MQTT conectat, actualizare de firmware disponibilă
Acțiuni de service

Sunt disponibile două acțiuni de service:

  • Setare volum — reglează volumul buzzerului de alarmă (1 = cel mai încet, 11 = cel mai tare) prin /settings?set_volume={value}
  • Autotest — pornește autodiagnosticarea senzorului (~30 de secunde) prin /self_test
Funcții suplimentare

Shelly Gas oferă în răspunsul /status și starea de funcționare a senzorului (normal / warmup / fault), progresul autotestului, indicatorul de validitate a concentrației, puterea semnalului Wi-Fi și comanda unui dispozitiv extern de acționare a robinetului (ieșire jack 11–13 V, 500 mA). Endpointul /unmute permite reactivarea buzzerului de alarmă după oprirea sunetului. Aceste funcții pot fi adăugate într-o actualizare viitoare a șablonului.

Rezolvarea problemelor

Dispozitivul nu răspunde
  1. Verificați dacă Shelly este conectat la Wi-Fi și are o adresă IP validă
  2. Încercați numele de gazdă mDNS (shellygas-AABBCCDDEE.local) în locul adresei IP — adresa IP s-ar fi putut schimba după reînnoirea DHCP
  3. Deschideți http://{device-ip}/shelly într-un browser — dacă răspunde cu tipul de dispozitiv SHGS-1, dispozitivul este accesibil
  4. Verificați dacă unitatea centrală TapHome (CCU) și Shelly se află în aceeași rețea / VLAN
Concentrația gazului este mereu zero
  1. Verificați dacă senzorul nu este în modul de încălzire — după pornire, senzorul are nevoie de timp pentru a se stabiliza înainte de a raporta citiri valide
  2. Verificați câmpul concentration.is_valid din răspunsul /status — dacă este false, senzorul se încălzește încă
  3. Asigurați-vă că dispozitivul este amplasat corect (varianta CNG lângă tavan, varianta GPL lângă podea — gazul urcă sau coboară în funcție de densitate)
Alarma nu se declanșează
  1. Pragurile de alarmă sunt fixe: ușoară >= 1800 ppm, puternică >= 3000 ppm — concentrațiile mai mici decât aceste niveluri nu declanșează alarma
  2. Porniți un autotest din TapHome (acțiune de service) pentru a verifica funcționarea senzorului și a buzzerului
  3. Verificați câmpul gas_sensor.sensor_state din /status — dacă are valoarea fault, senzorul poate necesita înlocuirea

Dispozitivele Shelly Gen1 acceptă doar 2 conexiuni HTTP simultane. Dacă TapHome și un alt sistem (de ex. Home Assistant) interoghează același dispozitiv în același timp, comunicarea poate deveni instabilă. Folosiți un interval de interogare de 10–30 de secunde.

Cum se instalează în TapHome

Cerințe preliminare

  • Dispozitiv Shelly instalat și pornit
  • Rețea Wi-Fi locală (2,4 GHz)
  • TapHome CCU în aceeași rețea

Pasul 1 — Conectați dispozitivul Shelly la Wi-Fi

Varianta A — aplicația Shelly (recomandat):

  1. Descărcați aplicația Shelly (iOS / Android)
  2. Atingeți + → Add Device și urmați asistentul de împerechere prin Bluetooth
  3. Introduceți datele de conectare la Wi-Fi când vi se solicită

Varianta B — modul AP (fără aplicație):

  1. La prima pornire, dispozitivul creează un hotspot: ShellyXXX-AABBCCDDEE
  2. Conectați telefonul/PC-ul la acest hotspot
  3. Deschideți http://192.168.33.1 → Internet & Security → Wi-Fi Mode - Client
  4. Introduceți SSID-ul și parola → Save

Shelly acceptă doar rețele de 2,4 GHz. Rețelele de 5 GHz nu vor apărea la scanare.

Pasul 2 — Găsiți adresa dispozitivului

Dispozitivele Shelly Gen1 acceptă mDNS (Zeroconf). Puteți accesa dispozitivul folosind un nume de gazdă în locul adresei IP:

1
shelly<model>-<MAC>.local

De exemplu: shelly1pm-AABBCCDDEE.local (adresa MAC în hexazecimal cu majuscule, fără două puncte).

Recomandat: folosiți Scanner IP din TapHome. Deschideți aplicația TapHome și folosiți Scanner IP (Setări → Rețea → Scanare). Scannerul descoperă dispozitivele din rețea și afișează atât adresa IP, cât și numele de gazdă mDNS. Pentru o conexiune mai fiabilă folosiți numele de gazdă în locul adresei IP — acesta rămâne același chiar dacă adresa IP a dispozitivului se schimbă după o repornire a routerului.

Metode alternative pentru aflarea adresei IP:

  • Aplicația Shelly: detaliile dispozitivului → Device info → adresa IP
  • Interfața web Shelly: conectați-vă la AP-ul dispozitivului înainte de configurarea Wi-Fi — adresa IP se afișează după salvare
  • Tabelul DHCP al routerului: căutați un nume de gazdă de forma shelly1pm-AABBCCDDEE

Pasul 3 — Configurați dispozitivul în TapHome

  1. În TapHome adăugați un nou modul Packet Parser (HTTP)
  2. Address: introduceți numele de gazdă mDNS (de ex. shelly1pm-AABBCCDDEE.local) sau adresa IP de la pasul 2
  3. Port: 80 (implicit, nu este necesară nicio modificare)
  4. Importați șablonul — TapHome va interoga periodic /status pentru a citi starea dispozitivului

Autentificarea HTTP este dezactivată implicit pe dispozitivele Shelly. Dacă ați activat protecția prin autentificare, rețineți că TapHome nu acceptă momentan HTTP Basic Auth — pentru integrarea cu TapHome lăsați autentificarea dezactivată.

Dispozitive disponibile

Shelly Gas Modul
Acțiuni de service
Setare volum
Autotest
Variabile personalizate
deviceID (string) = 10521CF2BA9BDevice ID-ul dispozitivului Shelly Gas (adresa MAC în hex, de ex. 10521CF2BA9B)

Shelly GAS

Citire (modul)
VAR response := SENDHTTPREQUEST("/status");
IF response.IsSuccess
 status := response.Content;
END
Acțiuni de service
Set Volume [1 to 11]
Parametri: Volume [1 to 11] (1–11 Volume)
sendhttprequest("/settings?set_volume="+Volume);
Self test
sendhttprequest("/self_test");
Alarmă de gaz Comutator cu mai multe valori Doar citire

Starea alarmei de gaz — No alarm, Mild gas leak (>= 1800 ppm), Heavy gas leak (>= 3000 ppm), Self Test, Unknown

enum multi-value switch
Valori / Stări: No alarm · Mild gas leak · Heavy gas leak · Alarm state is unknown · Self Test

Alarmă de gaz

Citirea stării comutatorului
var state := parsejson(parsejson(status,"gas_sensor"),"alarm_state");
switch(state, "none", return(0),
"mild", return(1),
"heavy", return(2),
"test", return(4),
return(3));
Scrierea stării comutatorului
#return(2);

# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/set/value=" + Mu);
# IF response.IsSuccess = false
#  ADDERROR(response.StatusCode);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/setValue", "GET", "value=" + Mu, "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\":" + Mu + "}";
# SENDDATA(data1);
# VAR data2 := TOBYTES("{\"name\":\"John\", \"age\":" + Mu + "}", "iso-8859-1");
# SENDDATA(data2);
# You can process received TCP or UDP data in the Listener script
#
#
# Upload data to FTP:
# FTPUPLOAD("filePath", "somedata=" + Mu, "write"); # use "append" mode to append data to existing file
Concentrația gazului Variabilă Doar citire

Concentrația curentă a gazului, în părți per milion (ppm)

numeric Unitate: ppm

Concentrația gazului

Citire
var v := sendhttprequest("/status");
var content := v.Content;
return(todouble(parsejson(content,"concentration.ppm")));
Scriere
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/set/value=" + Va);
# IF response.IsSuccess = false
#  ADDERROR(response.StatusCode);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/setValue", "GET", "value=" + Va, "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\":" + Va + "}";
# SENDDATA(data1);
# VAR data2 := TOBYTES("{\"name\":\"John\", \"age\":" + Va + "}", "iso-8859-1");
# SENDDATA(data2);
# You can process received TCP or UDP data in the Listener script
#
#
# Upload data to FTP:
# FTPUPLOAD("filePath", "somedata=" + Va, "write"); # use "append" mode to append data to existing file
Citire (modul)
parsejson(status, "concentration")
Oprire sunet alarmă activă Buton

Oprește sunetul buzzerului de alarmă fără a anula starea de alarmă

action push button

Oprire sunet alarmă activă

Scrierea stării butonului
sendhttprequest("/mute");
Conexiune: Packet Parser → HTTP • Nume gazdă: shellygas-{MAC}.local
Îmbunătățiri posibile (7)
  • Self-test state — Self-test progress: not_completed | completed | running | pending — available in /status
  • Sensor state — Sensor operational state: normal | warmup | fault — available in /status
  • Concentration validity — Whether gas reading is valid (false during warmup) — available in /status
  • Valve state — External valve state: opened | closed | not_connected | failure | closing | opening | checking
  • Valve control — Open/close external valve manipulator (11–13V, 500mA jack output)
  • Unmute alarm — Re-enables alarm buzzer after muting
  • WiFi Signal Strength — WiFi RSSI in dBm, available in /status response

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