TapHome
Społeczność Beta Czujniki

Shelly 1 Gen3 Garage Door (Relay, Reed Contact on SW)

Przekaźnik Wi-Fi Shelly 1 Gen3 jako sterownik bramy garażowej w TapHome przez lokalne HTTP (Gen2+ RPC API). Kontaktron na wejściu SW pokazuje, czy brama jest otwarta, czy zamknięta, a bezpotencjałowy przekaźnik na I i O podaje napędowi krótki impuls tylko wtedy, gdy brama nie jest już w żądanym stanie. Do tego zwykły włącznik przekaźnika, stan wejścia SW i diagnostyka Wi-Fi.

ShellyPacket Parser → HTTP3 urządzeniaRewizja 1.0 Ostatnia aktualizacja: 10 listopada 2026

Dodane przez Lukáš Štěpán

Shelly 1 Gen3 Garage Door (Relay, Reed Contact on SW)

Import do aplikacji TapHomeSprzęt › Packet Parser › Dodaj z szablonu

Pobierz szablon
Na tej stronie

Adres w sieci

TapHome łączy się z urządzeniem pod adresem podanym przy imporcie. Nadaj urządzeniu stały adres — rezerwację IP w routerze albo jego nazwę mDNS, jeśli ją obsługuje — inaczej integracja przestanie działać, gdy router zmieni adres.

Przygotowanie sieci

Poradnik integracji

Shelly 1 Gen3 (model S3SW-001X16EU) to kompaktowy jednokanałowy przekaźnik Wi-Fi z bezpotencjałowym stykiem przekaźnika (zaciski I i O) i jednym wejściem łącznika (SW). Zasilany jest napięciem 110–240 V~, 24–48 V⎓ lub stabilizowanym 12 V⎓ i mieści się w standardowej puszce podtynkowej. TapHome odczytuje go i steruje nim przez HTTP w sieci lokalnej za pomocą Shelly Gen2+ RPC API (komponenty switch:0 i input:0), bez chmury Shelly.

Ten szablon społeczności jest przeznaczony do bramy garażowej: kontaktron na wejściu SW zgłasza, czy brama jest otwarta, czy zamknięta, a przekaźnik podaje krótki impuls na wejście przycisku napędu bramy. Zapewnia trzy urządzenia:

  • Relay — przekaźnik jako zwykły włącznik wł./wył.
  • SW input — stan wejścia SW (wł. = styk na SW jest zwarty).
  • Garage door — stan bramy z kontaktronu; dotknięcie wysyła jeden impuls przekaźnika do napędu, ale tylko wtedy, gdy brama nie jest już w żądanym stanie.

Relay i Garage door sterują tym samym przekaźnikiem. Używaj jednego z nich, a drugie ukryj lub usuń.

Podłączenie sprzętu

Instalację musi wykonać elektryk z uprawnieniami. Przed podłączeniem lub zmianą przewodów wyłącz wyłącznik nadprądowy i odpowiednim próbnikiem sprawdź, czy na zaciskach nie ma napięcia. Shelly wymaga wyłącznika nadprądowego o charakterystyce B lub C, maks. 16 A.

Schematy połączeń

Shelly podaje jeden schemat połączeń dla każdego zasilania. We wszystkich trzech obciążenie jest podłączone przez bezpotencjałowe zaciski przekaźnika O i I, a łącznik jest podłączony między SW a przewodem zasilania.

Zasilanie 110–240 V~: zasilone L i N, łącznik między SW a L.

Schemat połączeń Shelly 1 Gen3 przy zasilaniu 110–240 V AC: zasilone zaciski L i N, łącznik między SW a L, obciążenie podłączone przez bezpotencjałowe zaciski O i I.

Zasilanie 24–48 V⎓: plus do N, GND do L, łącznik między SW a GND.

Schemat połączeń Shelly 1 Gen3 przy zasilaniu 24–48 V DC: plus do N, GND do L, łącznik między SW a GND, obciążenie podłączone przez bezpotencjałowe zaciski O i I.

Stabilizowane zasilanie 12 V⎓: plus do zacisku 12V, GND do L, łącznik między SW a GND.

Schemat połączeń Shelly 1 Gen3 przy stabilizowanym zasilaniu 12 V DC: plus do zacisku 12V, GND do L, łącznik między SW a GND, obciążenie podłączone przez zaciski O i I.

Napęd bramy garażowej na I i O

Podłącz zaciski przycisku napędu bramy garażowej do zacisków przekaźnika I i O — na schematach w miejsce lampy. Styk przekaźnika jest bezpotencjałowy, więc przełącza wejście napędu jak przycisk, niezależnie od zasilania Shelly. Obciążalność styku wynosi maks. 240 V~ / 16 A i maks. 30 V⎓ / 10 A.

Kontaktron na SW

Podłącz kontaktron do wejścia SW w tym samym miejscu co łącznik na schemacie połączeń dla Twojego zasilania. Szablon oczekuje kontaktronu normalnie otwartego z magnesem przy zamkniętej bramie (styk zwarty = brama zamknięta); inny układ obsłużysz zmienną Invert (zobacz Konfiguracja).

SW nie jest wejściem bezpotencjałowym. Na schematach Shelly łącznik na SW jest podłączony do zasilania: przy zasilaniu 110–240 V~ kontaktron i jego przewód przełączają napięcie sieciowe (SW do L). Użyj styku i przewodu przystosowanych do napięcia sieciowego albo zasilaj Shelly napięciem 12 V⎓ lub 24–48 V⎓, przy którym styk przełącza SW do GND. Zawsze postępuj zgodnie ze schematem połączeń w instrukcji obsługi Shelly.

Zaciski śrubowe przyjmują przewody od 0,2 do 2,5 mm² (jednodrutowe, linkowe lub z tulejkami), z izolacją zdjętą na długości 6–7 mm. Shelly jest przeznaczony wyłącznie do użytku wewnątrz pomieszczeń, w temperaturze od –20 °C do 40 °C.

Konfiguracja

Podłączenie Shelly do Wi-Fi

Shelly 1 Gen3 ma wbudowany interfejs webowy. Po pierwszym włączeniu otwiera własny punkt dostępowy Shelly1G3-XXXXXXXXXXXX:

  1. Połącz telefon lub komputer z siecią Wi-Fi Shelly1G3-XXXXXXXXXXXX (domyślnie otwartą).
  2. Otwórz w przeglądarce http://192.168.33.1/.
  3. Przejdź do Settings → Wi-Fi, wybierz lub wpisz swoją sieć Wi-Fi i jej hasło, a następnie zapisz. Shelly działa w paśmie 2,4 GHz, więc użyj sieci 2,4 GHz.
  4. Znajdź w routerze adres IP, który otrzymał Shelly, i otwórz interfejs webowy pod adresem http://<IP address>/.

Punkt dostępowy jest domyślnie siecią otwartą. Gdy Shelly jest już w Twojej sieci Wi-Fi, możesz go wyłączyć w Settings → Access point and Range Extender.

Shelly możesz też dodać do sieci Wi-Fi w aplikacji Shelly Smart Control. TapHome nie potrzebuje chmury Shelly.

Ustawienia Shelly dla TapHome

Ustaw je w interfejsie webowym Shelly (http://<IP address>/) przed importem szablonu:

UstawienieGdzie w interfejsie webowym ShellyWartośćDlaczego
Ochrona hasłemSettings → Device settings → AuthenticationWyłączonaTapHome nie obsługuje uwierzytelniania HTTP Digest. Z hasłem każde urządzenie pokazuje błąd “Shelly asks for a password (HTTP 401)”.
Typ wejściaInput/output settings → input modeSwitchKontaktron ma stan; przy typie Button Shelly nie zgłasza stanu, a SW input i Garage door pokazują błąd.
Tryb wejścia/wyjściaInput/output settings → output typeDetached SwitchW pozostałych trybach kontaktron sam przełącza przekaźnik przy każdym ruchu bramy. Garage door pokazuje ostrzeżenie, dopóki tryb nie jest Detached.
Stały adres IPSettings → Wi-Fi (statyczny IP) lub rezerwacja DHCP w routerze—Szablon komunikuje się z Shelly przez jego adres IP; adres nie może się zmieniać.

Pozostaw własną opcję wejścia Shelly Invert wyłączoną i zamiast niej użyj zmiennej szablonu Invert. Opcja Shelly odwraca stan wejścia, który odczytuje TapHome, więc odwróciłaby SW input i Garage door jednocześnie.

Import szablonu

Zaimportuj szablon w TapHome i jako parametr adresu IP wpisz stały adres IP Shelly (domyślny 192.168.0.1 to tylko symbol zastępczy).

Zmienne Garage door

ZmiennaDomyślnieZnaczenie
Invert00: styk zwarty = brama Zamknięte (kontaktron normalnie otwarty z magnesem przy zamkniętej bramie). Ustaw 1, gdy przy zamkniętej bramie styk jest rozwarty.
PulseSeconds1Długość impulsu przekaźnika w sekundach. Shelly sam przełącza przekaźnik z powrotem (toggle_after).

Możliwości urządzenia

Garage door

Stan bramy pochodzi z wejścia SW (Input.GetStatus?id=0), jest odpytywany co 2,5 s i wyświetlany jako Otwarte lub Zamknięte. Dotknięcie Otwarte lub Zamknięte najpierw odczytuje wejście i wysyła Switch.Set?id=0&on=true&toggle_after=<PulseSeconds> tylko wtedy, gdy brama nie jest już w tym stanie. Drugie dotknięcie tego samego stanu albo dotknięcie po tym, jak brama została poruszona pilotem, nie wysyła niczego. Jeśli Shelly nie odpowie na odczyt wejścia, impuls również nie zostanie wysłany.

Po restarcie jednostki sterującej Garage door odczytuje swój stan z Shelly i niczego nie wysyła (StartupValueSource = odczyt z urządzenia). Bez tego brama poruszona podczas restartu zostałaby przesunięta z powrotem.

Urządzenie odczytuje też ustawienia przełącznika Shelly (Switch.GetConfig?id=0) i pokazuje ostrzeżenie, dopóki tryb wejścia nie jest Detached.

Jedno wejście daje tylko dwa stany. „Otwieranie” i „zamykanie” nie mogą być pokazane: brama pokazuje Otwarte, gdy tylko opuści pozycję zamkniętą.

Relay

Przekaźnik jako włącznik wł./wył.: stan jest odczytywany z Switch.GetStatus?id=0 (output) co 2,5 s i przełączany przez Switch.Set?id=0&on=true lub on=false. Po restarcie jednostki sterującej Relay również odczytuje swój stan z Shelly, zamiast go wysyłać.

SW input

Stan input:0 z Input.GetStatus?id=0, odpytywany co 2,5 s — wł., gdy styk na SW jest zwarty. Przed każdym odczytem szablon sprawdza typ wejścia (Input.GetConfig?id=0) i pokazuje błąd, gdy nie jest to Switch.

Diagnostyka modułu i akcje serwisowe

Moduł jest odpytywany co 15 s (Sys.GetStatus, WiFi.GetStatus, Switch.GetStatus) i pokazuje te atrybuty serwisowe:

  • Wi-Fi — nazwa połączonej sieci
  • Adres IP — bieżący adres IP Shelly
  • Siła sygnału — siła sygnału Wi-Fi (RSSI)
  • MAC — adres MAC
  • Temperatura — temperatura wewnętrzna Shelly w °C

Pokazuje ostrzeżenie, gdy dostępne jest nowe stabilne oprogramowanie oraz gdy Shelly wymaga restartu. Dostępne są dwie akcje serwisowe: Aktualizacja oprogramowania do wersji stabilnej (Shelly.Update) i Reboot (Shelly.Reboot).

Shelly 1 Gen3 nie ma pomiaru energii.

Rozwiązywanie problemów

“Shelly asks for a password (HTTP 401)” na wszystkich urządzeniach

W Shelly jest włączona ochrona hasłem. Wyłącz ją w interfejsie webowym Shelly w Settings → Device settings → Authentication.

Urządzenia nie odpowiadają lub “Shelly answered HTTP …”

  1. Sprawdź, czy adres IP w TapHome to bieżący adres IP Shelly i czy Shelly jest w sieci.
  2. Sprawdź, czy Shelly ma stały adres IP (statyczny IP lub rezerwacja DHCP), aby adres nie zmienił się po restarcie routera.
  3. Otwórz http://<IP address>/rpc/Sys.GetStatus w przeglądarce w tej samej sieci — jeśli Shelly odpowie w formacie JSON, jest osiągalny.

“SW input is not of type switch in Shelly” lub “SW input has no state”

Tryb wejścia to Button (lub inny typ). Ustaw tryb wejścia na Switch w ustawieniach wejść/wyjść Shelly.

Ostrzeżenie “Shelly input mode is not Detached” na Garage door

Kontaktron sam przełącza przekaźnik. Ustaw typ wyjścia na Detached Switch w ustawieniach wejść/wyjść Shelly.

Garage door pokazuje Otwarte, choć brama jest zamknięta

Przy zamkniętej bramie kontaktron jest rozwarty. Ustaw zmienną Invert na 1.

Napęd nie reaguje na impuls

Impuls jest dla napędu za krótki. Zwiększ PulseSeconds. Sprawdź też, czy zaciski przycisku napędu są podłączone do I i O.

Dotknięcie Garage door nic nie robi

Szablon wysyła impuls tylko wtedy, gdy według kontaktronu brama nie jest już w żądanym stanie. Sprawdź urządzenie SW input: jeśli nie zmienia się, gdy brama się porusza, sprawdź okablowanie kontaktronu i położenie magnesu.

Ostrzeżenia “New firmware update is available” lub “Restart required”

Użyj na module akcji serwisowej Aktualizacja oprogramowania lub Reboot.

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.1 → Internet & Security → Wi-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 3

Te urządzenia pojawią się w TapHome po imporcie.

Shelly 1 Gen3 Moduł
Atrybuty serwisowe
Wi-Fi
${ipAddress}
${xml_signal_strength} [dB]
MAC
${temperature} [°C]
Akcje serwisowe
${xml_update_fw}
Reboot
Zmienne niestandardowe
SysStatus (string)
WiFiStatus (string)
SwitchStatus (string)

Shelly 1 Gen3

Odczyt (moduł)
VAR r := SENDHTTPREQUEST("/rpc/Sys.GetStatus");
IF r.IsSuccess
    SysStatus := r.Content;
ELSE
    IF r.StatusCode = 401
        ADDERROR(401, "Shelly asks for a password (HTTP 401). Turn off password protection in the Shelly web interface, TapHome does not support HTTP Digest.");
    ELSE
        ADDERROR(1, "Shelly answered HTTP " + TOSTRING(r.StatusCode));
    END
    RETURN(0);
END
r := SENDHTTPREQUEST("/rpc/WiFi.GetStatus");
IF r.IsSuccess
    WiFiStatus := r.Content;
END
r := SENDHTTPREQUEST("/rpc/Switch.GetStatus?id=0");
IF r.IsSuccess
    SwitchStatus := r.Content;
END
IF ! ISNULL(PARSEJSON(SysStatus, "available_updates.stable", true))
    ADDWARNING(2, "New firmware update is available");
END
IF PARSEJSON(SysStatus, "restart_required", true)
    ADDWARNING(3, "Restart required");
END
Atrybuty serwisowe
Wi-Fi
PARSEJSON(WiFiStatus, "ssid", true)
${ipAddress}
PARSEJSON(WiFiStatus, "sta_ip", true)
${xml_signal_strength} [dB]
PARSEJSON(WiFiStatus, "rssi", true)
MAC
PARSEJSON(SysStatus, "mac", true)
${temperature} [°C]
PARSEJSON(SwitchStatus, "temperature.tC", true)
Akcje serwisowe
${xml_update_fw}
VAR r := SENDHTTPREQUEST("/rpc/Shelly.Update?stage=\"stable\"");
IF r.IsSuccess
    RETURN("OK");
ELSE
    RETURN("Error " + TOSTRING(r.StatusCode));
END
Reboot
VAR r := SENDHTTPREQUEST("/rpc/Shelly.Reboot");
IF r.IsSuccess
    RETURN("OK");
ELSE
    RETURN("Error " + TOSTRING(r.StatusCode));
END
Relay Przełącznik
Wartości / Stany: ON · OFF

Relay

Odczyt stanu przełącznika
VAR r := SENDHTTPREQUEST("/rpc/Switch.GetStatus?id=0");
IF r.IsSuccess
    RETURN(PARSEJSON(r.Content, "$.output"));
END
IF r.StatusCode = 401
    ADDERROR(401, "Shelly asks for a password (HTTP 401). Turn off password protection in the Shelly web interface, TapHome does not support HTTP Digest.");
ELSE
    ADDERROR(1, "Shelly answered HTTP " + TOSTRING(r.StatusCode));
END
RETURN(NaN);
Zapis stanu przełącznika
SENDHTTPREQUEST("/rpc/Switch.Set?id=0&on=" + IF(St, "true", "false"));
SW input Kontakt reed

SW input

Odczyt
VAR r := SENDHTTPREQUEST("/rpc/Input.GetConfig?id=0");
IF r.IsSuccess
    IF PARSEJSON(r.Content, "$.type", true) != "switch"
        ADDERROR(2, "SW input is not of type switch in Shelly (Input settings: Input mode = Switch)");
        RETURN(NaN);
    END
ELSE
    IF r.StatusCode = 401
        ADDERROR(401, "Shelly asks for a password (HTTP 401). Turn off password protection in the Shelly web interface, TapHome does not support HTTP Digest.");
    ELSE
        ADDERROR(1, "Shelly answered HTTP " + TOSTRING(r.StatusCode));
    END
    RETURN(NaN);
END
r := SENDHTTPREQUEST("/rpc/Input.GetStatus?id=0");
IF r.IsSuccess
    RETURN(PARSEJSON(r.Content, "$.state"));
END
IF r.StatusCode = 401
    ADDERROR(401, "Shelly asks for a password (HTTP 401). Turn off password protection in the Shelly web interface, TapHome does not support HTTP Digest.");
ELSE
    ADDERROR(1, "Shelly answered HTTP " + TOSTRING(r.StatusCode));
END
RETURN(NaN);
Garage door Przełącznik
Wartości / Stany: Open · Closed
Zmienna: Invert, Zmienna: PulseSeconds

Garage door

Odczyt stanu przełącznika
VAR r := SENDHTTPREQUEST("/rpc/Input.GetStatus?id=0");
IF r.IsSuccess = false
    IF r.StatusCode = 401
        ADDERROR(401, "Shelly asks for a password (HTTP 401). Turn off password protection in the Shelly web interface, TapHome does not support HTTP Digest.");
    ELSE
        ADDERROR(1, "Shelly answered HTTP " + TOSTRING(r.StatusCode));
    END
    RETURN(NaN);
END
VAR s := PARSEJSON(r.Content, "$.state", true);
IF ISNULL(s)
    ADDERROR(2, "SW input has no state - set it to type switch in Shelly");
    RETURN(NaN);
END
IF Invert = 1
    RETURN(s);
END
RETURN(! s);
Zapis stanu przełącznika
VAR r := SENDHTTPREQUEST("/rpc/Input.GetStatus?id=0");
IF r.IsSuccess = false
    RETURN(0);
END
VAR open := IF(PARSEJSON(r.Content, "$.state", true), 0, 1);
IF Invert = 1
    open := 1 - open;
END
IF IF(St, 1, 0) != open
    SENDHTTPREQUEST("/rpc/Switch.Set?id=0&on=true&toggle_after=" + TOSTRING(PulseSeconds));
END
Odczyt (moduł)
VAR r := SENDHTTPREQUEST("/rpc/Switch.GetConfig?id=0");
IF r.IsSuccess
    IF PARSEJSON(r.Content, "$.in_mode", true) != "detached"
        ADDWARNING(3, "Shelly input mode is not Detached - the reed contact on SW switches the relay by itself. Set Input/Output settings to Detached.");
    END
END
Połączenie: Packet Parser → HTTP

Parametry importu

Te wartości podajesz podczas importu pliku XML.

Pytanie w aplikacjiDomyślnie
Adres IP192.168.0.1

Znalazłeś problem z tym szablonem urządzenia?

Napisz nam, co nie działa, czego brakuje lub jak powinien zachowywać się szablon. Twoja opinia pomaga nam utrzymać katalog dokładnym.

Szablon · portal TapHome Shelly 1 Gen3 Garage Door (Relay, Reed Contact on SW) Otwórz ten szablon w portalu klienta, aby zastosować go w swoim domu, lub zaproponuj modyfikację i wyślij ją z powrotem do katalogu. Packet Parser → HTTP Zobacz w portalu TapHome