TapHome

Shelly Plus 1PM

Packet Parser → HTTP
Dodane przez
Ostatnia aktualizacja: 03. 2026
Shelly Plus 1PM

Shelly Plus 1PM to kompaktowy przekaźnik Wi-Fi Gen2+ z wbudowanym pomiarem mocy. Mieści się za standardowym włącznikiem ściennym i może sterować jednym obwodem do 16 A (3500 W przy 230 V AC) lub 10 A (30 V DC). Urządzenie obsługuje zasilanie 110-240 VAC lub 24-30 VDC, dzięki czemu nadaje się zarówno do instalacji sieciowych, jak i niskonapięciowych. TapHome komunikuje się z urządzeniem lokalnie przez Wi-Fi — połączenie z chmurą nie jest wymagane.

Dostępne są dwa szablony TapHome: szablon HTTP, który odpytuje Gen2+ RPC API urządzenia, oraz szablon MQTT, który odbiera dane przez brokera MQTT. Oba udostępniają te same dwa urządzenia — licznik energii i przekaźnik.

Konfiguracja

Szablon HTTP

Szablon HTTP wymaga jedynie adresu IP urządzenia (wartość domyślna 192.168.0.1). TapHome odpytuje punkt końcowy /rpc/Switch.GetStatus?id=0 zarówno dla stanu przekaźnika, jak i danych pomiaru mocy. Moduł przechowuje odpowiedź JSON w zmiennej status, aby poszczególne skrypty urządzeń mogły analizować dane bez zbędnych wywołań HTTP.

Szablon MQTT

Szablon MQTT wymaga podczas importu trzech parametrów:

  • IP brokera MQTT — adres IP brokera MQTT (nie samego urządzenia Shelly)
  • Port brokera MQTT — domyślny 1883
  • MQTT Client ID urządzenia Shelly — format shellyplus1pm-{deviceid}, znajduje się w interfejsie webowym Shelly w sekcji Settings > MQTT Settings > Client ID

Po włączeniu MQTT na Shelly Plus 1PM (Settings > MQTT) TapHome subskrybuje shellyplus1pm-{deviceid}/status/switch:0 i publikuje komendy sterujące do shellyplus1pm-{deviceid}/command/switch:0.

Możliwości urządzenia

Sterowanie przekaźnikiem

Szablon udostępnia przekaźnik jako urządzenie przełączające. Stan przekaźnika odczytywany jest z pola output (boolean) i sterowany przez /rpc/Switch.Set?id=0 z parametrem on=true lub on=false (HTTP) lub publikowaniem on/off do tematu komend (MQTT).

Szablon HTTP odpytuje przekaźnik w interwale 2,5 sekundy, zapewniając niemal natychmiastową informację o stanie. Szablon MQTT otrzymuje aktualizacje na bieżąco przez skrypt nasłuchujący.

Pomiar mocy

Wbudowany licznik energii odczytuje dwie wartości z odpowiedzi Switch.GetStatus:

  • Moc chwilowaapower w watach, szablon konwertuje na kW (dzielenie przez 1000)
  • Energia skumulowanaaenergy.total w watogodzinach, szablon konwertuje na kWh (dzielenie przez 1000)

Licznik jest tylko do odczytu — aktualizuje się automatycznie z każdym cyklem odpytywania (HTTP) lub z każdą wiadomością statusu MQTT.

Szablon HTTP udostępnia również trzy atrybuty serwisowe na liczniku energii:

AtrybutJednostkaOpis
PrądAChwilowy pobór prądu
NapięcieVSkuteczne napięcie sieciowe
Temperatura°CTemperatura wewnętrzna urządzenia

Szablon MQTT udostępnia temperaturę wewnętrzną, napięcie i prąd jako atrybuty serwisowe na poziomie modułu z tymi samymi danymi, analizowanymi z ładunku statusu MQTT.

Dodatkowe możliwości

Shelly Plus 1PM udostępnia przez RPC API również współczynnik mocy, częstotliwość sieciową, energię zwróconą (do pomiarów dwukierunkowych), stan fizycznego wejścia, siłę sygnału Wi-Fi, adres MAC, czas pracy, wykorzystanie RAM i czas urządzenia. Dostępne są też aktualizacja firmware, restart urządzenia, timer automatycznego wyłączenia, reset licznika energii i konfiguracja ochrony przed przeciążeniem. Te możliwości mogą zostać dodane w przyszłej aktualizacji szablonu.

Rozwiązywanie problemów

Urządzenie nie odpowiada (HTTP)
  1. Sprawdź, czy Shelly jest połączony z Wi-Fi i ma prawidłowy adres IP
  2. Spróbuj użyć nazwy hosta mDNS (shellyplus1pm-AABBCCDDEE.local) zamiast adresu IP — IP mógł się zmienić po odnowieniu DHCP
  3. Otwórz http://{ip-urzadzenia}/rpc/Shelly.GetDeviceInfo w przeglądarce — jeśli odpowiada JSON, urządzenie jest osiągalne
  4. Sprawdź, czy TapHome CCU i Shelly są w tej samej sieci / VLAN
  5. Upewnij się, że uwierzytelnianie HTTP Digest jest wyłączone w interfejsie webowym Shelly — TapHome nie obsługuje żądań uwierzytelnionych
Wiadomości MQTT nie docierają
  1. Sprawdź, czy MQTT jest włączony w interfejsie webowym Shelly (Settings > MQTT)
  2. Potwierdź, że adres i port brokera są poprawne zarówno w urządzeniu Shelly, jak i w ustawieniach modułu TapHome
  3. Sprawdź, czy zmienna niestandardowa plug1topic dokładnie odpowiada MQTT Client ID urządzenia Shelly (np. shellyplus1pm-AABBCCDDEE)
  4. Użyj klienta MQTT (np. MQTT Explorer), aby zasubskrybować shellyplus1pm-# i sprawdzić, czy urządzenie publikuje wiadomości
Odczyty mocy pokazują zero
  1. Potwierdź, że obciążenie jest podłączone przez przekaźnik Shelly (nie jest obejście)
  2. Sprawdź, czy przekaźnik jest włączony — licznik mierzy tylko gdy prąd przepływa przez przekaźnik
  3. Ręcznie odpytaj /rpc/Switch.GetStatus?id=0 i sprawdź, czy apower zwraca wartość niezerową
Wolna odpowiedź lub przekroczenia czasu
  1. Urządzenia Gen2+ obsługują do 6 jednoczesnych połączeń HTTP (w porównaniu do 2 w Gen1) — unikaj jednak nadmiernego odpytywania z wielu systemów
  2. Wyłącz tryb ECO w interfejsie webowym Shelly, jeśli jest włączony — przełącza urządzenie w tryb uśpienia między odpytywaniami i może powodować przekroczenia czasu przy krótkich interwałach
  3. Użyj statycznego IP lub rezerwacji DHCP, aby zapobiec zmianom adresu
  4. Rozważ przejście na szablon MQTT w środowiskach wielosystemowych — MQTT całkowicie omija problem limitu połączeń

Jak zainstalować w TapHome

Wymagania wstępne

  • Urządzenie Shelly zainstalowane i włączone
  • Lokalna sieć Wi-Fi (2,4 GHz)
  • TapHome CCU w tej samej sieci

Krok 1 — Podłącz Shelly do Wi-Fi

Opcja A — Aplikacja Shelly (zalecana):

  1. Pobierz aplikację Shelly (iOS / Android)
  2. Dotknij +Add Device i postępuj zgodnie z kreatorem parowania Bluetooth
  3. Wprowadź dane logowania Wi-Fi, gdy zostaniesz o to poproszony

Opcja B — Tryb AP (bez aplikacji):

  1. Przy pierwszym uruchomieniu urządzenie tworzy hotspot: ShellyXXX-AABBCCDDEE
  2. Połącz telefon/PC z tym hotspotem
  3. Otwórz http://192.168.33.1Internet & SecurityWi-Fi Mode - Client
  4. Wprowadź SSID i hasło → Save

Shelly obsługuje tylko sieci 2,4 GHz. Sieci 5 GHz nie pojawią się podczas skanowania.

Krok 2 — Znajdź adres IP

Po połączeniu z Wi-Fi znajdź przypisany adres IP za pomocą jednej z poniższych metod:

  • Aplikacja Shelly: Szczegóły urządzenia → Device info → Adres IP
  • Interfejs webowy Shelly: Połącz się z AP urządzenia przed konfiguracją Wi-Fi — IP zostanie wyświetlone po zapisaniu
  • Tabela DHCP routera: Szukaj nazwy hosta takiej jak shelly1pm-AABBCCDDEE
  • mDNS: Pinguj shelly<model>-<mac>.local (np. shelly1pm-AABBCCDDEE.local) z tej samej sieci

Przypisz urządzeniu Shelly statyczny IP (rezerwację DHCP) w routerze, aby adres nie zmieniał się po ponownym uruchomieniu routera.

Krok 3 — Konfiguracja w TapHome

  1. W TapHome dodaj nowy moduł Packet Parser (HTTP)
  2. IP Address: wprowadź IP z kroku 2 (np. 192.168.1.50)
  3. Port: 80 (domyślny, nie wymaga zmiany)
  4. Zaimportuj szablon — TapHome będzie okresowo odpytywać /status w celu odczytu stanu urządzenia

Uwierzytelnianie HTTP jest domyślnie wyłączone na urządzeniach Shelly. Jeśli włączyłeś ochronę logowaniem, TapHome obecnie nie obsługuje HTTP Basic Auth — pozostaw uwierzytelnianie wyłączone dla integracji z TapHome.

Dostępne urządzenia

Shelly Plus 1PM Moduł
Zmienne niestandardowe
Licznik energii Licznik energii Tylko do odczytu

Moc chwilowa (kW) i energia skumulowana (kWh) z diagnostyką prądu, napięcia i temperatury

numeric Jednostka: kW / kWh
Atrybuty serwisowe
Prąd
Napięcie
Temperatura

Licznik energii

Odczyt całkowitego zużycia
return(parsejson(parsejson(status,"aenergy"), "total")/1000);
Odczyt zapotrzebowania
return(parsejson(status,"apower")/1000);
Odczyt (moduł)
var x := (sendhttprequest("/rpc/Switch.GetStatus?id=0"));
status := x.Content;
Atrybuty serwisowe
${current} [a]
return(parsejson(status,"current"));
${electric_voltage} [v]
return(parsejson(status,"voltage"));
${temp} [C]
return(parsejson(parsejson(status,"temperature"), "tC"));
Przełącznik Przełącznik
boolean
Wartości / Stany: ON · OFF

Przełącznik

Odczyt stanu przełącznika
var x := (sendhttprequest("/rpc/Switch.GetStatus?id=0"));
status := x.Content;
return(PARSEJSON(status, "$.output", true));
Zapis stanu przełącznika
VAR response := SENDHTTPREQUEST("rpc/Switch.Set?id=0&on=" + if(St,"true","false"));
IF response.IsSuccess = false
  ADDERROR(response.StatusCode);
END
Połączenie: Packet Parser → HTTP
Możliwe ulepszenia (16)
  • Power Factor — Power factor value, available in Switch.GetStatus response for metered devices
  • Network Frequency — AC network frequency in Hz, available in Switch.GetStatus response
  • Returned Energy — Returned/exported energy in Wh, for bi-directional metering scenarios
  • Input State — Physical switch/button input state, available via /rpc/Input.GetStatus?id=0
  • WiFi SSID — Connected WiFi network name, available via /rpc/WiFi.GetStatus
  • WiFi Signal Strength — WiFi RSSI in dBm, available via /rpc/WiFi.GetStatus
  • IP Address — Device IP address, available via /rpc/WiFi.GetStatus
  • MAC Address — Device MAC address, available via /rpc/Sys.GetStatus
  • Uptime — Seconds since last reboot, available in Sys.GetStatus response
  • RAM Usage — Total and free RAM in bytes, available in Sys.GetStatus response
  • Device Time — Current device time in HH:MM format, available in Sys.GetStatus response
  • Firmware Update — Trigger firmware update to stable channel, available via Shelly.Update RPC method
  • Reboot — Reboot the device, available via Shelly.Reboot RPC method
  • Auto-off Timer — Auto-reset timer in seconds via toggle_after parameter, could be added as switch parameter
  • Reset Energy Counters — Resets energy measurement counters (aenergy, ret_aenergy)
  • Overpower Protection — Configurable power limit threshold in Watts, relay turns off when exceeded

Źródła