---
title: "Shelly i3"
description: "Shelly i3 Wi-Fi 3-vstupový ovladač akcí a scén. Detekce jednoduchých, dvojitých, trojitých, dlouhých a kombinovaných událostí přes HTTP z TapHome."
url: "https://taphome.com/cs/compatibility/shelly-i3/"
language: cs
lastmod: 2026-04-26
generator: hugo
ai:
  topics: ["http","i/o-module","wifi","digital-input","push-button","reed-contact","3-channel","mdns"]
  questions: ["Jak integrovat Shelly i3 s TapHome?","Jak detekovat stisknutí tlačítek pomocí Shelly i3 v TapHome?","Jak připojit Shelly i3 přes HTTP do TapHome?","Jaký je rozdíl mezi režimem toggle a momentary na Shelly i3?","Proč Shelly i3 v TapHome nedetekuje dvojitá nebo trojitá stisknutí?","Umí Shelly i3 přímo ovládat relé?","Kolik akcí dokáže Shelly i3 spustit?"]
---

# Shelly i3

Komunikace: Packet Parser → HTTP

- [Stránka produktu Shelly i3](https://www.shelly.com/products/shop/shelly-i3)
- [Shelly i3 — znalostní báze](https://kb.shelly.cloud/knowledge-base/shelly-i3)
- [Shelly Gen1 — API reference](https://shelly-api-docs.shelly.cloud/gen1/#shelly-i3)

> Adresa v síti
> 
> TapHome komunikuje se zařízením na adrese zadané při importu. Dejte zařízení stálou adresu — rezervaci IP v routeru, nebo jeho mDNS jméno, pokud ho podporuje —, jinak integrace přestane fungovat, když router adresu změní.
> 
> [Příprava sítě](https://taphome.com/cs/docs/setup/network-preparation/)

## Návod na integraci

Shelly i3 je kompaktní Wi-Fi 3-vstupový ovladač akcí a scén (model `SHIX3-1`). Nemá žádná relé ani výstupy — funguje výhradně jako vstupní zařízení, které monitoruje tři externí přepínače nebo tlačítka připojená ke svorkám SW1, SW2 a SW3. Rozměry 40 × 36 × 10 mm umožňují instalaci do standardní instalační krabice za stávající nástěnný spínač. Napájí se z 110–230 VAC (potřebný neutrální vodič) nebo 24–60 VDC a spotřebovává méně než 1 W.

TapHome komunikuje se zařízením přes HTTP v lokální Wi-Fi síti — cloudové připojení není potřeba. Pro každý vstup šablona vytvoří dvě zařízení: vícestavový spínač, který dekóduje multi-click události (jednoduché, dvojité, trojité, dlouhé a kombinované sekvence), a reed kontakt, který zveřejňuje surový stav vstupu 0/1 plus servisní akci pro přepínání mezi režimem toggle a momentary.

## Instalace

### Wi-Fi párování a IP adresa

Po připojení napájení se i3 spustí v režimu Access Point se SSID `shellyi3-XXXXXX` (kde `XXXXXX` je posledních 6 hex číslic MAC adresy). Pro spárování s domácí sítí:

1. Připoj telefon nebo notebook k přístupovému bodu i3
2. Otevři `http://192.168.33.1` v prohlížeči (nebo použij mobilní aplikaci Shelly)
3. Ve webovém rozhraní přejdi na **Internet & Security → WIFI MODE - CLIENT**, zadej přihlašovací údaje domácí Wi-Fi a ulož
4. Zařízení se restartuje a připojí k domácí síti přes DHCP

Přidělenou IP adresu zjistíš z DHCP tabulky routeru nebo přes mDNS hostname `shellyi3-XXXXXXXXXXXX.local` (12-znakový MAC sufix, oznamovaný jako `_http._tcp.local.`). Při importu TapHome šablony zadej tuto IP adresu jako jediný povinný parametr.

### Vypnutí HTTP autentifikace

TapHome se nedokáže autentifikovat vůči zařízení. Ve webovém rozhraní Shelly přejdi na **Internet & Security → RESTRICT LOGIN** a ujisti se, že tato možnost je **vypnutá** ještě před importem šablony — jinak každý poll selže s HTTP 401.

### Konfigurace typu tlačítka

Každý ze tří vstupů může pracovat v jednom z pěti `btn_type` režimů. Pro TapHome jsou relevantní pouze dva, které jsou zveřejněny jako servisní akce na zařízeních I1 / I2 / I3:

- **Momentary** — pro tlačítka. Firmware dekóduje jedno krátké stisknutí (`S`), dlouhé stisknutí (`L`), dvojité krátké stisknutí (`SS`), trojité krátké stisknutí (`SSS`), krátké→dlouhé (`SL`) a dlouhé→krátké (`LS`). Vyžadováno, aby zařízení **Events I{N}** vrátila něco jiného než `None`.
- **Toggle** — pro klasické kolébkové nebo páčkové přepínače. Hlásí se pouze surový stav 0/1; vícestavový spínač zůstává na indexu 0.

Typ tlačítka lze kdykoliv změnit z TapHome přes servisní akci **Button Type** na každém zařízení I1 / I2 / I3, nebo přímo ve webovém rozhraní Shelly v **Settings → Input/Output settings**.

> [!NOTE]
> Firmware podporuje i režimy `edge`, `detached` a `action`, ale ty nejsou zveřejněny v TapHome šabloně. Lze je nastavit přes webové rozhraní Shelly bez narušení integrace — změní se pouze chování dekódování multi-click událostí.

## Schopnosti zařízení

### Dekódování multi-click událostí (Events I1, Events I2, Events I3)

Pro každý vstup vícestavový spínač dekóduje firmwarový kód události na jednu ze sedmi hodnot:

| Index | Událost | Shelly kód |
|-------|---------|------------|
| 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` |

Šablona pollne `/input/{0,1,2}` každých 2,5 sekundy a čte pole `event`. Při 6 událostech × 3 vstupy Shelly i3 marketingově uvádí jako podporující **až 18 odlišných multi-click akcí** (24, pokud se změny surového on/off stavu počítají jako samostatné spouštěče).

Práh dlouhého stisknutí a okno pro multi-push jsou konfigurovány globálně na zařízení (výchozí hodnoty: 800 ms pro dlouhé stisknutí, 500 ms okno mezi stisknutími). Lze je doladit ve webovém rozhraní Shelly v **Settings → Long Push Duration** a **Multi Push Time**.

### Surový stav vstupu a ovládání typu tlačítka (I1, I2, I3)

Pro každý vstup reed-contact zařízení zveřejňuje surový logický stav přečtený z pole `input` v `/input/{N}` (0 = otevřený, 1 = zavřený, po volitelné inverzi `btn_reverse`). Každé zařízení I1 / I2 / I3 obsahuje také:

- **Button Type** — servisní atribut s aktuální hodnotou `btn_type` (toggle / momentary / edge / detached / action)
- **Button Type** — servisní akce, která přepíná vstup mezi Toggle a Momentary zápisem `POST /settings/input/{N}?btn_type=...`

Surový stav je vhodný pro magnetické kontakty dveří / oken zapojené na svorky SW nebo pro sledování polohy páčkového přepínače v reálném čase.

### Servisní diagnostika

Jeden servisní atribut na úrovni modulu zveřejňuje **Wi-Fi SSID**, ke kterému je i3 aktuálně připojený (čtený z `/status` → `wifi_sta.ssid`). Další Gen1 diagnostiky (uptime, MAC, RSSI, příznak aktualizace firmware) jsou dostupné přes REST API zařízení, ale v této šabloně nejsou zveřejněny.

> [!TIP]
> Multi-click události se generují pouze v režimu **momentary**. Pokud je fyzický vstup zapojený přes klasický páčkový přepínač, nakonfiguruj tento vstup jako **Toggle** a použij reed-contact zařízení I{N} pro čtení jeho stavu 0/1 — odpovídající zařízení Events I{N} zůstane na indexu 0.

## Řešení problémů

### Multi-click události se nedetekují

1. Ověř, že vstup je v režimu **momentary** — otevři zařízení I{N} v TapHome, spusť servisní akci **Button Type** a vyber Momentary, nebo nastav přímo ve webovém rozhraní Shelly v **Settings → Input/Output settings**
2. V režimu toggle firmware hlásí pouze změny stavu; vícestavový spínač Events I{N} zůstává na indexu 0
3. Pokud jsou stisknutí dekódována jako nesprávná událost, uprav **Long Push Duration** (výchozí 800 ms) a **Multi Push Time** (výchozí 500 ms) ve webovém rozhraní Shelly
4. Dlouhé sekvence jako `SSS`, `SL` nebo `LS` vyžadují, aby uživatel udržel všechna stisknutí v rámci multi-push okna — pauzy delší než toto okno jsou dekódovány jako samostatné `S` události

### Stejná událost se opakuje stále / „uvíznutá" událost

Pole `event` vrácené z `/input/{N}` je **poslední dekódovaná událost** — firmware ji automaticky neresetuje. TapHome toto pole čte při každém pollu, takže vícestavový spínač bude nadále hlásit předchozí událost, dokud nenastane nová. Toto je normální chování a neznačí chybu. Při psaní vlastní logiky, která se spouští při každém stisknutí, spáruj událost s monotónním čítačem `event_cnt` (také dostupný v `/input/{N}`) pro detekci změny místo spoléhání se pouze na hodnotu `event`.

### Zařízení neodpovídá

1. Ověř, že i3 je připojený k Wi-Fi — otevři `http://{device-ip}/shelly` v prohlížeči; pokud vrátí JSON objekt, zařízení je dostupné
2. Zkus mDNS hostname `shellyi3-XXXXXXXXXXXX.local` místo IP adresy — IP se mohla změnit po obnově DHCP
3. Ujisti se, že HTTP autentifikace je **vypnutá** v **Internet & Security → Restrict login** — TapHome nedokáže odeslat přihlašovací údaje a každý požadavek vrátí HTTP 401
4. Zkontroluj, že TapHome Core a zařízení Shelly jsou ve stejné síti nebo VLAN s povoleným mDNS / multicastem

> [!WARNING]
> Gen1 Shelly zařízení akceptují **maximálně 2 současná HTTP spojení**. Dodaná šablona pollne každý vstup v intervalech 2,5 s, což je již blízko limitu. **Nesnižuj** poll interval a vyhni se spouštění jiného systému (např. Home Assistant, vlastní skripty), který pollne stejný i3 současně — komunikace se může stát nespolehlivou.

> [!NOTE]
> XML šablona obsahuje tři rezervované multi-value indexy (7, 8, 9 se surovými kódy 71/72/73 a generickými označeními „7" / „8" / „9"). Gen1 firmware nevysílá žádné události kromě `S`, `L`, `SS`, `SSS`, `SL` a `LS`, takže tyto indexy jsou nepoužité placeholdery a hodnota zařízení Events I{N} by v praxi neměla dosáhnout 7-9.

## 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](https://www.shelly.com/en/support/shelly-app) (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.1` → **Internet & Security** → **Wi-Fi Mode - Client**
4. Zadejte SSID a heslo → **Save**

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

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

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

Tato zařízení se po importu zobrazí v TapHome.

Shelly i3 Modul

Servisní atributy

|       |                                                          |
|-------|----------------------------------------------------------|
| Wi-Fi | SSID Wi-Fi sítě, ke které je zařízení aktuálně připojeno |

Servisní atributy

Wifi

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

Events I1 Vícestavový přepínač Pouze ke čtení

Dekódovaná multi-click událost pro vstup I1 — None, Shortpush, Longpush, Double Shortpush, Triple Shortpush, Shortpush + Longpush, Longpush + Shortpush (spustí se pouze při nastavení Button Type na Momentary)

string (decoded to UInt8 via SWITCH) json\_path

Hodnoty / Stavy: None · Shortpush · Longpush · Double Shortpush · Triple Shortpush · Shortpush + Longpush · Longpush + Shortpush

Čtení stavu přepínače

```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 Vícestavový přepínač Pouze ke čtení

Dekódovaná multi-click událost pro vstup I2 — None, Shortpush, Longpush, Double Shortpush, Triple Shortpush, Shortpush + Longpush, Longpush + Shortpush (spustí se pouze při nastavení Button Type na Momentary)

string (decoded to UInt8 via SWITCH) json\_path

Hodnoty / Stavy: None · Shortpush · Longpush · Double Shortpush · Triple Shortpush · Shortpush + Longpush · Longpush + Shortpush

Čtení stavu přepínače

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

Zápis stavu přepínače

```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 Vícestavový přepínač Pouze ke čtení

Dekódovaná multi-click událost pro vstup I3 — None, Shortpush, Longpush, Double Shortpush, Triple Shortpush, Shortpush + Longpush, Longpush + Shortpush (spustí se pouze při nastavení Button Type na Momentary)

string (decoded to UInt8 via SWITCH) json\_path

Hodnoty / Stavy: None · Shortpush · Longpush · Double Shortpush · Triple Shortpush · Shortpush + Longpush · Longpush + Shortpush

Čtení stavu přepínače

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

Zápis stavu přepínače

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

Vstup I1 Jazýčkový kontakt Pouze ke čtení

Surový logický stav vstupu I1 — 0 (otevřený) nebo 1 (zavřený), odrážející aktuální polohu přepínače zapojeného na svorku SW1

boolean json\_path

Servisní atributy

|              |                                                                                                                                |
|--------------|--------------------------------------------------------------------------------------------------------------------------------|
| Typ tlačítka | Aktuální režim chování vstupu I1 — Toggle (klasický přepínač) nebo Momentary (tlačítko, vyžadované pro dekódování multi-click) |

Servisní akce

|              |                                                                                                                                        |
|--------------|----------------------------------------------------------------------------------------------------------------------------------------|
| Typ tlačítka | Přepíná vstup I1 mezi Toggle (klasický přepínač) a Momentary (tlačítko — vyžadováno, aby se multi-click dekódování Events I1 spustilo) |

Čtení

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

Čtení (modul)

```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");
```

Servisní atributy

Button Type

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

Servisní akce

Button Type

Parametry: Button Type

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

Vstup I2 Jazýčkový kontakt Pouze ke čtení

Surový logický stav vstupu I2 — 0 (otevřený) nebo 1 (zavřený), odrážející aktuální polohu přepínače zapojeného na svorku SW2

boolean json\_path

Servisní atributy

|              |                                                                                                                                |
|--------------|--------------------------------------------------------------------------------------------------------------------------------|
| Typ tlačítka | Aktuální režim chování vstupu I2 — Toggle (klasický přepínač) nebo Momentary (tlačítko, vyžadované pro dekódování multi-click) |

Servisní akce

|              |                                                                                                                                        |
|--------------|----------------------------------------------------------------------------------------------------------------------------------------|
| Typ tlačítka | Přepíná vstup I2 mezi Toggle (klasický přepínač) a Momentary (tlačítko — vyžadováno, aby se multi-click dekódování Events I2 spustilo) |

Čtení

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

Servisní atributy

Button Type

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

Servisní akce

Button Type

Parametry: Button Type

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

Vstup I3 Jazýčkový kontakt Pouze ke čtení

Surový logický stav vstupu I3 — 0 (otevřený) nebo 1 (zavřený), odrážející aktuální polohu přepínače zapojeného na svorku SW3

boolean json\_path

Servisní atributy

|              |                                                                                                                                |
|--------------|--------------------------------------------------------------------------------------------------------------------------------|
| Typ tlačítka | Aktuální režim chování vstupu I3 — Toggle (klasický přepínač) nebo Momentary (tlačítko, vyžadované pro dekódování multi-click) |

Servisní akce

|              |                                                                                                                                        |
|--------------|----------------------------------------------------------------------------------------------------------------------------------------|
| Typ tlačítka | Přepíná vstup I3 mezi Toggle (klasický přepínač) a Momentary (tlačítko — vyžadováno, aby se multi-click dekódování Events I3 spustilo) |

Čtení

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

Čtení (modul)

```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");
```

Servisní atributy

Button Type

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

Servisní akce

Button Type

Parametry: Button Type

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

**Připojení:** Packet Parser → HTTP • Hostname: `shellyi3-{MAC}.local`

Možná vylepšení (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

Tyto hodnoty zadáte při importu XML.

| Ptá se v aplikaci | Výchozí       |
|-------------------|---------------|
| IP adresa         | `192.168.0.1` |

## Zdroje

- 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

## Související dokumentace

- [Integrace Packet Parser](https://taphome.com/cs/compatibility/packet-parser-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/cs/docs/integration/packet-parser/)
- [Funkce Packet parser](https://taphome.com/cs/docs/script/packet-parser/)
- [Funkce pro parsování](https://taphome.com/cs/docs/script/parsing-functions/)

