TapHome

Shelly 2.5

Packet Parser → HTTP
Pridal
Posledná aktualizácia: 03. 2026
Shelly 2.5

Shelly 2.5 je kompaktné dvojkanálové Wi-Fi relé so vstavaným meraním výkonu na oboch kanáloch. Zmestí sa za štandardný nástenný vypínač a dokáže ovládať dva nezávislé obvody, každý dimenzovaný do 10 A (2300 W pri 230 V), s celkovým maximom 20 A. Zariadenie podporuje dva prevádzkové režimy — relé (dva nezávislé spínače) a roleta (koordinované ovládanie motora) — ale TapHome šablóna implementuje len režim relé. TapHome komunikuje so zariadením cez HTTP v lokálnej sieti — nie je potrebné cloudové pripojenie.

Šablóna poskytuje dva relé spínače a dva elektromery (jeden na kanál) plus servisnú akciu na prepínanie medzi režimom relé a rolety.

Konfigurácia

Shelly 2.5 sa pripája cez Wi-Fi. Počas importu TapHome šablóny zadajte IP adresu zariadenia (predvolený placeholder 192.168.0.1).

Aktuálny prevádzkový režim je sprístupnený ako servisný atribút na úrovni modulu (“Mode”) a môže byť zmenený cez servisnú akciu “Mode”. Prepnutie medzi režimom relé a rolety vyžaduje reštart zariadenia.

Možnosti zariadenia

Ovládanie relé

Šablóna sprístupňuje dva nezávislé relé kanály. Stav každého relé sa číta z príslušného endpointu /relay/ (pole ison) a ovláda sa cez turn=on alebo turn=off.

  • Kanál 1 — čítanie a ovládanie /relay/0
  • Kanál 2 — čítanie a ovládanie /relay/1

Každé relé má tri servisné atribúty:

  • Overpower — či bol na kanáli detekovaný stav nadmerného výkonu
  • Overtemperature — či zariadenie prekročilo bezpečnú prevádzkovú teplotu
  • Power Meter — platnosť merania (OK alebo Porucha)
Meranie výkonu

Každý kanál má vyhradený elektromer, ktorý číta dve hodnoty z endpointu /meter/:

  • Výkon v reálnom časepower vo wattoch, šablónou konvertovaný na kW
  • Celková spotrebatotal vo watt-minútach, šablónou konvertovaný na kWh

Každý elektromer sprístupňuje servisný atribút “Overpower” zobrazujúci prahovú hodnotu nadmerného výkonu (vo wattoch, delených 1000).

Elektromery sú len na čítanie — aktualizujú sa automaticky s každým pollovacím cyklom (15-sekundový interval).

Známy problém — hodnota energie kanálu 1 je 10× príliš vysoká. Šablóna delí total číslom 6000 pre kanál 1 namiesto 60000 (ktoré kanál 2 používa správne). To znamená, že kumulatívna hodnota energie pre kanál 1 bude približne 10-krát vyššia ako skutočná spotreba. Ide o chybu v konverznom vzorci šablóny.

Ďalšie možnosti

Shelly 2.5 natívne podporuje plné ovládanie roliet (otvorenie/zatvorenie/zastavenie s 0–100% pozíciou po kalibrácii), pohyblivé jednominútové priemery výkonu na kanál, stavy fyzických vstupných spínačov, vnútornú teplotu zariadenia, silu Wi-Fi signálu a časovače automatického vypnutia na kanál. Zariadenie tiež dokáže uložiť až štyri obľúbené pozície roliet. Tieto funkcie môžu byť pridané v budúcej aktualizácii šablóny.

V porovnaní so šablónou Shelly 1PM, šablóna Shelly 2.5 nesprístupňuje diagnostiku zariadenia ako hostname, MAC adresa, uptime, využitie RAM, stav cloud/MQTT, dostupnosť aktualizácie firmvéru ani vnútornú teplotu. Chýba tiež servisná akcia ochrany výkonu (limit maximálneho výkonu) a akcia reštartu.

Riešenie problémov

Zariadenie neodpovedá
  1. Overte, že Shelly je pripojený k Wi-Fi a má platnú IP adresu
  2. Skúste použiť mDNS hostname (shellyswitch25-AABBCCDDEE.local) namiesto IP adresy — IP sa mohla zmeniť po obnovení DHCP
  3. Otvorte http://{device-ip}/shelly v prehliadači — ak odpovie, zariadenie je dostupné
  4. Skontrolujte, že TapHome CCU a Shelly sú v rovnakej sieti / VLAN
Hodnoty výkonu ukazujú nulu
  1. Potvrďte, že záťaž je pripojená cez Shelly relé (nie obísková)
  2. Skontrolujte, že relé je zapnuté — merač meria len keď preteká prúd cez relé
  3. Manuálne pollujte /meter/0 alebo /meter/1 a overte, že power vracia nenulovú hodnotu
Celková energia kanálu 1 sa zdá nesprávna

Šablóna delí celkovú hodnotu kanálu 1 číslom 6000 namiesto správneho 60000 (ktoré kanál 2 používa). Výsledkom je, že kumulatívna hodnota energie pre kanál 1 je 10× vyššia ako skutočná. V šablóne momentálne neexistuje riešenie — konverzný faktor je vložený v pollovacom skripte.

Gen1 Shelly zariadenia podporujú len 2 súbežné HTTP pripojenia. Ak TapHome a iný systém (napr. Home Assistant) pollujú rovnaké zariadenie súčasne, komunikácia môže byť nespoľahlivá. Endpointy relé sa pollujú každých 2,5 sekundy a endpointy meračov každých 15 sekúnd.

Ako nainštalovať v TapHome

Predpoklady

  • Zariadenie Shelly nainštalované a zapnuté
  • Lokálna Wi-Fi sieť (2,4 GHz)
  • TapHome CCU v rovnakej sieti

Krok 1 — Pripojte Shelly k Wi-Fi

Možnosť A — Aplikácia Shelly (odporúčané):

  1. Stiahnite si aplikáciu Shelly (iOS / Android)
  2. Klepnite na +Add Device a postupujte podľa sprievodcu Bluetooth párovaním
  3. Po výzve zadajte svoje Wi-Fi prihlasovacie údaje

Možnosť B — AP režim (bez aplikácie):

  1. Pri prvom zapnutí zariadenie vytvorí hotspot: ShellyXXX-AABBCCDDEE
  2. Pripojte telefón/PC k tomuto hotspotu
  3. Otvorte http://192.168.33.1Internet & SecurityWi-Fi Mode - Client
  4. Zadajte SSID a heslo → Save

Shelly podporuje iba 2,4 GHz siete. 5 GHz siete sa pri skenovaní nezobrazia.

Krok 2 — Zistite IP adresu

Po pripojení k Wi-Fi zistite priradenú IP adresu jedným z nasledujúcich spôsobov:

  • Aplikácia Shelly: Detail zariadenia → Device info → IP adresa
  • Webové rozhranie Shelly: Pripojte sa k AP zariadenia pred nastavením Wi-Fi — IP sa zobrazí po uložení
  • DHCP tabuľka routera: Hľadajte hostname ako shelly1pm-AABBCCDDEE
  • mDNS: Pingnite shelly<model>-<mac>.local (napr. shelly1pm-AABBCCDDEE.local) z rovnakej siete

Priraďte zariadeniu Shelly statickú IP (DHCP rezerváciu) vo vašom routeri, aby sa adresa nezmenila po reštarte routera.

Krok 3 — Konfigurácia v TapHome

  1. V TapHome pridajte nový modul Packet Parser (HTTP)
  2. IP Address: zadajte IP z kroku 2 (napr. 192.168.1.50)
  3. Port: 80 (predvolený, nie je potrebné meniť)
  4. Importujte šablónu — TapHome bude pravidelne čítať /status pre zistenie stavu zariadenia

HTTP autentifikácia je na zariadeniach Shelly štandardne vypnutá. Ak ste povolili ochranu prihlásením, TapHome momentálne nepodporuje HTTP Basic Auth — pre integráciu s TapHome ponechajte autentifikáciu vypnutú.

Dostupné zariadenia

Shelly 2.5 Modul
Servisné atribúty
Režim
Servisné akcie
Režim

Shelly2.5

Servisné atribúty
Mode
 VAR response := SENDHTTPREQUEST("/settings");
 IF response.IsSuccess
  VAR content := response.Content;
  VAR responseHeaders := response.Headers;
  RETURN(PARSEJSON(content, "mode"));
 END
Servisné akcie
Mode
Parametre: Mode
var St := SWITCH(mo, 1, "roller", "relay");
 VAR response := SENDHTTPREQUEST("/settings?mode=" + St);
Elektromer — Kanál 1 Elektromer Len na čítanie

Meranie spotreby a energie kanálu 1 — okamžitý výkon (kW) a kumulatívna energia (kWh). Poznámka: hodnota energie je 10× príliš vysoká kvôli chybe deliteľa v šablóne (/6000 namiesto /60000)

numeric Jednotka: W / kWh
Servisné atribúty
Nadmerný výkon

Elektromer — Kanál 1

Čítanie celkovej spotreby
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
Čítanie odberu
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é atribúty
Overpower
 VAR response := SENDHTTPREQUEST("/meter/0");
 IF response.IsSuccess
  VAR content := response.Content;
 RETURN((PARSEJSON(content, "overpower")/1000) + " W");
 END
Elektromer — Kanál 2 Elektromer Len na čítanie

Meranie spotreby a energie kanálu 2 — okamžitý výkon (kW) a kumulatívna energia (kWh)

numeric Jednotka: W / kWh
Servisné atribúty
Nadmerný výkon

Elektromer — Kanál 2

Čítanie celkovej spotreby
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
Čítanie odberu
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é atribúty
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 Prepínač
boolean
Hodnoty / Stavy: ON · OFF

Relé — Kanál 1

Čítanie stavu prepínača
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 prepínača
var turn := Switch(St, 1, "on", "off");
 VAR response := SENDHTTPREQUEST("/relay/0?turn=" + turn);
 IF response.IsSuccess = false
  ADDERROR(response.StatusCode);
 END
Servisné atribúty
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 Prepínač
boolean
Hodnoty / Stavy: ON · OFF

Relé — Kanál 2

Čítanie stavu prepínača
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 prepínača
var turn := Switch(St, 1, "on", "off");
 VAR response := SENDHTTPREQUEST("/relay/1?turn=" + turn);
 IF response.IsSuccess = false
  ADDERROR(response.StatusCode);
 END
Servisné atribúty
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
Pripojenie: Packet Parser → HTTP
Možné vylepšenia (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