---
title: "Shelly i3"
description: "Shelly i3 kontroler Wi-Fi z 3 wejściami. Wykrywanie pojedynczych, podwójnych, potrójnych, długich i kombinowanych zdarzeń przez HTTP z TapHome."
url: "https://taphome.com/pl/compatibility/shelly-i3/"
language: pl
lastmod: 2026-04-26
generator: hugo
ai:
  topics: ["http","i/o-module","wifi","digital-input","push-button","reed-contact","3-channel","mdns"]
  questions: ["Jak zintegrować Shelly i3 z TapHome?","Jak wykrywać naciśnięcia przycisków za pomocą Shelly i3 w TapHome?","Jak podłączyć Shelly i3 przez HTTP do TapHome?","Jaka jest różnica między trybem toggle i momentary w Shelly i3?","Dlaczego Shelly i3 nie wykrywa podwójnych lub potrójnych naciśnięć w TapHome?","Czy Shelly i3 może bezpośrednio sterować przekaźnikami?","Ile akcji może wyzwolić Shelly i3?"]
---

# Shelly i3

Komunikacja: Packet Parser → HTTP

- [Strona produktu Shelly i3](https://www.shelly.com/products/shop/shelly-i3)
- [Shelly i3 — baza wiedzy](https://kb.shelly.cloud/knowledge-base/shelly-i3)
- [Shelly Gen1 — referencje API](https://shelly-api-docs.shelly.cloud/gen1/#shelly-i3)

> 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](https://taphome.com/pl/docs/setup/network-preparation/)

## Poradnik integracji

Shelly i3 to kompaktowy kontroler Wi-Fi z 3 wejściami do akcji i scen (model `SHIX3-1`). Nie posiada przekaźników ani wyjść — działa wyłącznie jako urządzenie wejściowe, które monitoruje trzy zewnętrzne przełączniki lub przyciski podłączone do zacisków SW1, SW2 i SW3. Wymiary 40 × 36 × 10 mm umożliwiają instalację wewnątrz standardowej puszki podtynkowej za istniejącym włącznikiem ściennym. Zasilany jest z 110–230 VAC (wymagany przewód neutralny) lub 24–60 VDC i pobiera mniej niż 1 W.

TapHome komunikuje się z urządzeniem przez HTTP w lokalnej sieci Wi-Fi — połączenie z chmurą nie jest wymagane. Dla każdego wejścia szablon tworzy dwa urządzenia: przełącznik wielowartościowy, który dekoduje zdarzenia multi-click (sekwencje pojedyncze, podwójne, potrójne, długie i kombinowane), oraz kontakt reed, który udostępnia surowy stan wejścia 0/1 plus akcję serwisową do przełączania między trybem toggle i momentary.

## Konfiguracja

### Parowanie Wi-Fi i adres IP

Po włączeniu zasilania i3 uruchamia się w trybie Access Point z SSID `shellyi3-XXXXXX` (gdzie `XXXXXX` to ostatnie 6 cyfr szesnastkowych adresu MAC). Aby sparować z siecią domową:

1. Połącz telefon lub laptop z punktem dostępowym i3
2. Otwórz w przeglądarce `http://192.168.33.1` (lub użyj aplikacji mobilnej Shelly)
3. W interfejsie webowym przejdź do **Internet & Security → WIFI MODE - CLIENT**, wprowadź dane logowania domowej Wi-Fi i zapisz
4. Urządzenie zrestartuje się i dołączy do sieci domowej przez DHCP

Aby odzyskać przydzielony adres IP, użyj tablicy dzierżaw DHCP routera lub nazwy hosta mDNS `shellyi3-XXXXXXXXXXXX.local` (12-znakowy sufiks MAC, ogłaszany jako `_http._tcp.local.`). Podczas importu szablonu TapHome wprowadź ten adres IP jako jedyny wymagany parametr.

### Wyłączenie uwierzytelniania HTTP

TapHome nie potrafi uwierzytelnić się względem urządzenia. W interfejsie webowym Shelly przejdź do **Internet & Security → RESTRICT LOGIN** i upewnij się, że ta opcja jest **wyłączona** przed importem szablonu — w przeciwnym razie każde odpytanie zakończy się błędem HTTP 401.

### Konfiguracja typu przycisku

Każde z trzech wejść może działać w jednym z pięciu trybów `btn_type`. Tylko dwa są istotne dla TapHome i udostępniane jako akcja serwisowa na urządzeniach I1 / I2 / I3:

- **Momentary** — dla przycisków. Firmware dekoduje pojedyncze krótkie naciśnięcie (`S`), długie naciśnięcie (`L`), podwójne krótkie naciśnięcie (`SS`), potrójne krótkie naciśnięcie (`SSS`), krótkie→długie (`SL`) oraz długie→krótkie (`LS`). Wymagane, aby urządzenia **Events I{N}** wyzwoliły cokolwiek innego niż `None`.
- **Toggle** — dla tradycyjnych przełączników kołyskowych lub dźwigniowych. Raportowany jest tylko surowy stan 0/1; przełącznik wielowartościowy pozostaje na indeksie 0.

Typ przycisku można zmienić w dowolnym momencie z TapHome za pomocą akcji serwisowej **Button Type** na każdym urządzeniu I1 / I2 / I3, lub bezpośrednio w interfejsie webowym Shelly w **Settings → Input/Output settings**.

> [!NOTE]
> Firmware obsługuje również tryby `edge`, `detached` i `action`, ale nie są one udostępniane w szablonie TapHome. Nadal można je ustawić z interfejsu webowego Shelly bez naruszenia integracji — zmienia się jedynie zachowanie dekodowania multi-click.

## Funkcje urządzenia

### Dekodowanie zdarzeń multi-click (Events I1, Events I2, Events I3)

Dla każdego wejścia przełącznik wielowartościowy dekoduje kod zdarzenia z poziomu firmware na jedną z siedmiu wartości:

| Indeks | Zdarzenie | Kod Shelly |
|--------|-----------|------------|
| 0 | None | `""` (idle) |
| 1 | Shortpush | `S` |
| 2 | Longpush | `L` |
| 3 | Double Shortpush | `SS` |
| 4 | Triple Shortpush | `SSS` |
| 5 | Shortpush + Longpush | `SL` |
| 6 | Longpush + Shortpush | `LS` |

Szablon odpytuje `/input/{0,1,2}` co 2,5 sekundy i odczytuje pole `event`. Przy 6 zdarzeniach × 3 wejścia Shelly reklamuje i3 jako wspierający **do 18 odrębnych akcji multi-click** (24, jeśli surowe zmiany stanu on/off są liczone jako oddzielne wyzwalacze).

Próg długiego naciśnięcia oraz okno multi-push są skonfigurowane globalnie na urządzeniu (wartości domyślne: 800 ms dla długiego naciśnięcia, 500 ms okno między naciśnięciami). Można je dostroić w interfejsie webowym Shelly w **Settings → Long Push Duration** i **Multi Push Time**.

### Surowy stan wejścia i sterowanie typem przycisku (I1, I2, I3)

Dla każdego wejścia urządzenie reed-contact udostępnia surowy stan logiczny odczytany z pola `input` w `/input/{N}` (0 = otwarty, 1 = zamknięty, po opcjonalnej inwersji `btn_reverse`). Każde urządzenie I1 / I2 / I3 zawiera również:

- **Button Type** — atrybut serwisowy z bieżącą wartością `btn_type` (toggle / momentary / edge / detached / action)
- **Button Type** — akcja serwisowa, która przełącza wejście między Toggle i Momentary, zapisując `POST /settings/input/{N}?btn_type=...`

Surowy stan jest odpowiedni dla magnetycznych kontaktów drzwi / okien podłączonych do zacisków SW lub do śledzenia w czasie rzeczywistym pozycji przełącznika dźwigniowego.

### Diagnostyka serwisowa

Pojedynczy atrybut serwisowy na poziomie modułu udostępnia **Wi-Fi SSID**, do którego i3 jest aktualnie podłączony (odczyt z `/status` → `wifi_sta.ssid`). Inne diagnostyki Gen1 (uptime, MAC, RSSI, flaga aktualizacji firmware) są dostępne w REST API urządzenia, ale nie są udostępnione w tym szablonie.

> [!TIP]
> Zdarzenia multi-click wyzwalają się tylko w trybie **momentary**. Jeśli wejście fizyczne jest podłączone przez tradycyjny przełącznik dźwigniowy, skonfiguruj to wejście jako **Toggle** i użyj urządzenia reed-contact I{N} do odczytu jego stanu 0/1 — odpowiadające urządzenie Events I{N} pozostanie na indeksie 0.

## Rozwiązywanie problemów

### Zdarzenia multi-click nie są wykrywane

1. Sprawdź, czy wejście jest w trybie **momentary** — otwórz urządzenie I{N} w TapHome, uruchom akcję serwisową **Button Type** i wybierz Momentary, lub ustaw bezpośrednio w interfejsie webowym Shelly w **Settings → Input/Output settings**
2. W trybie toggle firmware raportuje tylko zmiany stanu; przełącznik wielowartościowy Events I{N} pozostaje na indeksie 0
3. Dostosuj **Long Push Duration** (domyślnie 800 ms) i **Multi Push Time** (domyślnie 500 ms) w interfejsie webowym Shelly, jeśli naciśnięcia są dekodowane jako niewłaściwe zdarzenie
4. Długie sekwencje, takie jak `SSS`, `SL` lub `LS`, wymagają, aby użytkownik utrzymał wszystkie naciśnięcia w obrębie okna multi-push — przerwy dłuższe niż to okno są dekodowane jako oddzielne zdarzenia `S`

### To samo zdarzenie powtarza się w nieskończoność / „zacięte" zdarzenie

Pole `event` zwracane przez `/input/{N}` to **ostatnie zdekodowane zdarzenie** — firmware nie czyści go automatycznie. TapHome odczytuje to pole przy każdym odpytaniu, więc przełącznik wielowartościowy będzie nadal raportował poprzednie zdarzenie, dopóki nie wystąpi nowe. Jest to normalne zachowanie i nie wskazuje na usterkę. Pisząc logikę niestandardową wyzwalaną przy każdym naciśnięciu, sparuj zdarzenie z monotonicznym licznikiem `event_cnt` (również dostępnym w `/input/{N}`), aby wykryć zmianę zamiast polegać wyłącznie na wartości `event`.

### Urządzenie nie odpowiada

1. Sprawdź, czy i3 jest podłączony do Wi-Fi — otwórz w przeglądarce `http://{device-ip}/shelly`; jeśli zwróci obiekt JSON, urządzenie jest osiągalne
2. Spróbuj nazwy hosta mDNS `shellyi3-XXXXXXXXXXXX.local` zamiast adresu IP — IP mogło zmienić się po odnowieniu DHCP
3. Upewnij się, że uwierzytelnianie HTTP jest **wyłączone** w **Internet & Security → Restrict login** — TapHome nie może wysłać poświadczeń, a każde żądanie zwróci HTTP 401
4. Sprawdź, czy TapHome Core i urządzenie Shelly są w tej samej sieci lub VLAN z dozwolonym mDNS / multicastem

> [!WARNING]
> Urządzenia Shelly Gen1 akceptują **maksymalnie 2 jednoczesne połączenia HTTP**. Dostarczony szablon odpytuje każde wejście co 2,5 s, co już jest blisko limitu. **Nie** obniżaj interwału odpytywania i unikaj uruchamiania innego systemu (np. Home Assistant, własnych skryptów), który odpytuje to samo i3 jednocześnie — komunikacja może stać się niestabilna.

> [!NOTE]
> Szablon XML zawiera trzy zarezerwowane indeksy wielowartościowe (7, 8, 9 z surowymi kodami 71/72/73 i ogólnymi etykietami „7" / „8" / „9"). Firmware Gen1 nie emituje żadnych zdarzeń poza `S`, `L`, `SS`, `SSS`, `SL` i `LS`, więc te indeksy są nieużywanymi miejscami zastępczymi, a wartość urządzenia Events I{N} nie powinna w praktyce nigdy osiągnąć 7-9.

## 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](https://www.shelly.com/en/support/shelly-app) (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**

> [!NOTE]
> 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

> [!TIP]
> 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

> [!NOTE]
> 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 6

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

Shelly i3 Moduł

Atrybuty serwisowe

|       |                                                                  |
|-------|------------------------------------------------------------------|
| Wi-Fi | SSID sieci Wi-Fi, do której urządzenie jest aktualnie podłączone |

Atrybuty serwisowe

Wifi

```taphome
 VAR response := SENDHTTPREQUEST("/status");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(PARSEJSON(content, "$.wifi_sta.ssid"));
  End
```

Events I1 Przełącznik wielowartościowy Tylko do odczytu

Zdekodowane zdarzenie multi-click dla wejścia I1 — None, Shortpush, Longpush, Double Shortpush, Triple Shortpush, Shortpush + Longpush, Longpush + Shortpush (wyzwala się tylko gdy Button Type jest ustawiony na Momentary)

string (decoded to UInt8 via SWITCH) json\_path

Wartości / Stany: None · Shortpush · Longpush · Double Shortpush · Triple Shortpush · Shortpush + Longpush · Longpush + Shortpush

Odczyt stanu przełącznika

```taphome
VAR response := SENDHTTPREQUEST("/input/0");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(SWITCH(PARSEJSON(content, "event"),"S", 1, "L", 2, "SS", 3, "SSS", 4, "SL", 5, "LS", 6, 0));
 ELSE
  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
```

Events I2 Przełącznik wielowartościowy Tylko do odczytu

Zdekodowane zdarzenie multi-click dla wejścia I2 — None, Shortpush, Longpush, Double Shortpush, Triple Shortpush, Shortpush + Longpush, Longpush + Shortpush (wyzwala się tylko gdy Button Type jest ustawiony na Momentary)

string (decoded to UInt8 via SWITCH) json\_path

Wartości / Stany: None · Shortpush · Longpush · Double Shortpush · Triple Shortpush · Shortpush + Longpush · Longpush + Shortpush

Odczyt stanu przełącznika

```taphome
VAR response := SENDHTTPREQUEST("/input/1");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(SWITCH(PARSEJSON(content, "event"),"S", 1, "L", 2, "SS", 3, "SSS", 4, "SL", 5, "LS", 6, 0));
 ELSE
  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
```

Zapis stanu przełącznika

```taphome
# 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
```

Events I3 Przełącznik wielowartościowy Tylko do odczytu

Zdekodowane zdarzenie multi-click dla wejścia I3 — None, Shortpush, Longpush, Double Shortpush, Triple Shortpush, Shortpush + Longpush, Longpush + Shortpush (wyzwala się tylko gdy Button Type jest ustawiony na Momentary)

string (decoded to UInt8 via SWITCH) json\_path

Wartości / Stany: None · Shortpush · Longpush · Double Shortpush · Triple Shortpush · Shortpush + Longpush · Longpush + Shortpush

Odczyt stanu przełącznika

```taphome
VAR response := SENDHTTPREQUEST("/input/2");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(SWITCH(PARSEJSON(content, "event"),"S", 1, "L", 2, "SS", 3, "SSS", 4, "SL", 5, "LS", 6, 0));
 ELSE
  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
```

Zapis stanu przełącznika

```taphome
# 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
```

Wejście I1 Kontakt reed Tylko do odczytu

Surowy stan logiczny wejścia I1 — 0 (otwarty) lub 1 (zamknięty), odzwierciedlający bieżącą pozycję przełącznika podłączonego do zacisku SW1

boolean json\_path

Atrybuty serwisowe

|               |                                                                                                                                     |
|---------------|-------------------------------------------------------------------------------------------------------------------------------------|
| Typ przycisku | Aktualny tryb zachowania wejścia I1 — Toggle (tradycyjny przełącznik) lub Momentary (przycisk, wymagany do dekodowania multi-click) |

Akcje serwisowe

|               |                                                                                                                                                        |
|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|
| Typ przycisku | Przełącza wejście I1 między Toggle (tradycyjny przełącznik) i Momentary (przycisk — wymagane, aby dekodowanie multi-click Events I1 zostało wyzwolone) |

Odczyt

```taphome
VAR response := SENDHTTPREQUEST("/input/0");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(PARSEJSON(content, "input"));
 ELSE
  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
```

Odczyt (moduł)

```taphome
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/getValue");
# IF response.IsSuccess
#  VAR content := response.Content;
#  VAR responseHeaders := response.Headers;
#  RETURN(PARSEXML(content, "//element1/value1"));
# ELSE
#  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
#  RETURN(NaN);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/getValue", "GET", "some data", "header1:value1", "header2:value2", ...);
# OR
# VAR request := HTTPREQUEST("/example/getValue", "POST", "some data");
# request.headers := { "header1:value1", "header2:value2", ...};
# request.method := "GET";
# request.data := null;
# VAR response := SENDHTTPREQUEST(request);
#
#
# Send TCP, UDP data:
# VAR data1 := BYTECOLLECTION("0a bb ea df 01");
# SENDDATA(data1);
# VAR data2 := "{\"name\":\"John\", \"age\":32}";
# SENDDATA(data2);
# VAR data3 := TOBYTES("{\"name\":\"John\", \"age\":32}", "iso-8859-1");
# SENDDATA(data3);
# Process received TCP or UDP data and set device values in the Listener script
#
#
# Download data from FTP:
# FTPDOWNLOAD("filePath");
```

Atrybuty serwisowe

Button Type

```taphome
 VAR response := SENDHTTPREQUEST("/settings/input/0");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(PARSEJSON(content, "btn_type"));
 END
```

Akcje serwisowe

Button Type

Parametry: Button Type

```taphome
 var Ru := SWITCH(Bu, 0, "toggle","momentary") ;
 VAR response := SENDHTTPREQUEST("/settings/input/0?btn_type=" + Ru);
```

Wejście I2 Kontakt reed Tylko do odczytu

Surowy stan logiczny wejścia I2 — 0 (otwarty) lub 1 (zamknięty), odzwierciedlający bieżącą pozycję przełącznika podłączonego do zacisku SW2

boolean json\_path

Atrybuty serwisowe

|               |                                                                                                                                     |
|---------------|-------------------------------------------------------------------------------------------------------------------------------------|
| Typ przycisku | Aktualny tryb zachowania wejścia I2 — Toggle (tradycyjny przełącznik) lub Momentary (przycisk, wymagany do dekodowania multi-click) |

Akcje serwisowe

|               |                                                                                                                                                        |
|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|
| Typ przycisku | Przełącza wejście I2 między Toggle (tradycyjny przełącznik) i Momentary (przycisk — wymagane, aby dekodowanie multi-click Events I2 zostało wyzwolone) |

Odczyt

```taphome
VAR response := SENDHTTPREQUEST("/input/1");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(PARSEJSON(content, "input"));
 ELSE
  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
```

Atrybuty serwisowe

Button Type

```taphome
 VAR response := SENDHTTPREQUEST("/settings/input/1");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(PARSEJSON(content, "btn_type"));
 END
```

Akcje serwisowe

Button Type

Parametry: Button Type

```taphome
 var Ru := SWITCH(Bu, 0, "toggle","momentary") ;
 VAR response := SENDHTTPREQUEST("/settings/input/1?btn_type=" + Ru);
```

Wejście I3 Kontakt reed Tylko do odczytu

Surowy stan logiczny wejścia I3 — 0 (otwarty) lub 1 (zamknięty), odzwierciedlający bieżącą pozycję przełącznika podłączonego do zacisku SW3

boolean json\_path

Atrybuty serwisowe

|               |                                                                                                                                     |
|---------------|-------------------------------------------------------------------------------------------------------------------------------------|
| Typ przycisku | Aktualny tryb zachowania wejścia I3 — Toggle (tradycyjny przełącznik) lub Momentary (przycisk, wymagany do dekodowania multi-click) |

Akcje serwisowe

|               |                                                                                                                                                        |
|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|
| Typ przycisku | Przełącza wejście I3 między Toggle (tradycyjny przełącznik) i Momentary (przycisk — wymagane, aby dekodowanie multi-click Events I3 zostało wyzwolone) |

Odczyt

```taphome
VAR response := SENDHTTPREQUEST("/input/2");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(PARSEJSON(content, "input"));
 ELSE
  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
```

Odczyt (moduł)

```taphome
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/getValue");
# IF response.IsSuccess
#  VAR content := response.Content;
#  VAR responseHeaders := response.Headers;
#  RETURN(PARSEXML(content, "//element1/value1"));
# ELSE
#  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
#  RETURN(NaN);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/getValue", "GET", "some data", "header1:value1", "header2:value2", ...);
# OR
# VAR request := HTTPREQUEST("/example/getValue", "POST", "some data");
# request.headers := { "header1:value1", "header2:value2", ...};
# request.method := "GET";
# request.data := null;
# VAR response := SENDHTTPREQUEST(request);
#
#
# Send TCP, UDP data:
# VAR data1 := BYTECOLLECTION("0a bb ea df 01");
# SENDDATA(data1);
# VAR data2 := "{\"name\":\"John\", \"age\":32}";
# SENDDATA(data2);
# VAR data3 := TOBYTES("{\"name\":\"John\", \"age\":32}", "iso-8859-1");
# SENDDATA(data3);
# Process received TCP or UDP data and set device values in the Listener script
#
#
# Download data from FTP:
# FTPDOWNLOAD("filePath");
```

Atrybuty serwisowe

Button Type

```taphome
 VAR response := SENDHTTPREQUEST("/settings/input/2");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(PARSEJSON(content, "btn_type"));
 END
```

Akcje serwisowe

Button Type

Parametry: Button Type

```taphome
 var Ru := SWITCH(Bu, 0, "toggle","momentary") ;
 VAR response := SENDHTTPREQUEST("/settings/input/2?btn_type=" + Ru);
```

**Połączenie:** Packet Parser → HTTP • Hostname: `shellyi3-{MAC}.local`

Możliwe ulepszenia (14)

- Input Event Counter — Monotonic UInt16 counter incrementing on every decoded event — required to reliably detect rapid repeats since the event field is sticky. Could be exposed as a Variable per input.
- Extended Button Type modes — Template's Button Type service action only exposes Toggle/Momentary; firmware also supports edge, detached and action modes.
- Input Logic Reverse — Inverts logical state of an input. Could be added as bool service action per input.
- Long-push Minimum Duration — Default 800 ms, range 1–5000 ms. Global parameter applied to all three inputs.
- Long-push Maximum Duration — Default 800 ms, range 1–5000 ms.
- Multi-push Window — Default 500 ms, range 1–1000 ms. Window for joining short pushes into SS/SSS sequences.
- Action / Webhook Table — Per-event HTTP webhook URLs (btn\_on\_url, btn\_off\_url, shortpush\_url, longpush\_url, double\_shortpush\_url, triple\_shortpush\_url, shortpush\_longpush\_url, longpush\_shortpush\_url). Out of scope for TapHome which polls inputs directly.
- Wi-Fi Signal Strength — RSSI in dBm, available in /status. Could be added as a module-level service attribute.
- Firmware Update Available — Boolean from /status. Other Shelly Gen1 templates expose this as 'FW update' service attribute.
- Uptime — Seconds since boot. Diagnostic value commonly exposed by other Shelly Gen1 templates.
- MAC Address — Diagnostic identifier, commonly exposed by other Shelly Gen1 templates as a service attribute.
- Cloud Status — Shelly Cloud enable + connection booleans.
- MQTT Connection Status — MQTT broker connection state.
- While-pressed Long-push Pulse — MQTT-only feature: stays at 1 for the duration of a long press, useful for 'while-pressed' actions. Not available via HTTP polling.

## Parametry importu

Te wartości podajesz podczas importu pliku XML.

| Pytanie w aplikacji | Domyślnie     |
|---------------------|---------------|
| Adres IP            | `192.168.0.1` |

## Źródła

- Shelly Gen1 API Reference
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen1/) 2026-03-12
- Home Assistant Shelly Integration
  
  [www.home-assistant.io](https://www.home-assistant.io/integrations/shelly/) 2026-03-12
- Shelly i3 Knowledge Base
  
  [kb.shelly.cloud](https://kb.shelly.cloud/knowledge-base/shelly-i3) 2026-04-26
- Shelly i3 Gen1 API (i3-specific)
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen1/#shelly-i3) 2026-04-26

## Powiązana dokumentacja

- [Integracja Packet Parser](https://taphome.com/pl/compatibility/packet-parser-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/pl/docs/integration/packet-parser/)
- [Funkcje Packet parser](https://taphome.com/pl/docs/script/packet-parser/)
- [Funkcje parsowania](https://taphome.com/pl/docs/script/parsing-functions/)

