
Shelly H&T Gen3 to bateryjny (4x AA) czujnik temperatury i wilgotności Wi-Fi z dużym wyświetlaczem e-paper. TapHome komunikuje się z urządzeniem przez MQTT za pomocą powiadomień RPC Gen2+ na topicu events/rpc. Jest to zalecany protokół dla bateryjnych urządzeń Shelly Gen3, ponieważ czujnik większość czasu pozostaje w trybie uśpienia i publikuje dane tylko po wybudzeniu.
Szablon tworzy jedno urządzenie Czujnik temperatury i wilgotności oraz atrybut serwisowy Bateria na poziomie modułu. Mechanizm wykrywania offline monitoruje ostatni odebrany znacznik czasu i generuje ostrzeżenia lub błędy, gdy urządzenie nie raportowało przez dłuższy okres.
Konfiguracja
MQTT Client ID
Każdy Shelly H&T Gen3 ma unikalny MQTT Client ID w formacie shellyhtg3-<MAC12>, gdzie <MAC12> to pełny 12-znakowy adres MAC w szesnastkowym zapisie wielkimi literami (np. shellyhtg3-AABBCCDDEEFF). Ten identyfikator służy również jako domyślny prefiks topiców MQTT.
Client ID można znaleźć:
- Na etykiecie urządzenia (adres MAC)
- W interfejsie webowym Shelly: Settings → MQTT → Client ID
- Przez API:
GET http://<device-ip>/rpc/Mqtt.GetConfig→ poleclient_id
Konfiguracja szablonu
Po zaimportowaniu szablonu w TapHome:
- Otwórz moduł Shelly H&T Gen3 MQTT
- Ustaw MQTT Broker IP na adres brokera MQTT
- Ustaw Port (domyślnie
1883) - Ustaw parametr importu MQTT ID na Client ID urządzenia (np.
shellyhtg3-AABBCCDDEEFF)
Moduł subskrybuje <device-id>/#, a skrypty nasłuchujące parsują zdarzenia JSON-RPC NotifyStatus z topicu events/rpc.
Upewnij się, że MQTT jest włączone na Shelly H&T Gen3 i
rpc_ntf(powiadomienia RPC) jest ustawione natrue(domyślnie). Szablon opiera się na powiadomieniachevents/rpc, a nie na indywidualnych topicach statusu.
Pomiary i raportowanie
Shelly H&T Gen3 działa różnie w zależności od źródła zasilania:
- Tryb bateryjny — wybudzenie co 1 minutę na pomiar. Raportuje przez MQTT, jeśli temperatura zmieni się o więcej niż 0,5 °C lub wilgotność o więcej niż 5%. Bezwarunkowy raport statusu jest wysyłany co 2 godziny, jeśli nie zostały wyzwolone raporty progowe.
- Zasilanie USB — wybudzenie co 5 minut na pomiar, aktualizację wyświetlacza i raportowanie w każdym cyklu.
Wyświetlacz e-paper aktualizuje się przy zmianie temperatury o więcej niż 0,2 °C lub wilgotności o więcej niż 3%.
Urządzenie jest zasilane bateryjnie i nie jest stale podłączone do brokera MQTT. Spodziewaj się przerw między odczytami, szczególnie w trybie bateryjnym. Jeśli lokalizacja czujnika ma słaby sygnał Wi-Fi, częste próby ponownego połączenia mogą skrócić żywotność baterii.
Możliwości urządzenia
Temperatura i wilgotność
Urządzenie czujnikowe odczytuje temperaturę i wilgotność ze zdarzeń NotifyStatus na topicu events/rpc:
- Temperatura — temperatura otoczenia w stopniach Celsjusza, odczytana z
params['temperature:0'].tC - Wilgotność — wilgotność względna w procentach, odczytana z
params['humidity:0'].rh(skrypt nasłuchujący dzieli wartość przez 100 w celu konwersji na zakres 0–1 oczekiwany przez TapHome)
Obie wartości są tylko do odczytu i aktualizują się przy każdym wybudzeniu czujnika i publikacji danych.
Próg raportowania temperatury jest konfigurowalny na urządzeniu (domyślnie 0,5 °C, zakres 0,5–5,0 °C). Próg wilgotności domyślnie wynosi 5% (zakres 1–20%). Progi te można dostosować przez interfejs webowy Shelly lub API, aby zrównoważyć częstotliwość raportowania z żywotnością baterii.
Monitorowanie baterii
Moduł udostępnia atrybut serwisowy Bateria [%], który odczytuje procentowy poziom naładowania baterii z params['devicepower:0'].battery.percent w zdarzeniu NotifyStatus. Ostrzeżenie o niskim poziomie baterii jest wyzwalane, gdy poziom spadnie poniżej 30%.
Poziom baterii aktualizuje się z każdym raportem czujnika. Na bateriach 4x AA oczekiwana żywotność wynosi około 1 roku w normalnych warunkach.
Wykrywanie offline
Szablon monitoruje łączność urządzenia za pomocą mechanizmu opartego na znaczniku czasu. Skrypt nasłuchujący modułu zapisuje znacznik czasu Unix z każdego zdarzenia NotifyStatus w zmiennej niestandardowej timestamp. Skrypt odczytu porównuje następnie zapisany znacznik czasu z bieżącym czasem:
- Offline > 12 godzin — WARNING: “Device is offline > 12H”
- Offline > 24 godzin — ERROR: “Device is offline > 24H”
Jest to szczególnie przydatne dla urządzeń bateryjnych, które mogą przestać komunikować się z powodu wyczerpanych baterii lub utraty połączenia Wi-Fi.
Dodatkowe możliwości
Shelly H&T Gen3 publikuje również status online/offline przez topic MQTT Last Will and Testament (LWT), napięcie baterii w woltach oraz status zasilania zewnętrznego (czy USB Type-C jest podłączony). Indywidualne topice statusu komponentów (status/temperature:0, status/humidity:0, status/devicepower:0) są dostępne gdy status_ntf jest włączone, a temperatura jest również dostępna w Fahrenheitach. Urządzenie posiada wyświetlacz e-paper z konfigurowalną jednostką temperatury i formatem zegara. Możliwości te mogą zostać dodane w przyszłej aktualizacji szablonu.
Rozwiązywanie problemów
Czujnik nie raportuje danych
- Sprawdź, czy Shelly H&T Gen3 jest podłączony do Wi-Fi i MQTT jest włączone w ustawieniach urządzenia (Settings → MQTT → Enable)
- Upewnij się, że
rpc_ntfjest ustawione natrue(domyślnie) — szablon wymaga powiadomień RPC naevents/rpc - Potwierdź, że parametr importu MQTT ID dokładnie odpowiada Client ID urządzenia (np.
shellyhtg3-AABBCCDDEEFF) - Użyj klienta MQTT (np. MQTT Explorer) do subskrypcji
<device-id>/#i sprawdź, czy czujnik publikuje wiadomościNotifyStatuspo wybudzeniu - Sprawdź poziom baterii urządzenia — wyczerpane baterie uniemożliwiają czujnikowi połączenie z Wi-Fi
Odczyt wilgotności wydaje się nieprawidłowy
- Szablon TapHome dzieli surową wartość wilgotności przez 100 (np.
rh: 55.3staje się0.553w TapHome). To oczekiwane zachowanie — TapHome wewnętrznie używa zakresu 0–1 - Czujnik ma konfigurowalny offset wilgotności (
Humidity.SetConfig→offset) — sprawdź, czy nie jest ustawiony na nieprawidłową wartość - Zakres operacyjny wilgotności czujnika to 30–70% RH. Odczyty poza tym zakresem mogą być mniej dokładne
Ostrzeżenia offline mimo działającego czujnika
- Wykrywanie offline porównuje zapisany znacznik czasu z bieżącym czasem. Jeśli zegar TapHome Core jest znacząco przesunięty, mogą pojawiać się fałszywe ostrzeżenia
- Na zasilaniu bateryjnym czujnik raportuje tylko po przekroczeniu progów lub co 2 godziny bezwarunkowo — przerwy do 2 godzin między raportami są normalne
- Jeśli czujnik znajduje się w miejscu z niestabilnym Wi-Fi, może pominąć okna raportowania. Sprawdź siłę sygnału Wi-Fi w lokalizacji czujnika