TapHome

Shelly 1PM

Packet Parser → HTTP
Submitted by
Last updated: 03. 2026
Shelly 1PM

Shelly 1PM to kompaktowy przekaźnik Wi-Fi 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). TapHome komunikuje się z urządzeniem przez HTTP w sieci lokalnej — połączenie z chmurą nie jest wymagane.

Szablon zapewnia sterowanie przekaźnikiem oraz licznik energii odczytujący bieżące zużycie mocy i skumulowane zużycie energii.

Konfiguracja

Shelly 1PM łączy się przez Wi-Fi. Podczas importu szablonu TapHome wprowadź adres IP urządzenia (domyślny placeholder 192.168.0.1).

To urządzenie obsługuje wykrywanie mDNS. Zamiast adresu IP możesz użyć nazwy hosta shelly1pm-{MAC}.local podczas konfiguracji TapHome. Zastąp {MAC} adresem MAC urządzenia (wielkie litery hex, bez dwukropków). Użycie nazwy hosta zapobiega problemom z łącznością po zmianie adresu IP urządzenia.

Otwórz aplikację TapHome i użyj skanera IP (Ustawienia → Sieć → Skanuj). Skaner wykryje urządzenia w sieci i pokaże zarówno adres IP, jak i nazwę hosta mDNS (np. shelly1pm-AABBCCDDEE.local). Użyj nazwy hosta zamiast adresu IP, aby uzyskać bardziej niezawodne połączenie.

Możliwości urządzenia

Sterowanie przekaźnikiem

Szablon udostępnia przekaźnik jako urządzenie przełącznikowe. Stan przekaźnika jest odczytywany z odpowiedzi /status (relays[0].ison) i sterowany przez endpoint /relay/0 z parametrami turn=on lub turn=off.

Pomiar mocy

Wbudowany licznik energii odczytuje dwie wartości z odpowiedzi /status:

  • Moc chwilowameters[0].power podawana w watach, przeliczana przez szablon na kW
  • Całkowite zużyciemeters[0].total podawane w watominutach, przeliczane przez szablon na kWh

Licznik jest tylko do odczytu — aktualizuje się automatycznie przy każdym cyklu odpytywania.

Diagnostyka serwisowa

Szablon udostępnia 13 atrybutów serwisowych do monitorowania urządzenia:

  • Informacje o urządzeniu — nazwa hosta, adres MAC, czas urządzenia, czas pracy, zużycie RAM
  • Ochrona termiczna — temperatura wewnętrzna (°C), status temperatury (Normal / High / Very High), flaga przegrzania
  • Łączność — chmura włączona/połączona, MQTT połączony, dostępna aktualizacja oprogramowania
  • Ochrona mocy — aktualny limit maksymalnej mocy (odczytywany z /settings)
Akcje serwisowe

Dostępne są trzy akcje serwisowe:

  • Ustaw ochronę mocy — ustawia maksymalny limit mocy (1–3500 W). Przekaźnik wyłącza się automatycznie, jeśli zużycie przekroczy tę wartość.
  • Włącz chmurę — włącza lub wyłącza łączność z Shelly Cloud
  • Uruchom ponownie — wywołuje ponowne uruchomienie urządzenia
Dodatkowe możliwości

Shelly 1PM udostępnia również napięcie liniowe, moc bierną, fizyczny stan wejścia oraz siłę sygnału Wi-Fi w odpowiedzi /status. Na endpoincie przekaźnika dostępny jest timer automatycznego wyłączania. Te funkcje mogą zostać dodane w przyszłej aktualizacji szablonu.

Rozwiązywanie problemów

Urządzenie nie odpowiada
  1. Sprawdź, czy Shelly jest połączony z Wi-Fi i ma prawidłowy adres IP
  2. Spróbuj użyć nazwy hosta mDNS (shelly1pm-AABBCCDDEE.local) zamiast adresu IP — IP mogło się zmienić po odnowieniu DHCP
  3. Otwórz http://{device-ip}/shelly w przeglądarce — jeśli odpowiada, urządzenie jest osiągalne
  4. Sprawdź, czy CCU TapHome i Shelly są w tej samej sieci / VLAN
Odczyty mocy pokazują zero
  1. Upewnij się, że obciążenie jest podłączone przez przekaźnik Shelly (nie z pominięciem)
  2. Sprawdź, czy przekaźnik jest włączony — licznik odczytuje wartości tylko wtedy, gdy przez przekaźnik przepływa prąd
  3. Odpytaj /status ręcznie i sprawdź, czy meters[0].power zwraca wartość niezerową
Ostrzeżenie o przegrzaniu

Shelly 1PM posiada wewnętrzną ochronę termiczną. Jeśli temperatura urządzenia przekroczy bezpieczne limity, temperature_status zmienia się na “High” lub “Very High”, a overtemperature przyjmuje wartość true. Zapewnij odpowiednią wentylację wokół urządzenia, szczególnie przy sterowaniu dużymi obciążeniami.

Urządzenia Shelly Gen1 obsługują tylko 2 równoczesne połączenia HTTP. Jeśli TapHome i inny system (np. Home Assistant) odpytują to samo urządzenie jednocześnie, komunikacja może stać się niestabilna. Używaj interwału odpytywania wynoszącego 10–30 sekund.

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 1PM Moduł
Atrybuty serwisowe
Ochrona mocy
Nazwa hosta
Adres MAC
Czas urządzenia
Czas pracy
RAM
Temperatura wewnętrzna urządzenia
Stan temperatury
Aktualizacja FW
Chmura włączona
Chmura połączona
MQTT połączony
Przegrzany
Akcje serwisowe
Ustaw ochronę mocy
Włącz chmurę
Restart

Shelly 1PM Module

Odczyt (moduł)
VAR response := SENDHTTPREQUEST("/status", "GET");
StatusJson := response.Content;
Atrybuty serwisowe
Power protection
VAR response := SENDHTTPREQUEST("/settings", "GET");
SettingsJson := response.Content;

response := SENDHTTPREQUEST("/status", "GET");
StatusJson := response.Content;

PARSEJSON(SettingsJson, "max_power") + "W";
Host name
PARSEJSON(SettingsJson, "device.hostname");
Mac address
PARSEJSON(StatusJson, "mac");
Device time
PARSEJSON(StatusJson, "time")
Uptime
VAR upTimeSeconds := PARSEJSON(StatusJson, "uptime");
VAR days := FLOOR(upTimeSeconds/86400, 1);
uptimeSeconds := MOD(upTimeSeconds, 86400);
var hours := FLOOR(upTimeSeconds/3600, 1);
uptimeSeconds := MOD(upTimeSeconds, 3600);
var minutes := FLOOR(upTimeSeconds/60, 1);
days + "day(s) " + hours + "h " + minutes + "m"
RAM
var ramTotal := PARSEJSON(StatusJson, "ram_total");
var ramFree := PARSEJSON(StatusJson, "ram_free");
ramFree + " bytes free of " + ramTotal
Internal device temperature
PARSEJSON(StatusJson, "temperature") + "°C"
Temperature status
PARSEJSON(StatusJson, "temperature_status");
FW update
PARSEJSON(StatusJson, "has_update");
Cloud enabled
PARSEJSON(StatusJson, "cloud.enabled");
Cloud connected
PARSEJSON(StatusJson, "cloud.connected");
MQTT connected
PARSEJSON(StatusJson, "mqtt.connected");
Overheated
PARSEJSON(StatusJson, "overtemperature");
Akcje serwisowe
Set power protection
Parametry: Maximum power (1–3500 Watts)
VAR response := SENDHTTPREQUEST("settings?max_power=" + Watts);
VAR contentJson := response.Content;
VAR limitSet := PARSEJSON(contentJson, "max_power");

"Power limit set to " + limitSet + "W"
Enable cloud
Parametry: Enable (Enable / Disable)
VAR response := SENDHTTPREQUEST("/settings/cloud?enabled=" + enable);
VAR contentJson := response.Content;
VAR wasEnabled := PARSEJSON(contentJson, "enabled");

IF(wasEnabled, "Cloud enabled", "Cloud disabled");
Reboot
VAR response := SENDHTTPREQUEST("/reboot");
VAR contentJson := response.Content;
VAR wasRebooted := PARSEJSON(contentJson, "ok");

IF(wasRebooted, "Reboot successful", "Error");
Przełącznik Przełącznik
boolean

Przełącznik

Odczyt stanu przełącznika
VAR value := PARSEJSON(StatusJson, "relays[0].ison", 1);
IF(ISNULL(value), NaN, value);
Zapis stanu przełącznika
VAR path := "relay/0?turn=" + SWITCH(St, 0, "off", 1, "on","off");
SENDHTTPREQUEST(path);
Licznik energii Licznik energii Tylko do odczytu

Pomiar zużycia energii — moc chwilowa (kW) i energia skumulowana (kWh)

numeric Jednostka: W / kWh

Licznik energii

Odczyt całkowitego zużycia
VAR total := PARSEJSON(StatusJson, "meters[0].total", 1);
IF(ISNULL(total), NaN, total / 60000.0);
Odczyt zapotrzebowania
VAR power := PARSEJSON(StatusJson, "meters[0].power", 1);
IF(ISNULL(power), NaN, power / 1000.0);
Połączenie: Packet Parser → HTTP
Możliwe ulepszenia (5)
  • Voltage — Line voltage in V, available in /status response
  • Reactive Power — Reactive power in VAR, available in /status response
  • Input State — Physical input state (0/1), available in /status response
  • WiFi Signal Strength — WiFi RSSI in dBm, available in /status response
  • Auto-off Timer — Auto-off timer in seconds, could be added as service action or switch parameter

Źródła