
Ten szablon integruje dowolny przełącznik lub gniazdko kompatybilne ze SmartThings z pomiarem mocy do TapHome. Komunikacja odbywa się przez SmartThings Cloud REST API v1 pod adresem api.smartthings.com przez HTTPS — szablon nie komunikuje się bezpośrednio z urządzeniem fizycznym. Urządzenie może być ZigBee, Z-Wave lub Matter — pod warunkiem, że jest podłączone do konta SmartThings i udostępnia możliwości switch, powerMeter i energyMeter, szablon będzie działać.
Szablon został stworzony przez Csongora Vargę i zademonstrowany na gniazdku ZigBee BlitzWolf BW-SHP15, ale nie jest ograniczony do tego modelu.
Konfiguracja
Szablon wymaga dwóch zmiennych skonfigurowanych w TapHome po imporcie:
- Token — SmartThings Personal Access Token (PAT) używany do uwierzytelnienia Bearer
- DeviceId — UUID urządzenia docelowego w platformie SmartThings
Generowanie Personal Access Tokena
- Przejdź na account.smartthings.com/tokens i zaloguj się kontem Samsung
- Kliknij Generate new token i nadaj nazwę (np. „TapHome Integration")
- Wybierz uprawnienie Devices — jest wymagane do odczytu stanu i wysyłania poleceń
- Kliknij Generate Token i natychmiast skopiuj token — to jedyna okazja do pobrania wartości
Standardowe Personal Access Tokeny (utworzone po 30 grudnia 2024) są ważne tylko przez 24 godziny. Token musi zostać wygenerowany ponownie i zaktualizowany w TapHome przed wygaśnięciem, w przeciwnym razie integracja przestanie działać. Starsze tokeny utworzone przed tą datą mogą mieć dłuższy okres ważności.
Znajdowanie Device ID
- Zaloguj się na my.smartthings.com
- Znajdź urządzenie docelowe na liście urządzeń
- Skopiuj Device ID ze strony szczegółów urządzenia — to ciąg UUID (np.
47eff6bf-83c9-4374-a367-b254759b486d)
Dodawanie wielu urządzeń
Każde urządzenie SmartThings wymaga własnej instancji modułu. Aby dodać kolejne urządzenie, zaimportuj szablon ponownie i skonfiguruj nowe DeviceId. Ten sam Token można wykorzystać we wszystkich modułach.
Możliwości urządzenia
Sterowanie przełącznikiem
Szablon udostępnia urządzenie jako przełącznik. Stan jest odczytywany z odpowiedzi statusu SmartThings (components.main.switch.switch.value — "on" lub "off", mapowane na 1/0). Polecenia przełącznika są wysyłane przez POST /v1/devices/{DeviceId}/commands z możliwością switch.
Po wysłaniu polecenia przełącznika szablon czeka 500 ms i ponownie odczytuje stan urządzenia, aby zapobiec mieszaniu stanów między poleceniem a następnym cyklem pollingu. Przełącznik jest odpytywany co 2,5 sekundy.
Pomiar mocy
Wbudowany licznik energii odczytuje dwie wartości z odpowiedzi statusu:
- Moc w czasie rzeczywistym —
components.main.powerMeter.power.valueraportowana w watach, konwertowana na kW przez szablon (÷ 1000) - Całkowite zużycie —
components.main.energyMeter.energy.valueraportowane bezpośrednio w kWh
Licznik jest tylko do odczytu i odpytywany co 15 sekund.
Dodatkowe możliwości
SmartThings API udostępnia również ciągi jednostek mocy i energii, stan zdrowia urządzenia oraz możliwość odświeżenia (refresh) wymuszającą natychmiastową aktualizację stanu. Mogą one zostać dodane w przyszłej aktualizacji szablonu.
Rozwiązywanie problemów
Integracja przestaje działać po 24 godzinach
Standardowe tokeny PAT SmartThings wygasają po 24 godzinach. Wygeneruj nowy token na account.smartthings.com/tokens i zaktualizuj zmienną Token w module TapHome. Jeśli częste odnawianie tokenu jest niepraktyczne, sprawdź, czy na koncie jest dostępny starszy token z dłuższym okresem ważności.
Urządzenie nie odpowiada
- Sprawdź, czy urządzenie SmartThings jest online — sprawdź jego stan w aplikacji SmartThings
- Potwierdź, że zmienna DeviceId odpowiada prawidłowemu UUID urządzenia
- Przetestuj API ręcznie:
GET https://api.smartthings.com/v1/devices/{DeviceId}/statusz nagłówkiemAuthorization: Bearer {Token}— powinno zwrócić odpowiedź JSON ze stanem urządzenia - Upewnij się, że Token ma prawidłowe uprawnienie (Devices — odczyt i wykonywanie)
Odczyty mocy pokazują zero
- Potwierdź, że urządzenie faktycznie zużywa energię — włącz podłączony odbiornik
- Sprawdź, czy urządzenie SmartThings obsługuje możliwości
powerMeterienergyMeter— nie wszystkie przełączniki raportują moc - Ręcznie odpytaj API statusu i sprawdź, czy
components.main.powerMeter.power.valuezwraca wartość różną od zera
To jest integracja oparta na chmurze — wymaga aktywnego połączenia internetowego na TapHome CCU. Szablon komunikuje się z serwerami Samsunga, a nie z urządzeniem fizycznym w sieci lokalnej.
