TapHome

Shelly 3EM

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

Shelly 3EM je Wi-Fi třífázový elektroměr se třemi 120 A CT (proudovými transformátory) svorkami a vestavěným 10 A stykačovým relé. Měří činný výkon, napětí, proud, účiník a kumulativní energii pro každou fázi nezávisle. TapHome komunikuje se zařízením v lokální síti — není potřeba cloudové připojení.

Pro toto zařízení jsou dostupné dvě TapHome šablony: HTTP šablona (výchozí, využívá polling REST API) a MQTT šablona (využívá subskripci zpráv přes broker). Obě šablony poskytují stejnou sadu zařízení — 3 elektroměry (jeden na fázi) a 1 stykačový spínač. Vyberte protokol podle požadavků instalace.

Hardwarové připojení

Shelly 3EM vyžaduje síťové napájení (110–230 V AC) připojené na svorky L a N. Každá ze tří přibalených CT svorek se připojuje na svorky CT1, CT2 a CT3. Výstup stykačového relé je na svorce O (max 10 A).

Instalace CT svorek
  • Každá CT svorka se připne kolem fázového vodiče monitorovaného obvodu — není potřeba řezání vodičů
  • Šipka na CT svorce musí směřovat ve směru toku proudu (od zdroje k zátěži)
  • CT svorky mohou monitorovat třífázovou soustavu (L1, L2, L3) nebo tři nezávislé jednofázové obvody

NEPŘIPOJUJTE CT svorku na fázový vodič před jejím připojením k Shelly 3EM. Na připojovacích kabelech transformátoru může být přítomné vysoké napětí, i když je připojen pouze transformátor.

Ovládání stykače

Výstup relé (svorka O) je dimenzován na 10 A a může přímo spínat malé zátěže nebo ovládat cívku externího stykače pro spínání větších zátěží.

Konfigurace

Nastavení HTTP šablony

Během importu šablony zadejte IP adresu zařízení. Šablona polluje tři samostatné endpointy (/emeter/0, /emeter/1, /emeter/2) pro energetická data na fázi a /relay/0 pro stav stykače. Odpověď každé fáze se ukládá do vlastní proměnné (emeter0, emeter1, emeter2) pro minimalizaci počtu HTTP volání na pollovací cyklus.

Nastavení MQTT šablony

MQTT šablona vyžaduje tři importní parametry:

ParametrPopisPříklad
MQTT Broker IPAdresa MQTT brokeru192.168.1.10
MQTT Broker PortPort brokeru (výchozí 1883)1883
Device IDSuffix MAC adresy použitý v MQTT topicíchB929CC

Device ID (dID) je posledních 6 znaků MAC adresy v hexadecimálním formátu velkými písmeny. Najdete ho v Shelly webovém rozhraní pod SettingsDevice Info, nebo přes GET http://{ip}/settings → pole mqtt.id.

Modul se přihlásí k odběru shellies/shellyem3-{dID}/# a listener skripty směrují zprávy pro každou fázi (emeter a relay) do příslušných zařízení.

MQTT šablona používá prefix topicu shellyem3-{dID}, zatímco oficiální API dokumentace uvádí shelly3em-{id}. Oba formáty fungují — proměnná dID je konfigurovatelná. Ověřte skutečný prefix topicu přihlášením k shellies/# pomocí MQTT klienta.

Na Gen1 Shelly zařízeních zapnutí MQTT vypne Shelly Cloud. Obě služby nemohou běžet současně. Jde o omezení firmwaru.

Možnosti zařízení

Měření energie na fázi

Šablona vytváří tři elektroměry — jeden pro každou fázi. Každý elektroměr měří:

  • Činný výkon — okamžitý výkon ve W, šablona ho konvertuje na kW (÷ 1000)
  • Celková spotřebovaná energie — kumulativní energie ve Wh, šablona ji konvertuje na kWh (÷ 1000)

V HTTP šabloně se každá fáze čte z endpointu /emeter/{i}. V MQTT šabloně hodnoty přicházejí na topicích shellies/shellyem3-{dID}/emeter/{i}/power a .../total.

Elektrické parametry na fázi

Každý elektroměr poskytuje čtyři servisní atributy:

  • Napětí — efektivní napětí (V)
  • Proud — efektivní proud (A)
  • Účiník — poměr činného a zdánlivého výkonu (0,00–1,00)
  • Celková vrácená energie — energie vrácená do sítě ve Wh, užitečná pro solární/FV instalace s obousměrným měřením
Reset počítadla energie

Každá fáze má servisní akci Reset total, která vynuluje počítadla energie pro danou fázi. V HTTP režimu se volá /emeter/{i}?reset_totals; v MQTT režimu se publikuje reset_totals na topic shellies/shellyem3-{dID}/emeter/{i}/command.

Stykačový spínač

Šablona zpřístupňuje stykačové relé jako spínač. Stav relé se čte z /relay/0ison (HTTP) nebo z topicu shellies/shellyem3-{dID}/relay/0 (MQTT) a ovládá se přes /relay/0?turn=on|off (HTTP) nebo topic .../relay/0/command (MQTT).

Další možnosti

Shelly 3EM také poskytuje jalový výkon (VAR), příznak platnosti měření na fázi (is_valid), celkový součet výkonu všech tří fází (total_power z /status), sílu Wi-Fi signálu, uptime zařízení, stav aktualizace firmwaru, prahy pro nadměrný výkon na fázi a export historických dat o energii (CSV). Na stykačovém relé je k dispozici časovač automatického vypnutí. Tyto funkce mohou být přidány v budoucí aktualizaci šablony.

Řešení problémů

Zařízení neodpovídá (HTTP)
  1. Ověřte, že Shelly 3EM je připojen k Wi-Fi a má platnou IP adresu
  2. Otevřete http://{device-ip}/shelly v prohlížeči — pokud odpoví, zařízení je dostupné
  3. Zkontrolujte, že TapHome Core a Shelly 3EM jsou ve stejné síti / VLAN
Nepřicházejí žádné MQTT zprávy
  1. Potvrďte, že MQTT je povoleno v Shelly webovém rozhraní (Internet & SecurityAdvanced — MQTT)
  2. Ověřte, že adresa a port brokeru jsou správné v Shelly zařízení i v TapHome šabloně
  3. Zkontrolujte, že vlastní proměnná dID odpovídá skutečnému ID zařízení — přihlaste se k shellies/# pomocí MQTT klienta pro ověření prefixu topicu
  4. Ujistěte se, že MQTT broker běží a je dostupný ze Shelly i z TapHome Core
Hodnoty energie ukazují nulu nebo NaN
  1. Potvrďte, že CT svorky jsou správně připojeny ke svorkám Shelly 3EM (CT1, CT2, CT3) a jsou připnuty kolem fázových vodičů
  2. Ověřte, že šipka na CT svorce směřuje správným směrem (od zdroje k zátěži)
  3. Pollujte /emeter/0, /emeter/1, /emeter/2 manuálně a zkontrolujte, zda pole power a total obsahují nenulové hodnoty

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 3EM Modul
Vlastní proměnné
Elektroměr (Fáze 1) Elektroměr Pouze ke čtení

Monitorování energie fáze 1 — činný výkon (kW), kumulativní energie (kWh), napětí, proud, účiník a vrácená energie

numeric Jednotka: W / kWh
Servisní atributy
Účiník
Proud [A]
Napětí [V]
Celková vrácená energie [Wh]Energie vrácená do sítě — relevantní pro solární/FV instalace s obousměrným měřením
Servisní akce
Vynulovat počítadlo

Elektroměr (Fáze 1)

Čtení celkové spotřeby
RETURN(todouble(PARSEjson(emeter0, "total"))/1000);
Čtení odběru
RETURN(todouble(PARSEjson(emeter0, "power"))/1000);
Čtení (modul)
VAR response := SENDHTTPREQUEST("/emeter/0");
IF response.IsSuccess
 emeter0 := response.Content;
ELSE
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
 RETURN(NaN);
END
Servisní atributy
power factor
RETURN(todouble(PARSEjson(emeter0, "pf")));
Current [A]
RETURN(PARSEjson(emeter0, "current"));
voltage [V]
RETURN(PARSEjson(emeter0, "voltage"));
Total returned energy [Wh]
RETURN(PARSEjson(emeter0, "total_returned"));
Servisní akce
Reset total
sendhttprequest("/emeter/0?reset_totals");
Elektroměr (Fáze 2) Elektroměr Pouze ke čtení

Monitorování energie fáze 2 — činný výkon (kW), kumulativní energie (kWh), napětí, proud, účiník a vrácená energie

numeric Jednotka: W / kWh
Servisní atributy
Účiník
Proud [A]
Napětí [V]
Celková vrácená energie [Wh]Energie vrácená do sítě — relevantní pro solární/FV instalace s obousměrným měřením
Servisní akce
Vynulovat počítadlo

Elektroměr (Fáze 2)

Čtení celkové spotřeby
RETURN(todouble(PARSEjson(emeter1, "total"))/1000);
Čtení odběru
RETURN(todouble(PARSEjson(emeter1, "power"))/1000);
Čtení (modul)
VAR response := SENDHTTPREQUEST("/emeter/1");
IF response.IsSuccess
 emeter1 := response.Content;
ELSE
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
 RETURN(NaN);
END
Servisní atributy
power factor
RETURN(PARSEjson(emeter1, "pf"));
current [A[
RETURN(PARSEjson(emeter1, "current"));
voltage [V]
RETURN(PARSEjson(emeter1, "voltage"));
total returned energy [Wh]
RETURN(PARSEjson(emeter1, "total_returned"));
Servisní akce
reset total
sendhttprequest("/emeter/1?reset_totals");
Elektroměr (Fáze 3) Elektroměr Pouze ke čtení

Monitorování energie fáze 3 — činný výkon (kW), kumulativní energie (kWh), napětí, proud, účiník a vrácená energie

numeric Jednotka: W / kWh
Servisní atributy
Účiník
Proud [A]
Napětí [V]
Celková vrácená energie [Wh]Energie vrácená do sítě — relevantní pro solární/FV instalace s obousměrným měřením
Servisní akce
Vynulovat počítadlo

Elektroměr (Fáze 3)

Čtení celkové spotřeby
RETURN(todouble(PARSEjson(emeter2, "total"))/1000);
Čtení odběru
RETURN(todouble(PARSEjson(emeter2, "power"))/1000);
Čtení (modul)
var response := SENDHTTPREQUEST("/emeter/2");
IF response.IsSuccess
 emeter2 := response.Content;
ELSE
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
 RETURN(NaN);
END
Servisní atributy
power factor
RETURN(PARSEjson(emeter2, "pf"));
current [A]
RETURN(PARSEjson(emeter2, "current"));
voltage [V]
RETURN(PARSEjson(emeter2, "voltage"));
Total returned energy [Wh]
RETURN(PARSEjson(emeter2, "total_returned"));
Servisní akce
reset total
sendhttprequest("/emeter/2?reset_totals");
Stykačový spínač Přepínač

Vestavěné 10 A stykačové relé pro spínání zátěží nebo ovládání externího stykače

boolean
Hodnoty / Stavy: ON · OFF

Stykačový spínač

Č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 response := SENDHTTPREQUEST("/relay/0?turn=" + switch(St,1,"on","off"));
IF response.IsSuccess = false
 ADDERROR(response.StatusCode);
END
Připojení: Packet Parser → HTTP
Možná vylepšení (10)
  • Reactive Power — Per-phase reactive power in VAR; available in /emeter/ response and via MQTT topic .../emeter/{i}/reactive_power
  • Measurement Validity — Boolean flag indicating whether CT clamp measurement is valid; useful for detecting disconnected CT
  • Total Power (3-phase sum) — Sum of active power across all 3 phases in W; available in /status but not in per-phase /emeter/ endpoints
  • WiFi Signal Strength — WiFi RSSI in dBm
  • Uptime — Device uptime in seconds; available in /status but template only polls /emeter/ endpoints, not /status
  • FW Update Available — Firmware update flag from /status
  • Auto-off Timer — Auto-off timer in seconds on contactor relay
  • Per-phase Power Protection — Per-phase overpower threshold; could be exposed as service attribute + action
  • Historical Energy Data (CSV) — Per-phase historical data export as CSV; not applicable for real-time integration
  • Reset All Energy History — Clears ALL stored energy history across all 3 phases; more destructive than per-phase reset_totals

Zdroje