TapHome

Shelly Gas

Packet Parser → HTTP
Přidal
Poslední aktualizace: 03. 2026
Shelly Gas

Shelly Gas (model SHGS-1) je síťově napájený Wi-Fi detektor plynu dostupný ve dvou variantách — CNG (zemní plyn / metán) a LPG (propan / butan). Obě varianty používají stejné API a stejnou TapHome šablonu. Zařízení se zapojuje přímo do elektrické zásuvky a nepřetržitě monitoruje koncentraci plynu, spouštějíc zvukový a světelný alarm při překročení prahových hodnot.

TapHome komunikuje se zařízením přes HTTP v lokální síti — není potřeba cloudové připojení. Šablona dotazuje endpoint /status na stav alarmu a koncentraci plynu a poskytuje ovládání pro ztlumení alarmu a spuštění samotestu senzoru.

K dispozici je také MQTT varianta této šablony (Shelly GAS MQTT). Použijte MQTT šablonu, pokud je zařízení nakonfigurované na komunikaci přes MQTT broker namísto HTTP.

Konfigurace

Shelly Gas se připojuje přes Wi-Fi. Při importu TapHome šablony zadejte IP adresu zařízení (výchozí zástupná hodnota 192.168.0.1).

Obě varianty CNG a LPG se konfigurují identicky — liší se fyzický senzor, ale API a šablona jsou stejné.

Schopnosti zařízení

Monitorování plynového alarmu

Šablona poskytuje vícestavový přepínač, který čte aktuální stav alarmu z odpovědi /status (gas_sensor.alarm_state). Zařízení hlásí jeden z následujících stavů:

StavVýznam
No alarmNormální provoz — žádný plyn detekován
Mild gas leakKoncentrace plynu >= 1800 ppm
Heavy gas leakKoncentrace plynu >= 3000 ppm
Self TestProbíhá samodiagnostika senzoru
Alarm state is unknownNerozpoznaný stav (záložní)

Prahové hodnoty alarmu jsou pevné na úrovni zařízení a nelze je měnit přes TapHome ani API.

Koncentrace plynu

Senzorové zařízení čte aktuální koncentraci plynu v miliontinách (ppm) z odpovědi /status (concentration.ppm). Hodnota se aktualizuje každých 15 sekund. Během zahřívání senzoru po zapnutí může být měření neplatné.

Ztlumení aktivního alarmu

Tlačítkové zařízení odešle požadavek GET /mute pro ztlumení bzučáku alarmu bez zrušení stavu alarmu. Stav alarmu zůstává aktivní, dokud koncentrace plynu neklesne pod prahovou hodnotu.

Servisní diagnostika

Šablona poskytuje 9 servisních atributů pro monitorování zařízení:

  • Informace o zařízení — hostname, MAC adresa, čas zařízení, doba provozu, využití RAM
  • Konektivita — cloud povolený/připojený, MQTT připojený, dostupná aktualizace firmwaru
Servisní akce

K dispozici jsou dvě servisní akce:

  • Nastavit hlasitost — upraví hlasitost bzučáku alarmu (1 = nejtišší, 11 = nejhlasitější) přes /settings?set_volume={value}
  • Samotest — spustí samodiagnostiku senzoru (~30 sekund) přes /self_test
Další schopnosti

Shelly Gas také poskytuje provozní stav senzoru (normal / warmup / fault), průběh samotestu, příznak platnosti koncentrace, sílu Wi-Fi signálu a ovládání externího ventilového manipulátoru (11–13V, 500mA jack výstup) v odpovědi /status. Endpoint pro zrušení ztlumení (/unmute) je dostupný pro opětovné povolení bzučáku alarmu po ztlumení. Tyto schopnosti mohou být přidány v budoucí aktualizaci šablony.

Řešení problémů

Zařízení neodpovídá
  1. Ověřte, že Shelly je připojen k Wi-Fi a má platnou IP adresu
  2. Zkuste použít mDNS hostname (shellygas-AABBCCDDEE.local) namísto IP adresy — IP se mohla změnit po DHCP obnově
  3. Otevřete http://{device-ip}/shelly v prohlížeči — pokud odpoví s typem zařízení SHGS-1, zařízení je dostupné
  4. Zkontrolujte, zda jsou TapHome CCU a Shelly ve stejné síti / VLAN
Koncentrace plynu vždy ukazuje nulu
  1. Potvrďte, že senzor není v režimu zahřívání — po zapnutí senzor potřebuje čas na stabilizaci před hlášením platných měření
  2. Zkontrolujte concentration.is_valid v odpovědi /status — pokud je false, senzor se stále zahřívá
  3. Ujistěte se, že zařízení je správně umístěné (CNG varianta blízko stropu, LPG varianta blízko podlahy — plyn stoupá nebo klesá podle hustoty)
Alarm se nespouští
  1. Prahové hodnoty alarmu jsou pevné: mírný >= 1800 ppm, silný >= 3000 ppm — nízké koncentrace pod těmito úrovněmi alarm nespustí
  2. Spusťte samotest z TapHome (servisní akce) pro ověření funkčnosti senzoru a bzučáku
  3. Zkontrolujte pole gas_sensor.sensor_state v /status — pokud hlásí fault, senzor může vyžadovat výměnu

Gen1 Shelly zařízení podporují pouze 2 souběžná HTTP připojení. Pokud TapHome a jiný systém (např. Home Assistant) dotazují stejné zařízení současně, komunikace se může stát nespolehlivou. Použijte interval dotazování 10–30 sekund.

Jak nainstalovat v TapHome

Předpoklady

  • Zařízení Shelly nainstalované a zapnuté
  • Lokální Wi-Fi síť (2,4 GHz)
  • TapHome CCU ve stejné síti

Krok 1 — Připojte Shelly k Wi-Fi

Možnost A — Aplikace Shelly (doporučeno):

  1. Stáhněte si aplikaci Shelly (iOS / Android)
  2. Klepněte na +Add Device a postupujte podle průvodce Bluetooth párováním
  3. Po výzvě zadejte své Wi-Fi přihlašovací údaje

Možnost B — AP režim (bez aplikace):

  1. Při prvním zapnutí zařízení vytvoří hotspot: ShellyXXX-AABBCCDDEE
  2. Připojte telefon/PC k tomuto hotspotu
  3. Otevřete http://192.168.33.1Internet & SecurityWi-Fi Mode - Client
  4. Zadejte SSID a heslo → Save

Shelly podporuje pouze 2,4 GHz sítě. 5 GHz sítě se při skenování nezobrazí.

Krok 2 — Zjistěte IP adresu

Po připojení k Wi-Fi zjistěte přiřazenou IP adresu jedním z následujících způsobů:

  • Aplikace Shelly: Detail zařízení → Device info → IP adresa
  • Webové rozhraní Shelly: Připojte se k AP zařízení před nastavením Wi-Fi — IP se zobrazí po uložení
  • DHCP tabulka routeru: Hledejte hostname jako shelly1pm-AABBCCDDEE
  • mDNS: Pingněte shelly<model>-<mac>.local (např. shelly1pm-AABBCCDDEE.local) ze stejné sítě

Přiřaďte zařízení Shelly statickou IP (DHCP rezervaci) ve vašem routeru, aby se adresa nezměnila po restartu routeru.

Krok 3 — Konfigurace v TapHome

  1. V TapHome přidejte nový modul Packet Parser (HTTP)
  2. IP Address: zadejte IP z kroku 2 (např. 192.168.1.50)
  3. Port: 80 (výchozí, není potřeba měnit)
  4. Importujte šablonu — TapHome bude pravidelně číst /status pro zjištění stavu zařízení

HTTP autentifikace je na zařízeních Shelly standardně vypnutá. Pokud jste povolili ochranu přihlášením, TapHome momentálně nepodporuje HTTP Basic Auth — pro integraci s TapHome ponechte autentifikaci vypnutou.

Dostupná zařízení

Shelly Gas Modul
Servisní akce
Nastavit hlasitost
Samotest
Vlastní proměnné
deviceID (string) = 10521CF2BA9BIP adresa zařízení Shelly Gas v lokální síti

Shelly GAS

Čtení (modul)
VAR response := SENDHTTPREQUEST("/status");
IF response.IsSuccess
 status := response.Content;
END
Servisní akce
Set Volume [1 to 11]
Parametry: Volume [1 to 11] (1–11 Volume)
sendhttprequest("/settings?set_volume="+Volume);
Self test
sendhttprequest("/self_test");
Plynový alarm Vícestavový přepínač Pouze ke čtení

Stav plynového alarmu — Žádný alarm, Mírný únik plynu (>= 1800 ppm), Silný únik plynu (>= 3000 ppm), Samotest, Neznámý

enum multi-value switch
Hodnoty / Stavy: No alarm · Mild gas leak · Heavy gas leak · Alarm state is unknown · Self Test

Plynový alarm

Čtení stavu přepínače
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));
Zápis stavu přepínače
#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
Koncentrace plynu Proměnná Pouze ke čtení

Aktuální hodnota koncentrace plynu v milióntinách (ppm)

numeric Jednotka: ppm

Koncentrace plynu

Čtení
var v := sendhttprequest("/status");
var content := v.Content;
return(todouble(parsejson(content,"concentration.ppm")));
Zápis
# 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
Čtení (modul)
parsejson(status, "concentration")
Ztlumit aktivní alarm Tlačítko

Ztlumí bzučák alarmu bez zrušení stavu alarmu

action push button

Ztlumit aktivní alarm

Zápis stavu tlačítka
sendhttprequest("/mute");
Připojení: Packet Parser → HTTP
Možná vylepšení (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

Zdroje