
Shelly DUO to żarówka LED Wi-Fi z gwintem E27, obsługująca ściemnianie jasności i regulowaną temperaturę barwową białego światła (CCT) w zakresie od 2700 K (ciepła biel) do 6500 K (światło dzienne). TapHome integruje się z żarówką 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 dla pojedynczej żarówki i szablon MQTT, który może sterować do 5 żarówek DUO przez jedno połączenie z brokerem MQTT. Oba szablony udostępniają te same typy urządzeń na żarówkę — urządzenie świetlne ze sterowaniem jasnością i CCT oraz licznik energii do pomiaru mocy.
Konfiguracja
Szablon HTTP
Szablon HTTP wymaga adresu IP żarówki (lub nazwy hosta mDNS ShellyBulbDuo-{MAC}.local). TapHome odpytuje endpoint /status co 2,5 sekundy i zapisuje odpowiedź JSON do zmiennej niestandardowej jsonStatus. Poszczególne skrypty urządzeń parsują zapisaną odpowiedź bez zbędnych wywołań HTTP.
Szablon akceptuje dwa parametry importu:
- Adres IP — lokalny IP żarówki (domyślny
192.168.0.1) - Czas przejścia — czas trwania przejścia światła w milisekundach (domyślne 300 ms)
Szablon MQTT
Szablon MQTT wymaga IP brokera, portu i Device ID dla każdej żarówki (format: ShellyBulbDuo-DEVICEID). Device ID można znaleźć w interfejsie web Shelly w Settings > Device Info lub przez GET http://{bulb-ip}/settings w polu mqtt.id.
Szablon obsługuje do 5 żarówek DUO przez jeden moduł. Każda żarówka jest identyfikowana przez własną zmienną topic (bulb1topic do bulb5topic). Nieużywane sloty żarówek mogą pozostać na domyślnej wartości placeholder.
Szablon akceptuje trzy parametry importu:
- MQTT Broker IP — adres brokera (domyślny
192.168.0.1) - MQTT Broker port — port brokera (domyślny
1883) - Czas przejścia — czas trwania przejścia światła w milisekundach (domyślne 300 ms)
Na urządzeniach Shelly Gen1 włączenie MQTT wyłącza Shelly Cloud. Oba nie mogą działać jednocześnie.
Funkcje urządzenia
Sterowanie światłem
Szablon udostępnia DUO jako urządzenie białego światła z dwoma sterowalnymi parametrami:
- Jasność — odczytywana z
lights[0].brightness(0–100, wewnętrznie konwertowana na 0,0–1,0) ilights[0].ison; sterowana przez/light/0?turn=on|off&brightness=N(HTTP) lub publikowanie JSON do topiculight/0/set(MQTT) - Temperatura barwowa — odczytywana z
lights[0].temp(2700–6500 K); sterowana przez/light/0?temp=K(HTTP) lub poletempw payloadzie JSON (MQTT)
Oba parametry są wysyłane razem w jednym poleceniu zapisu. Parametr czas przejścia steruje czasem trwania płynnego przejścia dla wszystkich zmian.
Gdy światło jest wyłączane (jasność ustawiona na 0), szablon wysyła turn=off (HTTP) lub publikuje off do topicu light/0/command (MQTT).
Mechanizm debounce
Szablon HTTP zawiera ochronę debounce zapobiegającą nieaktualnym odczytom podczas przejść świetlnych. Po każdym poleceniu zapisu szablon ignoruje odczyty /status przez czas trwania przejścia plus 500 ms. W tym okresie skrypty odczytu zwracają ostatnie znane wartości zamiast odpytywać urządzenie. Zapobiega to krótkotrwałemu wyświetlaniu stanów pośrednich w interfejsie, podczas gdy żarówka przechodzi.
Szablon MQTT nie wymaga debounce — otrzymuje aktualizacje stanu bezpośrednio z żarówki, gdy się pojawiają.
Pomiar mocy
Wbudowany licznik energii odczytuje dwie wartości:
- Moc chwilowa —
meters[0].powerw watach, konwertowana na kW (dzielona przez 1000) - Całkowite zużycie —
meters[0].totalw watominutach, konwertowane na kWh (dzielone przez 60 000)
Licznik jest tylko do odczytu i aktualizuje się automatycznie z każdym cyklem odpytywania (HTTP) lub z każdą wiadomością MQTT.
Aby włączyć monitorowanie mocy, model urządzenia musi być skonfigurowany w aplikacji Shelly lub przeglądarce web w Settings > Device Model. Jeśli żarówka jest włączona, ale moc pokazuje zero, szablon wyświetla ostrzeżenie o tym kroku konfiguracji.
Diagnostyka serwisowa (szablon HTTP)
Szablon HTTP udostępnia 10 atrybutów serwisowych:
- Info sieciowe — adres IP, adres MAC (formatowany z separatorami dwukropkowymi), siła sygnału Wi-Fi (dB)
- Łączność — chmura włączona/połączona, MQTT połączony
- Info o urządzeniu — czas urządzenia, czas pracy (formatowany jako dni/godziny/minuty), użycie RAM
- Firmware — dostępna aktualizacja firmware
Akcje serwisowe (szablon HTTP)
Dostępne są dwie akcje serwisowe:
- Włącz chmurę — włącza lub wyłącza łączność Shelly Cloud
- Restart — wyzwala restart urządzenia
Dodatkowe funkcje
Shelly DUO udostępnia również timer światła (flaga aktywna i pozostałe sekundy), automatyczny timer wyłączenia na endpoincie światła, temperaturę wewnętrzną urządzenia, siłę sygnału Wi-Fi jako samodzielne urządzenie czujnikowe oraz topic MQTT online/offline LWT do wykrywania stanu połączenia. Te funkcje mogą zostać dodane w przyszłej aktualizacji szablonu.
Rozwiązywanie problemów
Żarówka nie odpowiada (HTTP)
- Sprawdź, czy DUO jest podłączona do Wi-Fi i ma prawidłowy adres IP
- Spróbuj użyć nazwy hosta mDNS (
ShellyBulbDuo-AABBCCDDEE.local) zamiast adresu IP — IP mógł się zmienić po odnowieniu DHCP - Otwórz
http://{bulb-ip}/shellyw przeglądarce — jeśli odpowiada JSON zawierającym"type":"SHBDUO-1", żarówka jest dostępna - Sprawdź, czy TapHome CCU i DUO są w tej samej sieci / VLAN
Moc pokazuje zero
- Potwierdź, że model urządzenia jest skonfigurowany w aplikacji Shelly (Settings > Device Model)
- Sprawdź, czy żarówka jest włączona — licznik mierzy tylko gdy przepływa prąd
- Odpytaj
/statusręcznie i zweryfikuj, żemeters[0].powerzwraca wartość różną od zera
Żarówka MQTT nie odpowiada
- Sprawdź, czy MQTT jest włączone w interfejsie web Shelly (Internet & Security > Advanced — MQTT)
- Potwierdź, że adres brokera i port są poprawne zarówno w urządzeniu Shelly, jak i w ustawieniach modułu TapHome
- Sprawdź, czy zmienna niestandardowa
bulbNtopicdokładnie odpowiada Device ID żarówki (np.ShellyBulbDuo-B929CC) - Użyj klienta MQTT (np. MQTT Explorer) do subskrypcji
shellies/#i sprawdź, czy żarówka publikuje wiadomości
Przejścia świetlne wydają się szarpane
- Zwiększ parametr czas przejścia — domyślne 300 ms może być za krótkie dla dużych zmian jasności
- Jeśli używasz HTTP, upewnij się, że żaden inny system nie odpytuje żarówki jednocześnie — urządzenia Gen1 obsługują tylko 2 jednoczesne połączenia
Urządzenia Shelly Gen1 obsługują tylko 2 jednoczesne połączenia HTTP. Jeśli TapHome i inny system (np. Home Assistant) odpytują to samo urządzenie jednocześnie, komunikacja może być zawodna. Rozważ przejście na szablon MQTT dla środowisk z wieloma systemami.