TapHome

Shelly Gas

Packet Parser → HTTP
Dodane przez
Ostatnia aktualizacja: 03. 2026
Shelly Gas

Shelly Gas (model SHGS-1) to zasilany z sieci detektor gazu Wi-Fi dostępny w dwóch wariantach — CNG (gaz ziemny / metan) i LPG (propan / butan). Oba warianty używają tego samego API i tego samego szablonu TapHome. Urządzenie podłącza się bezpośrednio do gniazdka elektrycznego i nieprzerwanie monitoruje stężenie gazu, wyzwalając alarm dźwiękowy i świetlny po przekroczeniu progów.

TapHome komunikuje się z urządzeniem przez HTTP w sieci lokalnej — połączenie z chmurą nie jest wymagane. Szablon odpytuje endpoint /status o stan alarmu i stężenie gazu oraz zapewnia sterowanie wyciszeniem alarmu i uruchomieniem autotestu czujnika.

Dostępny jest również wariant MQTT tego szablonu (Shelly GAS MQTT). Użyj szablonu MQTT, jeśli urządzenie jest skonfigurowane do komunikacji przez brokera MQTT zamiast HTTP.

Konfiguracja

Shelly Gas łączy się przez Wi-Fi. Podczas importu szablonu TapHome wprowadź adres IP urządzenia (domyślna wartość zastępcza 192.168.0.1).

Oba warianty CNG i LPG konfiguruje się identycznie — różni się fizyczny czujnik, ale API i szablon są takie same.

Możliwości urządzenia

Monitorowanie alarmu gazowego

Szablon udostępnia wielowartościowy przełącznik, który odczytuje aktualny stan alarmu z odpowiedzi /status (gas_sensor.alarm_state). Urządzenie raportuje jeden z następujących stanów:

StanZnaczenie
No alarmNormalna praca — nie wykryto gazu
Mild gas leakStężenie gazu >= 1800 ppm
Heavy gas leakStężenie gazu >= 3000 ppm
Self TestAutodiagnostyka czujnika w toku
Alarm state is unknownNierozpoznany stan (zapasowy)

Progi alarmu są ustalone na poziomie urządzenia i nie mogą być zmieniane przez TapHome ani API.

Stężenie gazu

Urządzenie czujnikowe odczytuje aktualne stężenie gazu w częściach na milion (ppm) z odpowiedzi /status (concentration.ppm). Wartość aktualizuje się co 15 sekund. Podczas rozgrzewania czujnika po włączeniu zasilania odczyt może być nieprawidłowy.

Wyciszenie aktywnego alarmu

Urządzenie przyciskowe wysyła żądanie GET /mute w celu wyciszenia brzęczyka alarmu bez kasowania stanu alarmu. Stan alarmu pozostaje aktywny do momentu spadku stężenia gazu poniżej progu.

Diagnostyka serwisowa

Szablon udostępnia 9 atrybutów serwisowych do monitorowania urządzenia:

  • Informacje o urządzeniu — hostname, adres MAC, czas urządzenia, czas pracy, zużycie RAM
  • Łączność — chmura włączona/połączona, MQTT połączony, dostępna aktualizacja firmware
Akcje serwisowe

Dostępne są dwie akcje serwisowe:

  • Ustaw głośność — reguluje głośność brzęczyka alarmu (1 = najciszej, 11 = najgłośniej) przez /settings?set_volume={value}
  • Autotest — uruchamia autodiagnostykę czujnika (~30 sekund) przez /self_test
Dodatkowe możliwości

Shelly Gas udostępnia również stan operacyjny czujnika (normal / warmup / fault), postęp autotestu, flagę ważności stężenia, siłę sygnału WiFi i sterowanie zewnętrznym manipulatorem zaworowym (11–13V, wyjście jack 500mA) w odpowiedzi /status. Endpoint anulowania wyciszenia (/unmute) jest dostępny do ponownego włączenia brzęczyka alarmu po wyciszeniu. Te możliwości mogą zostać dodane w przyszłej aktualizacji szablonu.

Rozwiązywanie problemów

Urządzenie nie odpowiada
  1. Sprawdź, czy Shelly jest połączony z Wi-Fi i ma prawidłowy adres IP
  2. Spróbuj użyć nazwy hosta mDNS (shellygas-AABBCCDDEE.local) zamiast adresu IP — adres IP mógł się zmienić po odnowieniu DHCP
  3. Otwórz http://{device-ip}/shelly w przeglądarce — jeśli odpowie typem urządzenia SHGS-1, urządzenie jest osiągalne
  4. Sprawdź, czy TapHome CCU i Shelly są w tej samej sieci / VLAN
Stężenie gazu zawsze pokazuje zero
  1. Upewnij się, że czujnik nie jest w trybie rozgrzewania — po włączeniu zasilania czujnik potrzebuje czasu na stabilizację przed raportowaniem prawidłowych odczytów
  2. Sprawdź concentration.is_valid w odpowiedzi /status — jeśli false, czujnik wciąż się rozgrzewa
  3. Upewnij się, że urządzenie jest prawidłowo ustawione (wariant CNG blisko sufitu, wariant LPG blisko podłogi — gaz unosi się lub opada w zależności od gęstości)
Alarm nie wyzwala się
  1. Progi alarmu są ustalone: łagodny >= 1800 ppm, silny >= 3000 ppm — niskie stężenia poniżej tych poziomów nie wyzwolą alarmu
  2. Uruchom autotest z TapHome (akcja serwisowa) w celu weryfikacji działania czujnika i brzęczyka
  3. Sprawdź pole gas_sensor.sensor_state w /status — jeśli raportuje fault, czujnik może wymagać wymiany

Urządzenia Shelly Gen1 obsługują tylko 2 jednoczesne połączenia HTTP. Jeśli TapHome i inny system (np. Home Assistant) odpytują to samo urządzenie jednocześnie, komunikacja może stać się zawodna. Użyj interwału odpytywania 10–30 sekund.

Jak zainstalować w TapHome

Wymagania wstępne

  • Urządzenie Shelly zainstalowane i włączone
  • Lokalna sieć Wi-Fi (2,4 GHz)
  • TapHome CCU w tej samej sieci

Krok 1 — Podłącz Shelly do Wi-Fi

Opcja A — Aplikacja Shelly (zalecana):

  1. Pobierz aplikację Shelly (iOS / Android)
  2. Dotknij +Add Device i postępuj zgodnie z kreatorem parowania Bluetooth
  3. Wprowadź dane logowania Wi-Fi, gdy zostaniesz o to poproszony

Opcja B — Tryb AP (bez aplikacji):

  1. Przy pierwszym uruchomieniu urządzenie tworzy hotspot: ShellyXXX-AABBCCDDEE
  2. Połącz telefon/PC z tym hotspotem
  3. Otwórz http://192.168.33.1Internet & SecurityWi-Fi Mode - Client
  4. Wprowadź SSID i hasło → Save

Shelly obsługuje tylko sieci 2,4 GHz. Sieci 5 GHz nie pojawią się podczas skanowania.

Krok 2 — Znajdź adres IP

Po połączeniu z Wi-Fi znajdź przypisany adres IP za pomocą jednej z poniższych metod:

  • Aplikacja Shelly: Szczegóły urządzenia → Device info → Adres IP
  • Interfejs webowy Shelly: Połącz się z AP urządzenia przed konfiguracją Wi-Fi — IP zostanie wyświetlone po zapisaniu
  • Tabela DHCP routera: Szukaj nazwy hosta takiej jak shelly1pm-AABBCCDDEE
  • mDNS: Pinguj shelly<model>-<mac>.local (np. shelly1pm-AABBCCDDEE.local) z tej samej sieci

Przypisz urządzeniu Shelly statyczny IP (rezerwację DHCP) w routerze, aby adres nie zmieniał się po ponownym uruchomieniu routera.

Krok 3 — Konfiguracja w TapHome

  1. W TapHome dodaj nowy moduł Packet Parser (HTTP)
  2. IP Address: wprowadź IP z kroku 2 (np. 192.168.1.50)
  3. Port: 80 (domyślny, nie wymaga zmiany)
  4. Zaimportuj szablon — TapHome będzie okresowo odpytywać /status w celu odczytu stanu urządzenia

Uwierzytelnianie HTTP jest domyślnie wyłączone na urządzeniach Shelly. Jeśli włączyłeś ochronę logowaniem, TapHome obecnie nie obsługuje HTTP Basic Auth — pozostaw uwierzytelnianie wyłączone dla integracji z TapHome.

Dostępne urządzenia

Shelly Gas Moduł
Akcje serwisowe
Ustaw głośność
Autotest
Zmienne niestandardowe
deviceID (string) = 10521CF2BA9BAdres IP urządzenia Shelly Gas w sieci lokalnej

Shelly GAS

Odczyt (moduł)
VAR response := SENDHTTPREQUEST("/status");
IF response.IsSuccess
 status := response.Content;
END
Akcje serwisowe
Set Volume [1 to 11]
Parametry: Volume [1 to 11] (1–11 Volume)
sendhttprequest("/settings?set_volume="+Volume);
Self test
sendhttprequest("/self_test");
Alarm gazowy Przełącznik wielowartościowy Tylko do odczytu

Stan alarmu gazowego — Brak alarmu, Łagodny wyciek gazu (>= 1800 ppm), Silny wyciek gazu (>= 3000 ppm), Autotest, Nieznany

enum multi-value switch
Wartości / Stany: No alarm · Mild gas leak · Heavy gas leak · Alarm state is unknown · Self Test

Alarm gazowy

Odczyt stanu przełącznika
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));
Zapis stanu przełącznika
#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
Stężenie gazu Zmienna Tylko do odczytu

Aktualne stężenie gazu w częściach na milion (ppm)

numeric Jednostka: ppm

Stężenie gazu

Odczyt
var v := sendhttprequest("/status");
var content := v.Content;
return(todouble(parsejson(content,"concentration.ppm")));
Zapis
# 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
Odczyt (moduł)
parsejson(status, "concentration")
Wycisz aktywny alarm Przycisk

Wycisza brzęczyk alarmu bez kasowania stanu alarmu

action push button

Wycisz aktywny alarm

Zapis stanu przycisku
sendhttprequest("/mute");
Połączenie: Packet Parser → HTTP
Możliwe ulepszenia (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

Źródła