TapHome

Shelly 2.5

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

Shelly 2.5 je kompaktní dvoukanálové Wi-Fi relé s vestavěným měřením výkonu na obou kanálech. Vejde se za standardní nástěnný vypínač a dokáže ovládat dva nezávislé obvody, každý dimenzovaný do 10 A (2300 W při 230 V), s celkovým maximem 20 A. Zařízení podporuje dva provozní režimy — relé (dva nezávislé spínače) a roletový (koordinované ovládání motoru) — ale TapHome šablona implementuje pouze režim relé. TapHome komunikuje se zařízením přes HTTP v lokální síti — není potřeba cloudové připojení.

Šablona poskytuje dva relé spínače a dva elektroměry (jeden na kanál) plus servisní akci pro přepínání mezi režimem relé a rolet.

Konfigurace

Shelly 2.5 se připojuje přes Wi-Fi. Během importu TapHome šablony zadejte IP adresu zařízení (výchozí placeholder 192.168.0.1).

Aktuální provozní režim je zpřístupněn jako servisní atribut na úrovni modulu (“Mode”) a může být změněn přes servisní akci “Mode”. Přepnutí mezi režimem relé a rolet vyžaduje restart zařízení.

Možnosti zařízení

Ovládání relé

Šablona zpřístupňuje dva nezávislé relé kanály. Stav každého relé se čte z příslušného endpointu /relay/ (pole ison) a ovládá se přes turn=on nebo turn=off.

  • Kanál 1 — čtení a ovládání /relay/0
  • Kanál 2 — čtení a ovládání /relay/1

Každé relé má tři servisní atributy:

  • Overpower — zda byl na kanálu detekován stav nadměrného výkonu
  • Overtemperature — zda zařízení překročilo bezpečnou provozní teplotu
  • Power Meter — platnost měření (OK nebo Porucha)
Měření výkonu

Každý kanál má vyhrazený elektroměr, který čte dvě hodnoty z endpointu /meter/:

  • Výkon v reálném časepower ve wattech, šablonou konvertovaný na kW
  • Celková spotřebatotal ve watt-minutách, šablonou konvertovaný na kWh

Každý elektroměr zpřístupňuje servisní atribut “Overpower” zobrazující prahovou hodnotu nadměrného výkonu (ve wattech, dělených 1000).

Elektroměry jsou pouze ke čtení — aktualizují se automaticky s každým pollovacím cyklem (15sekundový interval).

Známý problém — hodnota energie kanálu 1 je 10× příliš vysoká. Šablona dělí total číslem 6000 pro kanál 1 místo 60000 (které kanál 2 používá správně). To znamená, že kumulativní hodnota energie pro kanál 1 bude přibližně 10krát vyšší než skutečná spotřeba. Jde o chybu v konverzním vzorci šablony.

Další možnosti

Shelly 2.5 nativně podporuje plné ovládání rolet (otevření/zavření/zastavení s 0–100% pozicí po kalibraci), pohyblivé jednominutové průměry výkonu na kanál, stavy fyzických vstupních spínačů, vnitřní teplotu zařízení, sílu Wi-Fi signálu a časovače automatického vypnutí na kanál. Zařízení také dokáže uložit až čtyři oblíbené pozice rolet. Tyto funkce mohou být přidány v budoucí aktualizaci šablony.

Ve srovnání se šablonou Shelly 1PM šablona Shelly 2.5 nezpřístupňuje diagnostiku zařízení jako hostname, MAC adresa, uptime, využití RAM, stav cloud/MQTT, dostupnost aktualizace firmwaru ani vnitřní teplota. Chybí také servisní akce ochrany výkonu (limit maximálního výkonu) a akce restartu.

Ř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 (shellyswitch25-AABBCCDDEE.local) místo IP adresy — IP se mohla změnit po obnovení DHCP
  3. Otevřete http://{device-ip}/shelly v prohlížeči — pokud odpoví, zařízení je dostupné
  4. Zkontrolujte, že TapHome CCU a Shelly jsou ve stejné síti / VLAN
Hodnoty výkonu ukazují nulu
  1. Potvrďte, že zátěž je připojena přes Shelly relé (ne obchvatem)
  2. Zkontrolujte, že relé je zapnuto — měřič měří pouze když protéká proud přes relé
  3. Manuálně pollujte /meter/0 nebo /meter/1 a ověřte, že power vrací nenulovou hodnotu
Celková energie kanálu 1 se zdá nesprávná

Šablona dělí celkovou hodnotu kanálu 1 číslem 6000 místo správného 60000 (které kanál 2 používá). Výsledkem je, že kumulativní hodnota energie pro kanál 1 je 10× vyšší než skutečná. V šabloně momentálně neexistuje řešení — konverzní faktor je vložen v pollovacím skriptu.

Gen1 Shelly zařízení podporují pouze 2 současná HTTP připojení. Pokud TapHome a jiný systém (např. Home Assistant) pollují stejné zařízení současně, komunikace může být nespolehlivá. Endpointy relé se pollují každých 2,5 sekundy a endpointy měřičů každých 15 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 2.5 Modul
Servisní atributy
Režim
Servisní akce
Režim

Shelly2.5

Servisní atributy
Mode
 VAR response := SENDHTTPREQUEST("/settings");
 IF response.IsSuccess
  VAR content := response.Content;
  VAR responseHeaders := response.Headers;
  RETURN(PARSEJSON(content, "mode"));
 END
Servisní akce
Mode
Parametry: Mode
var St := SWITCH(mo, 1, "roller", "relay");
 VAR response := SENDHTTPREQUEST("/settings?mode=" + St);
Elektroměr — Kanál 1 Elektroměr Pouze ke čtení

Měření spotřeby a energie kanálu 1 — okamžitý výkon (kW) a kumulativní energie (kWh). Poznámka: hodnota energie je 10× příliš vysoká kvůli chybě dělitele v šabloně (/6000 místo /60000)

numeric Jednotka: W / kWh
Servisní atributy
Nadměrný výkon

Elektroměr — Kanál 1

Čtení celkové spotřeby
VAR response := SENDHTTPREQUEST("/meter/0");
 IF response.IsSuccess
  VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN(PARSEJSON(content, "total")/6000);
 ELSE 
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Čtení odběru
VAR response := SENDHTTPREQUEST("/meter/0");
 IF response.IsSuccess
  VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN(PARSEJSON(content, "power")/1000);
 ELSE 
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Servisní atributy
Overpower
 VAR response := SENDHTTPREQUEST("/meter/0");
 IF response.IsSuccess
  VAR content := response.Content;
 RETURN((PARSEJSON(content, "overpower")/1000) + " W");
 END
Elektroměr — Kanál 2 Elektroměr Pouze ke čtení

Měření spotřeby a energie kanálu 2 — okamžitý výkon (kW) a kumulativní energie (kWh)

numeric Jednotka: W / kWh
Servisní atributy
Nadměrný výkon

Elektroměr — Kanál 2

Čtení celkové spotřeby
VAR response := SENDHTTPREQUEST("/meter/1");
 IF response.IsSuccess
  VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN(PARSEJSON(content, "total")/60000);
 ELSE 
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Čtení odběru
VAR response := SENDHTTPREQUEST("/meter/1");
 IF response.IsSuccess
  VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN(PARSEJSON(content, "power")/1000);
 ELSE 
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Servisní atributy
Overpower
 VAR response := SENDHTTPREQUEST("/meter/1");
 IF response.IsSuccess
  VAR content := response.Content;
 VAR responseHeaders := response.Headers;
 RETURN((PARSEJSON(content, "overpower")/1000) + " W");
 END
Relé — Kanál 1 Přepínač
boolean
Hodnoty / Stavy: ON · OFF

Relé — Kanál 1

Čtení stavu přepínače
VAR response := SENDHTTPREQUEST("/relay/0");
 IF response.IsSuccess
  VAR content := response.Content;
  VAR responseHeaders := response.Headers;
  RETURN(PARSEJSON(content, "ison"));
 ELSE
  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Zápis stavu přepínače
var turn := Switch(St, 1, "on", "off");
 VAR response := SENDHTTPREQUEST("/relay/0?turn=" + turn);
 IF response.IsSuccess = false
  ADDERROR(response.StatusCode);
 END
Servisní atributy
Overpower
 VAR response := SENDHTTPREQUEST("/relay/0");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(IF(PARSEJSON(content, "overpower"),"Yes", "No"));
 END
Overtemperature
 VAR response := SENDHTTPREQUEST("/relay/0");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(IF(PARSEJSON(content, "overtemperature"),"Yes", "No"));
 END
Power Meter
 VAR response := SENDHTTPREQUEST("/relay/0");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(IF(PARSEJSON(content, "is_valid"),"OK","Fault"));
 END
Relé — Kanál 2 Přepínač
boolean
Hodnoty / Stavy: ON · OFF

Relé — Kanál 2

Čtení stavu přepínače
VAR response := SENDHTTPREQUEST("/relay/1");
 IF response.IsSuccess
  VAR content := response.Content;
  VAR responseHeaders := response.Headers;
  RETURN(PARSEJSON(content, "ison"));
 ELSE
  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
  RETURN(NaN);
 END
Zápis stavu přepínače
var turn := Switch(St, 1, "on", "off");
 VAR response := SENDHTTPREQUEST("/relay/1?turn=" + turn);
 IF response.IsSuccess = false
  ADDERROR(response.StatusCode);
 END
Servisní atributy
Overpower
 VAR response := SENDHTTPREQUEST("/relay/1");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(IF(PARSEJSON(content, "overpower"),"Yes", "No"));
 END
Overtemperature
 VAR response := SENDHTTPREQUEST("/relay/1");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(IF(PARSEJSON(content, "overtemperature"),"Yes", "No"));
 END
Power Meter
 VAR response := SENDHTTPREQUEST("/relay/1");
 IF response.IsSuccess
  VAR content := response.Content;
  RETURN(IF(PARSEJSON(content, "is_valid"),"OK","Fault"));
 END
Připojení: Packet Parser → HTTP
Možná vylepšení (9)
  • Roller Shutter Control — Full roller shutter control (open/close/stop/position 0-100%) — the Shelly 2.5's key dual-mode feature. Template only implements relay mode.
  • Roller Position — Current roller position 0-100% (requires calibration). Not available without /roller/ endpoint.
  • Roller Calibration — Initiates travel-time calibration procedure for position control.
  • Rolling Power Averages — 3 rolling one-minute power averages per channel, available in /meter/ response
  • Input States — Physical switch input states (0/1) for both channels, available in /status response
  • Internal Device Temperature — Internal temperature in C available in /status response (not exposed as a device, only as relay SA)
  • Auto-off Timer — Per-channel auto-off timer in seconds, could be added as service action parameter
  • WiFi Signal Strength — WiFi RSSI in dBm, available in /status response
  • Favorite Positions (Roller Mode) — Up to 4 saved roller shutter positions — only relevant if roller mode is implemented

Zdroje