
Shelly EM to jednofazowy licznik energii z dwoma niezależnymi kanałami pomiarowymi i wyjściem przekaźnikowym 2A do sterowania stycznikiem. Każdy kanał łączy się z zewnętrznym zaciskiem CT (przekładnikiem prądowym) — dostępnym w wariantach 50A i 120A — umożliwiając nieinwazyjne monitorowanie dwóch oddzielnych obwodów jednocześnie. TapHome integruje się z urządzeniem lokalnie przez Wi-Fi za pomocą HTTP REST API lub MQTT. Połączenie z chmurą nie jest wymagane.
Dostępne są dwa szablony TapHome: szablon HTTP odpytujący endpointy REST urządzenia oraz szablon MQTT odbierający dane przez brokera MQTT. Oba udostępniają te same trzy urządzenia — dwa liczniki energii (po jednym na kanał) i przełącznik stycznikowy.
Konfiguracja
Szablon HTTP
Szablon HTTP wymaga tylko adresu IP urządzenia (lub nazwy hosta mDNS). TapHome odpytuje trzy endpointy co 15 sekund:
/emeter/0/— dane energetyczne kanału 1/emeter/1/— dane energetyczne kanału 2settings/relay/0— stan przekaźnika i sprawdzenie harmonogramu
Skrypt odczytu na poziomie modułu buforuje każdą odpowiedź w osobnej zmiennej (emeterZero, emeterOne, status), dzięki czemu skrypty poszczególnych urządzeń mogą przetwarzać dane bez nadmiarowych wywołań HTTP.
Szablon sprawdza również stan harmonogramu przekaźnika z
settings/relay/0. Jeśli wewnętrzny harmonogram jest włączony na urządzeniu Shelly, szablon zgłasza błąd — wyłącz harmonogram w interfejsie webowym Shelly, aby uniknąć konfliktów z automatyzacjami TapHome.
Szablon MQTT
Szablon MQTT wymaga IP brokera, portu i Shelly Device ID (format: shellyem-XXXXXXXXXXXX, gdzie X = szesnastkowe cyfry MAC). Device ID znajdziesz w interfejsie webowym Shelly pod Settings > Device Info.
Po włączeniu MQTT na Shelly EM (Internet & Security > Advanced — MQTT), TapHome subskrybuje topici shellies/shellyem-{deviceID}/ i odbiera dane przez skrypty nasłuchujące.
Na urządzeniach Shelly Gen1 włączenie MQTT wyłącza Shelly Cloud. Oba nie mogą działać jednocześnie.
Możliwości urządzenia
Pomiar energii (na kanał)
Każdy kanał jest widoczny w TapHome jako niezależny licznik energii:
- Moc chwilowa — moc czynna w kW (przeliczona z W przez podzielenie przez 1000)
- Energia skumulowana — całkowita zużyta energia w kWh (HTTP: przeliczona z Wh; MQTT: używa trwałego topica
totalw Wh)
Szablon HTTP odczytuje pola power i total z odpowiedzi JSON /emeter/{i}/. Szablon MQTT nasłuchuje topica emeter/{i}/energy (watominuty, dzielone przez 60 000 na kWh) i topica emeter/{i}/total (watogodziny, trwałe między restartami).
Topic MQTT
energyzeruje się przy restarcie urządzenia. Dla trwałego śledzenia energii szablon odczytuje również topictotal, który przetrwa restarty.
Każdy kanał udostępnia również trzy atrybuty serwisowe:
| Atrybut | Jednostka | Opis |
|---|---|---|
| Napięcie | V | Skuteczne napięcie sieciowe |
| Energia zwrócona | Wh | Całkowita energia oddana do sieci — do pomiarów solarnych/dwukierunkowych |
| Moc bierna | VAR | Chwilowa moc bierna |
Szablon MQTT udostępnia tylko napięcie jako atrybut serwisowy na kanał. Moc bierna i energia zwrócona są dostępne tylko w szablonie HTTP.
Przełącznik stycznikowy
Wyjście przekaźnikowe jest widoczne w TapHome jako przełącznik. Przekaźnik jest wymiarowany na 2A / 230 VAC — przeznaczony wyłącznie do sterowania stycznikiem, nie do bezpośredniego przełączania obciążeń.
- HTTP: odczytuje
isonzsettings/relay/0i steruje przez/relay/0?turn=onlub/relay/0?turn=off - MQTT: odczytuje z topica
shellies/shellyem-{id}/relay/0i publikujeon/offnashellies/shellyem-{id}/relay/0/command
Przekaźnik jest wymiarowany tylko na 2A. Dla obciążeń przekraczających tę wartość znamionową zawsze używaj zewnętrznego stycznika. Bezpośrednie podłączenie obciążeń dużej mocy uszkodzi przekaźnik.
Dodatkowe możliwości
Shelly EM dostarcza również współczynnik mocy (0,00–1,00) i flagę ważności pomiaru na kanał, konfigurację kanałów (stosunek CT, limit maksymalnej mocy), reset licznika energii, timer automatycznego wyłączenia na przekaźniku oraz siłę sygnału Wi-Fi. Przez MQTT dostępne są również dodatkowe topici dla mocy w czasie rzeczywistym, mocy biernej i energii zwróconej na kanał. Te funkcje mogą zostać dodane w przyszłej aktualizacji szablonu.
Rozwiązywanie problemów
Urządzenie nie odpowiada (HTTP)
- Sprawdź, czy Shelly EM jest podłączony do Wi-Fi i ma prawidłowy adres IP
- Otwórz
http://{device-ip}/shellyw przeglądarce — jeśli odpowiada JSON zawierający"type":"SHEM", urządzenie jest osiągalne - Upewnij się, że TapHome CCU i Shelly EM są w tej samej sieci / VLAN
Brak danych na jednym kanale
- Sprawdź, czy zacisk CT jest podłączony do prawidłowego gniazda 3,5 mm (kanał 0 lub kanał 1)
- Upewnij się, że prąd płynie przez monitorowany przewód — zacisk CT musi otaczać pojedynczy przewód, nie cały kabel
- Ręcznie odpytaj
/emeter/0/i/emeter/1/i potwierdź niezerowe wartościpower
Wiadomości MQTT nie docierają
- Potwierdź, że MQTT jest włączone w interfejsie webowym Shelly (Internet & Security > Advanced — MQTT)
- Sprawdź, czy adres i port brokera są poprawne zarówno w urządzeniu Shelly, jak i w ustawieniach modułu TapHome
- Zweryfikuj, że zmienna
deviceIDdokładnie odpowiada Shelly Device ID (np.B929CC) - Użyj klienta MQTT (np. MQTT Explorer) do subskrypcji
shellies/#i weryfikacji, czy urządzenie publikuje wiadomości
Błąd konfliktu harmonogramu
Szablon HTTP sprawdza pole schedule w settings/relay/0. Jeśli urządzenie Shelly ma włączony wewnętrzny harmonogram, szablon zgłasza błąd. Wyłącz harmonogram w interfejsie webowym Shelly (Settings > Relay > Schedule) — zamiast tego użyj automatyzacji TapHome.
Urządzenia Shelly Gen1 obsługują tylko 2 równoczesne połączenia HTTP. Jeśli TapHome i inny system (np. Home Assistant) jednocześnie odpytują to samo urządzenie, komunikacja może stać się zawodna. Rozważ przejście na szablon MQTT w środowiskach z wieloma systemami.